Upgrading mypy 1 to 2
Breaking1.20.2 → 2.4.1Breaking3New27Changed58Fixed97Other14
Fetching 7 releases from GitHub…6 / 7
BreakingUpgrade verdict
3 breaking changes.
In plain terms
- 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.
Must act 3 items need code or config changes
Adds ast-serialize <1.0.0,>=0.12.1.
Installs 5 packages in all (was 4).
What you must change
Breaking3
Drops support for targeting Python 3.9 with --python-version 3.9.
--python-versionRemoves 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-typesAPI changes
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]