Skip to content

Upgrading mypy 1 to 2

Breaking1.20.2 → 2.4.1Breaking3New27Changed58Fixed97Other14

Fetching 7 releases from GitHub…6 / 7
BreakingUpgrade verdict

3 breaking changes.

  • Mypy can no longer check code as if it were running on Python 3.9; use 3.10 or newer.
  • Mypy no longer lets you assign None to a class variable that is not optional when the type is given in a comment.
  • With --allow-redefinition, redefining a variable with a second type annotation is now an error, though redefinitions in different blocks are more flexible.
3 items need code or config changes

Adds ast-serialize <1.0.0,>=0.12.1.

Installs 5 packages in all (was 4).

Breaking3
Drops support for targeting Python 3.9 with --python-version 3.9.
--python-version
Removes the soundness hole that allowed assigning None to non-optional class variables declared with type comments.
Changes --allow-redefinition to behave like --allow-redefinition-new, disallowing two annotations for the same variable.
--allow-redefinition--allow-redefinition-new--allow-redefinition-old--local-partial-types

Generated by DepDelta from published Python source. Not mixed with prose notes.

  • changed: function get_target_type(tvar: TypeVarLikeType, type: Type, callable: CallableType, report_incompatible_typevar_value: Callable[[CallableType, Type, str, Context], None], context: Context, skip_unsatisfied: bool) -> Type | None → function get_target_type(tvar: TypeVarLikeType, type: Type, callable: CallableType, report_incompatible_typevar_value: Callable[[CallableType, Type, str, Context], None], context: Context, skip_unsatisfied: bool, id_to_type: dict[TypeVarId, Type]) -> Type | None
  • removed: field CurrentType.from_assignment: bool
  • removed: field CurrentType.type: Type
  • changed: class CurrentType(NamedTuple) → class CurrentType
  • added: constructor CurrentType(type: Type, from_assignment: bool) -> None
  • removed: function get_errors_name(meta_name: str) -> str
  • removed: function write_errors_file(meta_file: str, error_lines: list[ErrorTuple], manager: BuildManager) -> None
  • changed: constructor SccRequestMessage(*, scc_id: int | None, import_errors: dict[str, list[ErrorInfo]], mod_data: dict[str, tuple[bytes, FileRawData | None]]) -> None → constructor SccRequestMessage(*, scc_ids: list[int], import_errors: dict[str, list[ErrorInfo]], mod_data: dict[str, tuple[bytes, FileRawData | None]]) -> None
  • changed: constructor SccResponseMessage(*, scc_id: int, result: dict[str, tuple[str, list[str]]] | None=…, blocker: CompileError | None=…) -> None → constructor SccResponseMessage(*, scc_ids: list[int], is_interface: bool, result: dict[str, ModuleResult] | None=…, blocker: CompileError | None=…) -> None
  • changed: function build_inner(sources: list[BuildSource], options: Options, alt_lib_path: str | None, flush_errors: Callable[[str | None, list[str], bool], None], fscache: FileSystemCache | None, stdout: TextIO, stderr: TextIO, extra_plugins: Sequence[Plugin], workers: list[WorkerClient]) -> BuildResult → function build_inner(sources: list[BuildSource], options: Options, alt_lib_path: str | None, flush_errors: Callable[[str | None, list[str], bool], None], fscache: FileSystemCache | None, stdout: TextIO, stderr: TextIO, extra_plugins: Sequence[Plugin], workers: list[WorkerClient], connect_threads: list[Thread], metastore: MetadataStore) -> BuildResult
  • changed: function dispatch(sources: list[BuildSource], manager: BuildManager, stdout: TextIO) -> Graph → function dispatch(sources: list[BuildSource], manager: BuildManager, stdout: TextIO, connect_threads: list[Thread]) -> Graph
  • changed: function find_cache_meta(id: str, path: str, manager: BuildManager, skip_validation: bool=…) -> tuple[CacheMeta | None, list[ErrorTuple]] → function find_cache_meta(id: str, path: str, manager: BuildManager, skip_validation: bool=…) -> tuple[CacheMeta, CacheMetaEx] | None
  • changed: function options_snapshot(id: str, manager: BuildManager) -> dict[str, object] → function options_snapshot(module: str, manager: BuildManager) -> dict[str, object]
  • changed: function process_stale_scc(graph: Graph, ascc: SCC, manager: BuildManager, from_cache: set[str] | None=…) -> dict[str, tuple[str, list[str]]] → function process_stale_scc(graph: Graph, ascc: SCC, manager: BuildManager) -> None
  • changed: function write_cache(id: str, path: str, tree: MypyFile, dependencies: list[str], suppressed: list[str], suppressed_deps_opts: bytes, imports_ignored: dict[int, list[str]], dep_prios: list[int], dep_lines: list[int], old_interface_hash: bytes, trans_dep_hash: bytes, source_hash: str, ignore_all: bool, manager: BuildManager) -> tuple[bytes, tuple[CacheMeta, str] | None] → function write_cache(id: str, path: str, tree: MypyFile, dependencies: list[str], suppressed: list[str], suppressed_deps_opts: bytes, imports_ignored: dict[int, list[str]], dep_prios: list[int], dep_lines: list[int], old_interface_hash: bytes, trans_dep_hash: bytes, source_hash: str, ignore_all: bool, local_partial_types: bool, is_parallel: bool, manager: BuildManager) -> tuple[bytes, tuple[Cache…
  • changed: method BuildManager.parse_file(id: str, path: str, source: str, ignore_errors: bool, options: Options, raw_data: FileRawData | None=…) -> MypyFile → method BuildManager.parse_file(id: str, path: str, source: str | None, options: Options, raw_data: FileRawData | None=…) -> MypyFile
  • changed: method BuildManager.wait_for_done(graph: Graph) -> tuple[list[SCC], bool, dict[str, tuple[str, list[str]]]] → method BuildManager.wait_for_done(graph: Graph) -> tuple[list[SCC], bool, dict[str, ModuleResult]]
  • changed: method BuildManager.wait_for_done_workers(graph: Graph) -> tuple[list[SCC], bool, dict[str, tuple[str, list[str]]]] → method BuildManager.wait_for_done_workers(graph: Graph) -> tuple[list[SCC], bool, dict[str, ModuleResult]]
  • changed: method State.type_check_first_pass() -> None → method State.type_check_first_pass(recurse_into_functions: bool=…) -> None
  • changed: method State.type_check_second_pass() -> bool → method State.type_check_second_pass(todo: Sequence[DeferredNode] | None=…, recurse_into_functions: bool=…, impl_only: bool=…) -> bool
  • added: class ModuleResult
  • added: constructor ModuleResult(interface_hash: str | None, error_lines: list[str]) -> None
  • added: function get_meta_ex_name(meta_name: str) -> str
  • added: function maybe_load_deps(graph: Graph, ascc: SCC, manager: BuildManager) -> None
  • added: function process_results(results: dict[str, ModuleResult], graph: Graph, manager: BuildManager) -> None
  • added: function process_stale_scc_full(graph: Graph, ascc: SCC, manager: BuildManager) -> None
  • added: function process_stale_scc_implementation(graph: Graph, stale: list[str], manager: BuildManager, meta_files: list[str | None]) -> dict[str, ModuleResult]
  • added: function process_stale_scc_interface(graph: Graph, ascc: SCC, manager: BuildManager, from_cache: set[str]) -> list[tuple[str, ModuleResult, str | None]]
  • added: function write_cache_meta_ex(meta_file: str, meta_ex: CacheMetaEx, manager: BuildManager) -> None
  • added: method BuildManager.broadcast(message: bytes) -> None
  • added: method BuildManager.commit() -> None
  • added: method BuildManager.commit_module(meta_file: str) -> None
  • added: method BuildManager.get_scc_batch(max_size_in_batch: int) -> list[SCC]
  • added: method BuildManager.max_batch_size() -> int
  • added: method BuildManager.parse_all(states: list[State], post_parse: bool=…) -> None
  • added: method BuildManager.parse_files_threaded_raw(states: list[State]) -> tuple[list[State], set[State]]
  • added: method BuildManager.post_parse_all(states: list[State]) -> None
  • added: method BuildManager.receive_worker_message(idx: int) -> ReadBuffer
  • added: method BuildManager.wait_ack() -> None
  • added: method ModuleResult.write(buf: WriteBuffer) -> None
  • added: method State.apply_inline_configuration(flags: list[tuple[int, str]] | None) -> None
  • added: method State.get_source() -> str
  • added: method State.handle_file_read_errors() -> Iterator[None]
  • added: method State.parse_file_inner(source: str | None, raw_data: FileRawData | None=…) -> None
  • added: method State.requires_read() -> bool
  • added: static method ModuleResult.read(buf: ReadBuffer) -> ModuleResult
  • added: variable MIN_SIZE_HINT: Final
  • removed: field ServerContext.disable_error_code: list[str]
  • removed: field ServerContext.enable_error_code: list[str]
  • removed: field ServerContext.errors: Errors
  • removed: field ServerContext.fscache: FileSystemCache
  • removed: field ServerContext.options: Options
  • changed: class ServerContext(NamedTuple) → class ServerContext
  • changed: function load_states(scc: SCC, graph: Graph, manager: BuildManager, import_errors: dict[str, list[ErrorInfo]], mod_data: dict[str, tuple[bytes, FileRawData | None]]) -> None → function load_states(mod_ids: list[str], graph: Graph, manager: BuildManager, import_errors: dict[str, list[ErrorInfo]], mod_data: dict[str, tuple[bytes, FileRawData | None]]) -> None
  • added: constructor ServerContext(options: Options, disable_error_code: list[str], enable_error_code: list[str], errors: Errors, fscache: FileSystemCache) -> None
  • added: function should_shutdown(buf: ReadBuffer, expected_tag: Tag) -> bool
  • added: function timed_send(manager: BuildManager, server: IPCServer, message: SccResponseMessage) -> None
  • changed: function read_literal(data: ReadBuffer, tag: Tag) -> int | str | bool | float → function read_literal(data: ReadBuffer, tag: Tag) -> int | str | bool | float | SentinelValue
  • changed: function write_literal(data: WriteBuffer, value: int | str | bool | float | complex | None) -> None → function write_literal(data: WriteBuffer, value: int | str | bool | float | complex | SentinelValue | None) -> None
  • added: class CacheMetaEx
  • added: constructor CacheMetaEx(dependencies: list[str], suppressed: list[str], dep_hashes: list[bytes], error_lines: list[ErrorTuple]) -> None
  • added: function read_flags(data: ReadBuffer, num_flags: int) -> list[bool]
  • added: function write_flags(data: WriteBuffer, flags: list[bool]) -> None
  • added: method CacheMetaEx.serialize() -> dict[str, Any]
  • added: method CacheMetaEx.write(data: WriteBuffer) -> None
  • added: static method CacheMetaEx.deserialize(meta: dict[str, Any]) -> CacheMetaEx | None
  • added: static method CacheMetaEx.read(data: ReadBuffer) -> CacheMetaEx | None
  • added: variable LITERAL_SENTINEL: Final[Tag]
  • added: variable RESERVED: Final[Tag]
  • removed: field PartialTypeScope.is_function: bool
  • removed: field PartialTypeScope.is_local: bool
  • removed: field PartialTypeScope.map: dict[Var, Context]
  • removed: field TypeChecker.type: TypeInfo | None
  • removed: function ambiguous_enum_equality_keys(t: Type) -> set[str]
  • removed: method TypeChecker.enter_class(type: TypeInfo) -> Iterator[None]
  • removed: method TypeChecker.remove_capture_conflicts(type_map: TypeMap, inferred_types: dict[SymbolNode, Type]) -> None
  • removed: variable BUILTINS_CUSTOM_EQ_CHECKS: Final
  • changed: class PartialTypeScope(NamedTuple) → class PartialTypeScope
  • changed: method TypeChecker.check_assignment(lvalue: Lvalue, rvalue: Expression, infer_lvalue_type: bool=…, new_syntax: bool=…) -> None → method TypeChecker.check_assignment(lvalue: Lvalue, rvalue: Expression, infer_lvalue_type: bool=…) -> None
  • changed: method TypeChecker.check_default_params(item: FuncItem, body_is_trivial: bool) -> None → method TypeChecker.check_default_params(item: FuncItem, body_is_trivial: bool | None=…) -> None
  • changed: method TypeChecker.check_first_pass() -> None → method TypeChecker.check_first_pass(recurse_into_functions: bool=…) -> None
  • changed: method TypeChecker.check_partial(node: DeferredNodeType | FineGrainedDeferredNodeType) -> None → method TypeChecker.check_partial(node: DeferredNodeType | FineGrainedDeferredNodeType, impl_only: bool) -> None
  • changed: method TypeChecker.check_second_pass(todo: Sequence[DeferredNode | FineGrainedDeferredNode] | None=…, *, allow_constructor_cache: bool=…) -> bool → method TypeChecker.check_second_pass(todo: Sequence[DeferredNode | FineGrainedDeferredNode] | None=…, *, allow_constructor_cache: bool=…, recurse_into_functions: bool=…, impl_only: bool=…) -> bool
  • changed: method TypeChecker.type_requires_usage(typ: Type) -> tuple[str, ErrorCode] | None → method TypeChecker.type_requires_usage(typ: Type, s: ExpressionStmt) -> tuple[str, ErrorCode] | None
  • added: class EqualityDomainInfo
  • added: class EqualityValueInfo
  • added: constructor EqualityDomainInfo(type_names: set[str], enum_type_names: set[str]) -> None
  • added: constructor EqualityValueInfo(domains: dict[str, EqualityDomainInfo], is_top: bool) -> None
  • added: constructor PartialTypeScope(map: dict[Var, Context], is_function: bool, is_local: bool) -> None
  • added: function combine_equality_value_info(infos: Iterable[EqualityValueInfo]) -> EqualityValueInfo
  • added: function equality_value_info(t: Type) -> EqualityValueInfo
  • added: function is_equality_ambiguous_for_narrowing(left: Type, right: Type) -> bool
  • added: function partition_equality_ambiguous_types(current_type: Type, target_type: Type, *, is_identity: bool) -> tuple[Type | None, Type | None]
  • added: method TypeChecker.adjust_rvalue_type_if_possible(rvalue_type: TupleType, lvalues: list[Lvalue]) -> TupleType
  • added: method TypeChecker.can_widen_in_scope(name: NameExpr, orig_type: Type) -> bool
  • added: method TypeChecker.check_and_remove_capture_conflicts(type_map: TypeMap, inferred_types: dict[SymbolNode, Type]) -> None
  • added: method TypeChecker.check_partial_impl(impl: FuncDef | Decorator) -> None
  • added: method TypeChecker.check_typeddict_inheritance(defn: ClassDef) -> None
  • added: method TypeChecker.mark_unreachable(block: list[Statement], after: Statement) -> None
  • added: method TypeChecker.visit_func_def_impl(defn: FuncDef) -> None
  • added: method TypeCheckerAsSemanticAnalyzer.is_nested_within_func_scope() -> bool
  • added: method TypeCheckerAsSemanticAnalyzer.record_fixed_type(fixed: TypeInfo | TypeAlias) -> None
  • added: variable CLOSED_VALUE_EQUALITY_DOMAINS: Final
  • added: variable OPEN_VALUE_EQUALITY_DOMAINS: Final
  • added: variable OPEN_VALUE_EQUALITY_DOMAIN_NAMES: Final
  • added: variable VALUE_EQUALITY_DOMAINS: Final
  • removed: field TypeRange.is_upper_bound: bool
  • removed: field TypeRange.item: Type
  • changed: class TypeRange(NamedTuple) → class TypeRange
  • added: constructor TypeRange(item: Type, is_upper_bound: bool) -> None
  • added: method CheckerScope.current_class() -> TypeInfo | None
  • added: method TypeCheckerSharedApi.function_type(func: FuncBase) -> FunctionLike
  • removed: function merge_typevars_in_callables_by_name(callables: Sequence[CallableType]) -> tuple[list[CallableType], list[TypeVarType]]
  • changed: function has_ambiguous_uninhabited_component(t: Type) -> bool → function has_ambiguous_uninhabited_component(t: Type | None) -> bool
  • changed: method ExpressionChecker.validate_star_typeddict_item(item_arg: Expression, callee: TypedDictType, result: dict[str, list[Expression]], always_present_keys: set[str]) -> bool → method ExpressionChecker.validate_star_typeddict_item(item_arg: Expression, callee: TypedDictType, result: dict[str, list[Expression]], always_present_keys: set[str]) -> tuple[bool, bool]
  • added: method ExpressionChecker.lookup_definer(typ: Instance, attr_name: str) -> str | None
  • added: method ExpressionChecker.lookup_operator(op_name: str, base_type: Type, context: Context) -> Type | None
  • added: method ExpressionChecker.replace_type_type_callee_ret_type(callee: Type, ret_type: Type) -> Type
  • changed: function has_operator(typ: Type, op_method: str, named_type: Callable[[str], Instance]) -> bool → function has_operator(typ: Type, op_method: str) -> bool
  • changed: function instance_fallback(typ: ProperType, named_type: Callable[[str], Instance]) -> Instance → function instance_fallback(typ: ProperType) -> Instance
  • changed: function meta_has_operator(item: Type, op_method: str, named_type: Callable[[str], Instance]) -> bool → function meta_has_operator(item: Type, op_method: str) -> bool
  • changed: method PatternChecker.contract_starred_pattern_types(types: list[Type], star_pos: int | None, num_patterns: int) -> list[Type] → method PatternChecker.contract_starred_pattern_types(types: list[Type], star_pos: int | None, num_required_patterns: int) -> list[Type]
  • added: function parse_num_workers(v: str | int) -> int
  • changed: constructor ConstraintBuilderVisitor(actual: ProperType, direction: int, skip_neg_op: bool) -> None → constructor ConstraintBuilderVisitor(actual: ProperType, direction: int, skip_neg_op: bool, erase_types: bool) -> None
  • changed: function infer_constraints(template: Type, actual: Type, direction: int, skip_neg_op: bool=…) -> list[Constraint] → function infer_constraints(template: Type, actual: Type, direction: int, skip_neg_op: bool=…, erase_types: bool=…) -> list[Constraint]
  • changed: method ConstraintBuilderVisitor.infer_against_overloaded(overloaded: Overloaded, template: CallableType) -> list[Constraint] → method ConstraintBuilderVisitor.infer_against_overloaded(overloaded: Overloaded, template: CallableType, ret_only: bool=…) -> list[Constraint]
  • added: variable MAX_AUTO_WORKERS: Final
  • added: variable SQLITE_NUM_SHARDS: Final
  • added: variable WORKER_IDLE_TIMEOUT: Final
  • added: variable WORKER_SHUTDOWN_TIMEOUT: Final
  • added: variable slow_fs
  • added: variable CALL_ARG_MISC: Final
  • changed: constructor Errors(options: Options, *, read_source: Callable[[str], list[str] | None] | None=…, hide_error_codes: bool | None=…) -> None → constructor Errors(options: Options, *, read_source: Callable[[str], list[str] | None] | None=…, hide_error_codes: bool | None=…, error_formatter: ErrorFormatter | None=…) -> None
  • removed: function fixup_module(tree: MypyFile, modules: dict[str, MypyFile], allow_missing: bool) -> None
  • changed: method NodeFixer.visit_symbol_table(symtab: SymbolTable, table_fullname: str) -> None → method NodeFixer.visit_symbol_table(symtab: SymbolTable) -> None
  • added: method NodeFixer.resolve_cross_ref(value: SymbolTableNode) -> None
  • changed: method FileSystemCache.exists(path: str) -> bool → method FileSystemCache.exists(path: str, real_only: bool=…) -> bool
  • added: function git_revision_no_subprocess(dir: str) -> bytes | None
  • removed: field ArgumentInferContext.iterable_type: Instance
  • removed: field ArgumentInferContext.mapping_type: Instance
  • changed: class ArgumentInferContext(NamedTuple) → class ArgumentInferContext
  • changed: function infer_type_arguments(type_vars: Sequence[TypeVarLikeType], template: Type, actual: Type, is_supertype: bool=…, skip_unsatisfied: bool=…) -> list[Type | None] → function infer_type_arguments(type_vars: Sequence[TypeVarLikeType], template: Type, actual: Type, is_supertype: bool=…, skip_unsatisfied: bool=…, erase_types: bool=…) -> list[Type | None]
  • added: constructor ArgumentInferContext(mapping_type: Instance, iterable_type: Instance) -> None
  • changed: function ready_to_read(conns: list[IPCClient], timeout: float | None=…) -> list[int] → function ready_to_read(conns: Sequence[IPCBase], timeout: float | None=…) -> list[int]
  • changed: variable HEADER_SIZE → variable HEADER_SIZE: Final
  • added: variable MAX_READ: Final
  • added: method TypeJoinVisitor.resolve_typeddict_item(item_name: str, s: TypedDictItem, t: TypedDictItem) -> tuple[Type | None, bool, bool]
  • added: function get_known_modules(stdlib_versions: StdlibVersions | None=…, python_version: tuple[int, int] | None=…) -> frozenset[str]
  • added: function get_stdlib_modules(stdlib_versions: StdlibVersions, python_version: tuple[int, int] | None=…) -> frozenset[str]
  • added: function reset_known_modules_cache() -> None
  • added: variable POPULAR_THIRD_PARTY_MODULES: Final[frozenset[str]]
  • added: function lookup_stdlib_typeinfo(fullname: str, modules: dict[str, MypyFile]) -> TypeInfo
  • added: method TypeMeetVisitor.resolve_typeddict_item_type(name: str, s: TypedDictItem, t: TypedDictItem) -> tuple[Type | None, bool]
  • removed: field ErrorMessage.code: ErrorCode | None
  • removed: field ErrorMessage.value: str
  • removed: variable INVALID_SLICE_INDEX: Final
  • changed: class ErrorMessage(NamedTuple) → class ErrorMessage
  • added: constructor ErrorMessage(value: str, code: ErrorCode | None=…) -> None
  • added: variable NO_CYCLIC_DEFAULT: Final
  • added: variable NO_DEFAULT_AFTER_TYPEVAR_TUPLE: Final
  • changed: function get_conflict_protocol_types(left: Instance, right: Instance, class_obj: bool=…, options: Options | None=…) -> list[tuple[str, Type, Type, bool]] → function get_conflict_protocol_types(left: Instance, original_left: Type, right: Instance, class_obj: bool=…, options: Options | None=…) -> list[tuple[str, Type, Type, bool]]
  • changed: method MessageBuilder.no_variant_matches_arguments(overload: Overloaded, arg_types: list[Type], context: Context, *, code: ErrorCode | None=…) -> None → method MessageBuilder.no_variant_matches_arguments(overload: Overloaded, arg_types: list[Type], context: Context, *, arg_names: Sequence[str | None] | None, arg_kinds: list[ArgKind] | None=…, code: ErrorCode | None=…) -> None
  • changed: method MessageBuilder.note_defined_here(callee: CallableType, context: Context) -> None → method MessageBuilder.note_defined_here(callee: CallableType, context: Context, code: ErrorCode=…) -> None
  • changed: constructor SqliteMetadataStore(cache_dir_prefix: str, set_journal_mode: bool=…) -> None → constructor SqliteMetadataStore(cache_dir_prefix: str, set_journal_mode: bool=…, num_shards: int=…) -> None
  • added: method MetadataStore.commit_path(name: str) -> None
  • added: method SqliteMetadataStore.commit_path(name: str) -> None
  • added: method MixedTraverserVisitor.process_type_info(info: TypeInfo) -> None
  • changed: function find_gitignores(dir: str) -> list[tuple[str, PathSpec]] → function find_gitignores(dir: str) -> list[tuple[str, GitIgnoreSpec]]
  • added: class ModulesState
  • added: constructor ModulesState() -> None
  • added: variable modules_state: Final
  • changed: constructor State(options: Options) -> None → constructor State(options: Options, is_stub: bool=…) -> None
  • changed: function build_fstring_join(state: State, data: ReadBuffer, items: list[Expression]) -> Expression → function build_fstring_join(data: ReadBuffer, items: list[Expression], set_has_surrogates: bool=…) -> Expression
  • changed: function native_parse(filename: str, options: Options, skip_function_bodies: bool=…, imports_only: bool=…) -> tuple[MypyFile, list[dict[str, Any]], TypeIgnores] → function native_parse(filename: str, options: Options, source: str | bytes | None=…, skip_function_bodies: bool=…) -> tuple[MypyFile, list[ParseError], TypeIgnores]
  • changed: function parse_to_binary_ast(filename: str, options: Options, skip_function_bodies: bool=…) -> tuple[bytes, list[dict[str, Any]], TypeIgnores, bytes, bool, bool] → function parse_to_binary_ast(filename: str, options: Options, source: str | bytes | None=…, skip_function_bodies: bool=…) -> tuple[bytes, list[ParseError], TypeIgnores, bytes, bool, bool, str, list[tuple[int, str]]]
  • changed: function read_pattern(state: State, data: ReadBuffer) -> Pattern → function read_pattern(state: State, data: ReadBuffer) -> ConcretePattern
  • changed: function read_type(state: State, data: ReadBuffer) -> Type → function read_type(state: State, data: ReadBuffer, always_allow_star: bool=…) -> Type
  • changed: method State.add_error(message: str, line: int, column: int, *, blocker: bool=…, code: str | None=…) -> None → method State.add_error(message: str, line: int, column: int, *, blocker: bool=…, code: str) -> None
  • added: function check_type_param_defaults(state: State, type_params: list[TypeParam], line: int, column: int) -> None
  • added: function check_type_param_values(state: State, type_params: list[TypeParam], line: int, column: int) -> None
  • added: function collapse_consecutive_str_items(items: list[Expression]) -> list[Expression]
  • added: function get_docstring(body: Block) -> str | None
  • added: function native_parse_type_string(expr_string: str, line: int, column: int, end_line: int, end_column: int, options: Options) -> ProperType
  • added: method State.check_min_version(feature: str, min_version: tuple[int, int], line: int, column: int, *, enforce_in_stubs: bool=…) -> None
  • removed: function read_flags(data: ReadBuffer, num_flags: int) -> list[bool]
  • removed: function write_flags(data: WriteBuffer, flags: list[bool]) -> None
  • removed: variable NAMED_EXPR: Final[Tag]
  • changed: constructor DictionaryComprehension(key: Expression, value: Expression, indices: list[Lvalue], sequences: list[Expression], condlists: list[list[Expression]], is_async: list[bool]) -> None → constructor DictionaryComprehension(key: Expression | None, value: Expression, indices: list[Lvalue], sequences: list[Expression], condlists: list[list[Expression]], is_async: list[bool]) -> None
  • changed: constructor FileRawData(defs: bytes, imports: bytes, raw_errors: list[dict[str, Any]], ignored_lines: dict[int, list[str]], is_partial_stub_package: bool, uses_template_strings: bool) -> None → constructor FileRawData(defs: bytes, imports: bytes, raw_errors: list[ParseError], ignored_lines: dict[int, list[str]], is_partial_stub_package: bool, uses_template_strings: bool, source_hash: str=…, mypy_comments: list[tuple[int, str]] | None=…) -> None
  • changed: constructor MatchStmt(subject: Expression, patterns: list[Pattern], guards: list[Expression | None], bodies: list[Block]) -> None → constructor MatchStmt(subject: Expression, patterns: list[ConcretePattern], guards: list[Expression | None], bodies: list[Block]) -> None
  • changed: field DictionaryComprehension.key: Expression → field DictionaryComprehension.key: Expression | None
  • changed: field FileRawData.raw_errors: list[dict[str, Any]] → field FileRawData.raw_errors: list[ParseError]
  • changed: field MatchStmt.patterns: list[Pattern] → field MatchStmt.patterns: list[ConcretePattern]
  • changed: function local_definitions(names: SymbolTable, name_prefix: str, info: TypeInfo | None=…) -> Iterator[Definition] → function local_definitions(names: SymbolTable, name_prefix: str, info: TypeInfo | None=…, impl_only: bool=…) -> Iterator[Definition]
  • changed: function read_symbol(data: ReadBuffer) -> SymbolNode → function read_symbol(data: ReadBuffer, tag: Tag) -> SymbolNode
  • changed: method MypyFile.local_definitions() -> Iterator[Definition] → method MypyFile.local_definitions(*, impl_only: bool=…) -> Iterator[Definition]
  • added: class ParseError(TypedDict)
  • added: class TypedDictData
  • added: class TypedDictFieldSource
  • added: constructor TypedDictData(ready: bool, bases: list[tuple[TypeInfo, dict[str, mypy.types.Type]]], field_sources: dict[str, TypedDictFieldSource]) -> None
  • added: constructor TypedDictFieldSource(base: TypeInfo | None, ctx: Context) -> None
  • added: field FileRawData.mypy_comments: list[tuple[int, str]]
  • added: field FileRawData.source_hash: str
  • added: field ParseError.blocker: NotRequired[bool]
  • added: field ParseError.code: NotRequired[str]
  • added: field ParseError.column: int
  • added: field ParseError.line: int
  • added: field ParseError.message: str
  • added: field StrExpr.has_surrogates: bool
  • added: field TemplateStrExpr.has_surrogates: bool
  • added: field TypeInfo.default_depends: dict[str, set[TypeAlias | TypeInfo]]
  • added: field TypeInfo.typeddict_data: TypedDictData | None
  • added: field TypeVarLikeExpr.default_depends: set[TypeInfo | TypeAlias] | None
  • added: field TypedDictData.bases: list[tuple[TypeInfo, dict[str, mypy.types.Type]]]
  • added: field TypedDictData.field_sources: dict[str, TypedDictFieldSource]
  • added: field TypedDictData.ready: bool
  • added: field TypedDictFieldSource.base: TypeInfo | None
  • added: field TypedDictFieldSource.ctx: Context
  • added: function func_scoped_name(name: str, line: int) -> str
  • added: function inline_base(name: str, index: int) -> str
  • added: function read_parse_error(data: ReadBuffer) -> ParseError
  • added: function set_info(node: SymbolNode, info: TypeInfo) -> None
  • added: function write_parse_error(data: WriteBuffer, err: ParseError) -> None
  • added: method SymbolTableNode.read_node_no_fixup() -> SymbolNode | None
  • added: method TypeInfo.get_base(fullname: str) -> TypeInfo
  • added: property SymbolTableNode.node -> SymbolNode | None
  • added: variable ASSIGNMENT_EXPR: Final[Tag]
  • added: method Options.get_unused_configs() -> set[str]
  • added: method Options.to_bytes() -> bytes
  • changed: function load_from_raw(fnam: str, module: str | None, raw_data: FileRawData, errors: Errors, options: Options) -> MypyFile → function load_from_raw(fnam: str, module: str | None, raw_data: FileRawData, errors: Errors, options: Options, imports_only: bool=…) -> MypyFile
  • changed: function parse(source: str | bytes, fnam: str, module: str | None, errors: Errors, options: Options, raise_on_error: bool=…, imports_only: bool=…) -> MypyFile → function parse(source: str | bytes | None, fnam: str, module: str | None, errors: Errors, options: Options, eager: bool=…) -> MypyFile
  • added: function parse_type_string(expr: StrExpr, options: Options) -> ProperType
  • added: function report_parse_error(error: ParseError, errors: Errors) -> None
  • changed: constructor AsPattern(pattern: Pattern | None, name: NameExpr | None) -> None → constructor AsPattern(pattern: ConcretePattern | None, name: NameExpr | None) -> None
  • changed: constructor ClassPattern(class_ref: RefExpr, positionals: list[Pattern], keyword_keys: list[str], keyword_values: list[Pattern]) -> None → constructor ClassPattern(class_ref: RefExpr, positionals: list[ConcretePattern], keyword_keys: list[str], keyword_values: list[ConcretePattern]) -> None
  • changed: constructor MappingPattern(keys: list[Expression], values: list[Pattern], rest: NameExpr | None) -> None → constructor MappingPattern(keys: list[Expression], values: list[ConcretePattern], rest: NameExpr | None) -> None
  • changed: constructor OrPattern(patterns: list[Pattern]) -> None → constructor OrPattern(patterns: list[ConcretePattern]) -> None
  • changed: constructor SequencePattern(patterns: list[Pattern]) -> None → constructor SequencePattern(patterns: list[ConcretePattern]) -> None
  • changed: field AsPattern.pattern: Pattern | None → field AsPattern.pattern: ConcretePattern | None
  • changed: field ClassPattern.keyword_values: list[Pattern] → field ClassPattern.keyword_values: list[ConcretePattern]
  • changed: field ClassPattern.positionals: list[Pattern] → field ClassPattern.positionals: list[ConcretePattern]
  • changed: field MappingPattern.values: list[Pattern] → field MappingPattern.values: list[ConcretePattern]
  • changed: field OrPattern.patterns: list[Pattern] → field OrPattern.patterns: list[ConcretePattern]
  • changed: field SequencePattern.patterns: list[Pattern] → field SequencePattern.patterns: list[ConcretePattern]
  • added: variable ConcretePattern: TypeAlias
  • added: method ChainedPlugin.get_additional_indirect_deps(file: MypyFile) -> set[str]
  • added: method Plugin.get_additional_indirect_deps(file: MypyFile) -> set[str]
  • changed: method DataclassTransformer.add_slots(info: TypeInfo, attributes: list[DataclassAttribute], *, correct_version: bool) -> None → method DataclassTransformer.add_slots(info: TypeInfo, attributes: list[DataclassAttribute]) -> None
  • changed: method DefaultPlugin.get_function_signature_hook(fullname: str) -> Callable[[FunctionSigContext], FunctionLike] | None → method DefaultPlugin.get_function_signature_hook(fullname: str) -> Callable[[FunctionSigContext], CallableType] | None
  • changed: method DefaultPlugin.get_method_signature_hook(fullname: str) -> Callable[[MethodSigContext], FunctionLike] | None → method DefaultPlugin.get_method_signature_hook(fullname: str) -> Callable[[MethodSigContext], CallableType] | None
  • changed: function call_singledispatch_function_callback(ctx: MethodSigContext) -> FunctionLike → function call_singledispatch_function_callback(ctx: MethodSigContext) -> CallableType
  • added: function contains_tuple_or_set_of_strings(expr: Expression) -> tuple[str, ...] | None
  • removed: method SemanticAnalyzer.add_symbol_skip_local(name: str, node: SymbolNode) -> None
  • removed: static method SemanticAnalyzer.var_is_typing_special_form(var: Var) -> bool
  • changed: method SemanticAnalyzer.analyze_alias(name: str, rvalue: Expression, allow_placeholder: bool=…, declared_type_vars: TypeVarLikeList | None=…, all_declared_type_params_names: list[str] | None=…, python_3_12_type_alias: bool=…) -> tuple[Type | None, list[TypeVarLikeType], set[str], bool] → method SemanticAnalyzer.analyze_alias(name: str, rvalue: Expression, allow_placeholder: bool=…, declared_type_vars: TypeVarLikeList | None=…, all_declared_type_params_names: list[str] | None=…, python_3_12_type_alias: bool=…) -> tuple[Type | None, list[TypeVarLikeType], set[str], bool, dict[str, set[TypeAlias | TypeInfo]]]
  • changed: method SemanticAnalyzer.analyze_base_classes(base_type_exprs: list[Expression]) -> tuple[list[tuple[ProperType, Expression]], bool] | None → method SemanticAnalyzer.analyze_base_classes(cls_name: str, base_type_exprs: list[Expression]) -> tuple[list[tuple[ProperType, Expression]], bool] | None
  • changed: method SemanticAnalyzer.analyze_class_decorator_common(defn: ClassDef, info: TypeInfo, decorator: Expression) -> None → method SemanticAnalyzer.analyze_class_decorator_common(defn: ClassDef, decorator: Expression) -> None
  • changed: method SemanticAnalyzer.clean_up_bases_and_infer_type_variables(defn: ClassDef, base_type_exprs: list[Expression], context: Context) -> tuple[list[Expression], list[TypeVarLikeType], bool] → method SemanticAnalyzer.clean_up_bases_and_infer_type_variables(defn: ClassDef, base_type_exprs: list[Expression], context: Context) -> tuple[list[Expression], list[TypeVarLikeType], bool, list[tuple[str, TypeVarLikeExpr]]]
  • changed: method SemanticAnalyzer.expr_to_analyzed_type(expr: Expression, report_invalid_types: bool=…, allow_placeholder: bool=…, allow_type_any: bool=…, allow_unbound_tvars: bool=…, allow_param_spec_literals: bool=…, allow_unpack: bool=…) -> Type | None → method SemanticAnalyzer.expr_to_analyzed_type(expr: Expression, report_invalid_types: bool=…, allow_placeholder: bool=…, allow_type_any: bool=…, allow_unbound_tvars: bool=…, allow_param_spec_literals: bool=…, allow_unpack: bool=…, unique_name: str | None=…, analyzing_tvar_def: bool=…) -> Type | None
  • changed: method SemanticAnalyzer.get_typevarlike_argument(typevarlike_name: str, param_name: str, param_value: Expression, context: Context, *, allow_unbound_tvars: bool=…, allow_param_spec_literals: bool=…, allow_unpack: bool=…, report_invalid_typevar_arg: bool=…) -> ProperType | None → method SemanticAnalyzer.get_typevarlike_argument(typevarlike_name: str, param_name: str, param_value: Expression, context: Context, *, allow_unbound_tvars: bool=…, allow_param_spec_literals: bool=…, allow_unpack: bool=…, report_invalid_typevar_arg: bool=…) -> Type | None
  • changed: method SemanticAnalyzer.prepare_class_def(defn: ClassDef, info: TypeInfo | None=…, custom_names: bool=…) -> None → method SemanticAnalyzer.prepare_class_def(defn: ClassDef, info: TypeInfo | None=…) -> None
  • added: function dotted_identifier_leftmost(s: str) -> str | None
  • added: function has_nontype_char(s: str) -> bool
  • added: function mark_as_top_level(func: FuncBase) -> None
  • added: method SemanticAnalyzer.ad_hoc_error(msg: str) -> None
  • added: method SemanticAnalyzer.add_global_symbol(name: str, ctx: Context, node: SymbolNode) -> None
  • added: method SemanticAnalyzer.class_fullname(name: str, line: int) -> str
  • added: method SemanticAnalyzer.is_cls_member_ref(memberexpr: MemberExpr) -> bool
  • added: method SemanticAnalyzer.is_sentinel_declaration(s: AssignmentStmt) -> bool
  • added: method SemanticAnalyzer.record_fixed_type(fixed: TypeInfo | TypeAlias) -> None
  • added: method SemanticAnalyzer.sentinel_type_for_var(var: Var, rvalue: Expression) -> LiteralType | None
  • added: method SemanticAnalyzer.setup_sentinel_var(s: AssignmentStmt) -> None
  • added: method SemanticAnalyzer.string_could_be_type_expression(maybe_type_expr: StrExpr) -> bool
  • added: static method SemanticAnalyzer.var_could_be_typing_special_form(var: Var) -> bool
  • added: static method SemanticAnalyzer.var_type_is_known(var: Var) -> bool
  • changed: method EnumCallAnalyzer.check_enum_call(node: Expression, var_name: str, is_func_scope: bool) -> TypeInfo | None → method EnumCallAnalyzer.check_enum_call(node: Expression, var_name: str) -> TypeInfo | None
  • changed: method EnumCallAnalyzer.process_enum_call(s: AssignmentStmt, is_func_scope: bool) -> bool → method EnumCallAnalyzer.process_enum_call(s: AssignmentStmt) -> bool
  • changed: method NamedTupleAnalyzer.analyze_namedtuple_classdef(defn: ClassDef, is_stub_file: bool, is_func_scope: bool) -> tuple[bool, TypeInfo | None] → method NamedTupleAnalyzer.analyze_namedtuple_classdef(defn: ClassDef, is_stub_file: bool) -> tuple[bool, TypeInfo | None]
  • changed: method NamedTupleAnalyzer.check_namedtuple(node: Expression, var_name: str | None, is_func_scope: bool) -> tuple[str | None, TypeInfo | None, list[TypeVarLikeType]] → method NamedTupleAnalyzer.check_namedtuple(node: Expression, name: str) -> tuple[str | None, TypeInfo | None, list[TypeVarLikeType]]
  • removed: method SemanticAnalyzerInterface.add_symbol_skip_local(name: str, node: SymbolNode) -> None
  • added: method SemanticAnalyzerCoreInterface.is_nested_within_func_scope() -> bool
  • added: method SemanticAnalyzerCoreInterface.record_fixed_type(fixed: TypeInfo | TypeAlias) -> None
  • added: method SemanticAnalyzerInterface.add_global_symbol(name: str, ctx: Context, node: SymbolNode) -> None
  • removed: method TypedDictAnalyzer.add_keys_and_types_from_base(base: Expression, field_types: dict[str, Type], required_keys: set[str], readonly_keys: set[str], ctx: Context) -> None
  • changed: method TypedDictAnalyzer.analyze_typeddict_classdef_fields(defn: ClassDef, oldfields: Collection[str] | None=…) -> tuple[dict[str, Type] | None, list[Statement], set[str], set[str]] → method TypedDictAnalyzer.analyze_typeddict_classdef_fields(defn: ClassDef) -> tuple[dict[str, FieldSource] | None, list[Statement]]
  • changed: method TypedDictAnalyzer.build_typeddict_typeinfo(name: str, item_types: dict[str, Type], required_keys: set[str], readonly_keys: set[str], line: int, existing_info: TypeInfo | None) -> TypeInfo → method TypedDictAnalyzer.build_typeddict_typeinfo(name: str, item_types: dict[str, Type], required_keys: set[str], readonly_keys: set[str], is_closed: bool, line: int, existing_info: TypeInfo | None, typeddict_data: TypedDictData | None=…) -> TypeInfo
  • changed: method TypedDictAnalyzer.check_typeddict(node: Expression, var_name: str | None, is_func_scope: bool) -> tuple[bool, TypeInfo | None, list[TypeVarLikeType]] → method TypedDictAnalyzer.check_typeddict(node: Expression, name: str) -> tuple[bool, TypeInfo | None, list[TypeVarLikeType]]
  • changed: method TypedDictAnalyzer.fail_typeddict_arg(message: str, context: Context) -> tuple[str, list[str], list[Type], bool, list[TypeVarLikeType], bool] → method TypedDictAnalyzer.fail_typeddict_arg(message: str, context: Context) -> tuple[str, list[str], list[Type], bool, bool, list[TypeVarLikeType], bool]
  • changed: method TypedDictAnalyzer.parse_typeddict_args(call: CallExpr) -> tuple[str, list[str], list[Type], bool, list[TypeVarLikeType], bool] | None → method TypedDictAnalyzer.parse_typeddict_args(call: CallExpr) -> tuple[str, list[str], list[Type], bool, bool, list[TypeVarLikeType], bool] | None
  • added: class FieldSource(NamedTuple)
  • added: field FieldSource.base: TypeInfo | None
  • added: field FieldSource.ctx: Context
  • added: field FieldSource.field_type: Type
  • added: field FieldSource.is_readonly: bool
  • added: field FieldSource.is_required: bool
  • added: method TypedDictAnalyzer.fetch_keys_and_types_from_base(base: Expression, ctx: Context) -> tuple[TypeInfo, dict[str, Type]] | None
  • added: method TypedDictAnalyzer.field_sources_in_reverse_order(bases: list[tuple[TypeInfo, dict[str, Type]]], child_field_sources: dict[str, FieldSource], ctx: Context) -> dict[str, list[FieldSource]]
  • added: method TypedDictAnalyzer.primary_source(sources: list[FieldSource]) -> FieldSource
  • added: method TypedDictAnalyzer.resolve_field_inheritance(bases: list[tuple[TypeInfo, dict[str, Type]]], child_field_sources: dict[str, FieldSource], child_is_closed: bool | None, ctx: Context) -> tuple[dict[str, Type], set[str], set[str], bool, dict[str, TypedDictFieldSource]]
  • added: method TypedDictAnalyzer.verify_field_against_closed_bases(field_name: str, closed_bases: Collection[tuple[TypeInfo, Collection[str]]], primary_source_base: TypeInfo | None, ctx: Context) -> None
  • added: method TypedDictAnalyzer.verify_requiredness_compatibility(field_name: str, source: FieldSource, is_required: bool, primary_source_base: TypeInfo | None, ctx: Context) -> None
  • added: function wildcard_triggers_for_changes(module_id: str, diff: set[str]) -> set[str]
  • removed: function is_module_from_legacy_bundled_package(module: str) -> bool
  • removed: variable legacy_bundled_packages: dict[str, str]
  • added: function is_expected_dunder(name: str, *, stub: nodes.TypeInfo, existing_stub_names: set[str]) -> bool
  • added: function is_sentinel(runtime: mypy.types.Type) -> bool
  • added: variable PAIRED_DUNDERS: Final
  • changed: function is_protocol_implementation(left: Instance, right: Instance, proper_subtype: bool=…, class_obj: bool=…, skip: list[str] | None=…, options: Options | None=…) -> bool → function is_protocol_implementation(left: Instance | TupleType, right: Instance, proper_subtype: bool=…, class_obj: bool=…, skip: list[str] | None=…, options: Options | None=…) -> bool
  • added: function get_protocol_member(left: Instance, original_left: Type, member: str, class_obj: bool, is_lvalue: bool=…) -> Type | None
  • added: function is_normalized_instance(t: Instance) -> bool
  • added: function merge_typevars_in_callables_by_name(callables: Sequence[CallableType]) -> tuple[list[CallableType], list[TypeVarLikeType]]
  • added: function union_function_signatures(callables: list[CallableType], *, simplify_unions: bool=…) -> CallableType | None
  • added: method SubtypeVisitor.adjust_left_if_possible(left: TupleType, right: TupleType) -> TupleType
  • changed: method TransformVisitor.pattern(pattern: Pattern) -> Pattern → method TransformVisitor.pattern(pattern: ConcretePattern) -> ConcretePattern
  • removed: class TypeVarLikeDefaultFixer(TrivialSyntheticTypeTranslator)
  • removed: constructor TypeVarLikeDefaultFixer(scope: TypeVarLikeScope, fail_func: FailFunc, source_tv: TypeVarLikeExpr, context: Context) -> None
  • removed: method TypeVarLikeDefaultFixer.visit_param_spec(t: ParamSpecType) -> Type
  • removed: method TypeVarLikeDefaultFixer.visit_type_alias_type(t: TypeAliasType) -> Type
  • removed: method TypeVarLikeDefaultFixer.visit_type_var(t: TypeVarType) -> Type
  • removed: method TypeVarLikeDefaultFixer.visit_type_var_tuple(t: TypeVarTupleType) -> Type
  • changed: constructor DivergingAliasDetector(seen_nodes: set[TypeAlias], lookup: Callable[[str, Context], SymbolTableNode | None], scope: TypeVarLikeScope) -> None → constructor DivergingAliasDetector(seen_nodes: set[TypeAlias]) -> None
  • changed: function analyze_type_alias(type: Type, api: SemanticAnalyzerCoreInterface, tvar_scope: TypeVarLikeScope, plugin: Plugin, options: Options, cur_mod_node: MypyFile, is_typeshed_stub: bool, allow_placeholder: bool=…, in_dynamic_func: bool=…, global_scope: bool=…, allowed_alias_tvars: list[TypeVarLikeType] | None=…, alias_type_params_names: list[str] | None=…, python_3_12_type_alias: bool=…) -> tupl… → function analyze_type_alias(type: Type, api: SemanticAnalyzerCoreInterface, tvar_scope: TypeVarLikeScope, plugin: Plugin, options: Options, cur_mod_node: MypyFile, is_typeshed_stub: bool, allow_placeholder: bool=…, in_dynamic_func: bool=…, global_scope: bool=…, allowed_alias_tvars: list[TypeVarLikeType] | None=…, erase_tvar_defs: list[TypeVarType] | None=…, alias_type_params_names: list[str] | No…
  • changed: function detect_diverging_alias(node: TypeAlias, target: Type, lookup: Callable[[str, Context], SymbolTableNode | None], scope: TypeVarLikeScope) -> bool → function detect_diverging_alias(node: TypeAlias, target: Type) -> bool
  • changed: function fix_instance(t: Instance, fail: MsgCallback, note: MsgCallback, disallow_any: bool, options: Options, use_generic_error: bool=…, unexpanded_type: Type | None=…) -> None → function fix_instance(t: Instance, fail: MsgCallback, note: MsgCallback, disallow_any: bool, options: Options, use_generic_error: bool=…, unexpanded_type: Type | None=…, analyzing_tvar_def: bool=…) -> bool
  • changed: function get_omitted_any(disallow_any: bool, fail: MsgCallback, note: MsgCallback, orig_type: Type, options: Options, fullname: str | None=…, unexpanded_type: Type | None=…) -> AnyType → function get_omitted_any(disallow_any: bool, fail: MsgCallback, note: MsgCallback, orig_type: Type, options: Options, fullname: str | None=…, unexpanded_type: Type | None=…, used_default: bool=…) -> AnyType
  • changed: function instantiate_type_alias(node: TypeAlias, args: list[Type], fail: MsgCallback, no_args: bool, ctx: Context, options: Options, *, unexpanded_type: Type | None=…, disallow_any: bool=…, use_standard_error: bool=…, empty_tuple_index: bool=…) -> Type → function instantiate_type_alias(node: TypeAlias, args: list[Type], fail: MsgCallback, note: MsgCallback, no_args: bool, ctx: Context, options: Options, *, unexpanded_type: Type | None=…, disallow_any: bool=…, use_standard_error: bool=…, empty_tuple_index: bool=…, analyzing_tvar_def: bool=…) -> tuple[Type, bool]
  • changed: function set_any_tvars(node: TypeAlias, args: list[Type], newline: int, newcolumn: int, options: Options, *, from_error: bool=…, disallow_any: bool=…, special_form: bool=…, fail: MsgCallback | None=…, unexpanded_type: Type | None=…) -> TypeAliasType → function set_any_tvars(node: TypeAlias, args: list[Type], newline: int, newcolumn: int, options: Options, *, from_error: bool=…, disallow_any: bool=…, special_form: bool=…, fail: MsgCallback | None=…, note: MsgCallback | None=…, unexpanded_type: Type | None=…, analyzing_tvar_def: bool=…) -> tuple[TypeAliasType, bool]
  • added: function is_typevar_default_recursive(tv_fname: str, start: TypeInfo | TypeAlias) -> bool
  • removed: function get_protocol_member(left: Instance, member: str, class_obj: bool, is_lvalue: bool=…) -> Type | None
  • changed: function class_callable(init_type: CallableType, info: TypeInfo, type_type: Instance, special_sig: str | None, is_new: bool, orig_self_type: Type | None=…) -> CallableType → function class_callable(init_type: CallableType, info: TypeInfo, def_info: TypeInfo | None, type_type: Instance, special_sig: str | None, is_new: bool, orig_self_type: Type | None=…) -> CallableType
  • changed: function type_object_type(info: TypeInfo, named_type: Callable[[str], Instance]) -> ProperType → function type_object_type(info: TypeInfo, named_type: Callable[[str], Instance] | None=…) -> ProperType
  • removed: method TypedDictType.names_are_wider_than(other: TypedDictType) -> bool
  • changed: constructor TypedDictType(items: dict[str, Type], required_keys: set[str], readonly_keys: set[str], fallback: Instance, line: int=…, column: int=…) -> None → constructor TypedDictType(items: dict[str, Type], required_keys: set[str], readonly_keys: set[str], fallback: Instance, line: int=…, column: int=…, *, is_closed: bool=…) -> None
  • changed: constructor UninhabitedType(line: int=…, column: int=…) -> None → constructor UninhabitedType(line: int=…, column: int=…, *, ambiguous: bool=…) -> None
  • changed: function flatten_nested_tuples(types: Iterable[Type]) -> list[Type] → function flatten_nested_tuples(types: Iterable[Type], handle_recursive: bool=…) -> list[Type]
  • changed: method TypedDictType.copy_modified(*, fallback: Instance | None=…, item_types: list[Type] | None=…, item_names: list[str] | None=…, required_keys: set[str] | None=…, readonly_keys: set[str] | None=…) -> TypedDictType → method TypedDictType.copy_modified(*, fallback: Instance | None=…, item_types: list[Type] | None=…, item_names: list[str] | None=…, required_keys: set[str] | None=…, readonly_keys: set[str] | None=…, is_closed: bool | None=…) -> TypedDictType
  • changed: method TypedDictType.zipall(right: TypedDictType) -> Iterable[tuple[str, Type | None, Type | None]] → method TypedDictType.zipall(right: TypedDictType) -> Iterable[tuple[str, TypedDictItem, TypedDictItem]]
  • added: class SentinelValue(NamedTuple)
  • added: class TypedDictItem(NamedTuple)
  • added: field SentinelValue.fullname: str
  • added: field SentinelValue.name: str
  • added: field TypedDictItem.readonly: bool
  • added: field TypedDictItem.required: bool
  • added: field TypedDictItem.typ: Type | None
  • added: function get_variadic_item(tup: TupleType) -> tuple[int, Type] | None
  • added: function is_unannotated_any(t: Type) -> bool
  • added: method CallableType.get_instance_type(*, force_fallback: bool=…) -> ProperType
  • added: method LiteralType.is_sentinel_literal() -> bool
  • added: method TypedDictType.item(item_name: str) -> TypedDictItem
  • added: property CallableType.min_args -> int
  • added: property TypedDictItem.mutable -> bool
  • added: variable MAX_PROTOCOL_DEPTH: Final
  • added: variable SENTINEL_TYPE_NAMES: Final
  • changed: constructor ArgumentParser(prog: str | None=…, usage: str | None=…, description: str | None=…, epilog: str | None=…, parents: Sequence[ArgumentParser]=…, formatter_class: _FormatterClass=…, prefix_chars: str=…, fromfile_prefix_chars: str | None=…, argument_default: Any=…, conflict_handler: str=…, add_help: bool=…, allow_abbrev: bool=…, exit_on_error: bool=…) -> None → constructor ArgumentParser(prog: str | None=…, usage: str | None=…, description: str | None=…, epilog: str | None=…, parents: Iterable[ArgumentParser]=…, formatter_class: _FormatterClass=…, prefix_chars: str=…, fromfile_prefix_chars: str | None=…, argument_default: Any=…, conflict_handler: str=…, add_help: bool=…, allow_abbrev: bool=…, exit_on_error: bool=…) -> None
  • changed: method ArgumentParser.add_subparsers(*, title: str=…, description: str | None=…, prog: str | None=…, action: type[Action]=…, option_string: str=…, dest: str | None=…, required: bool=…, help: str | None=…, metavar: str | None=…) -> _SubParsersAction[_ArgumentParserT] | (*, title: str=…, description: str | None=…, prog: str | None=…, parser_class: type[_ArgumentParserT], action: type[Action]=…, opt… → method ArgumentParser.add_subparsers(*, title: str=…, description: str | None=…, prog: str | None=…, action: str | type[Action]=…, option_string: str=…, dest: str | None=…, required: bool=…, help: str | None=…, metavar: str | None=…) -> _SubParsersAction[_ArgumentParserT] | (*, title: str=…, description: str | None=…, prog: str | None=…, parser_class: type[_ArgumentParserT], action: str | type[Ac…
  • changed: method ArgumentParser.error(message: str) -> NoReturn → method ArgumentParser.error(message: str) -> Never
  • changed: method ArgumentParser.exit(status: int=…, message: str | None=…) -> NoReturn → method ArgumentParser.exit(status: int=…, message: str | None=…) -> Never
  • changed: method ArgumentParser.parse_args(args: Sequence[str] | None=…, namespace: None=…) -> Namespace | (args: Sequence[str] | None, namespace: _N) -> _N | (*, namespace: _N) -> _N → method ArgumentParser.parse_args(args: Iterable[str] | None=…, namespace: None=…) -> Namespace | (args: Iterable[str] | None, namespace: _N) -> _N | (*, namespace: _N) -> _N
  • changed: method ArgumentParser.parse_intermixed_args(args: Sequence[str] | None=…, namespace: None=…) -> Namespace | (args: Sequence[str] | None, namespace: _N) -> _N | (*, namespace: _N) -> _N → method ArgumentParser.parse_intermixed_args(args: Iterable[str] | None=…, namespace: None=…) -> Namespace | (args: Iterable[str] | None, namespace: _N) -> _N | (*, namespace: _N) -> _N
  • changed: method ArgumentParser.parse_known_args(args: Sequence[str] | None=…, namespace: None=…) -> tuple[Namespace, list[str]] | (args: Sequence[str] | None, namespace: _N) -> tuple[_N, list[str]] | (*, namespace: _N) -> tuple[_N, list[str]] → method ArgumentParser.parse_known_args(args: Iterable[str] | None=…, namespace: None=…) -> tuple[Namespace, list[str]] | (args: Iterable[str] | None, namespace: _N) -> tuple[_N, list[str]] | (*, namespace: _N) -> tuple[_N, list[str]]
  • changed: method ArgumentParser.parse_known_intermixed_args(args: Sequence[str] | None=…, namespace: None=…) -> tuple[Namespace, list[str]] | (args: Sequence[str] | None, namespace: _N) -> tuple[_N, list[str]] | (*, namespace: _N) -> tuple[_N, list[str]] → method ArgumentParser.parse_known_intermixed_args(args: Iterable[str] | None=…, namespace: None=…) -> tuple[Namespace, list[str]] | (args: Iterable[str] | None, namespace: _N) -> tuple[_N, list[str]] | (*, namespace: _N) -> tuple[_N, list[str]]
  • changed: method array.index(v: _T, /) -> int → method array.index(v: _T, start: int=…, stop: int=…, /) -> int
  • added: variable typecodes: tuple[str, ...]
  • changed: constructor ImportFrom(module: str | None, names: list[alias], level: int, **kwargs: Unpack[_Attributes]) -> None | (module: str | None=…, names: list[alias]=…, *, level: int, **kwargs: Unpack[_Attributes]) -> None | (module: str | None, names: list[alias], level: int, **kwargs: Unpack[_Attributes]) -> None | (module: str | None=…, *, names: list[alias], level: int, **kwargs: Unpack[_Attributes])… → constructor ImportFrom(module: str | None, names: list[alias], level: int, is_lazy: bool | None=…, **kwargs: Unpack[_Attributes]) -> None | (module: str | None=…, names: list[alias]=…, *, level: int, is_lazy: bool | None=…, **kwargs: Unpack[_Attributes]) -> None | (module: str | None, names: list[alias], level: int, **kwargs: Unpack[_Attributes]) -> None | (module: str | None=…, names: list[alias…
  • changed: constructor alias(name: str, asname: str | None=…) -> None → constructor alias(name: str, asname: str | None=…, **kwargs: Unpack[_Attributes]) -> None
  • changed: function parse(source: _T, filename: str | bytes | os.PathLike[Any]=…, mode: Literal['exec', 'eval', 'func_type', 'single']=…, *, type_comments: bool=…, feature_version: None | int | tuple[int, int]=…, optimize: Literal[-1, 0, 1, 2]=…) -> _T | (source: str | ReadableBuffer, filename: str | bytes | os.PathLike[Any]=…, mode: Literal['exec']=…, *, type_comments: bool=…, feature_version: None | int |… → function parse(source: _T, filename: str | bytes | os.PathLike[Any]=…, mode: Literal['exec', 'eval', 'func_type', 'single']=…, *, type_comments: bool=…, feature_version: None | int | tuple[int, int]=…, optimize: Literal[-1, 0, 1, 2]=…, module: str | None=…) -> _T | (source: str | ReadableBuffer, filename: str | bytes | os.PathLike[Any]=…, mode: Literal['exec']=…, *, type_comments: bool=…, feature…
  • added: field DictComp.value: expr | None
  • added: field Import.is_lazy: bool | None
  • added: field ImportFrom.is_lazy: bool | None
  • added: method NodeVisitor.visit_Interpolation(node: Interpolation) -> Any
  • added: method NodeVisitor.visit_TemplateStr(node: TemplateStr) -> Any
  • added: variable AbstractEventLoopPolicy
  • added: variable DefaultEventLoopPolicy
  • changed: async method BaseEventLoop.create_server(protocol_factory: _ProtocolFactory, host: str | Sequence[str] | None=…, port: int=…, *, family: int=…, flags: int=…, sock: None=…, backlog: int=…, ssl: _SSLContext=…, reuse_address: bool | None=…, reuse_port: bool | None=…, keep_alive: bool | None=…, ssl_handshake_timeout: float | None=…, ssl_shutdown_timeout: float | None=…, start_serving: bool=…) -> Serv… → async method BaseEventLoop.create_server(protocol_factory: _ProtocolFactory, host: str | Sequence[str] | None, port: int, *, family: int=…, flags: int=…, sock: None=…, backlog: int=…, ssl: _SSLContext=…, reuse_address: bool | None=…, reuse_port: bool | None=…, keep_alive: bool | None=…, ssl_handshake_timeout: float | None=…, ssl_shutdown_timeout: float | None=…, start_serving: bool=…) -> Server |…
  • changed: async method BaseEventLoop.getaddrinfo(host: bytes | str | None, port: bytes | str | int | None, *, family: int=…, type: int=…, proto: int=…, flags: int=…) -> list[tuple[AddressFamily, SocketKind, int, str, tuple[str, int] | tuple[str, int, int, int]]] → async method BaseEventLoop.getaddrinfo(host: bytes | str | None, port: bytes | str | int | None, *, family: int=…, type: int=…, proto: int=…, flags: int=…) -> _GetAddrInfoResult
  • changed: async method AbstractEventLoop.create_server(protocol_factory: _ProtocolFactory, host: str | Sequence[str] | None=…, port: int=…, *, family: int=…, flags: int=…, sock: None=…, backlog: int=…, ssl: _SSLContext=…, reuse_address: bool | None=…, reuse_port: bool | None=…, keep_alive: bool | None=…, ssl_handshake_timeout: float | None=…, ssl_shutdown_timeout: float | None=…, start_serving: bool=…) ->… → async method AbstractEventLoop.create_server(protocol_factory: _ProtocolFactory, host: str | Sequence[str] | None, port: int, *, family: int=…, flags: int=…, sock: None=…, backlog: int=…, ssl: _SSLContext=…, reuse_address: bool | None=…, reuse_port: bool | None=…, keep_alive: bool | None=…, ssl_handshake_timeout: float | None=…, ssl_shutdown_timeout: float | None=…, start_serving: bool=…) -> Serv…
  • changed: async method AbstractEventLoop.getaddrinfo(host: bytes | str | None, port: bytes | str | int | None, *, family: int=…, type: int=…, proto: int=…, flags: int=…) -> list[tuple[AddressFamily, SocketKind, int, str, tuple[str, int] | tuple[str, int, int, int]]] → async method AbstractEventLoop.getaddrinfo(host: bytes | str | None, port: bytes | str | int | None, *, family: int=…, type: int=…, proto: int=…, flags: int=…) -> _GetAddrInfoResult
  • changed: constructor Condition(lock: Lock | None=…, *, loop: AbstractEventLoop | None=…) -> None → constructor Condition(lock: Lock | None=…) -> None
  • changed: constructor Event(*, loop: AbstractEventLoop | None=…) -> None → constructor Event() -> None
  • changed: constructor Lock(*, loop: AbstractEventLoop | None=…) -> None → constructor Lock() -> None
  • changed: constructor Semaphore(value: int=…, *, loop: AbstractEventLoop | None=…) -> None → constructor Semaphore(value: int=…) -> None
  • changed: method DatagramProtocol.datagram_received(data: bytes, addr: tuple[str | Any, int]) -> None → method DatagramProtocol.datagram_received(data: bytes, addr: tuple[Any, ...]) -> None
  • changed: class Queue(Generic[_T], _LoopBoundMixin) → class Queue(_LoopBoundMixin, Generic[_T])
  • changed: constructor Queue(maxsize: int=…, *, loop: AbstractEventLoop | None=…) -> None → constructor Queue(maxsize: int=…) -> None
  • changed: async function open_connection(host: str | None=…, port: int | str | None=…, *, loop: events.AbstractEventLoop | None=…, limit: int=…, ssl_handshake_timeout: float | None=…, **kwds: Any) -> tuple[StreamReader, StreamWriter] → async function open_connection(host: str | None=…, port: int | str | None=…, *, limit: int=…, ssl_handshake_timeout: float | None=…, **kwds: Any) -> tuple[StreamReader, StreamWriter]
  • changed: async function open_unix_connection(path: StrPath | None=…, *, loop: events.AbstractEventLoop | None=…, limit: int=…, **kwds: Any) -> tuple[StreamReader, StreamWriter] → async function open_unix_connection(path: StrPath | None=…, *, limit: int=…, **kwds: Any) -> tuple[StreamReader, StreamWriter]
  • changed: async function start_server(client_connected_cb: _ClientConnectedCallback, host: str | None=…, port: int | str | None=…, *, loop: events.AbstractEventLoop | None=…, limit: int=…, ssl_handshake_timeout: float | None=…, **kwds: Any) -> Server → async function start_server(client_connected_cb: _ClientConnectedCallback, host: str | Sequence[str] | None=…, port: int | str | None=…, *, limit: int=…, ssl_handshake_timeout: float | None=…, **kwds: Any) -> Server
  • changed: async function start_unix_server(client_connected_cb: _ClientConnectedCallback, path: StrPath | None=…, *, loop: events.AbstractEventLoop | None=…, limit: int=…, **kwds: Any) -> Server → async function start_unix_server(client_connected_cb: _ClientConnectedCallback, path: StrPath | None=…, *, limit: int=…, **kwds: Any) -> Server
  • changed: method StreamReader.exception() -> Exception → method StreamReader.exception() -> Exception | None
  • changed: async function create_subprocess_exec(program: StrOrBytesPath, *args: StrOrBytesPath, stdin: int | IO[Any] | None=…, stdout: int | IO[Any] | None=…, stderr: int | IO[Any] | None=…, loop: events.AbstractEventLoop | None=…, limit: int=…, universal_newlines: Literal[False]=…, shell: Literal[False]=…, bufsize: Literal[0]=…, encoding: None=…, errors: None=…, text: Literal[False] | None=…, executable:… → async function create_subprocess_exec(program: StrOrBytesPath, *args: StrOrBytesPath, stdin: int | IO[Any] | None=…, stdout: int | IO[Any] | None=…, stderr: int | IO[Any] | None=…, limit: int=…, universal_newlines: Literal[False]=…, shell: Literal[False]=…, bufsize: Literal[0]=…, encoding: None=…, errors: None=…, text: Literal[False] | None=…, executable: StrOrBytesPath | None=…, preexec_fn: Call…
  • changed: async function create_subprocess_shell(cmd: str | bytes, stdin: int | IO[Any] | None=…, stdout: int | IO[Any] | None=…, stderr: int | IO[Any] | None=…, loop: events.AbstractEventLoop | None=…, limit: int=…, *, universal_newlines: Literal[False]=…, shell: Literal[True]=…, bufsize: Literal[0]=…, encoding: None=…, errors: None=…, text: Literal[False] | None=…, executable: StrOrBytesPath | None=…, pr… → async function create_subprocess_shell(cmd: str | bytes, stdin: int | IO[Any] | None=…, stdout: int | IO[Any] | None=…, stderr: int | IO[Any] | None=…, limit: int=…, *, universal_newlines: Literal[False]=…, shell: Literal[True]=…, bufsize: Literal[0]=…, encoding: None=…, errors: None=…, text: Literal[False] | None=…, executable: StrOrBytesPath | None=…, preexec_fn: Callable[[], Any] | None=…, clo…
  • added: method TaskGroup.cancel() -> None
  • changed: async function sleep(delay: float) -> None | (delay: float, result: _T) -> _T | (delay: float, *, loop: AbstractEventLoop | None=…) -> None | (delay: float, result: _T, *, loop: AbstractEventLoop | None=…) -> _T → async function sleep(delay: float) -> None | (delay: float, result: _T) -> _T
  • changed: async function wait(fs: Iterable[_FT], *, timeout: float | None=…, return_when: str=…) -> tuple[set[_FT], set[_FT]] | (fs: Iterable[Awaitable[_T]], *, timeout: float | None=…, return_when: str=…) -> tuple[set[Task[_T]], set[Task[_T]]] | (fs: Iterable[_FT], *, loop: AbstractEventLoop | None=…, timeout: float | None=…, return_when: str=…) -> tuple[set[_FT], set[_FT]] | (fs: Iterable[Awaitable[_T]],… → async function wait(fs: Iterable[_FT], *, timeout: float | None=…, return_when: str=…) -> tuple[set[_FT], set[_FT]] | (fs: Iterable[Awaitable[_T]], *, timeout: float | None=…, return_when: str=…) -> tuple[set[Task[_T]], set[Task[_T]]]
  • changed: async function wait_for(fut: _FutureLike[_T], timeout: float | None, *, loop: AbstractEventLoop | None=…) -> _T → async function wait_for(fut: _FutureLike[_T], timeout: float | None) -> _T
  • changed: function as_completed(fs: Iterable[_FutureLike[_T]], *, loop: AbstractEventLoop | None=…, timeout: float | None=…) -> Iterator[Future[_T]] → function as_completed(fs: Iterable[_FutureLike[_T]], *, timeout: float | None=…) -> Iterator[Future[_T]]
  • changed: function shield(arg: _FutureLike[_T], *, loop: AbstractEventLoop | None=…) -> Future[_T] → function shield(arg: _FutureLike[_T]) -> Future[_T]
  • changed: method TransportSocket.getsockbyname() -> NoReturn → method TransportSocket.getsockbyname() -> Never
  • changed: method TransportSocket.ioctl(control: int, option: int | tuple[int, int, int] | bool) -> NoReturn → method TransportSocket.ioctl(control: int, option: int | tuple[int, int, int] | bool) -> Never
  • changed: method TransportSocket.sendmsg_afalg(msg: Iterable[ReadableBuffer]=…, *, op: int, iv: Any=…, assoclen: int=…, flags: int=…) -> NoReturn → method TransportSocket.sendmsg_afalg(msg: Iterable[ReadableBuffer]=…, *, op: int, iv: Any=…, assoclen: int=…, flags: int=…) -> Never
  • changed: method TransportSocket.share(process_id: int) -> NoReturn → method TransportSocket.share(process_id: int) -> Never
  • changed: method WindowsProactorEventLoopPolicy.get_child_watcher() -> NoReturn → method WindowsProactorEventLoopPolicy.get_child_watcher() -> Never
  • changed: method WindowsProactorEventLoopPolicy.set_child_watcher(watcher: Any) -> NoReturn → method WindowsProactorEventLoopPolicy.set_child_watcher(watcher: Any) -> Never
  • changed: method WindowsSelectorEventLoopPolicy.get_child_watcher() -> NoReturn → method WindowsSelectorEventLoopPolicy.get_child_watcher() -> Never
  • changed: method WindowsSelectorEventLoopPolicy.set_child_watcher(watcher: Any) -> NoReturn → method WindowsSelectorEventLoopPolicy.set_child_watcher(watcher: Any) -> Never
  • changed: function decode(input: IO[bytes], output: IO[bytes]) -> None → function decode(input: SupportsNoArgReadline[bytes], output: SupportsWrite[bytes]) -> None
  • changed: function encode(input: IO[bytes], output: IO[bytes]) -> None → function encode(input: SupportsRead[bytes], output: SupportsWrite[bytes]) -> None
  • changed: method Bdb.run(cmd: str | CodeType, globals: dict[str, Any] | None=…, locals: Mapping[str, Any] | None=…) -> None → method Bdb.run(cmd: str | ReadableBuffer | CodeType, globals: dict[str, Any] | None=…, locals: Mapping[str, object] | None=…) -> None
  • changed: method Bdb.runctx(cmd: str | CodeType, globals: dict[str, Any] | None, locals: Mapping[str, Any] | None) -> None → method Bdb.runctx(cmd: str | ReadableBuffer | CodeType, globals: dict[str, Any] | None, locals: Mapping[str, object] | None) -> None
  • changed: method Bdb.runeval(expr: str, globals: dict[str, Any] | None=…, locals: Mapping[str, Any] | None=…) -> None → method Bdb.runeval(expr: str | ReadableBuffer | CodeType, globals: dict[str, Any] | None=…, locals: Mapping[str, object] | None=…) -> Any
  • added: function a2b_ascii85(data: _AsciiBuffer, /, *, foldspaces: bool=…, adobe: bool=…, ignorechars: ReadableBuffer=…, canonical: bool=…) -> bytes
  • added: function a2b_base32(data: _AsciiBuffer, /, *, alphabet: bytes=…, padded: bool=…, ignorechars: ReadableBuffer=…, canonical: bool=…) -> bytes
  • added: function a2b_base85(data: _AsciiBuffer, /, *, alphabet: bytes=…, ignorechars: ReadableBuffer=…, canonical: bool=…) -> bytes
  • added: function b2a_ascii85(data: ReadableBuffer, /, *, foldspaces: bool=…, wrapcol: int=…, pad: bool=…, adobe: bool=…) -> bytes
  • added: function b2a_base32(data: ReadableBuffer, /, *, alphabet: ReadableBuffer=…, padded: bool=…, wrapcol: int=…) -> bytes
  • added: function b2a_base85(data: ReadableBuffer, /, *, alphabet: ReadableBuffer=…, pad: bool=…, wrapcol: int=…) -> bytes
  • added: variable ASCII85_ALPHABET: bytes
  • added: variable BASE32HEX_ALPHABET: bytes
  • added: variable BASE32_ALPHABET: bytes
  • added: variable BASE64_ALPHABET: bytes
  • added: variable BASE85_ALPHABET: bytes
  • added: variable BINHEX_ALPHABET: bytes
  • added: variable CRYPT_ALPHABET: bytes
  • added: variable URLSAFE_BASE64_ALPHABET: bytes
  • added: variable UU_ALPHABET: bytes
  • added: variable Z85_ALPHABET: bytes
  • removed: class ellipsis
  • removed: variable Ellipsis: ellipsis
  • removed: variable NotImplemented: _NotImplementedType
  • changed: class reversed(Iterator[_T]) → class reversed(Iterator[_T_co])
  • changed: function compile(source: str | ReadableBuffer | _ast.Module | _ast.Expression | _ast.Interactive, filename: str | bytes | PathLike[Any], mode: str, flags: Literal[0], dont_inherit: bool=…, optimize: int=…, *, _feature_version: int=…) -> CodeType | (source: str | ReadableBuffer | _ast.Module | _ast.Expression | _ast.Interactive, filename: str | bytes | PathLike[Any], mode: str, *, dont_inherit: bo… → function compile(source: str | ReadableBuffer | _ast.Module | _ast.Expression | _ast.Interactive, filename: str | bytes | PathLike[Any], mode: str, flags: Literal[0], dont_inherit: bool=…, optimize: int=…, *, module: str | None=…, _feature_version: int=…) -> CodeType | (source: str | ReadableBuffer | _ast.Module | _ast.Expression | _ast.Interactive, filename: str | bytes | PathLike[Any], mode: st…
  • changed: method memoryview.toreadonly() -> memoryview → method memoryview.toreadonly() -> memoryview[_I]
  • changed: static method str.maketrans(x: dict[int, _T] | dict[str, _T] | dict[str | int, _T], /) -> dict[int, _T] | (x: str, y: str, /) -> dict[int, int] | (x: str, y: str, z: str, /) -> dict[int, int | None] → static method str.maketrans(x: dict[int, _T] | dict[str, _T] | dict[str | int, _T] | frozendict[int, _T] | frozendict[str, _T] | frozendict[str | int, _T], /) -> dict[int, _T] | (x: dict[int, _T] | dict[str, _T] | dict[str | int, _T], /) -> dict[int, _T] | (x: str, y: str, /) -> dict[int, int] | (x: str, y: str, z: str, /) -> dict[int, int | None]
  • added: class ImportCycleError(ImportError)
  • added: class frozendict(Mapping[_KT, _VT])
  • added: class sentinel
  • added: method bytearray.take_bytes(n: int | None=…, /) -> bytes
  • added: method frozendict.copy() -> frozendict[_KT, _VT]
  • added: method frozendict.get(key: _KT, default: None=…, /) -> _VT | None | (key: _KT, default: _VT, /) -> _VT | (key: _KT, default: _T, /) -> _VT | _T
  • added: method frozendict.items() -> dict_items[_KT, _VT]
  • added: method frozendict.keys() -> dict_keys[_KT, _VT]
  • added: method frozendict.values() -> dict_values[_KT, _VT]
  • added: static method frozendict.fromkeys(iterable: Iterable[_T], value: None=…, /) -> frozendict[_T, Any | None] | (iterable: Iterable[_T], value: _S, /) -> frozendict[_T, _S]
  • changed: method Calendar.itermonthdates(year: int, month: int) -> Iterable[datetime.date] → method Calendar.itermonthdates(year: int, month: int) -> Iterator[datetime.date]
  • changed: method Calendar.itermonthdays(year: int, month: int) -> Iterable[int] → method Calendar.itermonthdays(year: int, month: int) -> Iterator[int]
  • changed: method Calendar.itermonthdays2(year: int, month: int) -> Iterable[tuple[int, int]] → method Calendar.itermonthdays2(year: int, month: int) -> Iterator[tuple[int, int]]
  • changed: method Calendar.itermonthdays3(year: int, month: int) -> Iterable[tuple[int, int, int]] → method Calendar.itermonthdays3(year: int, month: int) -> Iterator[tuple[int, int, int]]
  • changed: method Calendar.itermonthdays4(year: int, month: int) -> Iterable[tuple[int, int, int, int]] → method Calendar.itermonthdays4(year: int, month: int) -> Iterator[tuple[int, int, int, int]]
  • changed: method Calendar.iterweekdays() -> Iterable[int] → method Calendar.iterweekdays() -> Iterator[int]
  • changed: method TextCalendar.formatweek(theweek: int, width: int) -> str → method TextCalendar.formatweek(theweek: Iterable[tuple[int, int]], width: int) -> str
  • changed: method TextCalendar.prweek(theweek: int, width: int) -> None → method TextCalendar.prweek(theweek: Iterable[tuple[int, int]], width: int) -> None
  • changed: variable day_abbr: Sequence[str] → variable day_abbr: _localized_day
  • changed: variable day_name: Sequence[str] → variable day_name: _localized_day
  • changed: variable month_abbr: Sequence[str] → variable month_abbr: _localized_month
  • changed: variable month_name: Sequence[str] → variable month_name: _localized_month
  • added: method HTMLCalendar.formatmonthpage(theyear: int, themonth: int, *, css: str | None=…, encoding: str | None=…) -> bytes
  • added: variable standalone_month_abbr: _localized_month
  • added: variable standalone_month_name: _localized_month
  • added: field InteractiveConsole.local_exit: bool
  • changed: function iterdecode(iterator: Iterable[bytes], encoding: str, errors: str=…) -> Generator[str, None, None] → function iterdecode(iterator: Iterable[bytes], encoding: str, errors: str=…) -> Generator[str]
  • changed: function iterencode(iterator: Iterable[str], encoding: str, errors: str=…) -> Generator[bytes, None, None] → function iterencode(iterator: Iterable[str], encoding: str, errors: str=…) -> Generator[bytes]
  • changed: static method Counter.fromkeys(iterable: Any, v: int | None=…) -> NoReturn → static method Counter.fromkeys(iterable: Any, v: int | None=…) -> Never
  • changed: function compile_dir(dir: StrPath, maxlevels: int | None=…, ddir: StrPath | None=…, force: bool=…, rx: _SupportsSearch | None=…, quiet: int=…, legacy: bool=…, optimize: int=…, workers: int=…, invalidation_mode: PycInvalidationMode | None=…, *, stripdir: str | None=…, prependdir: StrPath | None=…, limit_sl_dest: StrPath | None=…, hardlink_dupes: bool=…) -> bool → function compile_dir(dir: StrPath, maxlevels: int | None=…, ddir: StrPath | None=…, force: bool=…, rx: _SupportsSearch | None=…, quiet: int=…, legacy: bool=…, optimize: int=…, workers: int=…, invalidation_mode: PycInvalidationMode | None=…, *, stripdir: StrPath | None=…, prependdir: StrPath | None=…, limit_sl_dest: StrPath | None=…, hardlink_dupes: bool=…) -> bool
  • changed: function compile_file(fullname: StrPath, ddir: StrPath | None=…, force: bool=…, rx: _SupportsSearch | None=…, quiet: int=…, legacy: bool=…, optimize: int=…, invalidation_mode: PycInvalidationMode | None=…, *, stripdir: str | None=…, prependdir: StrPath | None=…, limit_sl_dest: StrPath | None=…, hardlink_dupes: bool=…) -> bool → function compile_file(fullname: StrPath, ddir: StrPath | None=…, force: bool=…, rx: _SupportsSearch | None=…, quiet: int=…, legacy: bool=…, optimize: int=…, invalidation_mode: PycInvalidationMode | None=…, *, stripdir: StrPath | None=…, prependdir: StrPath | None=…, limit_sl_dest: StrPath | None=…, hardlink_dupes: bool=…) -> bool
  • changed: method RawConfigParser.getboolean(section: _SectionName, option: str, *, raw: bool=…, vars: _Section | None=…) -> bool | (section: _SectionName, option: str, *, raw: bool=…, vars: _Section | None=…, fallback: _T=…) -> bool | _T → method RawConfigParser.getboolean(section: _SectionName, option: str, *, raw: bool=…, vars: _Section | None=…) -> bool | (section: _SectionName, option: str, *, raw: bool=…, vars: _Section | None=…, fallback: _T) -> bool | _T
  • changed: method RawConfigParser.getfloat(section: _SectionName, option: str, *, raw: bool=…, vars: _Section | None=…) -> float | (section: _SectionName, option: str, *, raw: bool=…, vars: _Section | None=…, fallback: _T=…) -> float | _T → method RawConfigParser.getfloat(section: _SectionName, option: str, *, raw: bool=…, vars: _Section | None=…) -> float | (section: _SectionName, option: str, *, raw: bool=…, vars: _Section | None=…, fallback: _T) -> float | _T
  • changed: method RawConfigParser.getint(section: _SectionName, option: str, *, raw: bool=…, vars: _Section | None=…) -> int | (section: _SectionName, option: str, *, raw: bool=…, vars: _Section | None=…, fallback: _T=…) -> int | _T → method RawConfigParser.getint(section: _SectionName, option: str, *, raw: bool=…, vars: _Section | None=…) -> int | (section: _SectionName, option: str, *, raw: bool=…, vars: _Section | None=…, fallback: _T) -> int | _T
  • changed: method RawConfigParser.read(filenames: StrOrBytesPath | Iterable[StrOrBytesPath], encoding: str | None=…) -> list[str] → method RawConfigParser.read(filenames: GenericPath[AnyStr], encoding: str | None=…) -> list[AnyStr] | (filenames: Iterable[StrPath], encoding: str | None=…) -> list[str] | (filenames: Iterable[BytesPath], encoding: str | None=…) -> list[bytes] | (filenames: Iterable[StrOrBytesPath], encoding: str | None=…) -> list[str | bytes]
  • added: method RawConfigParser.popitem() -> tuple[str, SectionProxy]
  • added: method RawConfigParser.values() -> ValuesView[SectionProxy]
  • removed: class nullcontext(AbstractContextManager[_T, None])
  • changed: class AsyncExitStack(_BaseExitStack[_ExitT_co]) → class AsyncExitStack(_BaseExitStackAbstract[_ExitT_co])
  • changed: class ExitStack(_BaseExitStack[_ExitT_co]) → class ExitStack(_BaseExitStackAbstract[_ExitT_co])
  • changed: function replace(obj: _SupportsReplace[_RT_co], /, **changes: Any) -> _RT_co → function replace(obj: _SupportsReplace[_P, _RT_co], /, *_: _P.args, **changes: _P.kwargs) -> _RT_co
  • changed: constructor Field(default: _T, default_factory: Callable[[], _T], init: bool, repr: bool, hash: bool | None, compare: bool, metadata: Mapping[Any, Any]) -> None → constructor Field(default: _T, default_factory: Callable[[], _T], init: bool, repr: bool, hash: bool | None, compare: bool, metadata: Mapping[Any, Any], kw_only: bool) -> None
  • changed: function make_dataclass(cls_name: str, fields: Iterable[str | tuple[str, Any] | tuple[str, Any, Any]], *, bases: tuple[type, ...]=…, namespace: dict[str, Any] | None=…, init: bool=…, repr: bool=…, eq: bool=…, order: bool=…, unsafe_hash: bool=…, frozen: bool=…) -> type → function make_dataclass(cls_name: str, fields: Iterable[str | tuple[str, Any] | tuple[str, Any, Any]], *, bases: tuple[type, ...]=…, namespace: dict[str, Any] | None=…, init: bool=…, repr: bool=…, eq: bool=…, order: bool=…, unsafe_hash: bool=…, frozen: bool=…, match_args: bool=…, kw_only: bool=…, slots: bool=…) -> type
  • added: static method datetime.fromisoformat(string: str, /) -> Self
  • added: variable REORGANIZE: Final[LiteralString]
  • removed: export bdist_wininst
  • removed: class bdist_wininst(Command)
  • removed: field bdist_wininst.boolean_options: ClassVar[list[str]]
  • removed: field bdist_wininst.description: ClassVar[str]
  • removed: field bdist_wininst.user_options: ClassVar[list[tuple[str, str | None, str]]]
  • removed: method bdist_wininst.create_exe(arcname: StrOrBytesPath, fullname: str, bitmap: StrOrBytesPath | None=…) -> None
  • removed: method bdist_wininst.finalize_options() -> None
  • removed: method bdist_wininst.get_exe_bytes() -> bytes
  • removed: method bdist_wininst.get_inidata() -> str
  • removed: method bdist_wininst.get_installer_filename(fullname: str) -> str
  • removed: method bdist_wininst.initialize_options() -> None
  • removed: method bdist_wininst.run() -> None
  • removed: variable WINDOWS_SCHEME: Final[dict[str, str]]
  • removed: function get_python_version() -> str
  • added: method DocTestRunner.report_skip(out: _Out, test: DocTest, example: Example) -> None
  • changed: function message_from_binary_file(fp: IO[bytes]) -> Message | (fp: IO[bytes], _class: Callable[[], _MessageT]) -> _MessageT | (fp: IO[bytes], _class: Callable[[], _MessageT]=…, *, policy: Policy[_MessageT]) -> _MessageT → function message_from_binary_file(fp: _WrappedBuffer) -> Message[str, str] | (fp: _WrappedBuffer, _class: Callable[[], _MessageT]) -> _MessageT | (fp: _WrappedBuffer, _class: Callable[[], _MessageT]=…, *, policy: Policy[_MessageT]) -> _MessageT
  • changed: function message_from_bytes(s: bytes | bytearray) -> Message | (s: bytes | bytearray, _class: Callable[[], _MessageT]) -> _MessageT | (s: bytes | bytearray, _class: Callable[[], _MessageT]=…, *, policy: Policy[_MessageT]) -> _MessageT → function message_from_bytes(s: bytes | bytearray) -> Message[str, str] | (s: bytes | bytearray, _class: Callable[[], _MessageT]) -> _MessageT | (s: bytes | bytearray, _class: Callable[[], _MessageT]=…, *, policy: Policy[_MessageT]) -> _MessageT
  • changed: function message_from_file(fp: IO[str]) -> Message | (fp: IO[str], _class: Callable[[], _MessageT]) -> _MessageT | (fp: IO[str], _class: Callable[[], _MessageT]=…, *, policy: Policy[_MessageT]) -> _MessageT → function message_from_file(fp: SupportsRead[str]) -> Message[str, str] | (fp: SupportsRead[str], _class: Callable[[], _MessageT]) -> _MessageT | (fp: SupportsRead[str], _class: Callable[[], _MessageT]=…, *, policy: Policy[_MessageT]) -> _MessageT
  • changed: function message_from_string(s: str) -> Message | (s: str, _class: Callable[[], _MessageT]) -> _MessageT | (s: str, _class: Callable[[], _MessageT]=…, *, policy: Policy[_MessageT]) -> _MessageT → function message_from_string(s: str) -> Message[str, str] | (s: str, _class: Callable[[], _MessageT]) -> _MessageT | (s: str, _class: Callable[[], _MessageT]=…, *, policy: Policy[_MessageT]) -> _MessageT
  • changed: method ContentManager.add_get_handler(key: str, handler: Callable[..., Any]) -> None → method ContentManager.add_get_handler(key: str, handler: Callable[..., Incomplete]) -> None
  • changed: method ContentManager.add_set_handler(typekey: type, handler: Callable[..., Any]) -> None → method ContentManager.add_set_handler(typekey: type, handler: Callable[..., Incomplete]) -> None
  • changed: method ContentManager.get_content(msg: Message, *args: Any, **kw: Any) -> Any → method ContentManager.get_content(msg: Message, *args, **kw)
  • changed: method ContentManager.set_content(msg: Message, obj: Any, *args: Any, **kw: Any) -> Any → method ContentManager.set_content(msg: Message, obj, *args, **kw)
  • removed: property ParameterizedMIMEHeader.params -> types.MappingProxyType[str, Any]
  • changed: method ParameterizedMIMEHeader.init(name: str, *, parse_tree: TokenList, defects: Iterable[MessageDefect], params: Mapping[str, Any]) -> None → method ParameterizedMIMEHeader.init(name: str, *, parse_tree: TokenList, defects: Iterable[MessageDefect], params: Mapping[str, Incomplete]) -> None
  • changed: static method AddressHeader.parse(value: str, kwds: dict[str, Any]) -> None → static method AddressHeader.parse(value: str, kwds: dict[str, Incomplete]) -> None
  • changed: static method ContentTransferEncodingHeader.parse(value: str, kwds: dict[str, Any]) -> None → static method ContentTransferEncodingHeader.parse(value: str, kwds: dict[str, Incomplete]) -> None
  • changed: static method DateHeader.parse(value: str | _datetime, kwds: dict[str, Any]) -> None → static method DateHeader.parse(value: str | _datetime, kwds: dict[str, Incomplete]) -> None
  • changed: static method MIMEVersionHeader.parse(value: str, kwds: dict[str, Any]) -> None → static method MIMEVersionHeader.parse(value: str, kwds: dict[str, Incomplete]) -> None
  • changed: static method MessageIDHeader.parse(value: str, kwds: dict[str, Any]) -> None → static method MessageIDHeader.parse(value: str, kwds: dict[str, Incomplete]) -> None
  • changed: static method ParameterizedMIMEHeader.parse(value: str, kwds: dict[str, Any]) -> None → static method ParameterizedMIMEHeader.parse(value: str, kwds: dict[str, Incomplete]) -> None
  • changed: static method ReferencesHeader.parse(value: str, kwds: dict[str, Any]) -> None → static method ReferencesHeader.parse(value: str, kwds: dict[str, Incomplete]) -> None
  • changed: static method UnstructuredHeader.parse(value: str, kwds: dict[str, Any]) -> None → static method UnstructuredHeader.parse(value: str, kwds: dict[str, Incomplete]) -> None
  • added: property ParameterizedMIMEHeader.params -> types.MappingProxyType[str, Incomplete]
  • changed: function typed_subpart_iterator(msg: Message, maintype: str=…, subtype: str | None=…) -> Iterator[str] → function typed_subpart_iterator(msg: _T, maintype: str=…, subtype: str | None=…) -> Iterator[_T]
  • changed: class EmailMessage(MIMEPart) → class EmailMessage(MIMEPart[_HeaderRegistryT_co, _HeaderRegistryParamT_contra])
  • changed: method Message.walk() -> Generator[Self, None, None] → method Message.walk() -> Generator[Self]
  • changed: field EmailPolicy.header_factory: Callable[[str, Any], Any] → field EmailPolicy.header_factory: Callable[[str, Incomplete], Incomplete]
  • changed: method EmailPolicy.fold(name: str, value: str) -> Any → method EmailPolicy.fold(name: str, value: str)
  • changed: method EmailPolicy.header_fetch_parse(name: str, value: str) -> Any → method EmailPolicy.header_fetch_parse(name: str, value: str)
  • changed: method EmailPolicy.header_store_parse(name: str, value: Any) -> tuple[str, Any] → method EmailPolicy.header_store_parse(name: str, value) -> tuple[str, Incomplete]
  • changed: constructor IncrementalDecoder(errors: str=…, mapping: _CharMap | None=…) -> None → constructor IncrementalDecoder(errors: str=…, mapping: _DecodeCharMap | None=…) -> None
  • changed: constructor IncrementalEncoder(errors: str=…, mapping: _CharMap | None=…) -> None → constructor IncrementalEncoder(errors: str=…, mapping: _EncodeCharMap | None=…) -> None
  • changed: constructor StreamReader(stream: codecs._ReadableStream, errors: str=…, mapping: _CharMap | None=…) -> None → constructor StreamReader(stream: codecs._ReadableStream, errors: str=…, mapping: _DecodeCharMap | None=…) -> None
  • changed: constructor StreamWriter(stream: codecs._WritableStream, errors: str=…, mapping: _CharMap | None=…) -> None → constructor StreamWriter(stream: codecs._WritableStream, errors: str=…, mapping: _EncodeCharMap | None=…) -> None
  • changed: field IncrementalDecoder.mapping: _CharMap | None → field IncrementalDecoder.mapping: _DecodeCharMap | None
  • changed: field IncrementalEncoder.mapping: _CharMap | None → field IncrementalEncoder.mapping: _EncodeCharMap | None
  • changed: field StreamReader.mapping: _CharMap | None → field StreamReader.mapping: _DecodeCharMap | None
  • changed: field StreamWriter.mapping: _CharMap | None → field StreamWriter.mapping: _EncodeCharMap | None
  • changed: static method Codec.decode(data: ReadableBuffer, errors: str | None=…, mapping: _CharMap | None=…, /) -> tuple[str, int] → static method Codec.decode(data: ReadableBuffer, errors: str | None=…, mapping: _DecodeCharMap | None=…, /) -> tuple[str, int]
  • changed: static method Codec.encode(str: str, errors: str | None=…, mapping: _CharMap | None=…, /) -> tuple[bytes, int] → static method Codec.encode(str: str, errors: str | None=…, mapping: _EncodeCharMap | None=…, /) -> tuple[bytes, int]
  • added: function bin(num: SupportsIndex, max_bits: int | None=…) -> str
  • added: function show_flag_values(value: int) -> list[int]
  • changed: function hook_compressed(filename: StrOrBytesPath, mode: str) -> IO[Any] → function hook_compressed(filename: StrOrBytesPath, mode: str, *, encoding: str | None=…, errors: str | None=…) -> IO[Any]
  • changed: function filter(names: Iterable[AnyStr], pat: AnyStr) -> list[AnyStr] → function filter(names: Iterable[AnyStr | PathLike[AnyStr]], pat: AnyStr | PathLike[AnyStr]) -> list[AnyStr]
  • changed: function filterfalse(names: Iterable[AnyStr], pat: AnyStr) -> list[AnyStr] → function filterfalse(names: Iterable[AnyStr | PathLike[AnyStr]], pat: AnyStr | PathLike[AnyStr]) -> list[AnyStr]
  • changed: function fnmatch(name: AnyStr, pat: AnyStr) -> bool → function fnmatch(name: AnyStr | PathLike[AnyStr], pat: AnyStr | PathLike[AnyStr]) -> bool
  • removed: class AbstractFormatter
  • removed: class AbstractWriter(NullWriter)
  • removed: class DumbWriter(NullWriter)
  • removed: class NullFormatter
  • removed: class NullWriter
  • removed: constructor AbstractFormatter(writer: NullWriter) -> None
  • removed: constructor DumbWriter(file: IO[str] | None=…, maxcol: int=…) -> None
  • removed: constructor NullFormatter(writer: NullWriter | None=…) -> None
  • removed: field AbstractFormatter.align: str | None
  • removed: field AbstractFormatter.align_stack: list[str | None]
  • removed: field AbstractFormatter.font_stack: list[_FontType]
  • removed: field AbstractFormatter.hard_break: int
  • removed: field AbstractFormatter.have_label: int
  • removed: field AbstractFormatter.margin_stack: list[int]
  • removed: field AbstractFormatter.nospace: int
  • removed: field AbstractFormatter.para_end: int
  • removed: field AbstractFormatter.parskip: int
  • removed: field AbstractFormatter.softspace: int
  • removed: field AbstractFormatter.spacing: str | None
  • removed: field AbstractFormatter.style_stack: Any
  • removed: field AbstractFormatter.writer: NullWriter
  • removed: field DumbWriter.file: IO[str]
  • removed: field DumbWriter.maxcol: int
  • removed: field NullFormatter.writer: NullWriter | None
  • removed: function test(file: str | None=…) -> None
  • removed: method AbstractFormatter.add_flowing_data(data: str) -> None
  • removed: method AbstractFormatter.add_hor_rule(*args: Any, **kw: Any) -> None
  • removed: method AbstractFormatter.add_label_data(format: str, counter: int, blankline: int | None=…) -> None
  • removed: method AbstractFormatter.add_line_break() -> None
  • removed: method AbstractFormatter.add_literal_data(data: str) -> None
  • removed: method AbstractFormatter.assert_line_data(flag: int=…) -> None
  • removed: method AbstractFormatter.end_paragraph(blankline: int) -> None
  • removed: method AbstractFormatter.flush_softspace() -> None
  • removed: method AbstractFormatter.format_counter(format: Iterable[str], counter: int) -> str
  • removed: method AbstractFormatter.format_letter(case: str, counter: int) -> str
  • removed: method AbstractFormatter.format_roman(case: str, counter: int) -> str
  • removed: method AbstractFormatter.pop_alignment() -> None
  • removed: method AbstractFormatter.pop_font() -> None
  • removed: method AbstractFormatter.pop_margin() -> None
  • removed: method AbstractFormatter.pop_style(n: int=…) -> None
  • removed: method AbstractFormatter.push_alignment(align: str | None) -> None
  • removed: method AbstractFormatter.push_font(font: _FontType) -> None
  • removed: method AbstractFormatter.push_margin(margin: int) -> None
  • removed: method AbstractFormatter.push_style(*styles: _StylesType) -> None
  • removed: method AbstractFormatter.set_spacing(spacing: str | None) -> None
  • removed: method DumbWriter.reset() -> None
  • removed: method NullFormatter.add_flowing_data(data: str) -> None
  • removed: method NullFormatter.add_hor_rule(*args: Any, **kw: Any) -> None
  • removed: method NullFormatter.add_label_data(format: str, counter: int, blankline: int | None=…) -> None
  • removed: method NullFormatter.add_line_break() -> None
  • removed: method NullFormatter.add_literal_data(data: str) -> None
  • removed: method NullFormatter.assert_line_data(flag: int=…) -> None
  • removed: method NullFormatter.end_paragraph(blankline: int) -> None
  • removed: method NullFormatter.flush_softspace() -> None
  • removed: method NullFormatter.pop_alignment() -> None
  • removed: method NullFormatter.pop_font() -> None
  • removed: method NullFormatter.pop_margin() -> None
  • removed: method NullFormatter.pop_style(n: int=…) -> None
  • removed: method NullFormatter.push_alignment(align: str | None) -> None
  • removed: method NullFormatter.push_font(x: _FontType) -> None
  • removed: method NullFormatter.push_margin(margin: int) -> None
  • removed: method NullFormatter.push_style(*styles: _StylesType) -> None
  • removed: method NullFormatter.set_spacing(spacing: str | None) -> None
  • removed: method NullWriter.flush() -> None
  • removed: method NullWriter.new_alignment(align: str | None) -> None
  • removed: method NullWriter.new_font(font: _FontType) -> None
  • removed: method NullWriter.new_margin(margin: int, level: int) -> None
  • removed: method NullWriter.new_spacing(spacing: str | None) -> None
  • removed: method NullWriter.new_styles(styles: tuple[Any, ...]) -> None
  • removed: method NullWriter.send_flowing_data(data: str) -> None
  • removed: method NullWriter.send_hor_rule(*args: Any, **kw: Any) -> None
  • removed: method NullWriter.send_label_data(data: str) -> None
  • removed: method NullWriter.send_line_break() -> None
  • removed: method NullWriter.send_literal_data(data: str) -> None
  • removed: method NullWriter.send_paragraph(blankline: int) -> None
  • removed: variable AS_IS: None
  • changed: function commonprefix(m: Sequence[LiteralString]) -> LiteralString | (m: Sequence[StrPath]) -> str | (m: Sequence[BytesPath]) -> bytes | Literal[''] | (m: Sequence[list[SupportsRichComparisonT]]) -> Sequence[SupportsRichComparisonT] | (m: Sequence[tuple[SupportsRichComparisonT, ...]]) -> Sequence[SupportsRichComparisonT] → function commonprefix(m: Sequence[LiteralString], /) -> LiteralString | (m: Sequence[StrPath], /) -> str | (m: Sequence[BytesPath], /) -> bytes | Literal[''] | (m: Sequence[list[SupportsRichComparisonT]], /) -> Sequence[SupportsRichComparisonT] | (m: Sequence[tuple[SupportsRichComparisonT, ...]], /) -> Sequence[SupportsRichComparisonT] | (m: Sequence[LiteralString]) -> LiteralString | (m: Sequenc…
  • added: variable ALL_BUT_LAST: _AllButLastType
  • changed: function glob(pathname: AnyStr, *, recursive: bool=…) -> list[AnyStr] → function glob(pathname: AnyStr, *, root_dir: StrOrBytesPath | None=…, dir_fd: int | None=…, recursive: bool=…) -> list[AnyStr]
  • changed: function iglob(pathname: AnyStr, *, recursive: bool=…) -> Iterator[AnyStr] → function iglob(pathname: AnyStr, *, root_dir: StrOrBytesPath | None=…, dir_fd: int | None=…, recursive: bool=…) -> Iterator[AnyStr]
  • changed: function merge(*iterables: Iterable[_S], key: Callable[[_S], SupportsRichComparison] | None=…, reverse: bool=…) -> Generator[_S] → function merge(*iterables: Iterable[_S], key: Callable[[_S], SupportsRichComparison], reverse: bool=…) -> Generator[_S] | (*iterables: Iterable[_T], key: None=…, reverse: bool=…) -> Generator[_T]
  • changed: function nlargest(n: int, iterable: Iterable[_S], key: Callable[[_S], SupportsRichComparison] | None=…) -> list[_S] → function nlargest(n: int, iterable: Iterable[_S], key: Callable[[_S], SupportsRichComparison]) -> list[_S] | (n: int, iterable: Iterable[_T], key: None=…) -> list[_T]
  • changed: function nsmallest(n: int, iterable: Iterable[_S], key: Callable[[_S], SupportsRichComparison] | None=…) -> list[_S] → function nsmallest(n: int, iterable: Iterable[_S], key: Callable[[_S], SupportsRichComparison]) -> list[_S] | (n: int, iterable: Iterable[_T], key: None=…) -> list[_T]
  • changed: function escape(s: AnyStr, quote: bool=…) -> AnyStr → function escape(s: str, quote: bool=…) -> str
  • changed: function unescape(s: AnyStr) -> AnyStr → function unescape(s: str) -> str
  • removed: field MozillaCookieJar.header: ClassVar[str]
  • changed: constructor Cookie(version: int | None, name: str, value: str | None, port: str | None, port_specified: bool, domain: str, domain_specified: bool, domain_initial_dot: bool, path: str, path_specified: bool, secure: bool, expires: int | None, discard: bool, comment: str | None, comment_url: str | None, rest: dict[str, str], rfc2109: bool=…) -> None → constructor Cookie(version: int | str | None, name: str, value: str | None, port: str | None, port_specified: bool, domain: str, domain_specified: bool, domain_initial_dot: bool, path: str, path_specified: bool, secure: bool, expires: float | str | None, discard: bool, comment: str | None, comment_url: str | None, rest: dict[str, str], rfc2109: bool=…) -> None
  • changed: constructor BaseCookie(input: _DataType | None=…) -> None → constructor BaseCookie(input: str | SupportsItems[str, str | Morsel[Any]] | None=…) -> None
  • changed: method BaseCookie.js_output(attrs: list[str] | None=…) -> str → method BaseCookie.js_output(attrs: Container[str] | None=…) -> str
  • changed: method BaseCookie.load(rawdata: _DataType) -> None → method BaseCookie.load(rawdata: str | SupportsItems[str, str | Morsel[Any]]) -> None
  • changed: method BaseCookie.output(attrs: list[str] | None=…, header: str=…, sep: str=…) -> str → method BaseCookie.output(attrs: Container[str] | None=…, header: str=…, sep: str=…) -> str
  • removed: class BaseHTTPRequestHandler(socketserver.StreamRequestHandler)
  • removed: class CGIHTTPRequestHandler(SimpleHTTPRequestHandler)
  • removed: class HTTPServer(socketserver.TCPServer)
  • removed: class SimpleHTTPRequestHandler(BaseHTTPRequestHandler)
  • removed: class ThreadingHTTPServer(socketserver.ThreadingMixIn, HTTPServer)
  • removed: constructor SimpleHTTPRequestHandler(request: socketserver._RequestType, client_address: _socket._RetAddress, server: socketserver.BaseServer, *, directory: StrPath | None=…) -> None
  • removed: field BaseHTTPRequestHandler.MessageClass: type
  • removed: field BaseHTTPRequestHandler.client_address: tuple[str, int]
  • removed: field BaseHTTPRequestHandler.close_connection: bool
  • removed: field BaseHTTPRequestHandler.command: str
  • removed: field BaseHTTPRequestHandler.default_request_version: str
  • removed: field BaseHTTPRequestHandler.error_content_type: str
  • removed: field BaseHTTPRequestHandler.error_message_format: str
  • removed: field BaseHTTPRequestHandler.headers: email.message.Message
  • removed: field BaseHTTPRequestHandler.monthname: ClassVar[Sequence[str | None]]
  • removed: field BaseHTTPRequestHandler.path: str
  • removed: field BaseHTTPRequestHandler.protocol_version: str
  • removed: field BaseHTTPRequestHandler.request_version: str
  • removed: field BaseHTTPRequestHandler.requestline: str
  • removed: field BaseHTTPRequestHandler.responses: Mapping[int, tuple[str, str]]
  • removed: field BaseHTTPRequestHandler.server_version: str
  • removed: field BaseHTTPRequestHandler.sys_version: str
  • removed: field BaseHTTPRequestHandler.weekdayname: ClassVar[Sequence[str]]
  • removed: field CGIHTTPRequestHandler.cgi_directories: list[str]
  • removed: field CGIHTTPRequestHandler.have_fork: bool
  • removed: field HTTPServer.server_name: str
  • removed: field HTTPServer.server_port: int
  • removed: field SimpleHTTPRequestHandler.directory: str
  • removed: field SimpleHTTPRequestHandler.extensions_map: dict[str, str]
  • removed: field SimpleHTTPRequestHandler.index_pages: ClassVar[tuple[str, ...]]
  • removed: method BaseHTTPRequestHandler.address_string() -> str
  • removed: method BaseHTTPRequestHandler.date_time_string(timestamp: float | None=…) -> str
  • removed: method BaseHTTPRequestHandler.end_headers() -> None
  • removed: method BaseHTTPRequestHandler.flush_headers() -> None
  • removed: method BaseHTTPRequestHandler.handle_expect_100() -> bool
  • removed: method BaseHTTPRequestHandler.handle_one_request() -> None
  • removed: method BaseHTTPRequestHandler.log_date_time_string() -> str
  • removed: method BaseHTTPRequestHandler.log_error(format: str, *args: Any) -> None
  • removed: method BaseHTTPRequestHandler.log_message(format: str, *args: Any) -> None
  • removed: method BaseHTTPRequestHandler.log_request(code: int | str=…, size: int | str=…) -> None
  • removed: method BaseHTTPRequestHandler.parse_request() -> bool
  • removed: method BaseHTTPRequestHandler.send_error(code: int, message: str | None=…, explain: str | None=…) -> None
  • removed: method BaseHTTPRequestHandler.send_header(keyword: str, value: str) -> None
  • removed: method BaseHTTPRequestHandler.send_response(code: int, message: str | None=…) -> None
  • removed: method BaseHTTPRequestHandler.send_response_only(code: int, message: str | None=…) -> None
  • removed: method BaseHTTPRequestHandler.version_string() -> str
  • removed: method CGIHTTPRequestHandler.do_POST() -> None
  • removed: method CGIHTTPRequestHandler.is_cgi() -> bool
  • removed: method CGIHTTPRequestHandler.is_executable(path: StrPath) -> bool
  • removed: method CGIHTTPRequestHandler.is_python(path: StrPath) -> bool
  • removed: method CGIHTTPRequestHandler.run_cgi() -> None
  • removed: method SimpleHTTPRequestHandler.copyfile(source: SupportsRead[AnyStr], outputfile: SupportsWrite[AnyStr]) -> None
  • removed: method SimpleHTTPRequestHandler.do_GET() -> None
  • removed: method SimpleHTTPRequestHandler.do_HEAD() -> None
  • removed: method SimpleHTTPRequestHandler.guess_type(path: StrPath) -> str
  • removed: method SimpleHTTPRequestHandler.list_directory(path: StrPath) -> io.BytesIO | None
  • removed: method SimpleHTTPRequestHandler.send_head() -> io.BytesIO | BinaryIO | None
  • removed: method SimpleHTTPRequestHandler.translate_path(path: str) -> str
  • added: class HTTPSServer(HTTPServer)
  • added: class ThreadingHTTPSServer(socketserver.ThreadingMixIn, HTTPSServer)
  • added: constructor HTTPSServer(server_address: socketserver._AfInetAddress, RequestHandlerClass: Callable[[Any, _socket._RetAddress, Self], socketserver.BaseRequestHandler], bind_and_activate: bool=…, *, certfile: StrOrBytesPath, keyfile: StrOrBytesPath | None=…, password: _PasswordType | None=…, alpn_protocols: Iterable[str] | None=…) -> None
  • added: field HTTPSServer.alpn_protocols: Iterable[str]
  • added: field HTTPSServer.certfile: StrOrBytesPath
  • added: field HTTPSServer.keyfile: StrOrBytesPath | None
  • added: field HTTPSServer.password: _PasswordType | None
  • added: field HTTPSServer.ssl: _SSLModule
  • added: method HTTPSServer.server_activate() -> None
  • removed: class Loader
  • removed: class MetaPathFinder(Finder)
  • removed: class PathEntryFinder(Finder)
  • removed: method Loader.create_module(spec: ModuleSpec) -> types.ModuleType | None
  • removed: method Loader.exec_module(module: types.ModuleType) -> None
  • removed: method Loader.load_module(fullname: str) -> types.ModuleType
  • removed: method Loader.module_repr(module: types.ModuleType) -> str
  • changed: method ResourceReader.is_resource(name: str) -> bool → method ResourceReader.is_resource(path: str) -> bool
  • added: method MetaPathFinder.discover(parent: ModuleSpec | None=…) -> Iterable[ModuleSpec]
  • added: method PathEntryFinder.discover(parent: ModuleSpec | None=…) -> Iterable[ModuleSpec]
  • changed: function metadata(distribution_name: str) -> Message → function metadata(distribution_name: str) -> PackageMetadata
  • added: class MetadataNotFound(FileNotFoundError)
  • added: class PackagePath(pathlib.PurePosixPath)
  • added: export SimplePath
  • added: field PackagePath.dist: Distribution
  • added: field PackagePath.hash: FileHash | None
  • added: field PackagePath.size: int | None
  • added: method PackagePath.locate() -> PathLike[str]
  • added: method PackagePath.read_binary() -> bytes
  • added: method PackagePath.read_text(encoding: str=…) -> str
  • changed: method MultiplexedPath.open(*args: Never, **kwargs: Never) -> NoReturn → method MultiplexedPath.open(*args: Never, **kwargs: Never) -> Never
  • changed: method MultiplexedPath.read_bytes() -> NoReturn → method MultiplexedPath.read_bytes() -> Never
  • changed: method MultiplexedPath.read_text(*args: Never, **kwargs: Never) -> NoReturn → method MultiplexedPath.read_text(*args: Never, **kwargs: Never) -> Never
  • changed: method ResourceContainer.open(*args: Never, **kwargs: Never) -> NoReturn → method ResourceContainer.open(*args: Never, **kwargs: Never) -> Never
  • changed: method ResourceHandle.joinpath(name: Never) -> NoReturn → method ResourceHandle.joinpath(name: Never) -> Never
  • changed: constructor BoundArguments(signature: Signature, arguments: OrderedDict[str, Any]) -> None → constructor BoundArguments(signature: Signature, arguments: dict[str, Any]) -> None
  • changed: field BoundArguments.arguments: OrderedDict[str, Any] → field BoundArguments.arguments: dict[str, Any]
  • changed: function isasyncgen(object: object) -> TypeIs[AsyncGeneratorType[Any, Any]] → function isasyncgen(object: object) -> TypeIs[AsyncGeneratorType[object, Never]]
  • changed: function isasyncgenfunction(obj: Callable[..., AsyncGenerator[Any, Any]]) -> bool | (obj: Callable[_P, Any]) -> TypeGuard[Callable[_P, AsyncGeneratorType[Any, Any]]] | (obj: object) -> TypeGuard[Callable[..., AsyncGeneratorType[Any, Any]]] → function isasyncgenfunction(obj: Callable[..., AsyncGenerator[Any, Any]]) -> bool | (obj: Callable[_P, Any]) -> TypeGuard[Callable[_P, AsyncGenerator[Any, Any]]] | (obj: object) -> TypeGuard[Callable[..., AsyncGenerator[Any, Any]]]
  • changed: function isclass(object: object) -> TypeIs[type[Any]] → function isclass(object: object) -> TypeIs[type[object]]
  • changed: function iscoroutinefunction(obj: Callable[..., Coroutine[Any, Any, Any]]) -> bool | (obj: Callable[_P, Awaitable[_T]]) -> TypeGuard[Callable[_P, CoroutineType[Any, Any, _T]]] | (obj: Callable[_P, object]) -> TypeGuard[Callable[_P, CoroutineType[Any, Any, Any]]] | (obj: object) -> TypeGuard[Callable[..., CoroutineType[Any, Any, Any]]] → function iscoroutinefunction(obj: Callable[..., Coroutine[Any, Any, Any]]) -> bool | (obj: Callable[_P, Awaitable[_T]]) -> TypeGuard[Callable[_P, Coroutine[Any, Any, _T]]] | (obj: Callable[_P, object]) -> TypeGuard[Callable[_P, Coroutine[Any, Any, Any]]] | (obj: object) -> TypeGuard[Callable[..., Coroutine[Any, Any, Any]]]
  • changed: function isdatadescriptor(object: object) -> TypeIs[_SupportsSet[Any, Any] | _SupportsDelete[Any]] → function isdatadescriptor(object: object) -> TypeIs[_SupportsSet[Never, Never] | _SupportsDelete[Never]]
  • changed: function isgenerator(object: object) -> TypeIs[GeneratorType[Any, Any, Any]] → function isgenerator(object: object) -> TypeIs[GeneratorType[object, Never, object]]
  • changed: function isgeneratorfunction(obj: Callable[..., Generator[Any, Any, Any]]) -> bool | (obj: Callable[_P, Any]) -> TypeGuard[Callable[_P, GeneratorType[Any, Any, Any]]] | (obj: object) -> TypeGuard[Callable[..., GeneratorType[Any, Any, Any]]] → function isgeneratorfunction(obj: Callable[..., Generator[Any, Any, Any]]) -> bool | (obj: Callable[_P, Any]) -> TypeGuard[Callable[_P, Generator[Any, Any, Any]]] | (obj: object) -> TypeGuard[Callable[..., Generator[Any, Any, Any]]]
  • changed: function signature(obj: _IntrospectableCallable, *, follow_wrapped: bool=…) -> Signature → function signature(obj: _IntrospectableCallable, *, follow_wrapped: bool=…, globals: Mapping[str, Any] | None=…, locals: Mapping[str, Any] | None=…, eval_str: bool=…) -> Signature
  • changed: static method Signature.from_callable(obj: _IntrospectableCallable, *, follow_wrapped: bool=…) -> Self → static method Signature.from_callable(obj: _IntrospectableCallable, *, follow_wrapped: bool=…, globals: Mapping[str, Any] | None=…, locals: Mapping[str, Any] | None=…, eval_str: bool=…) -> Self
  • added: field JSONDecoder.array_hook: Callable[[list[Any]], Any] | None
  • changed: function find_excepts(nodes: Iterable[_N]) -> Generator[tuple[_N, _N], None, None] → function find_excepts(nodes: Iterable[_N]) -> Generator[tuple[_N, _N]]
  • changed: function traverse_imports(names) -> Generator[str, None, None] → function traverse_imports(names) -> Generator[str]
  • changed: function build_pattern(mapping=…) -> Generator[str, None, None] → function build_pattern(mapping=…) -> Generator[str]
  • changed: function find_metas(cls_node) -> Generator[tuple[Base, int, Base], None, None] → function find_metas(cls_node) -> Generator[tuple[Base, int, Base]]
  • changed: function build_pattern() -> Generator[str, None, None] → function build_pattern() -> Generator[str]
  • changed: function build_pattern() -> Generator[str, None, None] → function build_pattern() -> Generator[str]
  • changed: method ParserGenerator.raise_error(msg: object) -> NoReturn | (msg: str, *args: object) -> NoReturn → method ParserGenerator.raise_error(msg: object) -> Never | (msg: str, *args: object) -> Never
  • changed: field Node.future_features: frozenset[Incomplete] → field Node.future_features: frozenset[str]
  • changed: method RefactoringTool.gen_lines(block: Iterable[str], indent: int) -> Generator[str, None, None] → method RefactoringTool.gen_lines(block: Iterable[str], indent: int) -> Generator[str]
  • changed: method RefactoringTool.log_error(msg: str, *args: Iterable[str], **kwargs: _ExcInfoType) -> NoReturn → method RefactoringTool.log_error(msg: str, *args: Iterable[str], **kwargs: _ExcInfoType) -> Never
  • changed: method RefactoringTool.wrap_toks(block: Iterable[str], lineno: int, indent: int) -> Generator[tuple[int, str, tuple[int, int], tuple[int, int], str], None, None] → method RefactoringTool.wrap_toks(block: Iterable[str], lineno: int, indent: int) -> Generator[tuple[int, str, tuple[int, int], tuple[int, int], str]]
  • removed: field LoggerAdapter.extra: Mapping[str, object]
  • changed: constructor Formatter(fmt: str | None=…, datefmt: str | None=…, style: _FormatStyle=…, validate: bool=…) -> None → constructor Formatter(fmt: str | None=…, datefmt: str | None=…, style: _FormatStyle=…, validate: bool=…, *, defaults: Mapping[str, Any] | None=…) -> None
  • changed: constructor LoggerAdapter(logger: _L, extra: Mapping[str, object]) -> None → constructor LoggerAdapter(logger: _L, extra: Mapping[str, object] | None=…) -> None
  • changed: field Handler.lock: threading.Lock | None → field Handler.lock: threading.RLock | None
  • changed: function fileConfig(fname: StrOrBytesPath | IO[str] | RawConfigParser, defaults: Mapping[str, str] | None=…, disable_existing_loggers: bool=…) -> None → function fileConfig(fname: StrOrBytesPath | IO[str] | RawConfigParser, defaults: Mapping[str, str] | None=…, disable_existing_loggers: bool=…, encoding: str | None=…) -> None
  • changed: class Mailbox(Generic[_MessageT]) → class Mailbox(Generic[_MessageT_co])
  • changed: class Message(email.message.Message) → class Message(email.message.Message[str, str])
  • changed: constructor Babyl(path: StrPath, factory: Callable[[IO[Any]], BabylMessage] | None=…, create: bool=…) -> None → constructor Babyl(path: StrPath, factory: Callable[[_GetFileReturn], BabylMessage] | None=…, create: bool=…) -> None
  • changed: constructor MH(path: StrPath, factory: Callable[[IO[Any]], MHMessage] | None=…, create: bool=…) -> None → constructor MH(path: StrPath, factory: Callable[[_GetFileReturn], MHMessage] | None=…, create: bool=…) -> None
  • changed: constructor MMDF(path: StrPath, factory: Callable[[IO[Any]], MMDFMessage] | None=…, create: bool=…) -> None → constructor MMDF(path: StrPath, factory: Callable[[_GetFileReturn], MMDFMessage] | None=…, create: bool=…) -> None
  • changed: constructor Mailbox(path: StrPath, factory: Callable[[IO[Any]], _MessageT], create: bool=…) -> None | (path: StrPath, factory: None=…, create: bool=…) -> None → constructor Mailbox(path: StrPath, factory: Callable[[_GetFileReturn], _MessageT_co], create: bool=…) -> None | (path: StrPath, factory: None=…, create: bool=…) -> None
  • changed: constructor Maildir(dirname: StrPath, factory: Callable[[IO[Any]], MaildirMessage] | None=…, create: bool=…) -> None → constructor Maildir(dirname: StrPath, factory: Callable[[_GetFileReturn], MaildirMessage] | None=…, create: bool=…) -> None
  • changed: constructor mbox(path: StrPath, factory: Callable[[IO[Any]], mboxMessage] | None=…, create: bool=…) -> None → constructor mbox(path: StrPath, factory: Callable[[_GetFileReturn], mboxMessage] | None=…, create: bool=…) -> None
  • changed: method Babyl.get_file(key: str) -> IO[bytes] → method Babyl.get_file(key: str) -> io.BytesIO
  • changed: method MH.get_file(key: str) -> _ProxyFile[bytes] → method MH.get_file(key: str) -> _ProxyFile
  • changed: method Mailbox.get(key: str, default: None=…) -> _MessageT | None | (key: str, default: _T) -> _MessageT | _T → method Mailbox.get(key: str, default: None=…) -> _MessageT_co | None | (key: str, default: _T) -> _MessageT_co | _T
  • changed: method Mailbox.get_file(key: str) -> Any → method Mailbox.get_file(key: str) -> _GetFileReturn
  • changed: method Mailbox.get_message(key: str) -> _MessageT → method Mailbox.get_message(key: str) -> _MessageT_co
  • changed: method Mailbox.items() -> list[tuple[str, _MessageT]] → method Mailbox.items() -> list[tuple[str, _MessageT_co]]
  • changed: method Mailbox.iteritems() -> Iterator[tuple[str, _MessageT]] → method Mailbox.iteritems() -> Iterator[tuple[str, _MessageT_co]]
  • changed: method Mailbox.itervalues() -> Iterator[_MessageT] → method Mailbox.itervalues() -> Iterator[_MessageT_co]
  • changed: method Mailbox.pop(key: str, default: None=…) -> _MessageT | None | (key: str, default: _T) -> _MessageT | _T → method Mailbox.pop(key: str, default: None=…) -> _MessageT_co | None | (key: str, default: _T) -> _MessageT_co | _T
  • changed: method Mailbox.popitem() -> tuple[str, _MessageT] → method Mailbox.popitem() -> tuple[str, _MessageT_co]
  • changed: method Mailbox.update(arg: _HasIteritems | _HasItems | Iterable[tuple[str, _MessageData]] | None=…) -> None → method Mailbox.update(arg: _HasIteritems | SupportsItems[str, _MessageData] | Iterable[tuple[str, _MessageData]] | None=…) -> None
  • changed: method Mailbox.values() -> list[_MessageT] → method Mailbox.values() -> list[_MessageT_co]
  • changed: method Maildir.add(message: _MessageData) -> str → method Maildir.add(message: _MessageData | MaildirMessage) -> str
  • changed: method Maildir.get_file(key: str) -> _ProxyFile[bytes] → method Maildir.get_file(key: str) -> _ProxyFile
  • changed: function log(x: _SupportsFloatOrIndex, base: _SupportsFloatOrIndex=…) -> float → function log(x: _SupportsFloatOrIndex, base: _SupportsFloatOrIndex=…, /) -> float
  • added: function fmax(x: _SupportsFloatOrIndex, y: _SupportsFloatOrIndex, /) -> float
  • added: function fmin(x: _SupportsFloatOrIndex, y: _SupportsFloatOrIndex, /) -> float
  • added: function isnormal(x: _SupportsFloatOrIndex, /) -> bool
  • added: function issubnormal(x: _SupportsFloatOrIndex, /) -> bool
  • added: function signbit(x: _SupportsFloatOrIndex, /) -> bool
  • added: function comb(n: SupportsIndex, k: SupportsIndex, /) -> int
  • added: function factorial(n: SupportsIndex, /) -> int
  • added: function gcd(*integers: SupportsIndex) -> int
  • added: function isqrt(n: SupportsIndex, /) -> int
  • added: function lcm(*integers: SupportsIndex) -> int
  • added: function perm(n: SupportsIndex, k: SupportsIndex | None=…, /) -> int
  • added: method mmap.set_name(name: str, /) -> None
  • added: variable MS_ASYNC: Final[int]
  • added: variable MS_INVALIDATE: Final[int]
  • added: variable MS_SYNC: Final[int]
  • changed: constructor Dialog(db: _Database, name: str, x: int, y: int, w: int, h: int, attr: int, title: str, first: str, default: str, cancel: str) -> None → constructor Dialog(db: _Database, name: str, x: int, y: int, w: int, h: int, attr: int, title: str, first: str, default: str | None, cancel: str | None) -> None
  • changed: constructor Directory(db: _Database, cab: CAB, basedir: str, physical: str, _logical: str, default: str, componentflags: int | None=…) -> None → constructor Directory(db: _Database, cab: CAB, basedir: Directory | None, physical: str, _logical: str, default: str, componentflags: int | None=…) -> None
  • changed: field Directory.basedir: str → field Directory.basedir: Directory | None
  • changed: function change_sequence(seq: Sequence[tuple[str, str | None, int]], action: str, seqno: int | type[_Unspecified]=…, cond: str | type[_Unspecified]=…) -> None → function change_sequence(seq: _SequenceType, action: str, seqno: int | type[_Unspecified]=…, cond: str | type[_Unspecified]=…) -> None
  • changed: method CAB.append(full: str, file: str, logical: str) -> tuple[int, str] → method CAB.append(full: str, file: str, logical: str | None) -> tuple[int, str] | MaybeNone
  • removed: property Listener.address -> _Address
  • removed: property Listener.last_accepted -> _Address | None
  • changed: function Client(address: _Address, family: str | None=…, authkey: bytes | None=…) -> Connection[Any, Any] → function Client(address: _Address, family: str | None=…, authkey: bytes | None=…) -> Connection[Any, Any] | PipeConnection[Any, Any]
  • changed: function wait(object_list: Iterable[Connection[_SendT_contra, _RecvT_co] | socket.socket | int], timeout: float | None=…) -> list[Connection[_SendT_contra, _RecvT_co] | socket.socket | int] → function wait(object_list: Iterable[_ConnectionBase[_SendT_contra, _RecvT_co] | socket.socket | int], timeout: float | None=…) -> list[_ConnectionBase[_SendT_contra, _RecvT_co] | socket.socket | int]
  • changed: method Listener.accept() -> Connection[Incomplete, Incomplete] → method Listener.accept() -> Connection[Incomplete, Incomplete] | PipeConnection[Incomplete, Incomplete]
  • added: property Listener.address -> Any
  • added: property Listener.last_accepted -> Any | None
  • changed: static method Pool.Process(ctx: DefaultContext, *args: Any, **kwds: Any) -> Process → static method Pool.Process(ctx: DefaultContext, *args: Any, **kwds: Any) -> _Process
  • changed: function DupFd(fd: int) -> Any → function DupFd(fd: int) -> popen_forkserver._DupFd | popen_spawn_posix._DupFd | resource_sharer.DupFd
  • changed: function realpath(path: PathLike[AnyStr], *, strict: bool | _AllowMissingType=…) -> AnyStr | (path: AnyStr, *, strict: bool | _AllowMissingType=…) -> AnyStr → function realpath(path: PathLike[AnyStr], /, *, strict: bool | _AllowMissingType=…) -> AnyStr | (path: AnyStr, /, *, strict: bool | _AllowMissingType=…) -> AnyStr | (path: PathLike[AnyStr], *, strict: bool | _AllowMissingType=…) -> AnyStr | (path: AnyStr, *, strict: bool | _AllowMissingType=…) -> AnyStr
  • added: export ALL_BUT_LAST
  • added: variable opmap: Final[frozendict[str, int]]
  • changed: method OptionParser.error(msg: str) -> NoReturn → method OptionParser.error(msg: str) -> Never
  • changed: method OptionParser.exit(status: int=…, msg: str | None=…) -> NoReturn → method OptionParser.exit(status: int=…, msg: str | None=…) -> Never
  • changed: function _exit(status: int) -> NoReturn → function _exit(status: int) -> Never
  • changed: function abort() -> NoReturn → function abort() -> Never
  • changed: function execl(file: StrOrBytesPath, *args: Unpack[tuple[StrOrBytesPath, Unpack[tuple[StrOrBytesPath, ...]]]]) -> NoReturn → function execl(file: StrOrBytesPath, *args: Unpack[tuple[StrOrBytesPath, Unpack[tuple[StrOrBytesPath, ...]]]]) -> Never
  • changed: function execle(file: StrOrBytesPath, *args: Unpack[tuple[StrOrBytesPath, Unpack[tuple[StrOrBytesPath, ...]], _ExecEnv]]) -> NoReturn → function execle(file: StrOrBytesPath, *args: Unpack[tuple[StrOrBytesPath, Unpack[tuple[StrOrBytesPath, ...]], _ExecEnv]]) -> Never
  • changed: function execlp(file: StrOrBytesPath, *args: Unpack[tuple[StrOrBytesPath, Unpack[tuple[StrOrBytesPath, ...]]]]) -> NoReturn → function execlp(file: StrOrBytesPath, *args: Unpack[tuple[StrOrBytesPath, Unpack[tuple[StrOrBytesPath, ...]]]]) -> Never
  • changed: function execlpe(file: StrOrBytesPath, *args: Unpack[tuple[StrOrBytesPath, Unpack[tuple[StrOrBytesPath, ...]], _ExecEnv]]) -> NoReturn → function execlpe(file: StrOrBytesPath, *args: Unpack[tuple[StrOrBytesPath, Unpack[tuple[StrOrBytesPath, ...]], _ExecEnv]]) -> Never
  • changed: function execv(path: StrOrBytesPath, argv: _ExecVArgs, /) -> NoReturn → function execv(path: StrOrBytesPath, argv: _ExecVArgs, /) -> Never
  • changed: function execve(path: FileDescriptorOrPath, argv: _ExecVArgs, env: _ExecEnv) -> NoReturn → function execve(path: FileDescriptorOrPath, argv: _ExecVArgs, env: _ExecEnv) -> Never
  • changed: function execvp(file: StrOrBytesPath, args: _ExecVArgs) -> NoReturn → function execvp(file: StrOrBytesPath, args: _ExecVArgs) -> Never
  • changed: function execvpe(file: StrOrBytesPath, args: _ExecVArgs, env: _ExecEnv) -> NoReturn → function execvpe(file: StrOrBytesPath, args: _ExecVArgs, env: _ExecEnv) -> Never
  • changed: function startfile(filepath: StrOrBytesPath, operation: str=…) -> None → function startfile(filepath: StrOrBytesPath, operation: str=…, arguments: str=…, cwd: StrOrBytesPath | None=…, show_cmd: int=…) -> None
  • added: class statx_result
  • added: function _clearenv() -> None
  • added: function statx(path: FileDescriptorOrPath, mask: int, *, flags: int=…, dir_fd: int | None=…, follow_symlinks: bool=…) -> statx_result
  • added: property statx_result.stx_atime -> float | None
  • added: property statx_result.stx_atime_ns -> int | None
  • added: property statx_result.stx_attributes -> int
  • added: property statx_result.stx_attributes_mask -> int
  • added: property statx_result.stx_blksize -> int
  • added: property statx_result.stx_blocks -> int | None
  • added: property statx_result.stx_btime -> float | None
  • added: property statx_result.stx_btime_ns -> int | None
  • added: property statx_result.stx_ctime -> float | None
  • added: property statx_result.stx_ctime_ns -> int | None
  • added: property statx_result.stx_dev -> int
  • added: property statx_result.stx_dev_major -> int
  • added: property statx_result.stx_dev_minor -> int
  • added: property statx_result.stx_dio_mem_align -> int | None
  • added: property statx_result.stx_dio_offset_align -> int | None
  • added: property statx_result.stx_gid -> int | None
  • added: property statx_result.stx_ino -> int | None
  • added: property statx_result.stx_mask -> int
  • added: property statx_result.stx_mnt_id -> int | None
  • added: property statx_result.stx_mode -> int | None
  • added: property statx_result.stx_mtime -> float | None
  • added: property statx_result.stx_mtime_ns -> int | None
  • added: property statx_result.stx_nlink -> int | None
  • added: property statx_result.stx_rdev -> int
  • added: property statx_result.stx_rdev_major -> int
  • added: property statx_result.stx_rdev_minor -> int
  • added: property statx_result.stx_size -> int | None
  • added: property statx_result.stx_uid -> int | None
  • added: variable AT_NO_AUTOMOUNT: Final[int]
  • added: variable AT_STATX_DONT_SYNC: Final[int]
  • added: variable AT_STATX_FORCE_SYNC: Final[int]
  • added: variable AT_STATX_SYNC_AS_STAT: Final[int]
  • added: variable NODEV: Final[int]
  • added: variable STATX_ATIME: Final[int]
  • added: variable STATX_BASIC_STATS: Final[int]
  • added: variable STATX_BLOCKS: Final[int]
  • added: variable STATX_BTIME: Final[int]
  • added: variable STATX_CTIME: Final[int]
  • added: variable STATX_DIOALIGN: Final[int]
  • added: variable STATX_GID: Final[int]
  • added: variable STATX_INO: Final[int]
  • added: variable STATX_MNT_ID: Final[int]
  • added: variable STATX_MNT_ID_UNIQUE: Final[int]
  • added: variable STATX_MODE: Final[int]
  • added: variable STATX_MTIME: Final[int]
  • added: variable STATX_NLINK: Final[int]
  • added: variable STATX_SIZE: Final[int]
  • added: variable STATX_TYPE: Final[int]
  • added: variable STATX_UID: Final[int]
  • removed: class ParserError(Exception)
  • removed: class STType
  • removed: function compilest(st: STType, filename: StrOrBytesPath=…) -> CodeType
  • removed: function expr(source: str) -> STType
  • removed: function isexpr(st: STType) -> bool
  • removed: function issuite(st: STType) -> bool
  • removed: function sequence2st(sequence: Sequence[Any]) -> STType
  • removed: function st2list(st: STType, line_info: bool=…, col_info: bool=…) -> list[Any]
  • removed: function st2tuple(st: STType, line_info: bool=…, col_info: bool=…) -> tuple[Any, ...]
  • removed: function suite(source: str) -> STType
  • removed: function tuple2st(sequence: Sequence[Any]) -> STType
  • removed: method STType.compile(filename: StrOrBytesPath=…) -> CodeType
  • removed: method STType.isexpr() -> bool
  • removed: method STType.issuite() -> bool
  • removed: method STType.tolist(line_info: bool=…, col_info: bool=…) -> list[Any]
  • removed: method STType.totuple(line_info: bool=…, col_info: bool=…) -> tuple[Any, ...]
  • changed: method Path.chmod(mode: int) -> None → method Path.chmod(mode: int, *, follow_symlinks: bool=…) -> None
  • changed: method Path.glob(pattern: str) -> Generator[Self, None, None] → method Path.glob(pattern: str) -> Generator[Self]
  • changed: method Path.iterdir() -> Generator[Self, None, None] → method Path.iterdir() -> Generator[Self]
  • changed: method Path.rename(target: str | PurePath) -> Self → method Path.rename(target: StrPath) -> Self
  • changed: method Path.replace(target: str | PurePath) -> Self → method Path.replace(target: StrPath) -> Self
  • changed: method Path.rglob(pattern: str) -> Generator[Self, None, None] → method Path.rglob(pattern: str) -> Generator[Self]
  • changed: method Path.stat() -> stat_result → method Path.stat(*, follow_symlinks: bool=…) -> stat_result
  • changed: method Path.write_text(data: str, encoding: str | None=…, errors: str | None=…) -> int → method Path.write_text(data: str, encoding: str | None=…, errors: str | None=…, newline: str | None=…) -> int
  • changed: function run(statement: str, globals: dict[str, Any] | None=…, locals: Mapping[str, Any] | None=…) -> None → function run(statement: str | ReadableBuffer | CodeType, globals: dict[str, Any] | None=…, locals: Mapping[str, object] | None=…) -> None
  • changed: function runctx(statement: str, globals: dict[str, Any], locals: Mapping[str, Any]) -> None → function runctx(statement: str | ReadableBuffer | CodeType, globals: dict[str, Any], locals: Mapping[str, object]) -> None
  • changed: function runeval(expression: str, globals: dict[str, Any] | None=…, locals: Mapping[str, Any] | None=…) -> Any → function runeval(expression: str | ReadableBuffer | CodeType, globals: dict[str, Any] | None=…, locals: Mapping[str, object] | None=…) -> Any
  • changed: method POP3_SSL.stls(context: Any=…, keyfile: Any=…, certfile: Any=…) -> NoReturn → method POP3_SSL.stls(context: Any=…, keyfile: Any=…, certfile: Any=…) -> Never
  • changed: function basename(p: PathLike[AnyStr]) -> AnyStr | (p: AnyOrLiteralStr) -> AnyOrLiteralStr → function basename(p: PathLike[AnyStr], /) -> AnyStr | (p: AnyOrLiteralStr, /) -> AnyOrLiteralStr | (p: PathLike[AnyStr]) -> AnyStr | (p: AnyOrLiteralStr) -> AnyOrLiteralStr
  • changed: function dirname(p: PathLike[AnyStr]) -> AnyStr | (p: AnyOrLiteralStr) -> AnyOrLiteralStr → function dirname(p: PathLike[AnyStr], /) -> AnyStr | (p: AnyOrLiteralStr, /) -> AnyOrLiteralStr | (p: PathLike[AnyStr]) -> AnyStr | (p: AnyOrLiteralStr) -> AnyOrLiteralStr
  • changed: function normcase(s: PathLike[AnyStr]) -> AnyStr | (s: AnyOrLiteralStr) -> AnyOrLiteralStr → function normcase(s: PathLike[AnyStr], /) -> AnyStr | (s: AnyOrLiteralStr, /) -> AnyOrLiteralStr | (s: PathLike[AnyStr]) -> AnyStr | (s: AnyOrLiteralStr) -> AnyOrLiteralStr
  • changed: function realpath(filename: PathLike[AnyStr], *, strict: bool | _AllowMissingType=…) -> AnyStr | (filename: AnyStr, *, strict: bool | _AllowMissingType=…) -> AnyStr → function realpath(filename: PathLike[AnyStr], /, *, strict: bool | _AllowMissingType=…) -> AnyStr | (filename: AnyStr, /, *, strict: bool | _AllowMissingType=…) -> AnyStr | (filename: PathLike[AnyStr], *, strict: bool | _AllowMissingType=…) -> AnyStr | (filename: AnyStr, *, strict: bool | _AllowMissingType=…) -> AnyStr
  • changed: function split(p: PathLike[AnyStr]) -> tuple[AnyStr, AnyStr] | (p: AnyOrLiteralStr) -> tuple[AnyOrLiteralStr, AnyOrLiteralStr] → function split(p: PathLike[AnyStr], /) -> tuple[AnyStr, AnyStr] | (p: AnyOrLiteralStr, /) -> tuple[AnyOrLiteralStr, AnyOrLiteralStr] | (p: PathLike[AnyStr]) -> tuple[AnyStr, AnyStr] | (p: AnyOrLiteralStr) -> tuple[AnyOrLiteralStr, AnyOrLiteralStr]
  • changed: function splitdrive(p: PathLike[AnyStr]) -> tuple[AnyStr, AnyStr] | (p: AnyOrLiteralStr) -> tuple[AnyOrLiteralStr, AnyOrLiteralStr] → function splitdrive(p: PathLike[AnyStr], /) -> tuple[AnyStr, AnyStr] | (p: AnyOrLiteralStr, /) -> tuple[AnyOrLiteralStr, AnyOrLiteralStr] | (p: PathLike[AnyStr]) -> tuple[AnyStr, AnyStr] | (p: AnyOrLiteralStr) -> tuple[AnyOrLiteralStr, AnyOrLiteralStr]
  • changed: function splitext(p: PathLike[AnyStr]) -> tuple[AnyStr, AnyStr] | (p: AnyOrLiteralStr) -> tuple[AnyOrLiteralStr, AnyOrLiteralStr] → function splitext(p: PathLike[AnyStr], /) -> tuple[AnyStr, AnyStr] | (p: AnyOrLiteralStr, /) -> tuple[AnyOrLiteralStr, AnyOrLiteralStr] | (p: PathLike[AnyStr]) -> tuple[AnyStr, AnyStr] | (p: AnyOrLiteralStr) -> tuple[AnyOrLiteralStr, AnyOrLiteralStr]
  • changed: function splitroot(p: AnyOrLiteralStr) -> tuple[AnyOrLiteralStr, AnyOrLiteralStr, AnyOrLiteralStr] | (p: PathLike[AnyStr]) -> tuple[AnyStr, AnyStr, AnyStr] → function splitroot(path: AnyOrLiteralStr, /) -> tuple[AnyOrLiteralStr, AnyOrLiteralStr, AnyOrLiteralStr] | (path: PathLike[AnyStr], /) -> tuple[AnyStr, AnyStr, AnyStr] | (p: AnyOrLiteralStr) -> tuple[AnyOrLiteralStr, AnyOrLiteralStr, AnyOrLiteralStr] | (p: PathLike[AnyStr]) -> tuple[AnyStr, AnyStr, AnyStr]
  • added: export ALL_BUT_LAST
  • changed: constructor PrettyPrinter(indent: int=…, width: int=…, depth: int | None=…, stream: IO[str] | None=…, *, compact: bool=…, sort_dicts: bool=…) -> None → constructor PrettyPrinter(indent: int=…, width: int=…, depth: int | None=…, stream: IO[str] | None=…, *, compact: bool=…, sort_dicts: bool=…, underscore_numbers: bool=…) -> None
  • changed: function pformat(object: object, indent: int=…, width: int=…, depth: int | None=…, *, compact: bool=…, sort_dicts: bool=…) -> str → function pformat(object: object, indent: int=…, width: int=…, depth: int | None=…, *, compact: bool=…, sort_dicts: bool=…, underscore_numbers: bool=…) -> str
  • changed: function pp(object: object, stream: IO[str] | None=…, indent: int=…, width: int=…, depth: int | None=…, *, compact: bool=…, sort_dicts: bool=…) -> None → function pp(object: object, stream: IO[str] | None=…, indent: int=…, width: int=…, depth: int | None=…, *, compact: bool=…, sort_dicts: bool=…, underscore_numbers: bool=…) -> None
  • changed: function pprint(object: object, stream: IO[str] | None=…, indent: int=…, width: int=…, depth: int | None=…, *, compact: bool=…, sort_dicts: bool=…) -> None → function pprint(object: object, stream: IO[str] | None=…, indent: int=…, width: int=…, depth: int | None=…, *, compact: bool=…, sort_dicts: bool=…, underscore_numbers: bool=…) -> None
  • added: export sampling
  • added: export tracing
  • added: export CollapsedStackCollector
  • added: export Collector
  • added: export GeckoCollector
  • added: export HeatmapCollector
  • added: export JsonlCollector
  • added: export PstatsCollector
  • added: export StringTable
  • added: class Collector(ABC)
  • added: field Collector.aggregating: ClassVar[bool]
  • added: function extract_lineno(location: _Location) -> int
  • added: function filter_internal_frames(frames: Sequence[_Frame]) -> list[_Frame]
  • added: function iter_async_frames(awaited_info_list: Sequence[AwaitedInfo]) -> object
  • added: function normalize_location(location: _Location) -> tuple[int, int, int, int]
  • added: method Collector.collect(stack_frames: Sequence[InterpreterInfo] | Sequence[AwaitedInfo], timestamps_us: _Timestamps=…) -> None
  • added: method Collector.collect_failed_sample() -> None
  • added: method Collector.export(filename: StrOrBytesPath) -> None
  • added: class GeckoCollector(Collector)
  • added: class GeckoThreadSpill
  • added: class SpillColumn
  • added: constructor GeckoCollector(sample_interval_usec: int, *, skip_idle: bool=…, opcodes: bool=…) -> None
  • added: constructor GeckoThreadSpill(directory: StrPath, tid: int) -> None
  • added: constructor SpillColumn(directory: StrPath, basename: StrPath, *, buffer_bytes: int | None=…) -> None
  • added: field GeckoCollector.aggregating: ClassVar[bool]
  • added: field GeckoCollector.exception_start: dict[Incomplete, Incomplete]
  • added: field GeckoCollector.exported: bool
  • added: field GeckoCollector.gc_start_per_thread: dict[int, float]
  • added: field GeckoCollector.gil_wait_start: dict[Incomplete, Incomplete]
  • added: field GeckoCollector.global_string_map: dict[str, int]
  • added: field GeckoCollector.global_strings: list[str]
  • added: field GeckoCollector.has_gil_start: dict[Incomplete, Incomplete]
  • added: field GeckoCollector.initialized_threads: set[Incomplete]
  • added: field GeckoCollector.interval: float
  • added: field GeckoCollector.last_sample_time: float
  • added: field GeckoCollector.libs: list[Incomplete]
  • added: field GeckoCollector.native_code_start: dict[Incomplete, Incomplete]
  • added: field GeckoCollector.no_exception_start: dict[Incomplete, Incomplete]
  • added: field GeckoCollector.no_gil_start: dict[Incomplete, Incomplete]
  • added: field GeckoCollector.off_cpu_start: dict[Incomplete, Incomplete]
  • added: field GeckoCollector.on_cpu_start: dict[Incomplete, Incomplete]
  • added: field GeckoCollector.opcode_state: dict[int, tuple[Incomplete, int, int, str, str, float]]
  • added: field GeckoCollector.opcodes_enabled: bool
  • added: field GeckoCollector.python_code_start: dict[Incomplete, Incomplete]
  • added: field GeckoCollector.sample_count: int
  • added: field GeckoCollector.sample_interval_usec: int
  • added: field GeckoCollector.skip_idle: bool
  • added: field GeckoCollector.spill_dir: TemporaryDirectory[str] | None
  • added: field GeckoCollector.start_time: float
  • added: field GeckoCollector.threads: dict[int, dict[str, Any]]
  • added: field GeckoThreadSpill.marker_count: int
  • added: field GeckoThreadSpill.sample_count: int
  • added: field SpillColumn.buffer: bytearray
  • added: field SpillColumn.path: str
  • added: method GeckoCollector.collect(stack_frames: Sequence[InterpreterInfo] | Sequence[AwaitedInfo], timestamps_us: _Timestamps=…) -> None
  • added: method GeckoCollector.export(filename: StrOrBytesPath) -> None
  • added: method GeckoThreadSpill.append_marker(name_idx: int, start_time: float, end_time: float, phase: int, category: int, data: dict[str, Any]) -> None
  • added: method GeckoThreadSpill.append_sample(stack_index: int, time_ms: float) -> None
  • added: method GeckoThreadSpill.prepare_read() -> None
  • added: method SpillColumn.append(value: Any) -> None
  • added: method SpillColumn.flush() -> None
  • added: method SpillColumn.iter_tokens() -> Generator[str]
  • added: variable CATEGORY_CODE_TYPE: Final
  • added: variable CATEGORY_CPU: Final
  • added: variable CATEGORY_EXCEPTION: Final
  • added: variable CATEGORY_GC: Final
  • added: variable CATEGORY_GIL: Final
  • added: variable CATEGORY_NATIVE: Final
  • added: variable CATEGORY_OPCODES: Final
  • added: variable CATEGORY_OTHER: Final
  • added: variable CATEGORY_PYTHON: Final
  • added: variable DEFAULT_SPILL_BUFFER_BYTES: Final[int]
  • added: variable DEFAULT_SUBCATEGORY: Final
  • added: variable FRAME_ADDRESS_NONE: Final
  • added: variable FRAME_INLINE_DEPTH_ROOT: Final
  • added: variable GECKO_CATEGORIES: Final[list[_GeckoCategory]]
  • added: variable GECKO_FORMAT_VERSION: Final
  • added: variable GECKO_PREPROCESSED_VERSION: Final
  • added: variable PROCESS_TYPE_MAIN: Final
  • added: variable RESOURCE_TYPE_LIBRARY: Final
  • added: variable STACKWALK_DISABLED: Final
  • added: variable THREAD_STATUS_GIL_REQUESTED: Final[int]
  • added: variable THREAD_STATUS_HAS_EXCEPTION: Final[int]
  • added: variable THREAD_STATUS_HAS_GIL: Final[int]
  • added: variable THREAD_STATUS_MAIN_THREAD: Final[int]
  • added: variable THREAD_STATUS_ON_CPU: Final[int]
  • added: variable THREAD_STATUS_UNKNOWN: Final[int]
  • added: class HeatmapCollector(Collector)
  • added: constructor HeatmapCollector(sample_interval_usec: int, *, skip_idle: bool=…) -> None
  • added: field HeatmapCollector.FILE_INDEX_FORMAT: str
  • added: method HeatmapCollector.collect(stack_frames: Sequence[InterpreterInfo] | Sequence[AwaitedInfo], timestamps_us: _Timestamps=…) -> None
  • added: method HeatmapCollector.export(output_path: StrOrBytesPath) -> None
  • added: method HeatmapCollector.process_frames(frames: Sequence[_Frame], thread_id: int, weight: int=…) -> None
  • added: method HeatmapCollector.set_stats(sample_interval_usec: int, duration_sec: float, sample_rate: float, error_rate: float | None=…, missed_samples: float | None=…, **kwargs: object) -> None
  • added: class JsonlCollector(StackTraceCollector)
  • added: constructor JsonlCollector(sample_interval_usec: int, *, skip_idle: bool=…, mode: int | None=…) -> None
  • added: method JsonlCollector.collect(stack_frames: Sequence[InterpreterInfo] | Sequence[AwaitedInfo], timestamps_us: _Timestamps=…) -> None
  • added: method JsonlCollector.export(filename: StrOrBytesPath) -> None
  • added: method JsonlCollector.process_frames(frames: Sequence[_Frame], _thread_id: int, weight: int=…) -> None
  • added: class PstatsCollector(Collector)
  • added: constructor PstatsCollector(sample_interval_usec: int, *, skip_idle: bool=…) -> None
  • added: method PstatsCollector.collect(stack_frames: Sequence[InterpreterInfo] | Sequence[AwaitedInfo], timestamps_us: _Timestamps=…) -> None
  • added: method PstatsCollector.create_stats() -> None
  • added: method PstatsCollector.export(filename: StrOrBytesPath) -> None
  • added: method PstatsCollector.print_stats(sort: int=…, limit: int | None=…, show_summary: bool=…, mode: int | None=…) -> None
  • added: class CollapsedStackCollector(StackTraceCollector)
  • added: class DiffFlamegraphCollector(FlamegraphCollector)
  • added: class FlamegraphCollector(StackTraceCollector)
  • added: class StackTraceCollector(Collector)
  • added: constructor CollapsedStackCollector(sample_interval_usec: int, *, skip_idle: bool=…) -> None
  • added: constructor DiffFlamegraphCollector(sample_interval_usec: int, *, baseline_binary_path: StrOrBytesPath, skip_idle: bool=…) -> None
  • added: constructor FlamegraphCollector(sample_interval_usec: int, *, skip_idle: bool=…) -> None
  • added: constructor StackTraceCollector(sample_interval_usec: int, *, skip_idle: bool=…) -> None
  • added: method CollapsedStackCollector.export(filename: StrOrBytesPath) -> None
  • added: method CollapsedStackCollector.process_frames(frames: Sequence[_Frame], thread_id: int, weight: int=…) -> None
  • added: method FlamegraphCollector.collect(stack_frames: Sequence[InterpreterInfo] | Sequence[AwaitedInfo], timestamps_us: _Timestamps=…) -> None
  • added: method FlamegraphCollector.export(filename: StrOrBytesPath) -> None
  • added: method FlamegraphCollector.process_frames(frames: Sequence[_Frame], thread_id: int, weight: int=…) -> None
  • added: method FlamegraphCollector.set_replay_stats(info: SupportsGet[str, float | None]) -> None
  • added: method FlamegraphCollector.set_stats(sample_interval_usec: int, duration_sec: float, sample_rate: float, error_rate: float | None=…, missed_samples: float | None=…, mode: int | None=…) -> None
  • added: method StackTraceCollector.collect(stack_frames: Sequence[InterpreterInfo] | Sequence[AwaitedInfo], timestamps_us: _Timestamps=…) -> None
  • added: method StackTraceCollector.process_frames(frames: Sequence[_Frame], thread_id: int, weight: int=…) -> None
  • added: class StringTable
  • added: method StringTable.get_string(index: int) -> str
  • added: method StringTable.get_strings() -> list[str]
  • added: method StringTable.intern(string: object) -> int
  • added: export Profile
  • added: export run
  • added: export runctx
  • added: method Stats.print_call_subheading(name_size: int) -> None
  • changed: function main(args: list[str] | None=…) -> int → function main() -> None
  • changed: constructor Class(module: str, name: str, super: list[Class | str] | None, file: str, lineno: int, parent: Class | None=…) -> None → constructor Class(module: str, name: str, super_: list[Class | str] | None, file: str, lineno: int, parent: Class | None=…, *, end_lineno: int | None=…) -> None
  • changed: constructor Function(module: str, name: str, file: str, lineno: int, parent: Function | Class | None=…) -> None → constructor Function(module: str, name: str, file: str, lineno: int, parent: Function | Class | None=…, is_async: bool=…, *, end_lineno: int | None=…) -> None
  • added: method XMLParserType.SetBillionLaughsAttackProtectionActivationThreshold(threshold: int, /) -> None
  • added: method XMLParserType.SetBillionLaughsAttackProtectionMaximumAmplification(max_factor: float, /) -> None
  • changed: method SystemRandom.getstate(*args: Any, **kwds: Any) -> NoReturn → method SystemRandom.getstate(*args: Any, **kwds: Any) -> Never
  • changed: method SystemRandom.setstate(*args: Any, **kwds: Any) -> NoReturn → method SystemRandom.setstate(*args: Any, **kwds: Any) -> Never
  • added: field Pattern.prefixmatch
  • added: function prefixmatch(pattern: str | Pattern[str], string: str, flags: _FlagsType=…) -> Match[str] | None | (pattern: bytes | Pattern[bytes], string: ReadableBuffer, flags: _FlagsType=…) -> Match[bytes] | None
  • added: variable RLIMIT_NTHR: Final[int]
  • added: variable RLIMIT_PIPEBUF: Final[int]
  • added: variable RLIMIT_THREADS: Final[int]
  • added: variable RLIMIT_UMTXP: Final[int]
  • added: variable RLIM_SAVED_CUR: Final[int]
  • added: variable RLIM_SAVED_MAX: Final[int]
  • changed: field SelectorKey.events: _EventMask → field SelectorKey.events: int
  • changed: method BaseSelector.modify(fileobj: FileDescriptorLike, events: _EventMask, data: Any=…) -> SelectorKey → method BaseSelector.modify(fileobj: FileDescriptorLike, events: int, data: Any=…) -> SelectorKey
  • changed: method BaseSelector.register(fileobj: FileDescriptorLike, events: _EventMask, data: Any=…) -> SelectorKey → method BaseSelector.register(fileobj: FileDescriptorLike, events: int, data: Any=…) -> SelectorKey
  • changed: method BaseSelector.select(timeout: float | None=…) -> list[tuple[SelectorKey, _EventMask]] → method BaseSelector.select(timeout: float | None=…) -> list[tuple[SelectorKey, int]]
  • changed: method DefaultSelector.select(timeout: float | None=…) -> list[tuple[SelectorKey, _EventMask]] → method DefaultSelector.select(timeout: float | None=…) -> list[tuple[SelectorKey, int]]
  • changed: method KqueueSelector.select(timeout: float | None=…) -> list[tuple[SelectorKey, _EventMask]] → method KqueueSelector.select(timeout: float | None=…) -> list[tuple[SelectorKey, int]]
  • changed: method SelectSelector.select(timeout: float | None=…) -> list[tuple[SelectorKey, _EventMask]] → method SelectSelector.select(timeout: float | None=…) -> list[tuple[SelectorKey, int]]
  • added: class ShelveError(Exception)
  • added: method Shelf.reorganize() -> None
  • changed: function which(cmd: os.PathLike[str], mode: int=…, path: StrPath | None=…) -> NoReturn | (cmd: StrPath, mode: int=…, path: StrPath | None=…) -> str | None | (cmd: bytes, mode: int=…, path: StrPath | None=…) -> bytes | None → function which(cmd: os.PathLike[str], mode: int=…, path: StrPath | None=…) -> Never | (cmd: StrPath, mode: int=…, path: StrPath | None=…) -> str | None | (cmd: bytes, mode: int=…, path: StrPath | None=…) -> bytes | None
  • changed: function getsignal(signalnum: _SIGNUM, /) -> _HANDLER → function getsignal(signalnum: _SIGNUM) -> _HANDLER
  • changed: function pthread_sigmask(how: int, mask: Iterable[int], /) -> set[_SIGNUM] → function pthread_sigmask(how: int, mask: Iterable[int]) -> set[_SIGNUM]
  • changed: function signal(signalnum: _SIGNUM, handler: _HANDLER, /) -> _HANDLER → function signal(signalnum: _SIGNUM, handler: _HANDLER) -> _HANDLER
  • changed: function sigwait(sigset: Iterable[int], /) -> _SIGNUM → function sigwait(sigset: Iterable[int]) -> _SIGNUM
  • changed: function addsitepackages(known_paths: set[str] | None, prefixes: Iterable[str] | None=…) -> set[str] | None → function addsitepackages(known_paths: set[str], prefixes: Iterable[str] | None=…) -> set[str]
  • changed: function addusersitepackages(known_paths: set[str] | None) -> set[str] | None → function addusersitepackages(known_paths: set[str]) -> set[str]
  • added: class StartupState
  • added: constructor StartupState(known_paths: set[str] | None=…) -> None
  • added: method StartupState.addsitedir(sitedir: str) -> None
  • added: method StartupState.addsitepackages(prefixes: Iterable[str] | None=…) -> None
  • added: method StartupState.addusersitepackages() -> None
  • added: method StartupState.process() -> None
  • removed: class timeout(error)
  • changed: function getaddrinfo(host: bytes | str | None, port: bytes | str | int | None, family: int=…, type: int=…, proto: int=…, flags: int=…) -> list[tuple[AddressFamily, SocketKind, int, str, tuple[str, int] | tuple[str, int, int, int] | tuple[int, bytes]]] → function getaddrinfo(host: bytes | str | None, port: bytes | str | int | None, family: int=…, type: int=…, proto: int=…, flags: int=…) -> _GetAddrInfoResult
  • added: export CAN_ISOTP_CHK_PAD_DATA
  • added: export CAN_ISOTP_CHK_PAD_LEN
  • added: export CAN_ISOTP_DEFAULT_EXT_ADDRESS
  • added: export CAN_ISOTP_DEFAULT_FLAGS
  • added: export CAN_ISOTP_DEFAULT_FRAME_TXTIME
  • added: export CAN_ISOTP_DEFAULT_LL_MTU
  • added: export CAN_ISOTP_DEFAULT_LL_TX_DL
  • added: export CAN_ISOTP_DEFAULT_LL_TX_FLAGS
  • added: export CAN_ISOTP_DEFAULT_PAD_CONTENT
  • added: export CAN_ISOTP_DEFAULT_RECV_BS
  • added: export CAN_ISOTP_DEFAULT_RECV_STMIN
  • added: export CAN_ISOTP_DEFAULT_RECV_WFTMAX
  • added: export CAN_ISOTP_EXTEND_ADDR
  • added: export CAN_ISOTP_FORCE_RXSTMIN
  • added: export CAN_ISOTP_FORCE_TXSTMIN
  • added: export CAN_ISOTP_HALF_DUPLEX
  • added: export CAN_ISOTP_LISTEN_MODE
  • added: export CAN_ISOTP_LL_OPTS
  • added: export CAN_ISOTP_OPTS
  • added: export CAN_ISOTP_RECV_FC
  • added: export CAN_ISOTP_RX_EXT_ADDR
  • added: export CAN_ISOTP_RX_PADDING
  • added: export CAN_ISOTP_RX_STMIN
  • added: export CAN_ISOTP_SF_BROADCAST
  • added: export CAN_ISOTP_TX_PADDING
  • added: export CAN_ISOTP_TX_STMIN
  • added: export CAN_ISOTP_WAIT_TX_DONE
  • added: export IPV6_HDRINCL
  • added: export SOL_CAN_ISOTP
  • removed: property Connection.DataError -> type[DataError]
  • removed: property Connection.DatabaseError -> type[DatabaseError]
  • removed: property Connection.Error -> type[Error]
  • removed: property Connection.IntegrityError -> type[IntegrityError]
  • removed: property Connection.InterfaceError -> type[InterfaceError]
  • removed: property Connection.InternalError -> type[InternalError]
  • removed: property Connection.NotSupportedError -> type[NotSupportedError]
  • removed: property Connection.OperationalError -> type[OperationalError]
  • removed: property Connection.ProgrammingError -> type[ProgrammingError]
  • removed: property Connection.Warning -> type[Warning]
  • changed: method Connection.iterdump() -> Generator[str, None, None] → method Connection.iterdump() -> Generator[str]
  • added: property Connection.DataError -> type[_DataError]
  • added: property Connection.DatabaseError -> type[_DatabaseError]
  • added: property Connection.Error -> type[_Error]
  • added: property Connection.IntegrityError -> type[_IntegrityError]
  • added: property Connection.InterfaceError -> type[_InterfaceError]
  • added: property Connection.InternalError -> type[_InternalError]
  • added: property Connection.NotSupportedError -> type[_NotSupportedError]
  • added: property Connection.OperationalError -> type[_OperationalError]
  • added: property Connection.ProgrammingError -> type[_ProgrammingError]
  • added: property Connection.Warning -> type[_Warning]
  • changed: function get_server_certificate(addr: tuple[str, int], ssl_version: int=…, ca_certs: str | None=…) -> str → function get_server_certificate(addr: tuple[str, int], ssl_version: int=…, ca_certs: str | None=…, timeout: float=…) -> str
  • changed: method SSLObject.read(len: int=…, buffer: bytearray | None=…) -> bytes → method SSLObject.read(len: int=…, buffer: WriteableBuffer | None=…) -> bytes
  • changed: method SSLSocket.read(len: int=…, buffer: bytearray | None=…) -> bytes → method SSLSocket.read(len: int=…, buffer: WriteableBuffer | None=…) -> bytes
  • added: function get_sigalgs() -> list[str]
  • added: method SSLContext.get_groups(*, include_aliases: bool=…) -> list[str]
  • added: method SSLContext.set_ciphersuites(ciphersuites: str, /) -> None
  • added: method SSLContext.set_client_sigalgs(sigalgs: str, /) -> None
  • added: method SSLContext.set_groups(grouplist: str, /) -> None
  • added: method SSLContext.set_server_sigalgs(sigalgs: str, /) -> None
  • added: method SSLObject.client_sigalg() -> str | None
  • added: method SSLObject.group() -> str | None
  • added: method SSLObject.server_sigalg() -> str | None
  • added: method SSLSocket.client_sigalg() -> str | None
  • added: method SSLSocket.group() -> str | None
  • added: method SSLSocket.server_sigalg() -> str | None
  • added: variable STATX_ATTR_APPEND: Final
  • added: variable STATX_ATTR_AUTOMOUNT: Final
  • added: variable STATX_ATTR_COMPRESSED: Final
  • added: variable STATX_ATTR_DAX: Final
  • added: variable STATX_ATTR_ENCRYPTED: Final
  • added: variable STATX_ATTR_IMMUTABLE: Final
  • added: variable STATX_ATTR_MOUNT_ROOT: Final
  • added: variable STATX_ATTR_NODUMP: Final
  • added: variable STATX_ATTR_VERITY: Final
  • added: variable STATX_ATTR_WRITE_ATOMIC: Final
  • changed: function harmonic_mean(data: Iterable[_NumberT]) -> _NumberT → function harmonic_mean(data: Iterable[_NumberT], weights: Iterable[_Number] | None=…) -> _NumberT
  • changed: class Interpolation → class Interpolation(Generic[_T])
  • changed: field Interpolation.value: Any → field Interpolation.value: _T
  • changed: field Template.interpolations: tuple[Interpolation, ...] → field Template.interpolations: tuple[Interpolation[Any], ...]
  • changed: function check_output(args: _CMD, bufsize: int=…, executable: StrOrBytesPath | None=…, stdin: _FILE=…, stderr: _FILE=…, preexec_fn: Callable[[], object] | None=…, close_fds: bool=…, shell: bool=…, cwd: StrOrBytesPath | None=…, env: _ENV | None=…, universal_newlines: bool | None=…, startupinfo: Any=…, creationflags: int=…, restore_signals: bool=…, start_new_session: bool=…, pass_fds: Collection[in… → function check_output(args: _CMD, bufsize: int=…, executable: StrOrBytesPath | None=…, stdin: _FILE=…, stderr: _FILE=…, preexec_fn: Callable[[], object] | None=…, close_fds: bool=…, shell: bool=…, cwd: StrOrBytesPath | None=…, env: _ENV | None=…, universal_newlines: Literal[True] | None=…, startupinfo: Any=…, creationflags: int=…, restore_signals: bool=…, start_new_session: bool=…, pass_fds: Coll…
  • changed: function run(args: _CMD, bufsize: int=…, executable: StrOrBytesPath | None=…, stdin: _FILE=…, stdout: _FILE=…, stderr: _FILE=…, preexec_fn: Callable[[], object] | None=…, close_fds: bool=…, shell: bool=…, cwd: StrOrBytesPath | None=…, env: _ENV | None=…, universal_newlines: bool | None=…, startupinfo: Any=…, creationflags: int=…, restore_signals: bool=…, start_new_session: bool=…, pass_fds: Colle… → function run(args: _CMD, bufsize: int=…, executable: StrOrBytesPath | None=…, stdin: _FILE=…, stdout: _FILE=…, stderr: _FILE=…, preexec_fn: Callable[[], object] | None=…, close_fds: bool=…, shell: bool=…, cwd: StrOrBytesPath | None=…, env: _ENV | None=…, universal_newlines: Literal[True] | None=…, startupinfo: Any=…, creationflags: int=…, restore_signals: bool=…, start_new_session: bool=…, pass_f…
  • changed: method Au_read.getmark(id: Any) -> NoReturn → method Au_read.getmark(id: Any) -> Never
  • removed: variable and_expr: Final[int]
  • removed: variable and_test: Final[int]
  • removed: variable annassign: Final[int]
  • removed: variable arglist: Final[int]
  • removed: variable argument: Final[int]
  • removed: variable arith_expr: Final[int]
  • removed: variable assert_stmt: Final[int]
  • removed: variable async_funcdef: Final[int]
  • removed: variable async_stmt: Final[int]
  • removed: variable atom: Final[int]
  • removed: variable atom_expr: Final[int]
  • removed: variable augassign: Final[int]
  • removed: variable break_stmt: Final[int]
  • removed: variable classdef: Final[int]
  • removed: variable comp_for: Final[int]
  • removed: variable comp_if: Final[int]
  • removed: variable comp_iter: Final[int]
  • removed: variable comp_op: Final[int]
  • removed: variable comparison: Final[int]
  • removed: variable compound_stmt: Final[int]
  • removed: variable continue_stmt: Final[int]
  • removed: variable decorated: Final[int]
  • removed: variable decorator: Final[int]
  • removed: variable decorators: Final[int]
  • removed: variable del_stmt: Final[int]
  • removed: variable dictorsetmaker: Final[int]
  • removed: variable dotted_as_name: Final[int]
  • removed: variable dotted_as_names: Final[int]
  • removed: variable dotted_name: Final[int]
  • removed: variable encoding_decl: Final[int]
  • removed: variable eval_input: Final[int]
  • removed: variable except_clause: Final[int]
  • removed: variable expr: Final[int]
  • removed: variable expr_stmt: Final[int]
  • removed: variable exprlist: Final[int]
  • removed: variable factor: Final[int]
  • removed: variable file_input: Final[int]
  • removed: variable flow_stmt: Final[int]
  • removed: variable for_stmt: Final[int]
  • removed: variable func_body_suite: Final[int]
  • removed: variable func_type: Final[int]
  • removed: variable func_type_input: Final[int]
  • removed: variable funcdef: Final[int]
  • removed: variable global_stmt: Final[int]
  • removed: variable if_stmt: Final[int]
  • removed: variable import_as_name: Final[int]
  • removed: variable import_as_names: Final[int]
  • removed: variable import_from: Final[int]
  • removed: variable import_name: Final[int]
  • removed: variable import_stmt: Final[int]
  • removed: variable lambdef: Final[int]
  • removed: variable lambdef_nocond: Final[int]
  • removed: variable namedexpr_test: Final[int]
  • removed: variable nonlocal_stmt: Final[int]
  • removed: variable not_test: Final[int]
  • removed: variable or_test: Final[int]
  • removed: variable parameters: Final[int]
  • removed: variable pass_stmt: Final[int]
  • removed: variable power: Final[int]
  • removed: variable raise_stmt: Final[int]
  • removed: variable return_stmt: Final[int]
  • removed: variable shift_expr: Final[int]
  • removed: variable simple_stmt: Final[int]
  • removed: variable single_input: Final[int]
  • removed: variable sliceop: Final[int]
  • removed: variable small_stmt: Final[int]
  • removed: variable star_expr: Final[int]
  • removed: variable stmt: Final[int]
  • removed: variable subscript: Final[int]
  • removed: variable subscriptlist: Final[int]
  • removed: variable suite: Final[int]
  • removed: variable sym_name: Final[dict[int, str]]
  • removed: variable sync_comp_for: Final[int]
  • removed: variable term: Final[int]
  • removed: variable test: Final[int]
  • removed: variable test_nocond: Final[int]
  • removed: variable testlist: Final[int]
  • removed: variable testlist_comp: Final[int]
  • removed: variable testlist_star_expr: Final[int]
  • removed: variable tfpdef: Final[int]
  • removed: variable trailer: Final[int]
  • removed: variable try_stmt: Final[int]
  • removed: variable typedargslist: Final[int]
  • removed: variable typelist: Final[int]
  • removed: variable varargslist: Final[int]
  • removed: variable vfpdef: Final[int]
  • removed: variable while_stmt: Final[int]
  • removed: variable with_item: Final[int]
  • removed: variable with_stmt: Final[int]
  • removed: variable xor_expr: Final[int]
  • removed: variable yield_arg: Final[int]
  • removed: variable yield_expr: Final[int]
  • removed: variable yield_stmt: Final[int]
  • added: method Function.get_cells() -> tuple[str, ...]
  • added: method Symbol.is_cell() -> bool
  • changed: function activate_stack_trampoline(backend: str, /) -> NoReturn → function activate_stack_trampoline(backend: str, /) -> Never
  • changed: function exit(status: _ExitCode=…, /) -> NoReturn → function exit(status: _ExitCode=…, /) -> Never
  • added: function get_lazy_imports() -> _LazyImportMode
  • added: function get_lazy_imports_filter() -> _LazyImportFilter | None
  • added: function set_lazy_imports(mode: _LazyImportMode) -> None
  • added: function set_lazy_imports_filter(filter: _LazyImportFilter | None) -> None
  • added: variable abi_info: _AbiInfo
  • added: variable lazy_modules: set[str]
  • removed: field TarInfo.path: str
  • removed: field TarInfo.tarfile: TarFile | None
  • changed: function is_tarfile(name: StrOrBytesPath | IO[bytes]) -> bool → function is_tarfile(name: FileDescriptorOrPath | IO[bytes]) -> bool
  • added: property TarInfo.path -> str
  • added: class serialize_iterator(Iterator[_T])
  • added: constructor serialize_iterator(iterable: Iterable[_T]) -> None
  • added: function concurrent_tee(iterable: Iterable[_T], n: int=…) -> tuple[Iterator[_T], ...]
  • added: function synchronized_iterator(func: Callable[..., Iterable[_T]]) -> Callable[..., Iterator[_T]]
  • added: method serialize_iterator.close() -> None
  • added: method serialize_iterator.send(value: Any, /) -> _T
  • added: method serialize_iterator.throw(typ: type[BaseException], val: BaseException | object=…, tb: TracebackType | None=…) -> _T
  • changed: constructor OptionMenu(master: Misc | None, variable: StringVar, value: str, *values: str, command: Callable[[StringVar], object] | None=…) -> None → constructor OptionMenu(master: Misc | None, variable: StringVar, value: str, *values: str, command: Callable[[str], object] | None=…) -> None
  • changed: method Canvas.canvasx(screenx, gridspacing=…) → method Canvas.canvasx(screenx: float | str, gridspacing: float | str | None=…) -> float
  • changed: method Canvas.canvasy(screeny, gridspacing=…) → method Canvas.canvasy(screeny: float | str, gridspacing: float | str | None=…) -> float
  • added: field Event.detail: str
  • added: field Event.user_data: str
  • added: field Misc.config
  • added: field Misc.content
  • added: method Misc.grid_content(row: int | None=…, column: int | None=…) -> list[Widget]
  • added: method Misc.pack_content() -> list[Widget]
  • added: method Misc.place_content() -> list[Widget]
  • added: method Text.search_all(pattern: str, index: str | float | _tkinter.Tcl_Obj | Widget, stopindex: str | float | _tkinter.Tcl_Obj | Widget | None=…, *, forwards: bool | None=…, backwards: bool | None=…, exact: bool | None=…, regexp: bool | None=…, nocase: bool | None=…, count: Variable | None=…, elide: bool | None=…, nolinestop: bool | None=…, overlap: bool | None=…, strictlimits: bool | None=…) ->…
  • changed: function nametofont(name: str) -> Font → function nametofont(name: str, root: tkinter.Misc | None=…) -> Font
  • changed: constructor Combobox(master: tkinter.Misc | None=…, *, background: str=…, class_: str=…, cursor: tkinter._Cursor=…, exportselection: bool=…, font: _FontDescription=…, foreground: str=…, height: int=…, invalidcommand: str | list[str] | tuple[str, ...] | Callable[[], bool]=…, justify: Literal['left', 'center', 'right']=…, name: str=…, postcommand: Callable[[], object] | str=…, show=…, state: str=…,… → constructor Combobox(master: tkinter.Misc | None=…, *, background: str=…, class_: str=…, cursor: tkinter._Cursor=…, exportselection: bool=…, font: _FontDescription=…, foreground: str=…, height: int=…, invalidcommand: str | list[str] | tuple[str, ...] | Callable[[], object]=…, justify: Literal['left', 'center', 'right']=…, name: str=…, postcommand: Callable[[], object] | str=…, show=…, state: str=…
  • changed: constructor Entry(master: tkinter.Misc | None=…, widget: str | None=…, *, background: str=…, class_: str=…, cursor: tkinter._Cursor=…, exportselection: bool=…, font: _FontDescription=…, foreground: str=…, invalidcommand: str | list[str] | tuple[str, ...] | Callable[[], bool]=…, justify: Literal['left', 'center', 'right']=…, name: str=…, show: str=…, state: str=…, style: str=…, takefocus: bool | L… → constructor Entry(master: tkinter.Misc | None=…, widget: str | None=…, *, background: str=…, class_: str=…, cursor: tkinter._Cursor=…, exportselection: bool=…, font: _FontDescription=…, foreground: str=…, invalidcommand: str | list[str] | tuple[str, ...] | Callable[[], object]=…, justify: Literal['left', 'center', 'right']=…, name: str=…, show: str=…, state: str=…, style: str=…, takefocus: bool |…
  • changed: constructor Spinbox(master: tkinter.Misc | None=…, *, background: str=…, class_: str=…, command: Callable[[], object] | str | list[str] | tuple[str, ...]=…, cursor: tkinter._Cursor=…, exportselection: bool=…, font: _FontDescription=…, foreground: str=…, format: str=…, from_: float=…, increment: float=…, invalidcommand: str | list[str] | tuple[str, ...] | Callable[[], bool]=…, justify: Literal['le… → constructor Spinbox(master: tkinter.Misc | None=…, *, background: str=…, class_: str=…, command: Callable[[], object] | str | list[str] | tuple[str, ...]=…, cursor: tkinter._Cursor=…, exportselection: bool=…, font: _FontDescription=…, foreground: str=…, format: str=…, from_: float=…, increment: float=…, invalidcommand: str | list[str] | tuple[str, ...] | Callable[[], object]=…, justify: Literal['…
  • changed: method Combobox.config(cnf: dict[str, Any] | None=…, *, background: str=…, cursor: tkinter._Cursor=…, exportselection: bool=…, font: _FontDescription=…, foreground: str=…, height: int=…, invalidcommand: str | list[str] | tuple[str, ...] | Callable[[], bool]=…, justify: Literal['left', 'center', 'right']=…, postcommand: Callable[[], object] | str=…, show=…, state: str=…, style: str=…, takefocus: b… → method Combobox.config(cnf: dict[str, Any] | None=…, *, background: str=…, cursor: tkinter._Cursor=…, exportselection: bool=…, font: _FontDescription=…, foreground: str=…, height: int=…, invalidcommand: str | list[str] | tuple[str, ...] | Callable[[], object]=…, justify: Literal['left', 'center', 'right']=…, postcommand: Callable[[], object] | str=…, show=…, state: str=…, style: str=…, takefocus:…
  • changed: method Combobox.configure(cnf: dict[str, Any] | None=…, *, background: str=…, cursor: tkinter._Cursor=…, exportselection: bool=…, font: _FontDescription=…, foreground: str=…, height: int=…, invalidcommand: str | list[str] | tuple[str, ...] | Callable[[], bool]=…, justify: Literal['left', 'center', 'right']=…, postcommand: Callable[[], object] | str=…, show=…, state: str=…, style: str=…, takefocus… → method Combobox.configure(cnf: dict[str, Any] | None=…, *, background: str=…, cursor: tkinter._Cursor=…, exportselection: bool=…, font: _FontDescription=…, foreground: str=…, height: int=…, invalidcommand: str | list[str] | tuple[str, ...] | Callable[[], object]=…, justify: Literal['left', 'center', 'right']=…, postcommand: Callable[[], object] | str=…, show=…, state: str=…, style: str=…, takefoc…
  • changed: method Entry.config(cnf: dict[str, Any] | None=…, *, background: str=…, cursor: tkinter._Cursor=…, exportselection: bool=…, font: _FontDescription=…, foreground: str=…, invalidcommand: str | list[str] | tuple[str, ...] | Callable[[], bool]=…, justify: Literal['left', 'center', 'right']=…, show: str=…, state: str=…, style: str=…, takefocus: bool | Literal[0, 1, ''] | Callable[[str], bool | None]=…… → method Entry.config(cnf: dict[str, Any] | None=…, *, background: str=…, cursor: tkinter._Cursor=…, exportselection: bool=…, font: _FontDescription=…, foreground: str=…, invalidcommand: str | list[str] | tuple[str, ...] | Callable[[], object]=…, justify: Literal['left', 'center', 'right']=…, show: str=…, state: str=…, style: str=…, takefocus: bool | Literal[0, 1, ''] | Callable[[str], bool | None]…
  • changed: method Entry.configure(cnf: dict[str, Any] | None=…, *, background: str=…, cursor: tkinter._Cursor=…, exportselection: bool=…, font: _FontDescription=…, foreground: str=…, invalidcommand: str | list[str] | tuple[str, ...] | Callable[[], bool]=…, justify: Literal['left', 'center', 'right']=…, show: str=…, state: str=…, style: str=…, takefocus: bool | Literal[0, 1, ''] | Callable[[str], bool | None… → method Entry.configure(cnf: dict[str, Any] | None=…, *, background: str=…, cursor: tkinter._Cursor=…, exportselection: bool=…, font: _FontDescription=…, foreground: str=…, invalidcommand: str | list[str] | tuple[str, ...] | Callable[[], object]=…, justify: Literal['left', 'center', 'right']=…, show: str=…, state: str=…, style: str=…, takefocus: bool | Literal[0, 1, ''] | Callable[[str], bool | No…
  • changed: method Spinbox.configure(cnf: dict[str, Any] | None=…, *, background: str=…, command: Callable[[], object] | str | list[str] | tuple[str, ...]=…, cursor: tkinter._Cursor=…, exportselection: bool=…, font: _FontDescription=…, foreground: str=…, format: str=…, from_: float=…, increment: float=…, invalidcommand: str | list[str] | tuple[str, ...] | Callable[[], bool]=…, justify: Literal['left', 'cente… → method Spinbox.configure(cnf: dict[str, Any] | None=…, *, background: str=…, command: Callable[[], object] | str | list[str] | tuple[str, ...]=…, cursor: tkinter._Cursor=…, exportselection: bool=…, font: _FontDescription=…, foreground: str=…, format: str=…, from_: float=…, increment: float=…, invalidcommand: str | list[str] | tuple[str, ...] | Callable[[], object]=…, justify: Literal['left', 'cen…
  • changed: function generate_tokens(readline: Callable[[], str]) -> Generator[TokenInfo, None, None] → function generate_tokens(readline: Callable[[], str]) -> Generator[TokenInfo]
  • changed: function tokenize(readline: Callable[[], bytes | bytearray]) -> Generator[TokenInfo, None, None] → function tokenize(readline: Callable[[], bytes | bytearray]) -> Generator[TokenInfo]
  • changed: constructor TracebackException(exc_type: type[BaseException], exc_value: BaseException, exc_traceback: TracebackType | None, *, limit: int | None=…, lookup_lines: bool=…, capture_locals: bool=…, _seen: set[int] | None=…) -> None → constructor TracebackException(exc_type: type[BaseException], exc_value: BaseException, exc_traceback: TracebackType | None, *, limit: int | None=…, lookup_lines: bool=…, capture_locals: bool=…, compact: bool=…, _seen: set[int] | None=…) -> None
  • changed: method TracebackException.format(*, chain: bool=…) -> Generator[str, None, None] → method TracebackException.format(*, chain: bool=…) -> Generator[str]
  • changed: method TracebackException.format_exception_only() -> Generator[str, None, None] → method TracebackException.format_exception_only() -> Generator[str]
  • changed: static method TracebackException.from_exception(exc: BaseException, *, limit: int | None=…, lookup_lines: bool=…, capture_locals: bool=…) -> Self → static method TracebackException.from_exception(exc: BaseException, *, limit: int | None=…, lookup_lines: bool=…, capture_locals: bool=…, compact: bool=…) -> Self
  • removed: property FrameType.f_locals -> dict[str, Any]
  • changed: method CodeType.replace(*, co_argcount: int=…, co_posonlyargcount: int=…, co_kwonlyargcount: int=…, co_nlocals: int=…, co_stacksize: int=…, co_flags: int=…, co_firstlineno: int=…, co_code: bytes=…, co_consts: tuple[object, ...]=…, co_names: tuple[str, ...]=…, co_varnames: tuple[str, ...]=…, co_freevars: tuple[str, ...]=…, co_cellvars: tuple[str, ...]=…, co_filename: str=…, co_name: str=…, co_lnot… → method CodeType.replace(*, co_argcount: int=…, co_posonlyargcount: int=…, co_kwonlyargcount: int=…, co_nlocals: int=…, co_stacksize: int=…, co_flags: int=…, co_firstlineno: int=…, co_code: bytes=…, co_consts: tuple[object, ...]=…, co_names: tuple[str, ...]=…, co_varnames: tuple[str, ...]=…, co_freevars: tuple[str, ...]=…, co_cellvars: tuple[str, ...]=…, co_filename: str=…, co_name: str=…, co_line…
  • added: class FrameLocalsProxyType(MutableMapping[str, Any])
  • added: class LazyImportType
  • added: method FrameLocalsProxyType.copy() -> dict[str, Any]
  • added: method FrameLocalsProxyType.pop(key: str, default: Any=…, /) -> Any
  • added: method FrameLocalsProxyType.setdefault(key: str, default: Any=…, /) -> Any
  • added: method FrameLocalsProxyType.update(object: SupportsKeysAndGetItem[str, Any] | Iterable[tuple[str, Any]], /) -> None
  • added: method LazyImportType.resolve() -> Any
  • added: property AsyncGeneratorType.ag_state -> Literal['AGEN_CREATED', 'AGEN_SUSPENDED', 'AGEN_RUNNING', 'AGEN_CLOSED']
  • added: property CoroutineType.cr_state -> Literal['CORO_CREATED', 'CORO_SUSPENDED', 'CORO_RUNNING', 'CORO_CLOSED']
  • added: property FrameType.f_locals -> FrameLocalsProxyType | dict[str, Any]
  • added: property GeneratorType.gi_state -> Literal['GEN_CREATED', 'GEN_SUSPENDED', 'GEN_RUNNING', 'GEN_CLOSED']
  • removed: function NewType(name: str, tp: Any) -> Any
  • changed: class Coroutine(Awaitable[_ReturnT_nd_co], Generic[_YieldT_co, _SendT_nd_contra, _ReturnT_nd_co]) → class Coroutine(Awaitable[_ReturnT_nd_co], Protocol[_YieldT_co, _SendT_nd_contra, _ReturnT_nd_co])
  • changed: variable Protocol: _SpecialForm → variable Protocol: type[_Protocol]
  • added: function disjoint_base(cls: _TC) -> _TC
  • added: variable NoExtraItems: _NoExtraItemsType
  • added: variable TypeForm: _SpecialForm
  • removed: class ParamSpecArgs
  • removed: class ParamSpecKwargs
  • removed: class Sentinel
  • removed: constructor ParamSpecArgs(origin: ParamSpec) -> None
  • removed: constructor ParamSpecKwargs(origin: ParamSpec) -> None
  • removed: constructor Sentinel(name: str, repr: str | None=…) -> None
  • removed: export TypedDict
  • removed: export no_type_check_decorator
  • removed: function is_typeddict(tp: object) -> bool
  • removed: variable Concatenate: _SpecialForm
  • removed: variable TypeAlias: _SpecialForm
  • removed: variable TypeGuard: _SpecialForm
  • changed: constructor TypeVarTuple(name: str, *, default: AnnotationForm=…) -> None → constructor TypeVarTuple(name: str, *, bound: AnnotationForm | None=…, covariant: bool=…, contravariant: bool=…, infer_variance: bool=…, default: AnnotationForm=…) -> None
  • changed: function final(f: _F) -> _F → function final(f: _T) -> _T
  • changed: variable Protocol: _SpecialForm → variable Protocol: type[_Protocol]
  • added: class sentinel
  • added: constructor sentinel(name: str, /, *, repr: str | None=…) -> None
  • added: export sentinel
  • added: function no_type_check_decorator(decorator: _F) -> _F
  • added: property TypeVarTuple.evaluate_default -> EvaluateFunc | None
  • added: variable Sentinel
  • added: variable TypedDict: _SpecialForm
  • removed: variable ucnhash_CAPI: Any
  • added: function block(chr: str, /) -> str
  • added: function extended_pictographic(chr: str, /) -> bool
  • added: function grapheme_cluster_break(chr: str, /) -> str
  • added: function indic_conjunct_break(chr: str, /) -> str
  • added: function isxidcontinue(chr: str, /) -> bool
  • added: function isxidstart(chr: str, /) -> bool
  • added: function iter_graphemes(unistr: str, start: int=…, end: int=…, /) -> Iterator[str]
  • changed: constructor SkipTest(reason: str) -> None → constructor SkipTest(reason: str, /) -> None
  • changed: method TestCase.fail(msg: Any=…) -> NoReturn → method TestCase.fail(msg: Any=…) -> Never
  • changed: method TestCase.skipTest(reason: Any) -> NoReturn → method TestCase.skipTest(reason: Any) -> Never
  • changed: field TestProgram.module: None | str | ModuleType → field TestProgram.module: ModuleType | None
  • changed: function create_autospec(spec: Any, spec_set: Any=…, instance: Any=…, _parent: Any | None=…, _name: Any | None=…, **kwargs: Any) -> Any → function create_autospec(spec: Any, spec_set: Any=…, instance: Any=…, _parent: Any | None=…, _name: Any | None=…, *, unsafe: bool=…, **kwargs: Any) -> Any
  • changed: class DefragResult(_DefragResultBase[str], _ResultMixinStr) → class DefragResult(_DefragResultBase[str, _StrComponentT], _ResultMixinStr, Generic[_StrComponentT])
  • changed: class DefragResultBytes(_DefragResultBase[bytes], _ResultMixinBytes) → class DefragResultBytes(_DefragResultBase[bytes, _BytesComponentT], _ResultMixinBytes, Generic[_BytesComponentT])
  • changed: class ParseResult(_ParseResultBase[str], _NetlocResultMixinStr) → class ParseResult(_ParseResultBase[str, _StrComponentT], _NetlocResultMixinStr, Generic[_StrComponentT])
  • changed: class ParseResultBytes(_ParseResultBase[bytes], _NetlocResultMixinBytes) → class ParseResultBytes(_ParseResultBase[bytes, _BytesComponentT], _NetlocResultMixinBytes, Generic[_BytesComponentT])
  • changed: class SplitResult(_SplitResultBase[str], _NetlocResultMixinStr) → class SplitResult(_SplitResultBase[str, _StrComponentT], _NetlocResultMixinStr, Generic[_StrComponentT])
  • changed: class SplitResultBytes(_SplitResultBase[bytes], _NetlocResultMixinBytes) → class SplitResultBytes(_SplitResultBase[bytes, _BytesComponentT], _NetlocResultMixinBytes, Generic[_BytesComponentT])
  • changed: function urldefrag(url: str) -> DefragResult | (url: bytes | bytearray | None) -> DefragResultBytes → function urldefrag(url: str) -> DefragResult | (url: bytes | bytearray | None) -> DefragResultBytes | (url: str, *, missing_as_none: Literal[True]) -> DefragResult[str | None] | (url: str, *, missing_as_none: Literal[False]=…) -> DefragResult[str] | (url: bytes | bytearray | None, *, missing_as_none: Literal[True]) -> DefragResultBytes[bytes | None] | (url: bytes | bytearray | None, *, missing_as…
  • changed: function urlparse(url: str, scheme: str=…, allow_fragments: bool=…) -> ParseResult | (url: bytes | bytearray | None, scheme: bytes | bytearray | None | Literal['']=…, allow_fragments: bool=…) -> ParseResultBytes → function urlparse(url: str, scheme: str=…, allow_fragments: bool=…) -> ParseResult | (url: bytes | bytearray | None, scheme: bytes | bytearray | None | Literal['']=…, allow_fragments: bool=…) -> ParseResultBytes | (url: str, scheme: str=…, allow_fragments: bool=…, *, missing_as_none: Literal[True]) -> ParseResult[str | None] | (url: str, scheme: str=…, allow_fragments: bool=…, *, missing_as_none:…
  • changed: function urlsplit(url: str, scheme: str=…, allow_fragments: bool=…) -> SplitResult | (url: bytes | None, scheme: bytes | None | Literal['']=…, allow_fragments: bool=…) -> SplitResultBytes | (url: bytes | bytearray | None, scheme: bytes | bytearray | None | Literal['']=…, allow_fragments: bool=…) -> SplitResultBytes → function urlsplit(url: str, scheme: str=…, allow_fragments: bool=…) -> SplitResult | (url: bytes | None, scheme: bytes | None | Literal['']=…, allow_fragments: bool=…) -> SplitResultBytes | (url: bytes | bytearray | None, scheme: bytes | bytearray | None | Literal['']=…, allow_fragments: bool=…) -> SplitResultBytes | (url: str, scheme: str=…, allow_fragments: bool=…, *, missing_as_none: Literal[T…
  • changed: function urlunparse(components: Iterable[None]) -> Literal[b''] | (components: Iterable[AnyStr | None]) -> AnyStr → function urlunparse(components: Iterable[None], *, keep_empty: bool=…) -> Literal[b''] | (components: Iterable[AnyStr | None], *, keep_empty: bool=…) -> AnyStr | (components: Iterable[None]) -> Literal[b''] | (components: Iterable[AnyStr | None]) -> AnyStr
  • changed: function urlunsplit(components: Iterable[None]) -> Literal[b''] | (components: Iterable[AnyStr | None]) -> AnyStr → function urlunsplit(components: Iterable[None], *, keep_empty: bool=…) -> Literal[b''] | (components: Iterable[AnyStr | None], *, keep_empty: bool=…) -> AnyStr | (components: Iterable[None]) -> Literal[b''] | (components: Iterable[AnyStr | None]) -> AnyStr
  • added: class DefragResult(_DefragResultBase[str, str], _ResultMixinStr)
  • added: class DefragResultBytes(_DefragResultBase[bytes, bytes], _ResultMixinBytes)
  • added: class ParseResult(_ParseResultBase[str, str], _NetlocResultMixinStr)
  • added: class ParseResultBytes(_ParseResultBase[bytes, bytes], _NetlocResultMixinBytes)
  • added: class SplitResult(_SplitResultBase[str, str], _NetlocResultMixinStr)
  • added: class SplitResultBytes(_SplitResultBase[bytes, bytes], _NetlocResultMixinBytes)
  • removed: export pathname2url
  • removed: export url2pathname
  • changed: constructor Request(url: str, data: _DataType=…, headers: MutableMapping[str, str]=…, origin_req_host: str | None=…, unverifiable: bool=…, method: str | None=…) -> None → constructor Request(url: str, data: _DataType=…, headers: SupportsItems[str, str]=…, origin_req_host: str | None=…, unverifiable: bool=…, method: str | None=…) -> None
  • changed: method UnknownHandler.unknown_open(req: Request) -> NoReturn → method UnknownHandler.unknown_open(req: Request) -> Never
  • changed: constructor catch_warnings(*, record: Literal[False]=…, module: ModuleType | None=…, action: _ActionKind | None=…, category: type[Warning]=…, lineno: int=…, append: bool=…) -> None | (*, record: Literal[True], module: ModuleType | None=…, action: _ActionKind | None=…, category: type[Warning]=…, lineno: int=…, append: bool=…) -> None | (*, record: bool, module: ModuleType | None=…, action: _Action… → constructor catch_warnings(*, record: Literal[False]=…, module: ModuleType | None=…, action: _ActionKind | None=…, category: type[Warning] | tuple[type[Warning], ...]=…, lineno: int=…, append: bool=…) -> None | (*, record: Literal[True], module: ModuleType | None=…, action: _ActionKind | None=…, category: type[Warning] | tuple[type[Warning], ...]=…, lineno: int=…, append: bool=…) -> None | (*, re…
  • changed: function simplefilter(action: _ActionKind, category: type[Warning]=…, lineno: int=…, append: bool=…) -> None → function simplefilter(action: _ActionKind, category: type[Warning] | tuple[type[Warning], ...]=…, lineno: int=…, append: bool=…) -> None
  • changed: method Wave_read.getmark(id: Any) -> NoReturn → method Wave_read.getmark(id: Any) -> Never
  • changed: method Wave_write.getmark(id: Any) -> NoReturn → method Wave_write.getmark(id: Any) -> Never
  • changed: method Wave_write.setmark(id: Any, pos: Any, name: Any) -> NoReturn → method Wave_write.setmark(id: Any, pos: Any, name: Any) -> Never
  • added: method Wave_read.getformat() -> int
  • added: method Wave_write.getformat() -> int
  • added: method Wave_write.setformat(format: int) -> None
  • added: variable WAVE_FORMAT_EXTENSIBLE: Final
  • added: variable WAVE_FORMAT_IEEE_FLOAT: Final
  • added: variable WAVE_FORMAT_PCM: Final
  • removed: field finalize.atexit: bool
  • added: property finalize.atexit -> bool
  • added: function DeleteTree(key: _KeyType, sub_key: str | None=…, /) -> None
  • added: export is_valid_name
  • changed: method InternalSubsetExtractor.end_doctype_decl_handler() -> NoReturn → method InternalSubsetExtractor.end_doctype_decl_handler() -> Never
  • changed: method InternalSubsetExtractor.start_element_handler(name: str, attrs: list[str]) -> NoReturn → method InternalSubsetExtractor.start_element_handler(name: str, attrs: list[str]) -> Never
  • changed: method Childless.appendChild(node: _NodesThatAreChildren | DocumentFragment) -> NoReturn → method Childless.appendChild(node: _NodesThatAreChildren | DocumentFragment) -> Never
  • changed: method Childless.insertBefore(newChild: _NodesThatAreChildren | DocumentFragment, refChild: _NodesThatAreChildren | None) -> NoReturn → method Childless.insertBefore(newChild: _NodesThatAreChildren | DocumentFragment, refChild: _NodesThatAreChildren | None) -> Never
  • changed: method Childless.removeChild(oldChild: _NodesThatAreChildren) -> NoReturn → method Childless.removeChild(oldChild: _NodesThatAreChildren) -> Never
  • changed: method Childless.replaceChild(newChild: _NodesThatAreChildren | DocumentFragment, oldChild: _NodesThatAreChildren) -> NoReturn → method Childless.replaceChild(newChild: _NodesThatAreChildren | DocumentFragment, oldChild: _NodesThatAreChildren) -> Never
  • changed: method Entity.appendChild(newChild: _EntityChildren) -> NoReturn → method Entity.appendChild(newChild: _EntityChildren) -> Never
  • changed: method Entity.insertBefore(newChild: _EntityChildren, refChild: _EntityChildren | None) -> NoReturn → method Entity.insertBefore(newChild: _EntityChildren, refChild: _EntityChildren | None) -> Never
  • changed: method Entity.removeChild(oldChild: _EntityChildren) -> NoReturn → method Entity.removeChild(oldChild: _EntityChildren) -> Never
  • changed: method Entity.replaceChild(newChild: _EntityChildren, oldChild: _EntityChildren) -> NoReturn → method Entity.replaceChild(newChild: _EntityChildren, oldChild: _EntityChildren) -> Never
  • changed: method ReadOnlySequentialNamedNodeMap.removeNamedItem(name: str) -> NoReturn → method ReadOnlySequentialNamedNodeMap.removeNamedItem(name: str) -> Never
  • changed: method ReadOnlySequentialNamedNodeMap.removeNamedItemNS(namespaceURI: str | None, localName: str) -> NoReturn → method ReadOnlySequentialNamedNodeMap.removeNamedItemNS(namespaceURI: str | None, localName: str) -> Never
  • changed: method ReadOnlySequentialNamedNodeMap.setNamedItem(node: Node) -> NoReturn → method ReadOnlySequentialNamedNodeMap.setNamedItem(node: Node) -> Never
  • changed: method ReadOnlySequentialNamedNodeMap.setNamedItemNS(node: Node) -> NoReturn → method ReadOnlySequentialNamedNodeMap.setNamedItemNS(node: Node) -> Never
  • changed: method ErrorHandler.error(exception: BaseException) -> NoReturn → method ErrorHandler.error(exception: BaseException) -> Never
  • changed: method ErrorHandler.fatalError(exception: BaseException) -> NoReturn → method ErrorHandler.fatalError(exception: BaseException) -> Never
  • changed: method DOMBuilder.parseWithContext(input: DOMInputSource, cnode: Node, action: Literal[1, 2, 3, 4]) -> NoReturn → method DOMBuilder.parseWithContext(input: DOMInputSource, cnode: Node, action: Literal[1, 2, 3, 4]) -> Never
  • changed: function iterfind(elem: Element[Any], path: Literal[''], namespaces: dict[str, str] | None=…) -> None | (elem: Element[Any], path: str, namespaces: dict[str, str] | None=…) -> Generator[Element, None, None] → function iterfind(elem: Element[Any], path: Literal[''], namespaces: dict[str, str] | None=…) -> None | (elem: Element[Any], path: str, namespaces: dict[str, str] | None=…) -> Generator[Element]
  • changed: function xpath_tokenizer(pattern: str, namespaces: dict[str, str] | None=…) -> Generator[_Token, None, None] → function xpath_tokenizer(pattern: str, namespaces: dict[str, str] | None=…) -> Generator[_Token]
  • changed: class XMLPullParser(Generic[_E]) → class XMLPullParser(Generic[_EventT_co])
  • changed: constructor XMLPullParser(events: Sequence[str] | None=…, *, _parser: XMLParser[_E] | None=…) -> None → constructor XMLPullParser(events: Iterable[_EventType] | None=…, *, _parser: XMLParser[_EventT_co] | None=…) -> None
  • changed: function iterparse(source: _FileRead, events: Sequence[str] | None=…) -> _IterParseIterator | (source: _FileRead, events: Sequence[str] | None=…, parser: XMLParser | None=…) -> _IterParseIterator → function iterparse(source: _FileRead, events: Iterable[_EventType]) -> _IterParseIterator[Any] | (source: _FileRead, events: None=…) -> _IterParseIterator[Element[str]] | (source: _FileRead, events: Iterable[_EventType], parser: XMLParser | None=…) -> _IterParseIterator[Any]
  • changed: method Element.iter(tag: str | None=…) -> Generator[Element, None, None] → method Element.iter(tag: str | None=…) -> Generator[Element]
  • changed: method Element.iterfind(path: Literal[''], namespaces: dict[str, str] | None=…) -> None | (path: str, namespaces: dict[str, str] | None=…) -> Generator[Element, None, None] → method Element.iterfind(path: Literal[''], namespaces: dict[str, str] | None=…) -> None | (path: str, namespaces: dict[str, str] | None=…) -> Generator[Element]
  • changed: method Element.itertext() -> Generator[str, None, None] → method Element.itertext() -> Generator[str]
  • changed: method ElementTree.iter(tag: str | None=…) -> Generator[Element, None, None] → method ElementTree.iter(tag: str | None=…) -> Generator[Element]
  • changed: method ElementTree.iterfind(path: Literal[''], namespaces: dict[str, str] | None=…) -> None | (path: str, namespaces: dict[str, str] | None=…) -> Generator[Element, None, None] → method ElementTree.iterfind(path: Literal[''], namespaces: dict[str, str] | None=…) -> None | (path: str, namespaces: dict[str, str] | None=…) -> Generator[Element]
  • changed: method XMLPullParser.read_events() -> Iterator[_EventQueue | tuple[str, _E]] → method XMLPullParser.read_events() -> Iterator[_EventQueue | tuple[_EventType, _EventT_co]]
  • changed: method ErrorHandler.error(exception: BaseException) -> NoReturn → method ErrorHandler.error(exception: BaseException) -> Never
  • changed: method ErrorHandler.fatalError(exception: BaseException) -> NoReturn → method ErrorHandler.fatalError(exception: BaseException) -> Never
  • changed: method XMLFilterBase.error(exception: BaseException) -> NoReturn → method XMLFilterBase.error(exception: BaseException) -> Never
  • changed: method XMLFilterBase.fatalError(exception: BaseException) -> NoReturn → method XMLFilterBase.fatalError(exception: BaseException) -> Never
  • added: function is_valid_name(name: str) -> bool
  • added: function is_valid_text(data: str) -> bool
  • removed: class Null
  • removed: class error(Exception)
  • removed: function roj(b: Any, /) -> None
  • changed: function is_zipfile(filename: StrOrBytesPath | _SupportsReadSeekTell) -> bool → function is_zipfile(filename: FileDescriptorOrPath | _SupportsReadSeekTell) -> bool
  • changed: method Path.iterdir() -> Iterator[Path] → method Path.iterdir() -> Iterator[Self]
  • changed: method Path.joinpath(add: StrPath) -> Path → method Path.joinpath(*other: StrPath) -> Path
  • changed: method zipimporter.get_resource_reader(fullname: str) -> ResourceReader | None → method zipimporter.get_resource_reader(fullname: str) -> ZipReader | None
  • added: function adler32_combine(adler1: int, adler2: int, len2: int, /) -> int
  • added: function crc32_combine(crc1: int, crc2: int, len2: int, /) -> int
  • added: function extract_symbol(data: ReadBuffer, /) -> bytes
  • added: class Random
  • added: constructor Random(seed: i64 | None=…) -> None
  • added: function randint(a: i64, b: i64) -> i64
  • added: function random() -> float
  • added: function randrange(stop: i64, /) -> i64 | (start: i64, stop: i64, /) -> i64
  • added: function seed(n: i64, /) -> None
  • added: method Random.randint(a: i64, b: i64) -> i64
  • added: method Random.random() -> float
  • added: method Random.randrange(stop: i64, /) -> i64 | (start: i64, stop: i64, /) -> i64
  • added: method Random.seed(n: i64, /) -> None
  • added: function isalnum(c: i32, /) -> bool
  • added: function isalpha(c: i32, /) -> bool
  • added: function isdigit(c: i32, /) -> bool
  • added: function isidentifier(c: i32, /) -> bool
  • added: function isspace(c: i32, /) -> bool
  • added: function tolower(c: i32, /) -> i32
  • added: function toupper(c: i32, /) -> i32
  • added: class Lock
  • added: method Lock.acquire(blocking: bool=…) -> bool
  • added: method Lock.locked() -> bool
  • added: method Lock.release() -> None
  • changed: constructor vec() -> None | (items: Iterable[T], /) -> None → constructor vec(*, capacity: i64=…) -> None | (items: Iterable[T], /, *, capacity: i64=…) -> None
  • added: function extend(v: vec[T], o: Iterable[T], /) -> vec[T]
  • added: field TypeState.keep_unions: bool
  • added: function can_start_threads() -> bool
  • added: function get_available_threads() -> int
  • added: function hash_path_stem(s: str) -> int
  • added: variable PSUTIL_AVAILABLE
  • added: function analyze_live_regs_with_exception_edges(blocks: list[BasicBlock]) -> dict[BasicBlock, set[Value]]
  • changed: function build_single_module(sources: list[BuildSource], cfiles: list[str], extra_compile_args: list[str]) -> list[Extension] → function build_single_module(sources: list[BuildSource], cfiles: list[str], extra_compile_args: list[str], extra_include_dirs: list[str]) -> list[Extension]
  • changed: function build_using_shared_lib(sources: list[BuildSource], group_name: str, cfiles: list[str], deps: list[str], build_dir: str, extra_compile_args: list[str]) -> list[Extension] → function build_using_shared_lib(sources: list[BuildSource], group_name: str, cfiles: list[str], deps: list[str], build_dir: str, extra_compile_args: list[str], extra_include_dirs: list[str]) -> list[Extension]
  • changed: function get_header_deps(cfiles: list[tuple[str, str]]) -> list[str] → function get_header_deps(cfiles: list[tuple[str, str]]) -> list[tuple[bool, str]]
  • changed: function mypyc_build(paths: list[str], compiler_options: CompilerOptions, *, separate: bool | list[tuple[list[str], str | None]]=…, only_compile_paths: Iterable[str] | None=…, skip_cgen_input: tuple[list[list[tuple[str, str]]], list[str]] | None=…, always_use_shared_lib: bool=…) -> tuple[emitmodule.Groups, list[tuple[list[str], list[str]]], list[SourceDep]] → function mypyc_build(paths: list[str], compiler_options: CompilerOptions, *, separate: bool | list[tuple[list[str], str | None]]=…, only_compile_paths: Iterable[str] | None=…, skip_cgen_input: tuple[list[list[tuple[str, str]]], list[tuple[str, list[str], bool]]] | None=…, always_use_shared_lib: bool=…) -> tuple[emitmodule.Groups, list[tuple[list[str], list[str]]], list[SourceDep]]
  • changed: function mypycify(paths: list[str], *, only_compile_paths: Iterable[str] | None=…, verbose: bool=…, opt_level: str=…, debug_level: str=…, strip_asserts: bool=…, multi_file: bool=…, separate: bool | list[tuple[list[str], str | None]]=…, skip_cgen_input: tuple[list[list[tuple[str, str]]], list[str]] | None=…, target_dir: str | None=…, include_runtime_files: bool | None=…, strict_dunder_typing: bool… → function mypycify(paths: list[str], *, only_compile_paths: Iterable[str] | None=…, verbose: bool=…, opt_level: str=…, debug_level: str=…, strip_asserts: bool=…, multi_file: bool=…, separate: bool | list[tuple[list[str], str | None]]=…, skip_cgen_input: tuple[list[list[tuple[str, str]]], list[tuple[str, list[str], bool]]] | None=…, target_dir: str | None=…, include_runtime_files: bool | None=…, st…
  • added: function resolve_cfile_deps(cfile_dir: str, direct_includes: list[tuple[bool, str]], target_dir: str) -> set[str]
  • added: function stable_literal_repr(obj: object) -> str
  • added: method Emitter.emit_base_tp_function_call(derived_cl: ClassIR, tp_func: str, args: str, *, prefix: str=…) -> None
  • added: method Emitter.native_function_call(fn: FuncDecl) -> str
  • added: method Emitter.register_group_dep(cl: ClassIR) -> None
  • added: method Emitter.wrapper_function_call(fn: FuncDecl) -> str
  • added: variable VEC_MACRO_PREFIX: Final
  • changed: function generate_clear_for_class(cl: ClassIR, func_name: str, emitter: Emitter) -> None → function generate_clear_for_class(cl: ClassIR, func_decl: FuncDecl, emitter: Emitter, subtype_clear_name: str | None=…, skip_attrs: set[str] | None=…) -> None
  • added: function generate_subtype_clear_body(cl: ClassIR, emitter: Emitter, skip_attrs: set[str]) -> None
  • added: function generate_subtype_clear_for_class(cl: ClassIR, func_name: str, emitter: Emitter, skip_attrs: set[str] | None=…) -> None
  • changed: constructor FunctionEmitterVisitor(emitter: Emitter, declarations: Emitter, source_path: str, module_name: str) -> None → constructor FunctionEmitterVisitor(emitter: Emitter, declarations: Emitter, source_path: str, module_name: str, running_flag_class: ClassIR | None=…) -> None
  • changed: function generate_native_function(fn: FuncIR, emitter: Emitter, source_path: str, module_name: str) -> None → function generate_native_function(fn: FuncIR, emitter: Emitter, source_path: str, module_name: str, running_flag_class: ClassIR | None=…) -> None
  • changed: method FunctionEmitterVisitor.emit_attribute_error(op: Branch, class_name: str, attr: str) -> None → method FunctionEmitterVisitor.emit_attribute_error(op: Branch, class_name: str, source_attr_name: str) -> None
  • added: function native_function_type_from_decl(decl: FuncDecl, emitter: Emitter) -> str
  • added: method FunctionEmitterVisitor.emit_claim_running_flag(fn: FuncIR) -> None
  • added: method FunctionEmitterVisitor.emit_load_attr_take_ref(dest: str, obj: str, op: GetAttr, cl: ClassIR, attr_rtype: RType, attr_expr: str) -> bool
  • added: method FunctionEmitterVisitor.emit_release_running_flag() -> None
  • added: method FunctionEmitterVisitor.set_element_item(src_type: RType, field: str, item: str) -> str
  • added: variable VEC_ITEMS_C_TYPE: Final
  • added: function collect_header_dependencies(modules: dict[str, ModuleIR], *, internal: bool) -> set[str]
  • added: method GroupGenerator.declare_module_lock_api() -> None
  • added: method MypycPlugin.get_additional_indirect_deps(file: MypyFile) -> set[str]
  • added: function generate_am_send_wrapper(cl: ClassIR, fn: FuncIR, emitter: Emitter) -> str
  • added: function literal_sort_key(value: object) -> tuple[object, ...]
  • added: function generator_frame_attribute_prefix(class_fullname: str, *, is_final_class: bool) -> str
  • added: function module_exec_name(module_name: str) -> str
  • added: function module_import_state_name(module_name: str) -> str
  • added: function module_init_name(module_name: str) -> str
  • added: function module_init_only_name(module_name: str) -> str
  • added: function module_lock_api_name(group_name: str) -> str
  • added: function source_name_from_generator_attribute(name: str, class_fullname: str) -> str
  • added: variable GENERATOR_FRAME_ATTRIBUTE_PREFIX: Final
  • added: variable GENERATOR_HELPER_NAME: Final
  • added: variable IMPORT_STATE_PREFIX: Final
  • added: variable KEEP_ALIVE_SHORT_LIVED: Final
  • added: variable KEEP_ALIVE_WHOLE_EXPRESSION: Final
  • added: variable MODULE_LOCK_API_PREFIX: Final
  • added: variable MYPYC_DEFAULTS_SETUP: Final
  • added: variable RUNNING_FIELD: Final
  • added: method ClassIR.attrs_are_thread_confined() -> bool
  • added: method ClassIR.class_final_attr_details(name: str) -> tuple[RType, ClassIR] | None
  • added: method ClassIR.is_final_attr(name: str) -> bool
  • added: property ClassIR.needs_getseters_table -> bool
  • changed: constructor SourceDep(path: str) -> None → constructor SourceDep(path: str, *, include_dirs: list[str] | None=…, internal: bool=…) -> None
  • added: class HeaderDep
  • added: constructor HeaderDep(path: str, *, include_dirs: list[str] | None=…, internal: bool=…) -> None
  • added: method Capsule.external_dep() -> HeaderDep
  • added: method Capsule.internal_dep() -> SourceDep
  • added: method HeaderDep.get_header() -> str
  • added: variable LIBRT_RANDOM: Final
  • added: variable LIBRT_THREADING: Final
  • changed: constructor GetAttr(obj: Value, attr: str, line: int, *, borrow: bool=…, allow_error_value: bool=…) -> None → constructor GetAttr(obj: Value, attr: str, line: int, *, borrow: bool=…, allow_error_value: bool=…, borrow_scope: int=…) -> None
  • changed: constructor PrimitiveOp(args: list[Value], desc: PrimitiveDescription, line: int=…) -> None → constructor PrimitiveOp(args: list[Value], desc: PrimitiveDescription, line: int=…, *, arg_types: list[RType] | None=…, return_type: RType | None=…, type_args: list[RType] | None=…) -> None
  • added: property SetAttr.is_propset -> bool
  • added: class RTypeVar(RType)
  • added: constructor RTypeVar(id: int) -> None
  • added: function is_simple_refcounted_pointer(rtype: RType) -> bool
  • added: method RTypeVar.accept(visitor: RTypeVisitor[T]) -> T
  • added: method RTypeVar.serialize() -> JsonDict
  • added: method RTypeVisitor.visit_rtypevar(typ: RTypeVar, /) -> T
  • added: method TupleNameVisitor.visit_rtypevar(typ: RTypeVar) -> str
  • added: property RTypeVar.may_be_immortal -> bool
  • added: static method RTypeVar.deserialize(data: JsonDict, ctx: DeserMaps) -> RTypeVar
  • added: variable lock_rprimitive: Final
  • added: variable random_rprimitive: Final
  • removed: method IRBuilder.make_spill_target(type: RType) -> AssignmentTarget
  • removed: method IRBuilder.maybe_spill(value: Value) -> Value | AssignmentTarget
  • removed: method IRBuilder.maybe_spill_assignable(value: Value) -> Register | AssignmentTarget
  • removed: method IRBuilder.read_nullable_attr(obj: Value, attr: str, line: int=…) -> Value
  • removed: method IRBuilder.spill(value: Value) -> AssignmentTarget
  • changed: method IRBuilder.add_var_to_env_class(var: SymbolNode, rtype: RType, base: FuncInfo | ImplicitClass, reassign: bool=…, always_defined: bool=…, prefix: str=…) -> AssignmentTarget → method IRBuilder.add_var_to_env_class(var: SymbolNode, rtype: RType, base: FuncInfo | ImplicitClass, reassign: bool=…, always_defined: bool=…, keep_alive_on_completion: bool=…, prefix: str=…) -> AssignmentTarget
  • changed: method IRBuilder.check_if_module_loaded(id: str, line: int, needs_import: BasicBlock, out: BasicBlock) -> None → method IRBuilder.check_if_module_loaded(module_id: Value | None, module_cache: Value, line: int, needs_import: BasicBlock, out: BasicBlock, import_state: Value | None=…) -> None
  • changed: method IRBuilder.flush_keep_alives(line: int) -> None → method IRBuilder.flush_keep_alives(line: int, *, scope: int=…) -> None
  • changed: method IRBuilder.gen_import(module: str, line: int) -> None → method IRBuilder.gen_import(module: str, line: int) -> Value | None
  • added: class SuspendDetector(TraverserVisitor)
  • added: class WalrusTargetCollector(TraverserVisitor)
  • added: constructor SuspendDetector() -> None
  • added: constructor WalrusTargetCollector() -> None
  • added: function expr_has_suspend(expr: Expression) -> bool
  • added: function find_walrus_targets(expr: Expression) -> set[SymbolNode]
  • added: method IRBuilder.add_var_to_class(var: SymbolNode, rtype: RType, cls: ClassIR, base: Value, reassign: bool=…, always_defined: bool=…, keep_alive_on_completion: bool=…, prefix: str=…) -> AssignmentTarget
  • added: method IRBuilder.add_var_to_generator_frame(var: SymbolNode, rtype: RType, frame_reg: Value, reassign: bool=…, always_defined: bool=…, keep_alive_on_completion: bool=…) -> AssignmentTarget
  • added: method IRBuilder.class_final_var_of_instance(instance: Instance, name: str) -> Var | None
  • added: method IRBuilder.ensure_register(value: Value) -> Register
  • added: method IRBuilder.enter_borrow_scope(line: int) -> Iterator[None]
  • added: method IRBuilder.get_class_final_var(expr: MemberExpr) -> Var | None
  • added: method IRBuilder.is_captured_by_nested_func(symbol: SymbolNode) -> bool
  • added: method IRBuilder.is_final_native_attr_ref(expr: MemberExpr) -> bool
  • added: method IRBuilder.is_free_variable_in_nested_func(fitem: FuncItem, symbol: SymbolNode) -> bool
  • added: method IRBuilder.load_builtin(name: str, line: int) -> Value | None
  • added: method IRBuilder.root_is_reassigned(v: Value) -> bool
  • added: method SuspendDetector.visit_await_expr(o: AwaitExpr) -> None
  • added: method SuspendDetector.visit_dictionary_comprehension(o: DictionaryComprehension) -> None
  • added: method SuspendDetector.visit_generator_expr(o: GeneratorExpr) -> None
  • added: method SuspendDetector.visit_lambda_expr(o: LambdaExpr) -> None
  • added: method SuspendDetector.visit_yield_expr(o: YieldExpr) -> None
  • added: method SuspendDetector.visit_yield_from_expr(o: YieldFromExpr) -> None
  • added: method WalrusTargetCollector.visit_assignment_expr(o: AssignmentExpr) -> None
  • added: method WalrusTargetCollector.visit_lambda_expr(o: LambdaExpr) -> None
  • removed: function check_deletable_declaration(builder: IRBuilder, cl: ClassIR, line: int) -> None
  • removed: method AttrsClassBuilder.skip_attr_default(name: str, stmt: AssignmentStmt) -> bool
  • removed: method DataClassBuilder.skip_attr_default(name: str, stmt: AssignmentStmt) -> bool
  • removed: method ExtClassBuilder.skip_attr_default(name: str, stmt: AssignmentStmt) -> bool
  • changed: function find_attr_initializers(builder: IRBuilder, cdef: ClassDef, skip: Callable[[str, AssignmentStmt], bool] | None=…) -> tuple[set[str], list[tuple[AssignmentStmt, str]]] → function find_attr_initializers(builder: IRBuilder, cdef: ClassDef) -> tuple[set[str], list[tuple[AssignmentStmt, str]]]
  • changed: function finalize_env_class(builder: IRBuilder, prefix: str=…) -> None → function finalize_env_class(builder: IRBuilder, prefix: str=…, *, add_args: bool=…) -> Value
  • changed: function load_outer_env(builder: IRBuilder, base: Value, outer_env: dict[SymbolNode, SymbolTarget]) -> Value → function load_outer_env(builder: IRBuilder, base: Value, outer_env: dict[SymbolNode, SymbolTarget], *, borrow: bool=…) -> Value
  • changed: function setup_func_for_recursive_call(builder: IRBuilder, fdef: FuncDef, base: ImplicitClass, prefix: str=…) -> None → function setup_func_for_recursive_call(builder: IRBuilder, fdef: FuncDef, base: ImplicitClass) -> None
  • added: function add_generator_args(builder: IRBuilder, frame_reg: Value, env_reg: Value, reassign: bool) -> None
  • changed: function translate_vec_create_from_iterable(builder: IRBuilder, vec_type: RVec, arg: Expression) -> Value → function translate_vec_create_from_iterable(builder: IRBuilder, vec_type: RVec, arg: Expression, *, capacity: Value | None=…) -> Value
  • changed: function vec_from_iterable(builder: IRBuilder, vec_type: RVec, iterable: Expression, line: int) -> Value → function vec_from_iterable(builder: IRBuilder, vec_type: RVec, iterable: Expression, line: int, *, capacity: Value | None=…) -> Value
  • added: function try_specialize_str_index_compare(builder: IRBuilder, op: str, lhs: Expression, rhs: Expression, line: int) -> Value | None
  • added: function value_borrow_scope(builder: IRBuilder, v: Value) -> int
  • changed: field ForSequence.length_reg: Value | AssignmentTarget | None → field ForSequence.length_reg: Value | None
  • changed: function translate_vec_comprehension(builder: IRBuilder, vec_type: RVec, gen: GeneratorExpr) -> Value → function translate_vec_comprehension(builder: IRBuilder, vec_type: RVec, gen: GeneratorExpr, *, capacity: Value | None=…) -> Value
  • changed: method ForGenerator.load_len(expr: Value | AssignmentTarget) -> Value → method ForGenerator.load_len(expr: Value) -> Value
  • changed: method LowLevelIRBuilder.flush_keep_alives(line: int) -> None → method LowLevelIRBuilder.flush_keep_alives(line: int, *, scope: int=…) -> None
  • changed: method LowLevelIRBuilder.get_attr(obj: Value, attr: str, result_type: RType, line: int, *, borrow: bool=…) -> Value → method LowLevelIRBuilder.get_attr(obj: Value, attr: str, result_type: RType, line: int, *, borrow: bool=…, borrow_scope: int=…) -> Value
  • changed: method LowLevelIRBuilder.load_address(name: str, rtype: RType) -> Value → method LowLevelIRBuilder.load_address(name: str, rtype: RType, line: int=…) -> Value
  • changed: method LowLevelIRBuilder.primitive_op(desc: PrimitiveDescription, args: list[Value], line: int, result_type: RType | None=…) -> Value → method LowLevelIRBuilder.primitive_op(desc: PrimitiveDescription, args: list[Value], line: int, result_type: RType | None=…, type_args: list[RType] | None=…) -> Value
  • added: class PendingKeepAlive
  • added: constructor PendingKeepAlive(value: Value, scope: int, seq: int) -> None
  • added: method LowLevelIRBuilder.add_keep_alive(value: Value, scope: int) -> None
  • added: method LowLevelIRBuilder.borrow_region(line: int) -> Iterator[None]
  • added: method LowLevelIRBuilder.flush_keep_alives_since(line: int, checkpoint: int) -> None
  • added: method LowLevelIRBuilder.keep_alive_checkpoint() -> int
  • added: method LowLevelIRBuilder.keep_borrow_source_alive(value: Value, borrow_scope: int) -> None
  • added: method LowLevelIRBuilder.load_builtin(name: str, line: int) -> Value | None
  • added: method LowLevelIRBuilder.load_global(name: str, rtype: RType, line: int) -> Value
  • changed: constructor ExceptNonlocalControl(outer: NonlocalControl, saved: Value | AssignmentTarget) -> None → constructor ExceptNonlocalControl(outer: NonlocalControl, saved: Value) -> None
  • added: function gen_class_clear_on_completion(builder: IRBuilder, obj: Value, cl: ClassIR, line: int) -> None
  • added: function gen_generator_func_cleanup(builder: IRBuilder, line: int) -> None
  • added: method PreBuildVisitor.record_deleted_names(expr: Expression) -> None
  • added: method PreBuildVisitor.visit_del_stmt(stmt: DelStmt) -> None
  • added: method PreBuildVisitor.visit_str_expr(o: StrExpr) -> None
  • removed: variable GENERATOR_HELPER_NAME: Final
  • added: function find_non_acyclic_base(cdef: ClassDef, mapper: Mapper) -> str | None
  • added: function get_removed_base_fullname(expr: Expression) -> str | None
  • added: function validate_acyclic_class_bases(path: str, cdef: ClassDef, errors: Errors, mapper: Mapper) -> None
  • added: function translate_bytearray_from_bytes_slice(builder: IRBuilder, expr: CallExpr, callee: RefExpr) -> Value | None
  • added: function translate_vec_extend(builder: IRBuilder, expr: CallExpr, callee: RefExpr) -> Value | None
  • added: function translate_vec_to_list(builder: IRBuilder, expr: CallExpr, callee: RefExpr) -> Value | None
  • added: function translate_vec_to_tuple(builder: IRBuilder, expr: CallExpr, callee: RefExpr) -> Value | None
  • changed: function try_finally_entry_blocks(builder: IRBuilder, err_handler: BasicBlock, return_entry: BasicBlock, main_entry: BasicBlock, finally_block: BasicBlock, ret_reg: Register | AssignmentTarget | None) -> Value → function try_finally_entry_blocks(builder: IRBuilder, err_handler: BasicBlock, return_entry: BasicBlock, main_entry: BasicBlock, finally_block: BasicBlock, ret_reg: Register | None) -> Value
  • changed: function try_finally_resolve_control(builder: IRBuilder, cleanup_block: BasicBlock, finally_control: FinallyNonlocalControl, old_exc: Value, ret_reg: Register | AssignmentTarget | None) -> BasicBlock → function try_finally_resolve_control(builder: IRBuilder, cleanup_block: BasicBlock, finally_control: FinallyNonlocalControl, old_exc: Value, ret_reg: Register | None) -> BasicBlock
  • changed: function try_finally_try(builder: IRBuilder, err_handler: BasicBlock, return_entry: BasicBlock, main_entry: BasicBlock, try_body: GenFunc) -> Register | AssignmentTarget | None → function try_finally_try(builder: IRBuilder, err_handler: BasicBlock, return_entry: BasicBlock, main_entry: BasicBlock, try_body: GenFunc) -> Register | None
  • added: function transform_with_lock(builder: IRBuilder, mgr_v: Value, target: Lvalue | None, body: GenFunc, line: int) -> None
  • added: function default_attr_name(stmt: AssignmentStmt, ir: ClassIR, cls_type: str | None) -> str | None
  • added: function get_func_target_symbol(fdef: FuncDef) -> FuncDef | Var
  • added: function is_class_body_final(var: Var, ir: ClassIR, cdef: ClassDef, attr_rtype: RType) -> bool
  • changed: function vec_create(builder: LowLevelIRBuilder, vtype: RVec, length: int | Value, line: int) -> Value → function vec_create(builder: LowLevelIRBuilder, vtype: RVec, length: int | Value, line: int, *, capacity: Value | None=…) -> Value
  • changed: function vec_create_from_values(builder: LowLevelIRBuilder, vtype: RVec, values: list[Value], line: int) -> Value → function vec_create_from_values(builder: LowLevelIRBuilder, vtype: RVec, values: list[Value], line: int, *, capacity: Value | None=…) -> Value
  • changed: function vec_create_initialized(builder: LowLevelIRBuilder, vtype: RVec, length: int | Value, init: Value, line: int) -> Value → function vec_create_initialized(builder: LowLevelIRBuilder, vtype: RVec, length: int | Value, init: Value, line: int, *, capacity: Value | None=…) -> Value
  • added: function supports_vec_to_sequence(vec_type: RVec) -> bool
  • added: function vec_extend(builder: LowLevelIRBuilder, vec: Value, iterable: Value, line: int) -> Value
  • added: function vec_get_item_unsafe_lower(builder: LowLevelIRBuilder, base: Value, index: Value, line: int, *, can_borrow: bool=…) -> Value
  • added: function vec_load_mem_item(builder: LowLevelIRBuilder, ptr: Value, item_type: RType, *, can_borrow: bool=…) -> Value
  • added: function vec_set_mem_item(builder: LowLevelIRBuilder, ptr: Value, item_type: RType, item: Value) -> None
  • added: function vec_to_list(builder: LowLevelIRBuilder, vec: Value, line: int) -> Value | None
  • added: function vec_to_tuple(builder: LowLevelIRBuilder, vec: Value, line: int) -> Value | None
  • added: function vec_get_item_unsafe(builder: LowLevelIRBuilder, args: list[Value], line: int) -> Value
  • added: function vec_get_item_unsafe_borrow(builder: LowLevelIRBuilder, args: list[Value], line: int) -> Value
  • added: variable bytearray_from_bytes_slice_op
  • added: variable lock_acquire_op
  • added: variable lock_release_op
  • added: variable vec_get_item_unsafe_borrow_op
  • added: variable vec_get_item_unsafe_op
  • added: variable list_get_item_int64_op
  • added: variable import_cache_get_for_import_op
  • added: variable import_cache_replace_for_import_op
  • added: variable native_import_is_initialized_op
  • added: function load_global_op(name: str, type: RType, src: str) -> LoadAddressDescription
  • added: variable global_names: dict[str, tuple[RType, str]]
  • added: function expand_rtype(typ: RType, type_args: list[RType]) -> RType
  • added: class BorrowGeneratorAttrsVisitor(BaseAnalysisVisitor[GetAttr])
  • added: constructor BorrowGeneratorAttrsVisitor(self_reg: Value, candidates: set[GetAttr], candidates_by_attr: dict[str, set[GetAttr]]) -> None
  • added: function borrow_generator_attrs(ir: FuncIR, cl: ClassIR) -> None
  • added: method BorrowGeneratorAttrsVisitor.visit_assign(op: Assign) -> GenAndKill
  • added: method BorrowGeneratorAttrsVisitor.visit_assign_multi(op: AssignMulti) -> GenAndKill
  • added: method BorrowGeneratorAttrsVisitor.visit_branch(op: Branch) -> GenAndKill
  • added: method BorrowGeneratorAttrsVisitor.visit_get_attr(op: GetAttr) -> GenAndKill
  • added: method BorrowGeneratorAttrsVisitor.visit_keep_alive(op: KeepAlive) -> GenAndKill
  • added: method BorrowGeneratorAttrsVisitor.visit_register_op(op: RegisterOp) -> GenAndKill
  • added: method BorrowGeneratorAttrsVisitor.visit_return(op: Return) -> GenAndKill
  • added: method BorrowGeneratorAttrsVisitor.visit_set_attr(op: SetAttr) -> GenAndKill
  • added: method BorrowGeneratorAttrsVisitor.visit_set_mem(op: SetMem) -> GenAndKill
  • added: method BorrowGeneratorAttrsVisitor.visit_sources(op: Op) -> GenAndKill
  • added: method BorrowGeneratorAttrsVisitor.visit_unreachable(op: Unreachable) -> GenAndKill
  • added: variable EMPTY: GenAndKill
  • added: variable GenAndKill
  • added: function allocate_slots(frame: ClassIR, registers: list[Register]) -> dict[Register, str]
  • added: function available_attr_name(frame: ClassIR, base: str) -> str
  • added: function nullable_registers(blocks: list[BasicBlock]) -> set[Register]
  • added: function order_registers(registers: list[Register], blocks: list[BasicBlock]) -> list[Register]
  • added: function promote_generator_registers(ir: FuncIR, frame: ClassIR) -> None
  • added: function registers_live_across_yield(ir: FuncIR) -> list[Register]
  • added: function rewrite_registers(blocks: list[BasicBlock], frame_reg: Register, slots: dict[Register, str], nullable: set[Register]) -> None
  • added: function source_line(op: Op, register: Register) -> int
  • added: function unpromotable_registers(blocks: list[BasicBlock]) -> set[Register]
  • changed: function insert_spills(ir: FuncIR, env: ClassIR) -> None → function insert_spills(ir: FuncIR, frame: ClassIR) -> None
  • changed: function spill_regs(blocks: list[BasicBlock], env: ClassIR, to_spill: set[Value], live: AnalysisResult[Value], self_reg: Register) -> list[BasicBlock] → function spill_regs(blocks: list[BasicBlock], frame: ClassIR, to_spill: set[Op], live: AnalysisResult[Value], frame_reg: Register) -> list[BasicBlock]
  • added: function sort_values(values: Collection[Op], blocks: list[BasicBlock]) -> list[Op]