SYMBOL INDEX (263 symbols across 17 files) FILE: add_to_pydotorg.py function error (line 40) | def error(*msgs: Any) -> NoReturn: function run_cmd (line 48) | def run_cmd( function macos_description (line 95) | def macos_description(version: tuple[int, int, int]) -> str: function get_file_descriptions (line 102) | def get_file_descriptions( function slug_for (line 167) | def slug_for(release: str) -> str: function sigfile_for (line 175) | def sigfile_for(release: str, rfile: str) -> str: function sha256sum_for (line 179) | def sha256sum_for(filename: str) -> str: function filesize_for (line 184) | def filesize_for(filename: str) -> int: function make_slug (line 188) | def make_slug(text: str) -> str: function base_version (line 192) | def base_version(release: str) -> str: function base_version_tuple (line 198) | def base_version_tuple(release: str) -> tuple[int, int, int]: function minor_version (line 204) | def minor_version(release: str) -> str: function minor_version_tuple (line 210) | def minor_version_tuple(release: str) -> tuple[int, int]: function build_file_dict (line 216) | def build_file_dict( function list_files (line 265) | def list_files( function query_object (line 296) | def query_object(base_url: str, objtype: str, **params: Any) -> int: function post_object (line 307) | def post_object(base_url: str, objtype: str, datadict: dict[str, Any]) -... function sign_release_files_with_sigstore (line 328) | def sign_release_files_with_sigstore( function parse_args (line 423) | def parse_args() -> argparse.Namespace: function main (line 451) | def main() -> None: FILE: buildbotapi.py class Builder (line 11) | class Builder: method __init__ (line 17) | def __init__(self, **kwargs: Any) -> None: method __hash__ (line 20) | def __hash__(self) -> int: class BuildBotAPI (line 24) | class BuildBotAPI: method __init__ (line 25) | def __init__(self, session: ClientSession) -> None: method authenticate (line 28) | async def authenticate(self, token: str) -> None: method _fetch_text (line 33) | async def _fetch_text(self, url: str) -> str: method _fetch_json (line 37) | async def _fetch_json(self, url: str) -> JSON: method stable_builders (line 40) | async def stable_builders(self, branch: str | None = None) -> dict[int... method all_builders (line 48) | async def all_builders(self, branch: str | None = None) -> dict[int, B... method is_builder_failing_currently (line 59) | async def is_builder_failing_currently(self, builder: Builder) -> bool: FILE: release.py class ReleaseShelf (line 43) | class ReleaseShelf(Protocol): method close (line 44) | def close(self) -> None: ... method get (line 47) | def get(self, key: Literal["finished"], default: bool | None = None) -... method get (line 50) | def get( method get (line 55) | def get(self, key: Literal["gpg_key"], default: str | None = None) -> ... method get (line 58) | def get(self, key: Literal["git_repo"], default: Path | None = None) -... method get (line 61) | def get(self, key: Literal["auth_info"], default: str | None = None) -... method get (line 64) | def get(self, key: Literal["ssh_user"], default: str | None = None) ->... method get (line 67) | def get( method get (line 72) | def get(self, key: Literal["sign_gpg"], default: bool | None = None) -... method get (line 75) | def get( method get (line 80) | def get(self, key: Literal["release"], default: Tag | None = None) -> ... method __getitem__ (line 83) | def __getitem__(self, key: Literal["finished"]) -> bool: ... method __getitem__ (line 86) | def __getitem__(self, key: Literal["completed_tasks"]) -> list[Task]: ... method __getitem__ (line 89) | def __getitem__(self, key: Literal["gpg_key"]) -> str: ... method __getitem__ (line 92) | def __getitem__(self, key: Literal["git_repo"]) -> Path: ... method __getitem__ (line 95) | def __getitem__(self, key: Literal["auth_info"]) -> str: ... method __getitem__ (line 98) | def __getitem__(self, key: Literal["ssh_user"]) -> str: ... method __getitem__ (line 101) | def __getitem__(self, key: Literal["ssh_key"]) -> str | None: ... method __getitem__ (line 104) | def __getitem__(self, key: Literal["sign_gpg"]) -> bool: ... method __getitem__ (line 107) | def __getitem__(self, key: Literal["security_release"]) -> bool: ... method __getitem__ (line 110) | def __getitem__(self, key: Literal["release"]) -> Tag: ... method __setitem__ (line 113) | def __setitem__(self, key: Literal["finished"], value: bool) -> None: ... method __setitem__ (line 116) | def __setitem__( method __setitem__ (line 121) | def __setitem__(self, key: Literal["gpg_key"], value: str) -> None: ... method __setitem__ (line 124) | def __setitem__(self, key: Literal["git_repo"], value: Path) -> None: ... method __setitem__ (line 127) | def __setitem__(self, key: Literal["auth_info"], value: str) -> None: ... method __setitem__ (line 130) | def __setitem__(self, key: Literal["ssh_user"], value: str) -> None: ... method __setitem__ (line 133) | def __setitem__(self, key: Literal["ssh_key"], value: str | None) -> N... method __setitem__ (line 136) | def __setitem__(self, key: Literal["sign_gpg"], value: bool) -> None: ... method __setitem__ (line 139) | def __setitem__(self, key: Literal["security_release"], value: bool) -... method __setitem__ (line 142) | def __setitem__(self, key: Literal["release"], value: Tag) -> None: ... class Task (line 146) | class Task: method __call__ (line 150) | def __call__(self, db: ReleaseShelf) -> Any: class Tag (line 154) | class Tag: method __init__ (line 155) | def __init__(self, tag_name: str) -> None: method __str__ (line 188) | def __str__(self) -> str: method normalized (line 191) | def normalized(self) -> str: method branch (line 195) | def branch(self) -> str: method is_alpha_release (line 201) | def is_alpha_release(self) -> bool: method is_release_candidate (line 205) | def is_release_candidate(self) -> bool: method is_feature_freeze_release (line 209) | def is_feature_freeze_release(self) -> bool: method is_security_release (line 213) | def is_security_release(self) -> bool: method nickname (line 220) | def nickname(self) -> str: method gitname (line 224) | def gitname(self) -> str: method long_name (line 228) | def long_name(self) -> str: method next_minor_release (line 239) | def next_minor_release(self) -> Self: method as_tuple (line 242) | def as_tuple(self) -> tuple[int, int, int, str, int]: method committed_at (line 247) | def committed_at(self) -> datetime.datetime: method includes_docs (line 259) | def includes_docs(self) -> bool: method doc_version (line 264) | def doc_version(self) -> str: function error (line 274) | def error(*msgs: str) -> None: function run_cmd (line 281) | def run_cmd( function ask_question (line 297) | def ask_question(question: str) -> bool: function chdir_to_repo_root (line 314) | def chdir_to_repo_root() -> str: function get_output (line 357) | def get_output(args: list[str]) -> bytes: function check_env (line 361) | def check_env() -> None: function get_arg_parser (line 368) | def get_arg_parser() -> optparse.OptionParser: function constant_replace (line 421) | def constant_replace( function tweak_patchlevel (line 453) | def tweak_patchlevel( function get_pep_number (line 483) | def get_pep_number(version: str) -> str: function tweak_readme (line 498) | def tweak_readme(tag: Tag, filename: str = "README.rst") -> None: function bump (line 543) | def bump(tag: Tag) -> None: function manual_edit (line 577) | def manual_edit(filename: str) -> None: function pushd (line 583) | def pushd(new: str) -> Generator[None, None, None]: function make_dist (line 593) | def make_dist(name: str) -> None: function tarball (line 605) | def tarball(source: str, clamp_mtime: str) -> None: function export (line 653) | def export(tag: Tag, silent: bool = False, skip_docs: bool = False) -> N... function build_docs (line 760) | def build_docs() -> str: function upload (line 783) | def upload(tag: Tag, username: str) -> None: function make_tag (line 801) | def make_tag(tag: Tag, *, sign_gpg: bool = True) -> bool: function done (line 844) | def done(tag: Tag) -> None: function main (line 848) | def main(argv: Any) -> None: FILE: run_release.py class ReleaseException (line 210) | class ReleaseException(Exception): class ReleaseDriver (line 214) | class ReleaseDriver: method __init__ (line 215) | def __init__( method checkpoint (line 267) | def checkpoint(self) -> None: method run (line 270) | def run(self) -> None: function cd (line 291) | def cd(path: Path) -> Iterator[None]: function check_tool (line 298) | def check_tool(db: ReleaseShelf, tool: str) -> None: function check_gpg_keys (line 311) | def check_gpg_keys(db: ReleaseShelf) -> None: function check_ssh_connection (line 332) | def check_ssh_connection(db: ReleaseShelf) -> None: function check_sigstore_client (line 346) | def check_sigstore_client(db: ReleaseShelf) -> None: function check_sigstore_version (line 358) | def check_sigstore_version(version: str) -> None: function check_buildbots (line 372) | def check_buildbots(db: ReleaseShelf) -> None: function check_docker_running (line 415) | def check_docker_running(db: ReleaseShelf) -> None: function run_blurb_release (line 419) | def run_blurb_release(db: ReleaseShelf) -> None: function check_cpython_repo_branch (line 427) | def check_cpython_repo_branch(db: ReleaseShelf) -> None: function check_cpython_repo_age (line 439) | def check_cpython_repo_age(db: ReleaseShelf) -> None: function check_cpython_repo_is_clean (line 457) | def check_cpython_repo_is_clean(db: ReleaseShelf) -> None: function check_magic_number (line 462) | def check_magic_number(db: ReleaseShelf) -> None: function prepare_temporary_branch (line 505) | def prepare_temporary_branch(db: ReleaseShelf) -> None: function remove_temporary_branch (line 511) | def remove_temporary_branch(db: ReleaseShelf) -> None: function prepare_pydoc_topics (line 517) | def prepare_pydoc_topics(db: ReleaseShelf) -> None: function run_autoconf (line 534) | def run_autoconf(db: ReleaseShelf) -> None: function check_pyspecific (line 567) | def check_pyspecific(db: ReleaseShelf) -> None: function bump_version (line 586) | def bump_version(db: ReleaseShelf) -> None: function bump_version_in_docs (line 594) | def bump_version_in_docs(db: ReleaseShelf) -> None: function create_tag (line 601) | def create_tag(db: ReleaseShelf) -> None: function wait_for_build_release (line 610) | def wait_for_build_release(db: ReleaseShelf) -> None: function check_doc_unreleased_version (line 660) | def check_doc_unreleased_version(db: ReleaseShelf) -> None: function sign_source_artifacts (line 682) | def sign_source_artifacts(db: ReleaseShelf) -> None: function build_sbom_artifacts (line 721) | def build_sbom_artifacts(db: ReleaseShelf) -> None: class MySFTPClient (line 743) | class MySFTPClient(paramiko.SFTPClient): method put_dir (line 744) | def put_dir( method mkdir (line 760) | def mkdir( function upload_files_to_server (line 772) | def upload_files_to_server(db: ReleaseShelf, server: str) -> None: function upload_files_to_downloads_server (line 813) | def upload_files_to_downloads_server(db: ReleaseShelf) -> None: function place_files_in_download_folder (line 817) | def place_files_in_download_folder(db: ReleaseShelf) -> None: function upload_docs_to_the_docs_server (line 858) | def upload_docs_to_the_docs_server(db: ReleaseShelf) -> None: function unpack_docs_in_the_docs_server (line 866) | def unpack_docs_in_the_docs_server(db: ReleaseShelf) -> None: function extract_github_owner (line 902) | def extract_github_owner(url: str) -> str: function get_commit_sha (line 914) | def get_commit_sha(git_version: str, git_repo: Path) -> str: function get_origin_remote_url (line 927) | def get_origin_remote_url(git_repo: Path) -> str: function start_build_release (line 940) | def start_build_release(db: ReleaseShelf) -> None: function send_email_to_platform_release_managers (line 978) | def send_email_to_platform_release_managers(db: ReleaseShelf) -> None: function create_release_object_in_db (line 998) | def create_release_object_in_db(db: ReleaseShelf) -> None: function wait_until_all_files_are_in_folder (line 1006) | def wait_until_all_files_are_in_folder(db: ReleaseShelf) -> None: function run_add_to_python_dot_org (line 1057) | def run_add_to_python_dot_org(db: ReleaseShelf) -> None: function purge_the_cdn (line 1095) | def purge_the_cdn(db: ReleaseShelf) -> None: function announce_release (line 1134) | def announce_release(db: ReleaseShelf) -> None: function post_release_merge (line 1143) | def post_release_merge(db: ReleaseShelf) -> None: function post_release_tagging (line 1167) | def post_release_tagging(db: ReleaseShelf) -> None: function maybe_prepare_new_main_branch (line 1194) | def maybe_prepare_new_main_branch(db: ReleaseShelf) -> None: function update_whatsnew_toctree (line 1235) | def update_whatsnew_toctree(db: ReleaseShelf, filename: str) -> None: function branch_new_versions (line 1248) | def branch_new_versions(db: ReleaseShelf) -> None: function is_mirror (line 1262) | def is_mirror(repo: Path, remote: str) -> bool: function push_to_local_fork (line 1273) | def push_to_local_fork(db: ReleaseShelf) -> None: function push_to_upstream (line 1297) | def push_to_upstream(db: ReleaseShelf) -> None: function main (line 1339) | def main() -> None: FILE: sbom.py class SBOM (line 33) | class SBOM(TypedDict): class Package (line 45) | class Package(TypedDict): class File (line 61) | class File(TypedDict): class Relationship (line 67) | class Relationship(TypedDict): class Checksum (line 73) | class Checksum(TypedDict): class PackageVerificationCode (line 78) | class PackageVerificationCode(TypedDict): class Ref (line 82) | class Ref(TypedDict): class CreationInfo (line 88) | class CreationInfo(TypedDict): function spdx_id (line 100) | def spdx_id(value: LiteralString) -> str: function calculate_package_verification_codes (line 115) | def calculate_package_verification_codes(sbom: SBOM) -> None: function get_release_tools_commit_sha (line 188) | def get_release_tools_commit_sha() -> str: function normalize_sbom_data (line 202) | def normalize_sbom_data(sbom_data: SBOM) -> None: function check_sbom_data (line 226) | def check_sbom_data(sbom_data: SBOM) -> None: function fetch_package_metadata_from_pypi (line 258) | def fetch_package_metadata_from_pypi( function remove_pip_from_sbom (line 294) | def remove_pip_from_sbom(sbom_data: SBOM) -> None: function create_pip_sbom_from_wheel (line 324) | def create_pip_sbom_from_wheel( function create_cpython_sbom (line 450) | def create_cpython_sbom( function create_sbom_for_source_tarball (line 531) | def create_sbom_for_source_tarball(tarball_path: str) -> SBOM: function create_sbom_for_windows_artifact (line 695) | def create_sbom_for_windows_artifact( function main (line 774) | def main() -> None: FILE: select_jobs.py function output (line 8) | def output(key: str, value: bool) -> None: function main (line 12) | def main() -> None: FILE: tests/magicdata/Lib/test/test_importlib/test_util.py class SomeClass (line 4) | class SomeClass: method some_method (line 5) | def some_method(self) -> None: FILE: tests/test_add_to_pydotorg.py function test_slug_for (line 21) | def test_slug_for(release: str, expected: str) -> None: function test_sigfile_for (line 25) | def test_sigfile_for() -> None: function test_make_slug (line 42) | def test_make_slug(text: str, expected: str) -> None: function test_build_file_dict (line 46) | def test_build_file_dict(tmp_path: Path) -> None: function test_base_version (line 89) | def test_base_version(release: str, expected: str) -> None: function test_base_version_tuple (line 102) | def test_base_version_tuple(release: str, expected: tuple[int, int, int]... function test_minor_version (line 115) | def test_minor_version(release: str, expected: str) -> None: function test_minor_version_tuple (line 128) | def test_minor_version_tuple(release: str, expected: tuple[int, int]) ->... function test_macos_description (line 139) | def test_macos_description(release: tuple[int, int, int], expected: str)... function test_list_files (line 143) | def test_list_files(fs: FakeFilesystem) -> None: FILE: tests/test_buildbotapi.py function test_builder_class (line 10) | def test_builder_class() -> None: function load (line 28) | def load(filename: str) -> str: function test_buildbotapi_authenticate (line 34) | async def test_buildbotapi_authenticate() -> None: function test_buildbotapi_all_builders (line 49) | async def test_buildbotapi_all_builders() -> None: function test_buildbotapi_all_builders_with_branch (line 71) | async def test_buildbotapi_all_builders_with_branch() -> None: function test_buildbotapi_stable_builders (line 90) | async def test_buildbotapi_stable_builders() -> None: function test_buildbotapi_is_builder_failing_currently_yes (line 120) | async def test_buildbotapi_is_builder_failing_currently_yes( FILE: tests/test_release.py function test_manual_edit (line 17) | def test_manual_edit( function test_task (line 34) | def test_task(mocker: MockerFixture) -> None: function test_ask_question (line 60) | def test_ask_question( function test_tweak_patchlevel (line 81) | def test_tweak_patchlevel(tmp_path: Path) -> None: function test_tweak_readme (line 149) | def test_tweak_readme( FILE: tests/test_release_tag.py function test_tag (line 10) | def test_tag() -> None: function test_tag_phase (line 31) | def test_tag_phase() -> None: function test_tag_committed_at_not_found (line 71) | def test_tag_committed_at_not_found() -> None: function test_tag_committed (line 80) | def test_tag_committed(mocker: MockerFixture) -> None: function test_tag_dot (line 92) | def test_tag_dot(mocker: MockerFixture) -> None: function test_tag_invalid (line 104) | def test_tag_invalid() -> None: function test_tag_docs_attributes (line 113) | def test_tag_docs_attributes() -> None: function test_tag_long_name (line 135) | def test_tag_long_name() -> None: function test_tag_is_security_release (line 158) | def test_tag_is_security_release( FILE: tests/test_run_release.py function test_check_sigstore_version_success (line 20) | def test_check_sigstore_version_success(version) -> None: function test_check_sigstore_version_exception (line 29) | def test_check_sigstore_version_exception(version) -> None: function test_extract_github_owner (line 44) | def test_extract_github_owner(url: str, expected: str) -> None: function test_invalid_extract_github_owner (line 48) | def test_invalid_extract_github_owner() -> None: function test_check_cpython_repo_branch (line 91) | def test_check_cpython_repo_branch( function test_check_cpython_repo_age (line 118) | def test_check_cpython_repo_age( function test_check_magic_number (line 144) | def test_check_magic_number() -> None: function prepare_fake_docs (line 153) | def prepare_fake_docs(tmp_path: Path, content: str) -> None: function fake_answers (line 164) | def fake_answers(monkeypatch: pytest.MonkeyPatch, answers: list[str]) ->... function test_check_doc_unreleased_version_no_file (line 179) | def test_check_doc_unreleased_version_no_file(tmp_path: Path) -> None: function test_check_doc_unreleased_version_no_file_alpha (line 189) | def test_check_doc_unreleased_version_no_file_alpha(tmp_path: Path) -> N... function test_check_doc_unreleased_version_ok (line 198) | def test_check_doc_unreleased_version_ok(tmp_path: Path) -> None: function test_check_doc_unreleased_version_not_ok (line 210) | def test_check_doc_unreleased_version_not_ok(monkeypatch, tmp_path: Path... function test_check_doc_unreleased_version_waived (line 223) | def test_check_doc_unreleased_version_waived(monkeypatch, tmp_path: Path... function test_update_whatsnew_toctree (line 236) | def test_update_whatsnew_toctree(tmp_path: Path) -> None: FILE: tests/test_sbom.py function test_spdx_id (line 24) | def test_spdx_id(value: str, expected: str) -> None: function test_spdx_id_collisions (line 30) | def test_spdx_id_collisions(): function test_calculate_package_verification_code (line 56) | def test_calculate_package_verification_code(package_sha1s, package_veri... function test_normalization (line 86) | def test_normalization(): function test_fetch_project_metadata_from_pypi (line 102) | def test_fetch_project_metadata_from_pypi(mocker): function test_remove_pip_from_sbom (line 162) | def test_remove_pip_from_sbom() -> None: function test_create_cpython_sbom (line 176) | def test_create_cpython_sbom(): function test_create_cpython_sbom_pre_release_download_location (line 242) | def test_create_cpython_sbom_pre_release_download_location( FILE: tests/test_select_jobs.py function test_select_jobs (line 24) | def test_select_jobs( function test_select_jobs_test_mode (line 52) | def test_select_jobs_test_mode( FILE: tests/test_update_version_next.py function test_freeze_simple_script (line 61) | def test_freeze_simple_script(tmp_path: Path) -> None: FILE: update_version_next.py function main (line 56) | def main(argv: list[str]) -> None: FILE: windows-release/merge-and-upload.py function find_cmd (line 26) | def find_cmd(env, exe): function _std_args (line 52) | def _std_args(cmd): class RunError (line 66) | class RunError(Exception): function _run (line 70) | def _run(*args, single_cmd=False): function call_ssh (line 88) | def call_ssh(*args, allow_fail=True): function upload_ssh (line 100) | def upload_ssh(source, dest): function download_ssh (line 108) | def download_ssh(source, dest): function ls_ssh (line 116) | def ls_ssh(dest): function url2path (line 128) | def url2path(url): function get_hashes (line 140) | def get_hashes(src): function trim_install (line 150) | def trim_install(install): function validate_new_installs (line 156) | def validate_new_installs(installs): function purge (line 165) | def purge(url): function calculate_uploads (line 174) | def calculate_uploads(): function sign_json (line 205) | def sign_json(cat_file, *files): function remove_and_insert (line 242) | def remove_and_insert(index, new_installs): function hash_packages (line 259) | def hash_packages(uploads): function number_sortkey (line 264) | def number_sortkey(n): function install_sortkey (line 271) | def install_sortkey(install): function find_missing_from_index (line 280) | def find_missing_from_index(url, installs):