Skip to content

Upgrading mypy 0.921 to 0.930

Unknown0.921 → 0.930

Fetching 1 release from GitHub…0 / 1
UnknownUpgrade verdict

DepDelta is still reading the notes for this range, so breaking changes can't be ruled out yet.

  • DepDelta is still reading the release notes in this range, so it can't rule out breaking changes yet.
  • This page updates as the notes come in.
Still reading release notes

DepDelta is still reading the release notes in this range. This updates as they come in.

Moves mypy-extensions 0.4.4 → 1.1.0. Your build may pick other versions.

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

  • changed: variable BindableExpression → variable BindableExpression: _TypeAlias
  • changed: variable CORE_BUILTIN_MODULES → variable CORE_BUILTIN_MODULES: Final
  • changed: variable Graph → variable Graph: _TypeAlias
  • removed: function nothing() -> Iterator[None]
  • changed: method TypeChecker.check_subtype(subtype: Type, supertype: Type, context: Context, msg: str=…, subtype_label: Optional[str]=…, supertype_label: Optional[str]=…, *, code: Optional[ErrorCode]=…, outer_context: Optional[Context]=…) -> bool → method TypeChecker.check_subtype(subtype: Type, supertype: Type, context: Context, msg: Union[str, ErrorMessage]=…, subtype_label: Optional[str]=…, supertype_label: Optional[str]=…, *, code: Optional[ErrorCode]=…, outer_context: Optional[Context]=…) -> bool
  • changed: method TypeChecker.fail(msg: str, context: Context, *, code: Optional[ErrorCode]=…) -> None → method TypeChecker.fail(msg: Union[str, ErrorMessage], context: Context, *, code: Optional[ErrorCode]=…) -> None
  • changed: method TypeChecker.lookup(name: str, kind: int) -> SymbolTableNode → method TypeChecker.lookup(name: str) -> SymbolTableNode
  • changed: variable DeferredNodeType → variable DeferredNodeType: _TypeAlias
  • changed: variable FineGrainedDeferredNodeType → variable FineGrainedDeferredNodeType: _TypeAlias
  • changed: variable TypeMap → variable TypeMap: _TypeAlias
  • removed: variable OVERLAPPING_TYPES_WHITELIST: Final
  • changed: method ExpressionChecker.check_awaitable_expr(t: Type, ctx: Context, msg: str) -> Type → method ExpressionChecker.check_awaitable_expr(t: Type, ctx: Context, msg: Union[str, ErrorMessage]) -> Type
  • changed: variable ArgChecker → variable ArgChecker: _TypeAlias
  • added: variable OVERLAPPING_TYPES_ALLOWLIST: Final
  • removed: method MemberContext.builtin_type(name: str) -> Instance
  • changed: function analyze_descriptor_access(instance_type: Type, descriptor_type: Type, builtin_type: Callable[[str], Instance], msg: MessageBuilder, context: Context, *, chk: mypy.checker.TypeChecker) -> Type → function analyze_descriptor_access(descriptor_type: Type, mx: MemberContext) -> Type
  • changed: function instance_alias_type(alias: TypeAlias, builtin_type: Callable[[str], Instance]) -> Type → function instance_alias_type(alias: TypeAlias, named_type: Callable[[str], Instance]) -> Type
  • changed: function type_object_type(info: TypeInfo, builtin_type: Callable[[str], Instance]) -> ProperType → function type_object_type(info: TypeInfo, named_type: Callable[[str], Instance]) -> ProperType
  • changed: method MemberContext.copy_modified(*, messages: Optional[MessageBuilder]=…, self_type: Optional[Type]=…) -> MemberContext → method MemberContext.copy_modified(*, messages: Optional[MessageBuilder]=…, self_type: Optional[Type]=…, is_lvalue: Optional[bool]=…) -> MemberContext
  • added: function analyze_decorator_or_funcbase_access(defn: Union[Decorator, FuncBase], itype: Instance, info: TypeInfo, self_type: Optional[Type], name: str, mx: MemberContext) -> Type
  • added: function analyze_typeddict_access(name: str, typ: TypedDictType, mx: MemberContext, override_info: Optional[TypeInfo]) -> Type
  • added: method MemberContext.named_type(name: str) -> Instance
  • changed: variable Checkers → variable Checkers: _TypeAlias
  • changed: variable FormatStringExpr → variable FormatStringExpr: _TypeAlias
  • changed: variable MatchMap → variable MatchMap: _TypeAlias
  • changed: method ConstraintBuilderVisitor.infer_constraints_from_protocol_members(res: List[Constraint], instance: Instance, template: Instance, subtype: Type, protocol: Instance) -> None → method ConstraintBuilderVisitor.infer_constraints_from_protocol_members(instance: Instance, template: Instance, subtype: Type, protocol: Instance) -> List[Constraint]
  • added: method ConstraintBuilderVisitor.visit_param_spec(template: ParamSpecType) -> List[Constraint]
  • added: method EraseTypeVisitor.visit_param_spec(t: ParamSpecType) -> ProperType
  • added: method TypeVarEraser.visit_param_spec(t: ParamSpecType) -> Type
  • changed: variable CALL_ARG: Final → variable CALL_ARG: Final[ErrorCode]
  • changed: variable NO_UNTYPED_DEF: Final → variable NO_UNTYPED_DEF: Final[ErrorCode]
  • changed: variable RETURN: Final → variable RETURN: Final[ErrorCode]
  • changed: variable RETURN_VALUE: Final → variable RETURN_VALUE: Final[ErrorCode]
  • changed: variable TRUTHY_BOOL: Final → variable TRUTHY_BOOL: Final[ErrorCode]
  • changed: field Errors.used_ignored_lines: Dict[str, Set[int]] → field Errors.used_ignored_lines: Dict[str, Dict[int, List[str]]]
  • added: method ExpandTypeVisitor.visit_param_spec(t: ParamSpecType) -> Type
  • changed: variable TYPE_IGNORE_PATTERN → variable TYPE_IGNORE_PATTERN: Final
  • removed: function lookup_qualified(modules: Dict[str, MypyFile], name: str, allow_missing: bool) -> Optional[SymbolNode]
  • removed: function lookup_qualified_alias(modules: Dict[str, MypyFile], name: str, allow_missing: bool) -> TypeAlias
  • removed: function lookup_qualified_stnode(modules: Dict[str, MypyFile], name: str, allow_missing: bool) -> Optional[SymbolTableNode]
  • removed: function lookup_qualified_typeinfo(modules: Dict[str, MypyFile], name: str, allow_missing: bool) -> TypeInfo
  • added: function lookup_fully_qualified_alias(modules: Dict[str, MypyFile], name: str, *, allow_missing: bool) -> TypeAlias
  • added: function lookup_fully_qualified_typeinfo(modules: Dict[str, MypyFile], name: str, *, allow_missing: bool) -> TypeInfo
  • added: method TypeFixer.visit_param_spec(p: ParamSpecType) -> None
  • added: method FileSystemCache.exists_case(path: str, prefix: str) -> bool
  • added: method TypeIndirectionVisitor.visit_param_spec(t: types.ParamSpecType) -> Set[str]
  • added: method TypeJoinVisitor.visit_param_spec(t: ParamSpecType) -> ProperType
  • changed: function lookup_fully_qualified(name: str, modules: Dict[str, MypyFile], raise_on_missing: bool=…) -> Optional[SymbolTableNode] → function lookup_fully_qualified(name: str, modules: Dict[str, MypyFile], *, raise_on_missing: bool=…) -> Optional[SymbolTableNode]
  • changed: function install_types(cache_dir: str, formatter: util.FancyFormatter, *, after_run: bool=…, non_interactive: bool=…) -> bool → function install_types(formatter: util.FancyFormatter, options: Options, *, after_run: bool=…, non_interactive: bool=…) -> bool
  • changed: function main(script_path: Optional[str], stdout: TextIO, stderr: TextIO, args: Optional[List[str]]=…) -> None → function main(script_path: Optional[str], stdout: TextIO, stderr: TextIO, args: Optional[List[str]]=…, clean_exit: bool=…) -> None
  • added: method TypeMeetVisitor.visit_param_spec(t: ParamSpecType) -> ProperType
  • added: class ErrorMessage(NamedTuple)
  • added: field ErrorMessage.code: Optional[codes.ErrorCode]
  • added: field ErrorMessage.value: str
  • added: method ErrorMessage.format(*args: object, **kwargs: object) -> ErrorMessage
  • added: variable CLASS_VAR_OUTSIDE_OF_CLASS: Final
  • added: variable CLASS_VAR_WITH_TYPEVARS: Final
  • added: variable CONTIGUOUS_ITERABLE_EXPECTED: Final
  • added: variable FUNCTION_ALWAYS_TRUE: Final
  • added: variable INVALID_TYPEVAR_ARG_BOUND: Final
  • added: variable INVALID_TYPEVAR_ARG_VALUE: Final
  • added: variable INVALID_TYPEVAR_AS_TYPEARG: Final
  • added: variable ITERABLE_TYPE_EXPECTED: Final
  • added: variable NAME_NOT_IN_SLOTS: Final
  • added: variable NOT_CALLABLE: Final
  • added: variable PYTHON2_PRINT_FILE_TYPE: Final
  • added: variable TOO_MANY_UNION_COMBINATIONS: Final
  • added: variable TYPEVAR_BOUND_MUST_BE_TYPE: Final
  • added: variable TYPEVAR_UNEXPECTED_ARGUMENT: Final
  • added: variable TYPEVAR_VARIANCE_DEF: Final
  • added: variable TYPE_ALWAYS_TRUE: Final
  • added: variable TYPE_ALWAYS_TRUE_UNIONTYPE: Final
  • added: variable TYPE_GUARD_POS_ARG_REQUIRED: Final
  • removed: function temp_message_builder() -> MessageBuilder
  • removed: method MessageBuilder.pretty_overload_matches(targets: List[CallableType], func: Overloaded, context: Context, offset: int, max_items: int, code: ErrorCode) -> None
  • changed: method MessageBuilder.no_variant_matches_arguments(plausible_targets: List[CallableType], overload: Overloaded, arg_types: List[Type], context: Context, *, code: Optional[ErrorCode]=…) -> None → method MessageBuilder.no_variant_matches_arguments(overload: Overloaded, arg_types: List[Type], context: Context, *, code: Optional[ErrorCode]=…) -> None
  • changed: method MessageBuilder.pretty_callable_or_overload(tp: Union[CallableType, Overloaded], context: Context, *, offset: int=…, add_class_or_static_decorator: bool=…, overload_max_items: int=…, allow_dups: bool=…, code: Optional[ErrorCode]=…) -> None → method MessageBuilder.pretty_callable_or_overload(tp: Union[CallableType, Overloaded], context: Context, *, offset: int=…, add_class_or_static_decorator: bool=…, allow_dups: bool=…, code: Optional[ErrorCode]=…) -> None
  • changed: method MessageBuilder.pretty_overload(tp: Overloaded, context: Context, offset: int, max_items: int, *, add_class_or_static_decorator: bool=…, allow_dups: bool=…, code: Optional[ErrorCode]=…) -> None → method MessageBuilder.pretty_overload(tp: Overloaded, context: Context, offset: int, *, add_class_or_static_decorator: bool=…, allow_dups: bool=…, code: Optional[ErrorCode]=…) -> None
  • added: method MessageBuilder.maybe_note_about_special_args(callee: CallableType, context: Context) -> None
  • changed: constructor FindModuleCache(search_paths: SearchPaths, fscache: Optional[FileSystemCache], options: Optional[Options]) -> None → constructor FindModuleCache(search_paths: SearchPaths, fscache: Optional[FileSystemCache], options: Optional[Options], stdlib_py_versions: Optional[StdlibVersions]=…) -> None
  • changed: function load_stdlib_py_versions(custom_typeshed_dir: Optional[str]) -> Dict[str, Tuple[Tuple[int, int], Optional[Tuple[int, int]]]] → function load_stdlib_py_versions(custom_typeshed_dir: Optional[str]) -> StdlibVersions
  • changed: function matches_exclude(subpath: str, exclude: str, fscache: FileSystemCache, verbose: bool) -> bool → function matches_exclude(subpath: str, excludes: List[str], fscache: FileSystemCache, verbose: bool) -> bool
  • added: variable StdlibVersions: _TypeAlias
  • changed: constructor ClassDef(name: str, defs: Block, type_vars: Optional[List[mypy.types.TypeVarType]]=…, base_type_exprs: Optional[List[Expression]]=…, metaclass: Optional[Expression]=…, keywords: Optional[List[Tuple[str, Expression]]]=…) -> None → constructor ClassDef(name: str, defs: Block, type_vars: Optional[List[mypy.types.TypeVarLikeType]]=…, base_type_exprs: Optional[List[Expression]]=…, metaclass: Optional[Expression]=…, keywords: Optional[List[Tuple[str, Expression]]]=…) -> None
  • changed: field AssignmentStmt.is_alias_def → field AssignmentStmt.is_alias_def: bool
  • changed: field AssignmentStmt.is_final_def → field AssignmentStmt.is_final_def: bool
  • changed: field BytesExpr.value → field BytesExpr.value: str
  • changed: field ClassDef.has_incompatible_baseclass → field ClassDef.has_incompatible_baseclass: bool
  • changed: field ClassDef.type_vars: List[mypy.types.TypeVarType] → field ClassDef.type_vars: List[mypy.types.TypeVarLikeType]
  • changed: field Decorator.is_overload → field Decorator.is_overload: bool
  • changed: field FloatExpr.value → field FloatExpr.value: float
  • changed: field ForStmt.is_async → field ForStmt.is_async: bool
  • changed: field ImportBase.is_mypy_only → field ImportBase.is_mypy_only: bool
  • changed: field ImportBase.is_top_level → field ImportBase.is_top_level: bool
  • changed: field ImportBase.is_unreachable → field ImportBase.is_unreachable: bool
  • changed: field IntExpr.value → field IntExpr.value: int
  • changed: field MypyFile.is_bom → field MypyFile.is_bom: bool
  • changed: field MypyFile.is_cache_skeleton → field MypyFile.is_cache_skeleton: bool
  • changed: field MypyFile.is_partial_stub_package → field MypyFile.is_partial_stub_package: bool
  • changed: field MypyFile.is_stub → field MypyFile.is_stub: bool
  • changed: field MypyFile.path → field MypyFile.path: str
  • changed: field NamedTupleExpr.is_typed → field NamedTupleExpr.is_typed: bool
  • changed: field OpExpr.op → field OpExpr.op: str
  • changed: field OpExpr.right_always → field OpExpr.right_always: bool
  • changed: field OpExpr.right_unreachable → field OpExpr.right_unreachable: bool
  • changed: field OperatorAssignmentStmt.op → field OperatorAssignmentStmt.op: str
  • changed: field PrintStmt.newline → field PrintStmt.newline: bool
  • changed: field StrExpr.from_python_3 → field StrExpr.from_python_3: bool
  • changed: field StrExpr.value → field StrExpr.value: str
  • changed: field SuperExpr.name → field SuperExpr.name: str
  • changed: field TypeInfo.bad_mro → field TypeInfo.bad_mro: bool
  • changed: field TypeInfo.fallback_to_any → field TypeInfo.fallback_to_any: bool
  • changed: field TypeInfo.is_abstract → field TypeInfo.is_abstract: bool
  • changed: field TypeInfo.is_enum → field TypeInfo.is_enum: bool
  • changed: field TypeInfo.is_intersection → field TypeInfo.is_intersection: bool
  • changed: field TypeInfo.is_named_tuple → field TypeInfo.is_named_tuple: bool
  • changed: field TypeInfo.is_newtype → field TypeInfo.is_newtype: bool
  • changed: field TypeInfo.is_protocol → field TypeInfo.is_protocol: bool
  • changed: field TypeInfo.runtime_protocol → field TypeInfo.runtime_protocol: bool
  • changed: field TypeVarLikeExpr.variance → field TypeVarLikeExpr.variance: int
  • changed: field UnaryExpr.op → field UnaryExpr.op: str
  • changed: field UnicodeExpr.value → field UnicodeExpr.value: str
  • changed: field WithStmt.is_async → field WithStmt.is_async: bool
  • changed: method TypeInfo.get_method(name: str) -> Optional[FuncBase] → method TypeInfo.get_method(name: str) -> Union[FuncBase, Decorator, None]
  • changed: variable Definition → variable Definition: _TypeAlias
  • changed: variable JsonDict → variable JsonDict: _TypeAlias
  • changed: variable Lvalue → variable Lvalue: _TypeAlias
  • changed: variable OverloadPart → variable OverloadPart: _TypeAlias
  • added: field ComplexExpr.value: complex
  • added: field StarExpr.valid: bool
  • added: field TypeAliasExpr.node: TypeAlias
  • added: field TypeInfo.is_final: bool
  • added: variable typing_extensions_aliases: Final
  • removed: method SemanticAnalyzerPluginInterface.builtin_type(fully_qualified_name: str) -> Instance
  • changed: method CheckerPluginInterface.fail(msg: str, ctx: Context, *, code: Optional[ErrorCode]=…) -> None → method CheckerPluginInterface.fail(msg: Union[str, ErrorMessage], ctx: Context, *, code: Optional[ErrorCode]=…) -> None
  • changed: method SemanticAnalyzerPluginInterface.named_type(qualified_name: str, args: Optional[List[Type]]=…) -> Instance → method SemanticAnalyzerPluginInterface.named_type(fullname: str, args: Optional[List[Type]]=…) -> Instance
  • changed: method SemanticAnalyzerPluginInterface.named_type_or_none(qualified_name: str, args: Optional[List[Type]]=…) -> Optional[Instance] → method SemanticAnalyzerPluginInterface.named_type_or_none(fullname: str, args: Optional[List[Type]]=…) -> Optional[Instance]
  • added: method DataclassTransformer.add_slots(info: TypeInfo, attributes: List[DataclassAttribute], *, correct_version: bool) -> None
  • added: variable field_makers: Final
  • removed: function typed_dict_delitem_signature_callback(ctx: MethodSigContext) -> CallableType
  • removed: variable ENUM_PREFIXES: Final
  • changed: variable functools_total_ordering_makers → variable functools_total_ordering_makers: Final
  • changed: variable REGISTER_CALLABLE_CALL_METHOD → variable REGISTER_CALLABLE_CALL_METHOD: Final
  • changed: variable REGISTER_RETURN_CLASS → variable REGISTER_RETURN_CLASS: Final
  • changed: variable SINGLEDISPATCH_CALLABLE_CALL_METHOD → variable SINGLEDISPATCH_CALLABLE_CALL_METHOD: Final
  • changed: variable SINGLEDISPATCH_REGISTER_METHOD → variable SINGLEDISPATCH_REGISTER_METHOD: Final
  • changed: variable SINGLEDISPATCH_TYPE → variable SINGLEDISPATCH_TYPE: Final
  • changed: variable ReporterClasses → variable ReporterClasses: _TypeAlias
  • added: method SameTypeVisitor.visit_param_spec(left: ParamSpecType) -> bool
  • changed: variable SavedScope → variable SavedScope: _TypeAlias
  • removed: method SemanticAnalyzer.builtin_type(fully_qualified_name: str) -> Instance
  • removed: method SemanticAnalyzer.leave() -> None
  • changed: method SemanticAnalyzer.anal_type(typ: Type, *, tvar_scope: Optional[TypeVarLikeScope]=…, allow_tuple_literal: bool=…, allow_unbound_tvars: bool=…, allow_placeholder: bool=…, report_invalid_types: bool=…, third_pass: bool=…) -> Optional[Type] → method SemanticAnalyzer.anal_type(typ: Type, *, tvar_scope: Optional[TypeVarLikeScope]=…, allow_tuple_literal: bool=…, allow_unbound_tvars: bool=…, allow_placeholder: bool=…, allow_required: bool=…, report_invalid_types: bool=…, third_pass: bool=…) -> Optional[Type]
  • changed: method SemanticAnalyzer.analyze_lvalue(lval: Lvalue, nested: bool=…, explicit_type: bool=…, is_final: bool=…, escape_comprehensions: bool=…) -> None → method SemanticAnalyzer.analyze_lvalue(lval: Lvalue, nested: bool=…, explicit_type: bool=…, is_final: bool=…, escape_comprehensions: bool=…, has_explicit_value: bool=…) -> None
  • changed: method SemanticAnalyzer.analyze_name_lvalue(lvalue: NameExpr, explicit_type: bool, is_final: bool, escape_comprehensions: bool) -> None → method SemanticAnalyzer.analyze_name_lvalue(lvalue: NameExpr, explicit_type: bool, is_final: bool, escape_comprehensions: bool, has_explicit_value: bool) -> None
  • changed: method SemanticAnalyzer.analyze_unbound_tvar(t: Type) -> Optional[Tuple[str, TypeVarExpr]] → method SemanticAnalyzer.analyze_unbound_tvar(t: Type) -> Optional[Tuple[str, TypeVarLikeExpr]]
  • changed: method SemanticAnalyzer.clean_up_bases_and_infer_type_variables(defn: ClassDef, base_type_exprs: List[Expression], context: Context) -> Tuple[List[Expression], List[TypeVarType], 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]
  • changed: method SemanticAnalyzer.enter(function: Union[FuncItem, GeneratorExpr, DictionaryComprehension]) -> None → method SemanticAnalyzer.enter(function: Union[FuncItem, GeneratorExpr, DictionaryComprehension]) -> Iterator[None]
  • changed: method SemanticAnalyzer.lookup_fully_qualified(name: str) -> SymbolTableNode → method SemanticAnalyzer.lookup_fully_qualified(fullname: str) -> SymbolTableNode
  • changed: method SemanticAnalyzer.make_name_lvalue_var(lvalue: NameExpr, kind: int, inferred: bool) -> Var → method SemanticAnalyzer.make_name_lvalue_var(lvalue: NameExpr, kind: int, inferred: bool, has_explicit_value: bool) -> Var
  • changed: method SemanticAnalyzer.named_type(qualified_name: str, args: Optional[List[Type]]=…) -> Instance → method SemanticAnalyzer.named_type(fullname: str, args: Optional[List[Type]]=…) -> Instance
  • changed: method SemanticAnalyzer.named_type_or_none(qualified_name: str, args: Optional[List[Type]]=…) -> Optional[Instance] → method SemanticAnalyzer.named_type_or_none(fullname: str, args: Optional[List[Type]]=…) -> Optional[Instance]
  • changed: method SemanticAnalyzer.prepare_typing_namespace(file_node: MypyFile) -> None → method SemanticAnalyzer.prepare_typing_namespace(file_node: MypyFile, aliases: Dict[str, str]) -> None
  • changed: method SemanticAnalyzer.type_analyzer(*, tvar_scope: Optional[TypeVarLikeScope]=…, allow_tuple_literal: bool=…, allow_unbound_tvars: bool=…, allow_placeholder: bool=…, report_invalid_types: bool=…) -> TypeAnalyser → method SemanticAnalyzer.type_analyzer(*, tvar_scope: Optional[TypeVarLikeScope]=…, allow_tuple_literal: bool=…, allow_unbound_tvars: bool=…, allow_placeholder: bool=…, allow_required: bool=…, report_invalid_types: bool=…) -> TypeAnalyser
  • changed: variable Tag → variable Tag: _TypeAlias
  • added: method SemanticAnalyzer.add_typing_extension_aliases(tree: MypyFile) -> None
  • added: method SemanticAnalyzer.create_alias(tree: MypyFile, target_name: str, alias: str, name: str) -> None
  • added: method SemanticAnalyzer.enum_has_final_values(base: Instance) -> bool
  • added: method SemanticAnalyzer.in_checked_function() -> bool
  • added: variable ENUM_BASES: Final
  • added: variable ENUM_SPECIAL_PROPS: Final
  • removed: function nothing() -> Iterator[None]
  • changed: variable CORE_WARMUP → variable CORE_WARMUP: Final
  • changed: variable MAX_ITERATIONS → variable MAX_ITERATIONS: Final
  • changed: variable Patches → variable Patches: _TypeAlias
  • changed: variable core_modules → variable core_modules: Final
  • changed: method SemanticAnalyzerInterface.anal_type(t: Type, *, tvar_scope: Optional[TypeVarLikeScope]=…, allow_tuple_literal: bool=…, allow_unbound_tvars: bool=…, report_invalid_types: bool=…) -> Optional[Type] → method SemanticAnalyzerInterface.anal_type(t: Type, *, tvar_scope: Optional[TypeVarLikeScope]=…, allow_tuple_literal: bool=…, allow_unbound_tvars: bool=…, allow_required: bool=…, report_invalid_types: bool=…) -> Optional[Type]
  • changed: method SemanticAnalyzerInterface.named_type(qualified_name: str, args: Optional[List[Type]]=…) -> Instance → method SemanticAnalyzerInterface.named_type(fullname: str, args: Optional[List[Type]]=…) -> Instance
  • changed: method SemanticAnalyzerInterface.named_type_or_none(qualified_name: str, args: Optional[List[Type]]=…) -> Optional[Instance] → method SemanticAnalyzerInterface.named_type_or_none(fullname: str, args: Optional[List[Type]]=…) -> Optional[Instance]
  • added: method TypedDictAnalyzer.note(msg: str, ctx: Context) -> None
  • added: method SnapshotTypeVisitor.visit_param_spec(typ: ParamSpecType) -> SnapshotItem
  • added: method TypeReplaceVisitor.visit_param_spec(typ: ParamSpecType) -> None
  • removed: function nothing() -> Iterator[None]
  • added: method TypeTriggersVisitor.visit_param_spec(typ: ParamSpecType) -> List[str]
  • added: method AnnotationPrinter.args_str(args: Iterable[Type]) -> str
  • changed: variable TypeParameterChecker → variable TypeParameterChecker: _TypeAlias
  • added: method ProperSubtypeVisitor.visit_param_spec(left: ParamSpecType) -> bool
  • added: method SubtypeVisitor.visit_param_spec(left: ParamSpecType) -> bool
  • removed: method SuggestionEngine.builtin_type(s: str) -> Instance
  • changed: constructor StrToText(builtin_type: Callable[[str], Instance]) -> None → constructor StrToText(named_type: Callable[[str], Instance]) -> None
  • added: method SuggestionEngine.named_type(s: str) -> Instance
  • added: method TypeQuery.visit_param_spec(t: ParamSpecType) -> T
  • added: method TypeTranslator.visit_param_spec(t: ParamSpecType) -> Type
  • added: method TypeVisitor.visit_param_spec(t: ParamSpecType) -> T
  • changed: constructor TypeAnalyser(api: SemanticAnalyzerCoreInterface, tvar_scope: TypeVarLikeScope, plugin: Plugin, options: Options, is_typeshed_stub: bool, *, defining_alias: bool=…, allow_tuple_literal: bool=…, allow_new_syntax: bool=…, allow_unbound_tvars: bool=…, allow_placeholder: bool=…, report_invalid_types: bool=…) -> None → constructor TypeAnalyser(api: SemanticAnalyzerCoreInterface, tvar_scope: TypeVarLikeScope, plugin: Plugin, options: Options, is_typeshed_stub: bool, *, defining_alias: bool=…, allow_tuple_literal: bool=…, allow_new_syntax: bool=…, allow_unbound_tvars: bool=…, allow_placeholder: bool=…, allow_required: bool=…, report_invalid_types: bool=…) -> None
  • changed: method TypeAnalyser.anal_array(a: Iterable[Type], nested: bool=…) -> List[Type] → method TypeAnalyser.anal_array(a: Iterable[Type], nested: bool=…, *, allow_param_spec: bool=…) -> List[Type]
  • changed: method TypeAnalyser.anal_type(t: Type, nested: bool=…) -> Type → method TypeAnalyser.anal_type(t: Type, nested: bool=…, *, allow_param_spec: bool=…) -> Type
  • added: method TypeAnalyser.anal_star_arg_type(t: Type, kind: ArgKind, nested: bool) -> Type
  • added: method TypeAnalyser.visit_param_spec(t: ParamSpecType) -> Type
  • removed: function try_expanding_enum_to_union(typ: Type, target_fullname: str) -> ProperType
  • added: function try_expanding_sum_type_to_union(typ: Type, target_fullname: str) -> ProperType
  • removed: field TypeVarType.upper_bound: Type
  • changed: constructor TypeVarLikeType(name: str, fullname: str, id: Union[TypeVarId, int], line: int=…, column: int=…) -> None → constructor TypeVarLikeType(name: str, fullname: str, id: Union[TypeVarId, int], upper_bound: Type, line: int=…, column: int=…) -> None
  • changed: field TupleType.implicit → field TupleType.implicit: bool
  • changed: field TypeVarLikeType.fullname → field TypeVarLikeType.fullname: str
  • changed: field TypeVarLikeType.name → field TypeVarLikeType.name: str
  • changed: field UninhabitedType.ambiguous → field UninhabitedType.ambiguous: bool
  • changed: field UninhabitedType.is_noreturn → field UninhabitedType.is_noreturn: bool
  • changed: method CallableType.formal_arguments(include_star_args: bool=…) -> Iterator[FormalArgument] → method CallableType.formal_arguments(include_star_args: bool=…) -> List[FormalArgument]
  • changed: variable JsonDict → variable JsonDict: _TypeAlias
  • changed: variable LiteralValue → variable LiteralValue: _TypeAlias
  • added: class ParamSpecFlavor
  • added: class RequiredType(Type)
  • added: constructor ParamSpecType(name: str, fullname: str, id: Union[TypeVarId, int], flavor: int, upper_bound: Type, *, line: int=…, column: int=…) -> None
  • added: constructor RequiredType(item: Type, *, required: bool) -> None
  • added: field ParamSpecFlavor.ARGS: Final
  • added: field ParamSpecFlavor.BARE: Final
  • added: field ParamSpecFlavor.KWARGS: Final
  • added: field ParamSpecType.flavor: int
  • added: field TypeVarLikeType.upper_bound: Type
  • added: function callable_with_ellipsis(any_type: AnyType, ret_type: Type, fallback: Instance) -> CallableType
  • added: method CallableType.expand_param_spec(c: CallableType) -> CallableType
  • added: method CallableType.param_spec() -> Optional[ParamSpecType]
  • added: method ParamSpecType.accept(visitor: TypeVisitor[T]) -> T
  • added: method ParamSpecType.name_with_suffix() -> str
  • added: method ParamSpecType.with_flavor(flavor: int) -> ParamSpecType
  • added: method TypeStrVisitor.visit_param_spec(t: ParamSpecType) -> str
  • added: static method ParamSpecType.new_unification_variable(old: ParamSpecType) -> ParamSpecType
  • changed: method Aifc_write.setparams(params: Tuple[int, int, int, int, bytes, bytes]) -> None → method Aifc_write.setparams(params: tuple[int, int, int, int, bytes, bytes]) -> None
  • changed: method ArgumentParser.add_subparsers(*, title: str=…, description: str | None=…, prog: str=…, parser_class: Type[ArgumentParser]=…, action: Type[Action]=…, option_string: str=…, dest: str | None=…, help: str | None=…, metavar: str | None=…) -> _SubParsersAction → method ArgumentParser.add_subparsers(*, title: str=…, description: str | None=…, prog: str=…, 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=…, parser_class: Type[_ArgumentParserT]=…, action: Type[Action]=…, option_string:…
  • changed: method ArgumentParser.parse_known_args(args: Sequence[str] | None=…, namespace: Namespace | None=…) -> Tuple[Namespace, list[str]] → method ArgumentParser.parse_known_args(args: Sequence[str] | None=…, namespace: Namespace | None=…) -> tuple[Namespace, list[str]]
  • changed: method ArgumentParser.parse_known_intermixed_args(args: Sequence[str] | None=…, namespace: Namespace | None=…) -> Tuple[Namespace, list[str]] → method ArgumentParser.parse_known_intermixed_args(args: Sequence[str] | None=…, namespace: Namespace | None=…) -> tuple[Namespace, list[str]]
  • changed: constructor array(typecode: _IntTypeCode, __initializer: bytes | Iterable[_T]=…) -> None | (typecode: _FloatTypeCode, __initializer: bytes | Iterable[_T]=…) -> None | (typecode: _UnicodeTypeCode, __initializer: bytes | Iterable[_T]=…) -> None | (typecode: str, __initializer: bytes | Iterable[_T]=…) -> None → constructor array(__typecode: _IntTypeCode, __initializer: bytes | Iterable[_T]=…) -> None | (__typecode: _FloatTypeCode, __initializer: bytes | Iterable[_T]=…) -> None | (__typecode: _UnicodeTypeCode, __initializer: bytes | Iterable[_T]=…) -> None | (typecode: str, __initializer: bytes | Iterable[_T]=…) -> None
  • changed: method array.buffer_info() -> Tuple[int, int] → method array.buffer_info() -> tuple[int, int]
  • changed: async method BaseEventLoop.create_connection(protocol_factory: _ProtocolFactory, host: str=…, port: int=…, *, ssl: _SSLContext=…, family: int=…, proto: int=…, flags: int=…, sock: None=…, local_addr: Tuple[str, int] | None=…, server_hostname: str | None=…, ssl_handshake_timeout: float | None=…, happy_eyeballs_delay: float | None=…, interleave: int | None=…) -> _TransProtPair | (protocol_factory: _… → async method BaseEventLoop.create_connection(protocol_factory: _ProtocolFactory, host: str=…, port: int=…, *, ssl: _SSLContext=…, family: int=…, proto: int=…, flags: int=…, sock: None=…, local_addr: tuple[str, int] | None=…, server_hostname: str | None=…, ssl_handshake_timeout: float | None=…, happy_eyeballs_delay: float | None=…, interleave: int | None=…) -> _TransProtPair | (protocol_factory: _…
  • changed: async method BaseEventLoop.create_datagram_endpoint(protocol_factory: _ProtocolFactory, local_addr: Tuple[str, int] | None=…, remote_addr: Tuple[str, int] | None=…, *, family: int=…, proto: int=…, flags: int=…, reuse_address: bool | None=…, reuse_port: bool | None=…, allow_broadcast: bool | None=…, sock: socket | None=…) -> _TransProtPair → async method BaseEventLoop.create_datagram_endpoint(protocol_factory: _ProtocolFactory, local_addr: tuple[str, int] | None=…, remote_addr: tuple[str, int] | None=…, *, family: int=…, proto: int=…, flags: int=…, reuse_address: bool | None=…, reuse_port: bool | None=…, allow_broadcast: bool | None=…, sock: socket | None=…) -> _TransProtPair
  • changed: async method BaseEventLoop.getaddrinfo(host: str | None, port: 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: str | None, port: 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]]]
  • changed: async method BaseEventLoop.getnameinfo(sockaddr: Tuple[str, int] | Tuple[str, int, int, int], flags: int=…) -> Tuple[str, str] → async method BaseEventLoop.getnameinfo(sockaddr: tuple[str, int] | tuple[str, int, int, int], flags: int=…) -> tuple[str, str]
  • changed: method BaseEventLoop.sock_accept(sock: socket) -> Future[Tuple[socket, _RetAddress]] → method BaseEventLoop.sock_accept(sock: socket) -> Future[tuple[socket, _RetAddress]]
  • changed: function iscoroutine(obj: object) -> bool → function iscoroutine(obj: object) -> TypeGuard[Coroutine[Any, Any, Any]]
  • changed: async method AbstractEventLoop.create_connection(protocol_factory: _ProtocolFactory, host: str=…, port: int=…, *, ssl: _SSLContext=…, family: int=…, proto: int=…, flags: int=…, sock: None=…, local_addr: Tuple[str, int] | None=…, server_hostname: str | None=…, ssl_handshake_timeout: float | None=…, happy_eyeballs_delay: float | None=…, interleave: int | None=…) -> _TransProtPair | (protocol_factor… → async method AbstractEventLoop.create_connection(protocol_factory: _ProtocolFactory, host: str=…, port: int=…, *, ssl: _SSLContext=…, family: int=…, proto: int=…, flags: int=…, sock: None=…, local_addr: tuple[str, int] | None=…, server_hostname: str | None=…, ssl_handshake_timeout: float | None=…, happy_eyeballs_delay: float | None=…, interleave: int | None=…) -> _TransProtPair | (protocol_factor…
  • changed: async method AbstractEventLoop.create_datagram_endpoint(protocol_factory: _ProtocolFactory, local_addr: Tuple[str, int] | None=…, remote_addr: Tuple[str, int] | None=…, *, family: int=…, proto: int=…, flags: int=…, reuse_address: bool | None=…, reuse_port: bool | None=…, allow_broadcast: bool | None=…, sock: socket | None=…) -> _TransProtPair → async method AbstractEventLoop.create_datagram_endpoint(protocol_factory: _ProtocolFactory, local_addr: tuple[str, int] | None=…, remote_addr: tuple[str, int] | None=…, *, family: int=…, proto: int=…, flags: int=…, reuse_address: bool | None=…, reuse_port: bool | None=…, allow_broadcast: bool | None=…, sock: socket | None=…) -> _TransProtPair
  • changed: async method AbstractEventLoop.getaddrinfo(host: str | None, port: 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: str | None, port: 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]]]
  • changed: async method AbstractEventLoop.getnameinfo(sockaddr: Tuple[str, int] | Tuple[str, int, int, int], flags: int=…) -> Tuple[str, str] → async method AbstractEventLoop.getnameinfo(sockaddr: tuple[str, int] | tuple[str, int, int, int], flags: int=…) -> tuple[str, str]
  • changed: method AbstractEventLoop.run_in_executor(executor: Any, func: Callable[..., _T], *args: Any) -> Awaitable[_T] → method AbstractEventLoop.run_in_executor(executor: Any, func: Callable[..., _T], *args: Any) -> Future[_T]
  • changed: method AbstractEventLoop.sock_accept(sock: socket) -> Future[Tuple[socket, _RetAddress]] → method AbstractEventLoop.sock_accept(sock: socket) -> Future[tuple[socket, _RetAddress]]
  • changed: method DatagramProtocol.datagram_received(data: bytes, addr: Tuple[str, int]) -> None → method DatagramProtocol.datagram_received(data: bytes, addr: tuple[str, int]) -> None
  • changed: async function staggered_race(coro_fns: Iterable[Callable[[], Awaitable[Any]]], delay: float | None, *, loop: events.AbstractEventLoop | None=…) -> Tuple[Any, int | None, list[Exception | None]] → async function staggered_race(coro_fns: Iterable[Callable[[], Awaitable[Any]]], delay: float | None, *, loop: events.AbstractEventLoop | None=…) -> tuple[Any, int | None, list[Exception | 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=…, *, loop: events.AbstractEventLoop | None=…, limit: int=…, ssl_handshake_timeout: float | None=…, **kwds: Any) -> tuple[StreamReader, StreamWriter]
  • changed: async function open_unix_connection(path: _PathType | None=…, *, loop: events.AbstractEventLoop | None=…, limit: int=…, **kwds: Any) -> Tuple[StreamReader, StreamWriter] → async function open_unix_connection(path: _PathType | None=…, *, loop: events.AbstractEventLoop | None=…, limit: int=…, **kwds: Any) -> tuple[StreamReader, StreamWriter]
  • changed: async method Process.communicate(input: bytes | None=…) -> Tuple[bytes, bytes] → async method Process.communicate(input: bytes | None=…) -> tuple[bytes, bytes]
  • changed: function all_tasks(loop: AbstractEventLoop | None=…) -> Set[Task[Any]] → function all_tasks(loop: AbstractEventLoop | None=…) -> set[Task[Any]]
  • changed: function gather(coro_or_future1: _FutureT[_T1], *, return_exceptions: Literal[False]=…) -> Future[Tuple[_T1]] | (coro_or_future1: _FutureT[_T1], coro_or_future2: _FutureT[_T2], *, return_exceptions: Literal[False]=…) -> Future[Tuple[_T1, _T2]] | (coro_or_future1: _FutureT[_T1], coro_or_future2: _FutureT[_T2], coro_or_future3: _FutureT[_T3], *, return_exceptions: Literal[False]=…) -> Future[Tuple[… → function gather(coro_or_future1: _FutureT[_T1], *, return_exceptions: Literal[False]=…) -> Future[tuple[_T1]] | (coro_or_future1: _FutureT[_T1], coro_or_future2: _FutureT[_T2], *, return_exceptions: Literal[False]=…) -> Future[tuple[_T1, _T2]] | (coro_or_future1: _FutureT[_T1], coro_or_future2: _FutureT[_T2], coro_or_future3: _FutureT[_T3], *, return_exceptions: Literal[False]=…) -> Future[tuple[…
  • changed: function wait(fs: Iterable[_FT], *, timeout: float | None=…, return_when: str=…) -> Future[Tuple[Set[_FT], Set[_FT]]] | (fs: Iterable[Awaitable[_T]], *, timeout: float | None=…, return_when: str=…) -> Future[Tuple[Set[Task[_T]], Set[Task[_T]]]] | (fs: Iterable[_FT], *, loop: AbstractEventLoop | None=…, timeout: float | None=…, return_when: str=…) -> Future[Tuple[Set[_FT], Set[_FT]]] | (fs: Iterab… → function wait(fs: Iterable[_FT], *, timeout: float | None=…, return_when: str=…) -> Future[tuple[set[_FT], set[_FT]]] | (fs: Iterable[Awaitable[_T]], *, timeout: float | None=…, return_when: str=…) -> Future[tuple[set[Task[_T]], set[Task[_T]]]] | (fs: Iterable[_FT], *, loop: AbstractEventLoop | None=…, timeout: float | None=…, return_when: str=…) -> Future[tuple[set[_FT], set[_FT]]] | (fs: Iterab…
  • changed: static method Task.all_tasks(loop: AbstractEventLoop | None=…) -> Set[Task[Any]] → static method Task.all_tasks(loop: AbstractEventLoop | None=…) -> set[Task[Any]]
  • changed: method TransportSocket.accept() -> Tuple[socket.socket, _RetAddress] → method TransportSocket.accept() -> tuple[socket.socket, _RetAddress]
  • 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) -> NoReturn
  • changed: method TransportSocket.recvfrom(bufsize: int, flags: int=…) -> Tuple[bytes, _RetAddress] → method TransportSocket.recvfrom(bufsize: int, flags: int=…) -> tuple[bytes, _RetAddress]
  • changed: method TransportSocket.recvfrom_into(buffer: _WriteBuffer, nbytes: int=…, flags: int=…) -> Tuple[int, _RetAddress] → method TransportSocket.recvfrom_into(buffer: _WriteBuffer, nbytes: int=…, flags: int=…) -> tuple[int, _RetAddress]
  • changed: method TransportSocket.recvmsg(__bufsize: int, __ancbufsize: int=…, __flags: int=…) -> Tuple[bytes, list[_CMSG], int, Any] → method TransportSocket.recvmsg(__bufsize: int, __ancbufsize: int=…, __flags: int=…) -> tuple[bytes, list[_CMSG], int, Any]
  • changed: method TransportSocket.recvmsg_into(__buffers: Iterable[_WriteBuffer], __ancbufsize: int=…, __flags: int=…) -> Tuple[int, list[_CMSG], int, Any] → method TransportSocket.recvmsg_into(__buffers: Iterable[_WriteBuffer], __ancbufsize: int=…, __flags: int=…) -> tuple[int, list[_CMSG], int, Any]
  • changed: async method ProactorEventLoop.create_pipe_connection(protocol_factory: Callable[[], streams.StreamReaderProtocol], address: str) -> Tuple[proactor_events._ProactorDuplexPipeTransport, streams.StreamReaderProtocol] → async method ProactorEventLoop.create_pipe_connection(protocol_factory: Callable[[], streams.StreamReaderProtocol], address: str) -> tuple[proactor_events._ProactorDuplexPipeTransport, streams.StreamReaderProtocol]
  • changed: function pipe(*, duplex: bool=…, overlapped: Tuple[bool, bool]=…, bufsize: int=…) -> Tuple[int, int] → function pipe(*, duplex: bool=…, overlapped: tuple[bool, bool]=…, bufsize: int=…) -> tuple[int, int]
  • changed: function compact_traceback() -> Tuple[Tuple[str, str, str], type, type, str] → function compact_traceback() -> tuple[tuple[str, str, str], type, type, str]
  • changed: method dispatcher.accept() -> Tuple[_socket, Any] | None → method dispatcher.accept() -> tuple[_socket, Any] | None
  • changed: function adpcm2lin(__fragment: bytes, __width: int, __state: AdpcmState | None) -> Tuple[bytes, AdpcmState] → function adpcm2lin(__fragment: bytes, __width: int, __state: AdpcmState | None) -> tuple[bytes, AdpcmState]
  • changed: function findfit(__fragment: bytes, __reference: bytes) -> Tuple[int, float] → function findfit(__fragment: bytes, __reference: bytes) -> tuple[int, float]
  • changed: function lin2adpcm(__fragment: bytes, __width: int, __state: AdpcmState | None) -> Tuple[bytes, AdpcmState] → function lin2adpcm(__fragment: bytes, __width: int, __state: AdpcmState | None) -> tuple[bytes, AdpcmState]
  • changed: function minmax(__fragment: bytes, __width: int) -> Tuple[int, int] → function minmax(__fragment: bytes, __width: int) -> tuple[int, int]
  • changed: function ratecv(__fragment: bytes, __width: int, __nchannels: int, __inrate: int, __outrate: int, __state: RatecvState | None, __weightA: int=…, __weightB: int=…) -> Tuple[bytes, RatecvState] → function ratecv(__fragment: bytes, __width: int, __nchannels: int, __inrate: int, __outrate: int, __state: RatecvState | None, __weightA: int=…, __weightB: int=…) -> tuple[bytes, RatecvState]
  • changed: field Bdb.skip: Set[str] | None → field Bdb.skip: set[str] | None
  • changed: field Breakpoint.bplist: dict[Tuple[str, int], list[Breakpoint]] → field Breakpoint.bplist: dict[tuple[str, int], list[Breakpoint]]
  • changed: function effective(file: str, line: int, frame: FrameType) -> Tuple[Breakpoint, bool] | Tuple[None, None] → function effective(file: str, line: int, frame: FrameType) -> tuple[Breakpoint, bool] | tuple[None, None]
  • changed: method Bdb.get_stack(f: FrameType | None, t: TracebackType | None) -> Tuple[list[Tuple[FrameType, int]], int] → method Bdb.get_stack(f: FrameType | None, t: TracebackType | None) -> tuple[list[tuple[FrameType, int]], int]
  • changed: class classmethod(object) → class classmethod(Generic[_R])
  • changed: class staticmethod(object) → class staticmethod(Generic[_R])
  • changed: constructor bytearray() -> None | (ints: Iterable[SupportsIndex]) -> None | (string: str, encoding: str, errors: str=…) -> None | (length: SupportsIndex) -> None → constructor bytearray() -> None | (__ints: Iterable[SupportsIndex]) -> None | (__string: str, encoding: str, errors: str=…) -> None | (__length: SupportsIndex) -> None
  • changed: constructor classmethod(f: Callable[..., Any]) -> None → constructor classmethod(__f: Callable[..., _R]) -> None
  • changed: constructor dict() -> None | (**kwargs: _VT) -> None | (map: SupportsKeysAndGetItem[_KT, _VT], **kwargs: _VT) -> None | (iterable: Iterable[Tuple[_KT, _VT]], **kwargs: _VT) -> None → constructor dict() -> None | (**kwargs: _VT) -> None | (__map: SupportsKeysAndGetItem[_KT, _VT], **kwargs: _VT) -> None | (__iterable: Iterable[tuple[_KT, _VT]], **kwargs: _VT) -> None | (__iterable: Iterable[list[str]]) -> None
  • changed: constructor frozenset(iterable: Iterable[_T_co]=…) -> None → constructor frozenset(__iterable: Iterable[_T_co]=…) -> None
  • changed: constructor list() -> None | (iterable: Iterable[_T]) -> None → constructor list() -> None | (__iterable: Iterable[_T]) -> None
  • changed: constructor range(stop: SupportsIndex) -> None | (start: SupportsIndex, stop: SupportsIndex, step: SupportsIndex=…) -> None → constructor range(__stop: SupportsIndex) -> None | (__start: SupportsIndex, __stop: SupportsIndex, __step: SupportsIndex=…) -> None
  • changed: constructor set(iterable: Iterable[_T]=…) -> None → constructor set(__iterable: Iterable[_T]=…) -> None
  • changed: constructor slice(stop: Any) -> None | (start: Any, stop: Any, step: Any=…) -> None → constructor slice(__stop: Any) -> None | (__start: Any, __stop: Any, __step: Any=…) -> None
  • changed: constructor staticmethod(f: Callable[..., Any]) -> None → constructor staticmethod(__f: Callable[..., _R]) -> None
  • changed: constructor super(t: Any, obj: Any) -> None | (t: Any) -> None | () -> None → constructor super(__t: Any, __obj: Any) -> None | (__t: Any) -> None | () -> None
  • changed: constructor type(o: object) -> None | (name: str, bases: Tuple[type, ...], dict: dict[str, Any], **kwds: Any) -> None → constructor type(__o: object) -> None | (__name: str, __bases: Tuple[type, ...], __dict: dict[str, Any], **kwds: Any) -> None
  • changed: function callable(__obj: object) -> bool → function callable(__obj: object) -> TypeGuard[Callable[..., object]]
  • changed: function compile(source: str | bytes | mod | AST, filename: str | bytes | _PathLike[Any], mode: str, flags: int=…, dont_inherit: int=…, optimize: int=…) -> Any → function compile(source: str | bytes | AST, filename: str | bytes | _PathLike[Any], mode: str, flags: int=…, dont_inherit: int=…, optimize: int=…) -> Any
  • changed: function delattr(__obj: Any, __name: str) -> None → function delattr(__obj: object, __name: str) -> None
  • changed: function eval(__source: str | bytes | CodeType, __globals: dict[str, Any] | None=…, __locals: Mapping[str, Any] | None=…) -> Any → function eval(__source: str | bytes | CodeType, __globals: dict[str, Any] | None=…, __locals: Mapping[str, object] | None=…) -> Any
  • changed: function exec(__source: str | bytes | CodeType, __globals: dict[str, Any] | None=…, __locals: Mapping[str, Any] | None=…) -> Any → function exec(__source: str | bytes | CodeType, __globals: dict[str, Any] | None=…, __locals: Mapping[str, object] | None=…) -> None
  • changed: function getattr(__o: object, name: str) -> Any | (__o: object, name: str, __default: None) -> Any | None | (__o: object, name: str, __default: bool) -> Any | bool | (__o: object, name: str, __default: list[Any]) -> Any | list[Any] | (__o: object, name: str, __default: dict[Any, Any]) -> Any | dict[Any, Any] | (__o: object, name: str, __default: _T) -> Any | _T → function getattr(__o: object, __name: str) -> Any | (__o: object, __name: str, __default: None) -> Any | None | (__o: object, __name: str, __default: bool) -> Any | bool | (__o: object, name: str, __default: list[Any]) -> Any | list[Any] | (__o: object, name: str, __default: dict[Any, Any]) -> Any | dict[Any, Any] | (__o: object, __name: str, __default: _T) -> Any | _T
  • changed: function input(__prompt: Any=…) -> str → function input(__prompt: object=…) -> str
  • changed: function iter(__iterable: Iterable[_T]) -> Iterator[_T] | (__function: Callable[[], _T | None], __sentinel: None) -> Iterator[_T] | (__function: Callable[[], _T], __sentinel: Any) -> Iterator[_T] → function iter(__iterable: Iterable[_T]) -> Iterator[_T] | (__function: Callable[[], _T | None], __sentinel: None) -> Iterator[_T] | (__function: Callable[[], _T], __sentinel: object) -> Iterator[_T]
  • changed: function max(__arg1: SupportsLessThanT, __arg2: SupportsLessThanT, *_args: SupportsLessThanT, key: None=…) -> SupportsLessThanT | (__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], SupportsLessThan]) -> _T | (__iterable: Iterable[SupportsLessThanT], *, key: None=…) -> SupportsLessThanT | (__iterable: Iterable[_T], *, key: Callable[[_T], SupportsLessThan]) -> _T | (__iterable: Iterable[Suppo… → function max(__arg1: SupportsRichComparisonT, __arg2: SupportsRichComparisonT, *_args: SupportsRichComparisonT, key: None=…) -> SupportsRichComparisonT | (__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], SupportsRichComparison]) -> _T | (__iterable: Iterable[SupportsRichComparisonT], *, key: None=…) -> SupportsRichComparisonT | (__iterable: Iterable[_T], *, key: Callable[[_T], SupportsRich…
  • changed: function min(__arg1: SupportsLessThanT, __arg2: SupportsLessThanT, *_args: SupportsLessThanT, key: None=…) -> SupportsLessThanT | (__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], SupportsLessThan]) -> _T | (__iterable: Iterable[SupportsLessThanT], *, key: None=…) -> SupportsLessThanT | (__iterable: Iterable[_T], *, key: Callable[[_T], SupportsLessThan]) -> _T | (__iterable: Iterable[Suppo… → function min(__arg1: SupportsRichComparisonT, __arg2: SupportsRichComparisonT, *_args: SupportsRichComparisonT, key: None=…) -> SupportsRichComparisonT | (__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], SupportsRichComparison]) -> _T | (__iterable: Iterable[SupportsRichComparisonT], *, key: None=…) -> SupportsRichComparisonT | (__iterable: Iterable[_T], *, key: Callable[[_T], SupportsRich…
  • changed: function next(__i: SupportsNext[_T]) -> _T | (__i: SupportsNext[_T], default: _VT) -> _T | _VT → function next(__i: SupportsNext[_T]) -> _T | (__i: SupportsNext[_T], __default: _VT) -> _T | _VT
  • changed: function pow(base: int, exp: int, mod: None=…) -> Any | (base: int, exp: int, mod: int) -> int | (base: float, exp: float, mod: None=…) -> float | (base: _SupportsPow2[_E, _T_co], exp: _E) -> _T_co | (base: _SupportsPow3[_E, _M, _T_co], exp: _E, mod: _M) -> _T_co | (__base: int, __exp: int, __mod: None=…) -> Any | (__base: int, __exp: int, __mod: int) -> int | (__base: float, __exp: float, __mod:… → function pow(base: int, exp: int, mod: Literal[0]) -> NoReturn | (base: int, exp: int, mod: int) -> int | (base: int, exp: _PositiveInteger, mod: None=…) -> int | (base: int, exp: _NegativeInteger, mod: None=…) -> float | (base: int, exp: int, mod: None=…) -> Any | (base: float, exp: int, mod: None=…) -> float | (base: float, exp: complex | _SupportsSomeKindOfPow, mod: None=…) -> Any | (base: com…
  • changed: function print(*values: object, sep: str | None=…, end: str | None=…, file: SupportsWrite[str] | None=…, flush: bool=…) -> None → function print(*values: object, sep: str | None=…, end: str | None=…, file: SupportsWrite[str] | None=…, flush: Literal[False]=…) -> None | (*values: object, sep: str | None=…, end: str | None=…, file: _SupportsWriteAndFlush[str] | None=…, flush: bool) -> None
  • changed: function sorted(__iterable: Iterable[SupportsLessThanT], *, key: None=…, reverse: bool=…) -> list[SupportsLessThanT] | (__iterable: Iterable[_T], *, key: Callable[[_T], SupportsLessThan], reverse: bool=…) -> list[_T] → function sorted(__iterable: Iterable[SupportsRichComparisonT], *, key: None=…, reverse: bool=…) -> list[SupportsRichComparisonT] | (__iterable: Iterable[_T], *, key: Callable[[_T], SupportsRichComparison], reverse: bool=…) -> list[_T]
  • changed: method BaseException.with_traceback(tb: TracebackType | None) -> _TBE → method BaseException.with_traceback(__tb: TracebackType | None) -> _TBE
  • changed: method bytearray.partition(__sep: bytes) -> Tuple[bytearray, bytearray, bytearray] → method bytearray.partition(__sep: bytes) -> tuple[bytearray, bytearray, bytearray]
  • changed: method bytearray.rpartition(__sep: bytes) -> Tuple[bytearray, bytearray, bytearray] → method bytearray.rpartition(__sep: bytes) -> tuple[bytearray, bytearray, bytearray]
  • changed: method bytes.partition(__sep: bytes) -> Tuple[bytes, bytes, bytes] → method bytes.partition(__sep: bytes) -> tuple[bytes, bytes, bytes]
  • changed: method bytes.rpartition(__sep: bytes) -> Tuple[bytes, bytes, bytes] → method bytes.rpartition(__sep: bytes) -> tuple[bytes, bytes, bytes]
  • changed: method dict.items() -> ItemsView[_KT, _VT] → method dict.items() -> dict_items[_KT, _VT]
  • changed: method dict.keys() -> KeysView[_KT] → method dict.keys() -> dict_keys[_KT, _VT]
  • changed: method dict.popitem() -> Tuple[_KT, _VT] → method dict.popitem() -> tuple[_KT, _VT]
  • changed: method dict.update(__m: Mapping[_KT, _VT], **kwargs: _VT) -> None | (__m: Iterable[Tuple[_KT, _VT]], **kwargs: _VT) -> None | (**kwargs: _VT) -> None → method dict.update(__m: Mapping[_KT, _VT], **kwargs: _VT) -> None | (__m: Iterable[tuple[_KT, _VT]], **kwargs: _VT) -> None | (**kwargs: _VT) -> None
  • changed: method dict.values() -> ValuesView[_VT] → method dict.values() -> dict_values[_KT, _VT]
  • changed: method float.as_integer_ratio() -> Tuple[int, int] → method float.as_integer_ratio() -> tuple[int, int]
  • changed: method frozenset.copy() -> FrozenSet[_T_co] → method frozenset.copy() -> frozenset[_T_co]
  • changed: method frozenset.difference(*s: Iterable[object]) -> FrozenSet[_T_co] → method frozenset.difference(*s: Iterable[object]) -> frozenset[_T_co]
  • changed: method frozenset.intersection(*s: Iterable[object]) -> FrozenSet[_T_co] → method frozenset.intersection(*s: Iterable[object]) -> frozenset[_T_co]
  • changed: method frozenset.isdisjoint(s: Iterable[_T_co]) -> bool → method frozenset.isdisjoint(__s: Iterable[_T_co]) -> bool
  • changed: method frozenset.issubset(s: Iterable[object]) -> bool → method frozenset.issubset(__s: Iterable[object]) -> bool
  • changed: method frozenset.issuperset(s: Iterable[object]) -> bool → method frozenset.issuperset(__s: Iterable[object]) -> bool
  • changed: method frozenset.symmetric_difference(s: Iterable[_T_co]) -> FrozenSet[_T_co] → method frozenset.symmetric_difference(__s: Iterable[_T_co]) -> frozenset[_T_co]
  • changed: method frozenset.union(*s: Iterable[_T_co]) -> FrozenSet[_T_co] → method frozenset.union(*s: Iterable[_S]) -> frozenset[_T_co | _S]
  • changed: method int.as_integer_ratio() -> Tuple[int, Literal[1]] → method int.as_integer_ratio() -> tuple[int, Literal[1]]
  • changed: method list.sort(*, key: None=…, reverse: bool=…) -> None | (*, key: Callable[[_T], SupportsLessThan], reverse: bool=…) -> None → method list.sort(*, key: None=…, reverse: bool=…) -> None | (*, key: Callable[[_T], SupportsRichComparison], reverse: bool=…) -> None
  • changed: method property.deleter(fdel: Callable[[Any], None]) -> property → method property.deleter(__fdel: Callable[[Any], None]) -> property
  • changed: method property.getter(fget: Callable[[Any], Any]) -> property → method property.getter(__fget: Callable[[Any], Any]) -> property
  • changed: method property.setter(fset: Callable[[Any, Any], None]) -> property → method property.setter(__fset: Callable[[Any, Any], None]) -> property
  • changed: method range.count(value: int) -> int → method range.count(__value: int) -> int
  • changed: method range.index(value: int) -> int → method range.index(__value: int) -> int
  • changed: method set.add(element: _T) -> None → method set.add(__element: _T) -> None
  • changed: method set.copy() -> Set[_T] → method set.copy() -> set[_T]
  • changed: method set.difference(*s: Iterable[Any]) -> Set[_T] → method set.difference(*s: Iterable[Any]) -> set[_T]
  • changed: method set.discard(element: _T) -> None → method set.discard(__element: _T) -> None
  • changed: method set.intersection(*s: Iterable[Any]) -> Set[_T] → method set.intersection(*s: Iterable[Any]) -> set[_T]
  • changed: method set.isdisjoint(s: Iterable[Any]) -> bool → method set.isdisjoint(__s: Iterable[Any]) -> bool
  • changed: method set.issubset(s: Iterable[Any]) -> bool → method set.issubset(__s: Iterable[Any]) -> bool
  • changed: method set.issuperset(s: Iterable[Any]) -> bool → method set.issuperset(__s: Iterable[Any]) -> bool
  • changed: method set.remove(element: _T) -> None → method set.remove(__element: _T) -> None
  • changed: method set.symmetric_difference(s: Iterable[_T]) -> Set[_T] → method set.symmetric_difference(__s: Iterable[_T]) -> set[_T]
  • changed: method set.symmetric_difference_update(s: Iterable[_T]) -> None → method set.symmetric_difference_update(__s: Iterable[_T]) -> None
  • changed: method set.union(*s: Iterable[_T]) -> Set[_T] → method set.union(*s: Iterable[_S]) -> set[_T | _S]
  • changed: method slice.indices(len: SupportsIndex) -> Tuple[int, int, int] → method slice.indices(__len: SupportsIndex) -> tuple[int, int, int]
  • changed: method str.partition(__sep: str) -> Tuple[str, str, str] → method str.partition(__sep: str) -> tuple[str, str, str]
  • changed: method str.rpartition(__sep: str) -> Tuple[str, str, str] → method str.rpartition(__sep: str) -> tuple[str, str, str]
  • changed: static method bytes.fromhex(__s: str) -> bytes → static method bytes.fromhex(__s: str) -> _T
  • changed: function monthrange(year: int, month: int) -> Tuple[int, int] → function monthrange(year: int, month: int) -> tuple[int, int]
  • changed: method Calendar.itermonthdays2(year: int, month: int) -> Iterable[Tuple[int, int]] → method Calendar.itermonthdays2(year: int, month: int) -> Iterable[tuple[int, int]]
  • changed: method Calendar.itermonthdays3(year: int, month: int) -> Iterable[Tuple[int, int, int]] → method Calendar.itermonthdays3(year: int, month: int) -> Iterable[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) -> Iterable[tuple[int, int, int, int]]
  • changed: method Calendar.monthdays2calendar(year: int, month: int) -> list[list[Tuple[int, int]]] → method Calendar.monthdays2calendar(year: int, month: int) -> list[list[tuple[int, int]]]
  • changed: method Calendar.yeardays2calendar(year: int, width: int=…) -> list[list[Tuple[int, int]]] → method Calendar.yeardays2calendar(year: int, width: int=…) -> list[list[tuple[int, int]]]
  • changed: function lookup(name: str, frame: FrameType, locals: dict[str, Any]) -> Tuple[str | None, Any] → function lookup(name: str, frame: FrameType, locals: dict[str, Any]) -> tuple[str | None, Any]
  • changed: function scanvars(reader: Callable[[], bytes], frame: FrameType, locals: dict[str, Any]) -> list[Tuple[str, str | None, Any]] → function scanvars(reader: Callable[[], bytes], frame: FrameType, locals: dict[str, Any]) -> list[tuple[str, str | None, Any]]
  • changed: function polar(__z: _C) -> Tuple[float, float] → function polar(__z: _C) -> tuple[float, float]
  • changed: method Cmd.parseline(line: str) -> Tuple[str | None, str | None, str] → method Cmd.parseline(line: str) -> tuple[str | None, str | None, str]
  • changed: function backslashreplace_errors(exception: UnicodeError) -> Tuple[str | bytes, int] → function backslashreplace_errors(exception: UnicodeError) -> tuple[str | bytes, int]
  • changed: function ignore_errors(exception: UnicodeError) -> Tuple[str | bytes, int] → function ignore_errors(exception: UnicodeError) -> tuple[str | bytes, int]
  • changed: function lookup_error(__name: str) -> Callable[[UnicodeError], Tuple[str | bytes, int]] → function lookup_error(__name: str) -> Callable[[UnicodeError], tuple[str | bytes, int]]
  • changed: function register_error(__errors: str, __handler: Callable[[UnicodeError], Tuple[str | bytes, int]]) -> None → function register_error(__errors: str, __handler: Callable[[UnicodeError], tuple[str | bytes, int]]) -> None
  • changed: function replace_errors(exception: UnicodeError) -> Tuple[str | bytes, int] → function replace_errors(exception: UnicodeError) -> tuple[str | bytes, int]
  • changed: function strict_errors(exception: UnicodeError) -> Tuple[str | bytes, int] → function strict_errors(exception: UnicodeError) -> tuple[str | bytes, int]
  • changed: function utf_16_be_decode(__data: bytes, __errors: str | None=…, __final: bool=…) -> Tuple[str, int] → function utf_16_be_decode(__data: bytes, __errors: str | None=…, __final: bool=…) -> tuple[str, int]
  • changed: function utf_16_be_encode(__str: str, __errors: str | None=…) -> Tuple[bytes, int] → function utf_16_be_encode(__str: str, __errors: str | None=…) -> tuple[bytes, int]
  • changed: function xmlcharrefreplace_errors(exception: UnicodeError) -> Tuple[str | bytes, int] → function xmlcharrefreplace_errors(exception: UnicodeError) -> tuple[str | bytes, int]
  • changed: method Codec.decode(input: bytes, errors: str=…) -> Tuple[str, int] → method Codec.decode(input: bytes, errors: str=…) -> tuple[str, int]
  • changed: method Codec.encode(input: str, errors: str=…) -> Tuple[bytes, int] → method Codec.encode(input: str, errors: str=…) -> tuple[bytes, int]
  • changed: method IncrementalDecoder.getstate() -> Tuple[bytes, int] → method IncrementalDecoder.getstate() -> tuple[bytes, int]
  • changed: method IncrementalDecoder.setstate(state: Tuple[bytes, int]) -> None → method IncrementalDecoder.setstate(state: tuple[bytes, int]) -> None
  • changed: constructor ChainMap(*maps: Mapping[_KT, _VT]) -> None → constructor ChainMap(*maps: MutableMapping[_KT, _VT]) -> None
  • changed: constructor defaultdict(**kwargs: _VT) -> None | (default_factory: Callable[[], _VT] | None) -> None | (default_factory: Callable[[], _VT] | None, **kwargs: _VT) -> None | (default_factory: Callable[[], _VT] | None, map: Mapping[_KT, _VT]) -> None | (default_factory: Callable[[], _VT] | None, map: Mapping[_KT, _VT], **kwargs: _VT) -> None | (default_factory: Callable[[], _VT] | None, iterable: It… → constructor defaultdict(**kwargs: _VT) -> None | (__default_factory: Callable[[], _VT] | None) -> None | (__default_factory: Callable[[], _VT] | None, **kwargs: _VT) -> None | (__default_factory: Callable[[], _VT] | None, __map: Mapping[_KT, _VT]) -> None | (__default_factory: Callable[[], _VT] | None, __map: Mapping[_KT, _VT], **kwargs: _VT) -> None | (__default_factory: Callable[[], _VT] | None…
  • changed: field ChainMap.maps: list[Mapping[_KT, _VT]] → field ChainMap.maps: list[MutableMapping[_KT, _VT]]
  • changed: method ChainMap.new_child(m: Mapping[_KT, _VT] | None=…) -> Self → method ChainMap.new_child(m: MutableMapping[_KT, _VT] | None=…) -> Self
  • changed: method Counter.copy() -> _S → method Counter.copy() -> Self
  • changed: method Counter.most_common(n: int | None=…) -> list[Tuple[_T, int]] → method Counter.most_common(n: int | None=…) -> list[tuple[_T, int]]
  • changed: method Counter.update(__m: Mapping[_T, int], **kwargs: int) -> None | (__m: Iterable[_T] | Iterable[Tuple[_T, int]], **kwargs: int) -> None | (__m: None=…, **kwargs: int) -> None → method Counter.update(__m: Mapping[_T, int], **kwargs: int) -> None | (__m: Iterable[_T] | Iterable[tuple[_T, int]], **kwargs: int) -> None | (__m: None=…, **kwargs: int) -> None
  • changed: method OrderedDict.copy() -> _S → method OrderedDict.copy() -> Self
  • changed: method OrderedDict.keys() -> _OrderedDictKeysView[_KT] → method OrderedDict.keys() -> _OrderedDictKeysView[_KT, _VT]
  • changed: method OrderedDict.popitem(last: bool=…) -> Tuple[_KT, _VT] → method OrderedDict.popitem(last: bool=…) -> tuple[_KT, _VT]
  • changed: method OrderedDict.values() -> _OrderedDictValuesView[_VT] → method OrderedDict.values() -> _OrderedDictValuesView[_KT, _VT]
  • changed: method UserDict.copy() -> _S → method UserDict.copy() -> Self
  • changed: method UserString.partition(sep: str) -> Tuple[str, str, str] → method UserString.partition(sep: str) -> tuple[str, str, str]
  • changed: method UserString.rpartition(sep: str) -> Tuple[str, str, str] → method UserString.rpartition(sep: str) -> tuple[str, str, str]
  • changed: method deque.append(x: _T) -> None → method deque.append(__x: _T) -> None
  • changed: method deque.appendleft(x: _T) -> None → method deque.appendleft(__x: _T) -> None
  • changed: method deque.copy() -> deque[_T] → method deque.copy() -> _S
  • changed: method deque.count(x: _T) -> int → method deque.count(__x: _T) -> int
  • changed: method deque.extend(iterable: Iterable[_T]) -> None → method deque.extend(__iterable: Iterable[_T]) -> None
  • changed: method deque.extendleft(iterable: Iterable[_T]) -> None → method deque.extendleft(__iterable: Iterable[_T]) -> None
  • changed: method deque.index(x: _T, start: int=…, stop: int=…) -> int → method deque.index(__x: _T, __start: int=…, __stop: int=…) -> int
  • changed: method deque.insert(i: int, x: _T) -> None → method deque.insert(__i: int, __x: _T) -> None
  • changed: method deque.remove(value: _T) -> None → method deque.remove(__value: _T) -> None
  • changed: method deque.rotate(n: int=…) -> None → method deque.rotate(__n: int=…) -> None
  • changed: static method UserDict.fromkeys(iterable: Iterable[_KT], value: _VT | None=…) -> _S → static method UserDict.fromkeys(iterable: Iterable[_KT], value: _VT | None=…) -> Self
  • added: method ChainMap.pop(key: _KT) -> _VT | (key: _KT, default: _VT | _T=…) -> _VT | _T
  • added: method ChainMap.setdefault(key: _KT, default: _VT=…) -> _VT
  • changed: function hls_to_rgb(h: float, l: float, s: float) -> Tuple[float, float, float] → function hls_to_rgb(h: float, l: float, s: float) -> tuple[float, float, float]
  • changed: function hsv_to_rgb(h: float, s: float, v: float) -> Tuple[float, float, float] → function hsv_to_rgb(h: float, s: float, v: float) -> tuple[float, float, float]
  • changed: function rgb_to_hls(r: float, g: float, b: float) -> Tuple[float, float, float] → function rgb_to_hls(r: float, g: float, b: float) -> tuple[float, float, float]
  • changed: function rgb_to_hsv(r: float, g: float, b: float) -> Tuple[float, float, float] → function rgb_to_hsv(r: float, g: float, b: float) -> tuple[float, float, float]
  • changed: function rgb_to_yiq(r: float, g: float, b: float) -> Tuple[float, float, float] → function rgb_to_yiq(r: float, g: float, b: float) -> tuple[float, float, float]
  • changed: function yiq_to_rgb(y: float, i: float, q: float) -> Tuple[float, float, float] → function yiq_to_rgb(y: float, i: float, q: float) -> tuple[float, float, float]
  • changed: field ParsingError.errors: list[Tuple[int, str]] → field ParsingError.errors: list[tuple[int, str]]
  • changed: class AsyncExitStack(AsyncContextManager[AsyncExitStack]) → class AsyncExitStack(AbstractAsyncContextManager[AsyncExitStack])
  • changed: class ExitStack(ContextManager[ExitStack]) → class ExitStack(AbstractContextManager[ExitStack])
  • changed: class aclosing(AsyncContextManager[_SupportsAcloseT]) → class aclosing(AbstractAsyncContextManager[_SupportsAcloseT])
  • changed: class closing(ContextManager[_SupportsCloseT]) → class closing(AbstractContextManager[_SupportsCloseT])
  • changed: class redirect_stderr(ContextManager[_T_io]) → class redirect_stderr(AbstractContextManager[_T_io])
  • changed: class redirect_stdout(ContextManager[_T_io]) → class redirect_stdout(AbstractContextManager[_T_io])
  • changed: class suppress(ContextManager[None]) → class suppress(AbstractContextManager[None])
  • changed: function asynccontextmanager(func: Callable[_P, AsyncIterator[_T]]) -> Callable[_P, AsyncContextManager[_T]] → function asynccontextmanager(func: Callable[_P, AsyncIterator[_T]]) -> Callable[_P, AbstractAsyncContextManager[_T]]
  • changed: method AsyncExitStack.callback(callback: Callable[..., Any], *args: Any, **kwds: Any) -> Callable[..., Any] → method AsyncExitStack.callback(__callback: Callable[..., Any], *args: Any, **kwds: Any) -> Callable[..., Any]
  • changed: method AsyncExitStack.enter_async_context(cm: AsyncContextManager[_T]) -> Awaitable[_T] → method AsyncExitStack.enter_async_context(cm: AbstractAsyncContextManager[_T]) -> Awaitable[_T]
  • changed: method AsyncExitStack.enter_context(cm: ContextManager[_T]) -> _T → method AsyncExitStack.enter_context(cm: AbstractContextManager[_T]) -> _T
  • changed: method AsyncExitStack.push_async_callback(callback: _CallbackCoroFunc, *args: Any, **kwds: Any) -> _CallbackCoroFunc → method AsyncExitStack.push_async_callback(__callback: _CallbackCoroFunc, *args: Any, **kwds: Any) -> _CallbackCoroFunc
  • changed: method ExitStack.callback(callback: Callable[..., Any], *args: Any, **kwds: Any) -> Callable[..., Any] → method ExitStack.callback(__callback: Callable[..., Any], *args: Any, **kwds: Any) -> Callable[..., Any]
  • changed: method ExitStack.enter_context(cm: ContextManager[_T]) -> _T → method ExitStack.enter_context(cm: AbstractContextManager[_T]) -> _T
  • added: class chdir(AbstractContextManager[None], Generic[_T_fd_or_any_path])
  • added: constructor chdir(path: _T_fd_or_any_path) -> None
  • added: field chdir.path: _T_fd_or_any_path
  • changed: function asdict(obj: Any) -> dict[str, Any] | (obj: Any, *, dict_factory: Callable[[list[Tuple[str, Any]]], _T]) -> _T → function asdict(obj: Any) -> dict[str, Any] | (obj: Any, *, dict_factory: Callable[[list[tuple[str, Any]]], _T]) -> _T
  • changed: function make_dataclass(cls_name: str, fields: Iterable[str | Tuple[str, type] | Tuple[str, type, Field[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, type] | tuple[str, type, Field[Any]]], *, bases: Tuple[type, ...]=…, namespace: dict[str, Any] | None=…, init: bool=…, repr: bool=…, eq: bool=…, order: bool=…, unsafe_hash: bool=…, frozen: bool=…) -> type
  • removed: method datetime.isoweekday() -> int
  • removed: method datetime.strftime(fmt: str) -> str
  • removed: method datetime.timetuple() -> struct_time
  • removed: method datetime.toordinal() -> int
  • removed: method datetime.weekday() -> int
  • removed: property datetime.day -> int
  • removed: property datetime.month -> int
  • removed: property datetime.year -> int
  • removed: static method datetime.fromordinal(n: int) -> _S
  • removed: static method datetime.today() -> _S
  • changed: method date.isocalendar() -> Tuple[int, int, int] → method date.isocalendar() -> tuple[int, int, int]
  • changed: method datetime.isocalendar() -> Tuple[int, int, int] → method datetime.isocalendar() -> tuple[int, int, int]
  • changed: method tzinfo.dst(dt: datetime | None) -> timedelta | None → method tzinfo.dst(__dt: datetime | None) -> timedelta | None
  • changed: method tzinfo.fromutc(dt: datetime) -> datetime → method tzinfo.fromutc(__dt: datetime) -> datetime
  • changed: method tzinfo.tzname(dt: datetime | None) -> str | None → method tzinfo.tzname(__dt: datetime | None) -> str | None
  • changed: method tzinfo.utcoffset(dt: datetime | None) -> timedelta | None → method tzinfo.utcoffset(__dt: datetime | None) -> timedelta | None
  • changed: static method date.fromisoformat(date_string: str) -> _S → static method date.fromisoformat(__date_string: str) -> _S
  • changed: static method date.fromordinal(n: int) -> _S → static method date.fromordinal(__n: int) -> _S
  • changed: static method datetime.fromisoformat(date_string: str) -> _S → static method datetime.fromisoformat(__date_string: str) -> _S
  • changed: static method datetime.fromtimestamp(t: float, tz: _tzinfo | None=…) -> _S → static method datetime.fromtimestamp(__timestamp: float, tz: _tzinfo | None=…) -> _S
  • changed: static method datetime.strptime(date_string: str, format: str) -> datetime → static method datetime.strptime(__date_string: str, __format: str) -> datetime
  • changed: static method datetime.utcfromtimestamp(t: float) -> _S → static method datetime.utcfromtimestamp(__t: float) -> _S
  • changed: static method time.fromisoformat(time_string: str) -> _S → static method time.fromisoformat(__time_string: str) -> _S
  • changed: method Context.divmod(__x: _Decimal, __y: _Decimal) -> Tuple[Decimal, Decimal] → method Context.divmod(__x: _Decimal, __y: _Decimal) -> tuple[Decimal, Decimal]
  • changed: method Decimal.as_integer_ratio() -> Tuple[int, int] → method Decimal.as_integer_ratio() -> tuple[int, int]
  • changed: method SequenceMatcher.get_grouped_opcodes(n: int=…) -> Iterable[list[Tuple[str, int, int, int, int]]] → method SequenceMatcher.get_grouped_opcodes(n: int=…) -> Iterable[list[tuple[str, int, int, int, int]]]
  • changed: method SequenceMatcher.get_opcodes() -> list[Tuple[str, int, int, int, int]] → method SequenceMatcher.get_opcodes() -> list[tuple[str, int, int, int, int]]
  • changed: function findlinestarts(code: _have_code) -> Iterator[Tuple[int, int]] → function findlinestarts(code: _have_code) -> Iterator[tuple[int, int]]
  • changed: field Command.sub_commands: list[Tuple[str, Callable[[Command], bool] | None]] → field Command.sub_commands: list[tuple[str, Callable[[Command], bool] | None]]
  • changed: method Command.copy_file(infile: str, outfile: str, preserve_mode: int=…, preserve_times: int=…, link: str | None=…, level: Any=…) -> Tuple[str, bool] → method Command.copy_file(infile: str, outfile: str, preserve_mode: int=…, preserve_times: int=…, link: str | None=…, level: Any=…) -> tuple[str, bool]
  • changed: method Command.make_file(infiles: str | list[str] | Tuple[str], outfile: str, func: Callable[..., Any], args: list[Any], exec_msg: str | None=…, skip_msg: str | None=…, level: Any=…) -> None → method Command.make_file(infiles: str | list[str] | tuple[str], outfile: str, func: Callable[..., Any], args: list[Any], exec_msg: str | None=…, skip_msg: str | None=…, level: Any=…) -> None
  • changed: method Command.set_undefined_options(src_cmd: str, *option_pairs: Tuple[str, str]) -> None → method Command.set_undefined_options(src_cmd: str, *option_pairs: tuple[str, str]) -> None
  • changed: function newer_pairwise(sources: list[str], targets: list[str]) -> list[Tuple[str, str]] → function newer_pairwise(sources: list[str], targets: list[str]) -> list[tuple[str, str]]
  • changed: method Distribution.get_option_dict(command: str) -> dict[str, Tuple[str, str]] → method Distribution.get_option_dict(command: str) -> dict[str, tuple[str, str]]
  • changed: constructor Extension(name: str, sources: list[str], include_dirs: list[str] | None=…, define_macros: list[Tuple[str, str | None]] | None=…, undef_macros: list[str] | None=…, library_dirs: list[str] | None=…, libraries: list[str] | None=…, runtime_library_dirs: list[str] | None=…, extra_objects: list[str] | None=…, extra_compile_args: list[str] | None=…, extra_link_args: list[str] | None=…, expor… → constructor Extension(name: str, sources: list[str], include_dirs: list[str] | None=…, define_macros: list[tuple[str, str | None]] | None=…, undef_macros: list[str] | None=…, library_dirs: list[str] | None=…, libraries: list[str] | None=…, runtime_library_dirs: list[str] | None=…, extra_objects: list[str] | None=…, extra_compile_args: list[str] | None=…, extra_link_args: list[str] | None=…, expor…
  • changed: method FancyGetopt.get_option_order() -> list[Tuple[str, str]] → method FancyGetopt.get_option_order() -> list[tuple[str, str]]
  • changed: function copy_file(src: str, dst: str, preserve_mode: bool=…, preserve_times: bool=…, update: bool=…, link: str | None=…, verbose: bool=…, dry_run: bool=…) -> Tuple[str, str] → function copy_file(src: str, dst: str, preserve_mode: bool=…, preserve_times: bool=…, update: bool=…, link: str | None=…, verbose: bool=…, dry_run: bool=…) -> tuple[str, str]
  • changed: method TextFile.warn(msg: str, line: list[int] | Tuple[int, int] | int | None=…) -> None → method TextFile.warn(msg: str, line: list[int] | tuple[int, int] | int | None=…) -> None
  • changed: field StrictVersion.prerelease: Tuple[str, int] | None → field StrictVersion.prerelease: tuple[str, int] | None
  • changed: field StrictVersion.version: Tuple[int, int, int] → field StrictVersion.version: tuple[int, int, int]
  • changed: function decode_header(header: Header | str) -> list[Tuple[bytes, str | None]] → function decode_header(header: Header | str) -> list[tuple[bytes, str | None]]
  • changed: function make_header(decoded_seq: list[Tuple[bytes, str | None]], maxlinelen: int | None=…, header_name: str | None=…, continuation_ws: str=…) -> Header → function make_header(decoded_seq: list[tuple[bytes, str | None]], maxlinelen: int | None=…, header_name: str | None=…, continuation_ws: str=…) -> Header
  • changed: method Message.get_params(failobj: _T=…, header: str=…, unquote: bool=…) -> list[Tuple[str, str]] | _T → method Message.get_params(failobj: _T=…, header: str=…, unquote: bool=…) -> list[tuple[str, str]] | _T
  • changed: method Message.items() -> list[Tuple[str, _HeaderType]] → method Message.items() -> list[tuple[str, _HeaderType]]
  • changed: method Compat32.header_source_parse(sourcelines: list[str]) -> Tuple[str, str] → method Compat32.header_source_parse(sourcelines: list[str]) -> tuple[str, str]
  • changed: method Compat32.header_store_parse(name: str, value: str) -> Tuple[str, str] → method Compat32.header_store_parse(name: str, value: str) -> tuple[str, str]
  • changed: method EmailPolicy.header_source_parse(sourcelines: list[str]) -> Tuple[str, str] → method EmailPolicy.header_source_parse(sourcelines: list[str]) -> tuple[str, str]
  • changed: method EmailPolicy.header_store_parse(name: str, value: str) -> Tuple[str, str] → method EmailPolicy.header_store_parse(name: str, value: str) -> tuple[str, str]
  • changed: method Policy.header_source_parse(sourcelines: list[str]) -> Tuple[str, str] → method Policy.header_source_parse(sourcelines: list[str]) -> tuple[str, str]
  • changed: method Policy.header_store_parse(name: str, value: str) -> Tuple[str, str] → method Policy.header_store_parse(name: str, value: str) -> tuple[str, str]
  • changed: function decode_params(params: list[Tuple[str, str]]) -> list[Tuple[str, _ParamType]] → function decode_params(params: list[tuple[str, str]]) -> list[tuple[str, _ParamType]]
  • changed: function decode_rfc2231(s: str) -> Tuple[str | None, str | None, str] → function decode_rfc2231(s: str) -> tuple[str | None, str | None, str]
  • changed: function formataddr(pair: Tuple[str | None, str], charset: str | Charset=…) -> str → function formataddr(pair: tuple[str | None, str], charset: str | Charset=…) -> str
  • changed: function getaddresses(fieldvalues: list[str]) -> list[Tuple[str, str]] → function getaddresses(fieldvalues: list[str]) -> list[tuple[str, str]]
  • changed: function parseaddr(addr: str | None) -> Tuple[str, str] → function parseaddr(addr: str | None) -> tuple[str, str]
  • changed: function parsedate(data: None) -> None | (data: str) -> Tuple[int, int, int, int, int, int, int, int, int] | None → function parsedate(data: None) -> None | (data: str) -> tuple[int, int, int, int, int, int, int, int, int] | None
  • changed: function decode(input: bytes, errors: str | None=…) -> Tuple[str, int] → function decode(input: bytes, errors: str | None=…) -> tuple[str, int]
  • changed: function encode(__str: str, __errors: str | None=…) -> Tuple[bytes, int] → function encode(__str: str, __errors: str | None=…) -> tuple[bytes, int]
  • changed: static method StreamReader.decode(__data: bytes, __errors: str | None=…, __final: bool=…) -> Tuple[str, int] → static method StreamReader.decode(__data: bytes, __errors: str | None=…, __final: bool=…) -> tuple[str, int]
  • changed: static method StreamWriter.encode(__str: str, __errors: str | None=…) -> Tuple[bytes, int] → static method StreamWriter.encode(__str: str, __errors: str | None=…) -> tuple[bytes, int]
  • changed: function ioctl(__fd: FileDescriptorLike, __request: int, __arg: int=…, __mutate_flag: bool=…) -> int | (__fd: FileDescriptorLike, __request: int, __arg: _WritableBuffer, __mutate_flag: Literal[True]=…) -> int | (__fd: FileDescriptorLike, __request: int, __arg: _WritableBuffer, __mutate_flag: Literal[False]) -> bytes | (__fd: FileDescriptorLike, __request: int, __arg: _ReadOnlyBuffer, __mutate_fla… → function ioctl(__fd: FileDescriptorLike, __request: int, __arg: int=…, __mutate_flag: bool=…) -> int | (__fd: FileDescriptorLike, __request: int, __arg: WriteableBuffer, __mutate_flag: Literal[True]=…) -> int | (__fd: FileDescriptorLike, __request: int, __arg: WriteableBuffer, __mutate_flag: Literal[False]) -> bytes | (__fd: FileDescriptorLike, __request: int, __arg: ReadOnlyBuffer, __mutate_flag…
  • changed: function cmpfiles(a: AnyStr | PathLike[AnyStr], b: AnyStr | PathLike[AnyStr], common: Iterable[AnyStr], shallow: int | bool=…) -> Tuple[list[AnyStr], list[AnyStr], list[AnyStr]] → function cmpfiles(a: AnyStr | PathLike[AnyStr], b: AnyStr | PathLike[AnyStr], common: Iterable[AnyStr], shallow: int | bool=…) -> tuple[list[AnyStr], list[AnyStr], list[AnyStr]]
  • changed: method Fraction.as_integer_ratio() -> Tuple[int, int] → method Fraction.as_integer_ratio() -> tuple[int, int]
  • changed: constructor FTP(host: str=…, user: str=…, passwd: str=…, acct: str=…, timeout: float=…, source_address: Tuple[str, int] | None=…) -> None → constructor FTP(host: str=…, user: str=…, passwd: str=…, acct: str=…, timeout: float=…, source_address: tuple[str, int] | None=…) -> None
  • changed: constructor FTP_TLS(host: str=…, user: str=…, passwd: str=…, acct: str=…, keyfile: str | None=…, certfile: str | None=…, context: SSLContext | None=…, timeout: float=…, source_address: Tuple[str, int] | None=…) -> None → constructor FTP_TLS(host: str=…, user: str=…, passwd: str=…, acct: str=…, keyfile: str | None=…, certfile: str | None=…, context: SSLContext | None=…, timeout: float=…, source_address: tuple[str, int] | None=…) -> None
  • changed: field FTP.source_address: Tuple[str, int] | None → field FTP.source_address: tuple[str, int] | None
  • changed: function parse227(resp: str) -> Tuple[str, int] → function parse227(resp: str) -> tuple[str, int]
  • changed: function parse229(resp: str, peer: Any) -> Tuple[str, int] → function parse229(resp: str, peer: Any) -> tuple[str, int]
  • changed: method FTP.connect(host: str=…, port: int=…, timeout: float=…, source_address: Tuple[str, int] | None=…) -> str → method FTP.connect(host: str=…, port: int=…, timeout: float=…, source_address: tuple[str, int] | None=…) -> str
  • changed: method FTP.makepasv() -> Tuple[str, int] → method FTP.makepasv() -> tuple[str, int]
  • changed: method FTP.mlsd(path: str=…, facts: Iterable[str]=…) -> Iterator[Tuple[str, dict[str, str]]] → method FTP.mlsd(path: str=…, facts: Iterable[str]=…) -> Iterator[tuple[str, dict[str, str]]]
  • changed: method FTP.ntransfercmd(cmd: str, rest: int | str | None=…) -> Tuple[socket, int] → method FTP.ntransfercmd(cmd: str, rest: int | str | None=…) -> tuple[socket, int]
  • changed: function get_count() -> Tuple[int, int, int] → function get_count() -> tuple[int, int, int]
  • changed: function get_threshold() -> Tuple[int, int, int] → function get_threshold() -> tuple[int, int, int]
  • changed: function exists(path: StrOrBytesPath) -> bool → function exists(path: StrOrBytesPath | int) -> bool
  • changed: function getatime(filename: StrOrBytesPath) -> float → function getatime(filename: StrOrBytesPath | int) -> float
  • changed: function getctime(filename: StrOrBytesPath) -> float → function getctime(filename: StrOrBytesPath | int) -> float
  • changed: function getmtime(filename: StrOrBytesPath) -> float → function getmtime(filename: StrOrBytesPath | int) -> float
  • changed: function getsize(filename: StrOrBytesPath) -> int → function getsize(filename: StrOrBytesPath | int) -> int
  • changed: function isdir(s: StrOrBytesPath) -> bool → function isdir(s: StrOrBytesPath | int) -> bool
  • changed: function isfile(path: StrOrBytesPath) -> bool → function isfile(path: StrOrBytesPath | int) -> bool
  • changed: function samefile(f1: StrOrBytesPath, f2: StrOrBytesPath) -> bool → function samefile(f1: StrOrBytesPath | int, f2: StrOrBytesPath | int) -> bool
  • changed: method HTMLParser.getpos() -> Tuple[int, int] → method HTMLParser.getpos() -> tuple[int, int]
  • changed: method HTMLParser.handle_startendtag(tag: str, attrs: list[Tuple[str, str | None]]) -> None → method HTMLParser.handle_startendtag(tag: str, attrs: list[tuple[str, str | None]]) -> None
  • changed: method HTMLParser.handle_starttag(tag: str, attrs: list[Tuple[str, str | None]]) -> None → method HTMLParser.handle_starttag(tag: str, attrs: list[tuple[str, str | None]]) -> None
  • changed: constructor HTTPConnection(host: str, port: int | None=…, timeout: float | None=…, source_address: Tuple[str, int] | None=…) -> None → constructor HTTPConnection(host: str, port: int | None=…, timeout: float | None=…, source_address: tuple[str, int] | None=…) -> None
  • changed: constructor HTTPSConnection(host: str, port: int | None=…, key_file: str | None=…, cert_file: str | None=…, timeout: float | None=…, source_address: Tuple[str, int] | None=…, *, context: ssl.SSLContext | None=…, check_hostname: bool | None=…) -> None → constructor HTTPSConnection(host: str, port: int | None=…, key_file: str | None=…, cert_file: str | None=…, timeout: float | None=…, source_address: tuple[str, int] | None=…, *, context: ssl.SSLContext | None=…, check_hostname: bool | None=…) -> None
  • changed: method HTTPResponse.getheaders() -> list[Tuple[str, str]] → method HTTPResponse.getheaders() -> list[tuple[str, str]]
  • added: field HTTPResponse.chunk_left: int | None
  • added: field HTTPResponse.chunked: bool
  • added: field HTTPResponse.fp: io.BufferedReader
  • added: field HTTPResponse.length: int | None
  • added: field HTTPResponse.will_close: bool
  • changed: method Morsel.update(values: Mapping[str, str]) -> None | (values: Iterable[Tuple[str, str]]) -> None → method Morsel.update(values: Mapping[str, str]) -> None | (values: Iterable[tuple[str, str]]) -> None
  • changed: constructor BaseHTTPRequestHandler(request: bytes, client_address: Tuple[str, int], server: socketserver.BaseServer) -> None → constructor BaseHTTPRequestHandler(request: bytes, client_address: tuple[str, int], server: socketserver.BaseServer) -> None
  • changed: constructor SimpleHTTPRequestHandler(request: bytes, client_address: Tuple[str, int], server: socketserver.BaseServer) -> None → constructor SimpleHTTPRequestHandler(request: bytes, client_address: tuple[str, int], server: socketserver.BaseServer) -> None
  • changed: field BaseHTTPRequestHandler.client_address: Tuple[str, int] → field BaseHTTPRequestHandler.client_address: tuple[str, int]
  • changed: field BaseHTTPRequestHandler.responses: Mapping[int, Tuple[str, str]] → field BaseHTTPRequestHandler.responses: Mapping[int, tuple[str, str]]
  • changed: field IMAP4.capabilities: Tuple[str] → field IMAP4.capabilities: tuple[str]
  • changed: field IMAP4.tagged_commands: dict[bytes, List[bytes] | None] → field IMAP4.tagged_commands: dict[bytes, _list[bytes] | None]
  • changed: field IMAP4.untagged_responses: dict[str, List[bytes | Tuple[bytes, bytes]]] → field IMAP4.untagged_responses: dict[str, _list[bytes | tuple[bytes, bytes]]]
  • changed: function ParseFlags(resp: str) -> Tuple[str] → function ParseFlags(resp: str) -> tuple[str]
  • changed: method IMAP4.authenticate(mechanism: str, authobject: Callable[[bytes], bytes | None]) -> Tuple[str, str] → method IMAP4.authenticate(mechanism: str, authobject: Callable[[bytes], bytes | None]) -> tuple[str, str]
  • changed: method IMAP4.fetch(message_set: str, message_parts: str) -> Tuple[str, _AnyResponseData] → method IMAP4.fetch(message_set: str, message_parts: str) -> tuple[str, _AnyResponseData]
  • changed: method IMAP4.list(directory: str=…, pattern: str=…) -> Tuple[str, _AnyResponseData] → method IMAP4.list(directory: str=…, pattern: str=…) -> tuple[str, _AnyResponseData]
  • changed: method IMAP4.login(user: str, password: str) -> Tuple[Literal['OK'], List[bytes]] → method IMAP4.login(user: str, password: str) -> tuple[Literal['OK'], _list[bytes]]
  • changed: method IMAP4.logout() -> Tuple[str, _AnyResponseData] → method IMAP4.logout() -> tuple[str, _AnyResponseData]
  • changed: method IMAP4.noop() -> Tuple[str, List[bytes]] → method IMAP4.noop() -> tuple[str, _list[bytes]]
  • changed: method IMAP4.select(mailbox: str=…, readonly: bool=…) -> Tuple[str, List[bytes | None]] → method IMAP4.select(mailbox: str=…, readonly: bool=…) -> tuple[str, _list[bytes | None]]
  • changed: method IMAP4.starttls(ssl_context: Any | None=…) -> Tuple[Literal['OK'], List[None]] → method IMAP4.starttls(ssl_context: Any | None=…) -> tuple[Literal['OK'], _list[None]]
  • changed: function find_module(name: str, path: None | list[str] | list[PathLike[str]] | list[StrPath]=…) -> Tuple[IO[Any], str, Tuple[str, str, int]] → function find_module(name: str, path: None | list[str] | list[PathLike[str]] | list[StrPath]=…) -> tuple[IO[Any], str, tuple[str, str, int]]
  • changed: function get_suffixes() -> list[Tuple[str, str, int]] → function get_suffixes() -> list[tuple[str, str, int]]
  • changed: function load_module(name: str, file: _FileLike | None, filename: str, details: Tuple[str, str, int]) -> types.ModuleType → function load_module(name: str, file: _FileLike | None, filename: str, details: tuple[str, str, int]) -> types.ModuleType
  • changed: function import_module(name: str, package: str | None=…) -> types.ModuleType → function import_module(name: str, package: str | None=…) -> ModuleType
  • changed: function reload(module: types.ModuleType) -> types.ModuleType → function reload(module: ModuleType) -> ModuleType
  • changed: method PathEntryFinder.find_loader(fullname: str) -> Tuple[Loader | None, Sequence[_Path]] → method PathEntryFinder.find_loader(fullname: str) -> tuple[Loader | None, Sequence[_Path]]
  • changed: method Traversable.joinpath(child: _Path) -> Traversable → method Traversable.joinpath(child: StrPath) -> Traversable
  • changed: method Traversable.open(mode: Literal['r', 'rb']=…, *args: Any, **kwargs: Any) -> IO[Any] → method Traversable.open(mode: OpenTextMode=…, buffering: int=…, encoding: str | None=…, errors: str | None=…, newline: str | None=…) -> TextIOWrapper | (mode: OpenBinaryMode, buffering: Literal[0], encoding: None=…, errors: None=…, newline: None=…) -> FileIO | (mode: OpenBinaryModeUpdating, buffering: Literal[-1, 1]=…, encoding: None=…, errors: None=…, newline: None=…) -> BufferedRandom | (mode:…
  • changed: constructor FileFinder(path: str, *loader_details: Tuple[importlib.abc.Loader, list[str]]) -> None → constructor FileFinder(path: str, *loader_details: tuple[importlib.abc.Loader, list[str]]) -> None
  • changed: field ModuleSpec.loader: importlib.abc._LoaderProtocol | None → field ModuleSpec.loader: importlib.abc.Loader | None
  • changed: static method FileFinder.path_hook(*loader_details: Tuple[importlib.abc.Loader, list[str]]) -> Callable[[str], importlib.abc.PathEntryFinder] → static method FileFinder.path_hook(*loader_details: tuple[importlib.abc.Loader, list[str]]) -> Callable[[str], importlib.abc.PathEntryFinder]
  • added: method ExtensionFileLoader.create_module(spec: ModuleSpec) -> types.ModuleType
  • added: method ExtensionFileLoader.exec_module(module: types.ModuleType) -> None
  • added: method ExtensionFileLoader.get_code(fullname: str) -> None
  • added: method ExtensionFileLoader.is_package(fullname: str) -> bool
  • changed: function path(package: Package, resource: Resource) -> ContextManager[Path] → function path(package: Package, resource: Resource) -> AbstractContextManager[Path]
  • changed: constructor Signature(parameters: Sequence[Parameter] | None=…, *, return_annotation: Any=…) -> None → constructor Signature(parameters: Sequence[Parameter] | None=…, *, return_annotation: Any=…, __validate_parameters__: bool=…) -> None
  • changed: field ClosureVars.unbound: Set[str] → field ClosureVars.unbound: AbstractSet[str]
  • changed: field Parameter.empty: Any → field Parameter.empty
  • changed: field Signature.empty: object → field Signature.empty
  • changed: function findsource(object: _SourceObjectType) -> Tuple[list[str], int] → function findsource(object: _SourceObjectType) -> tuple[list[str], int]
  • changed: function getmembers(object: object, predicate: Callable[[Any], bool] | None=…) -> list[Tuple[str, Any]] → function getmembers(object: object, predicate: Callable[[Any], bool] | None=…) -> list[tuple[str, Any]]
  • changed: function getsourcelines(object: _SourceObjectType) -> Tuple[list[str], int] → function getsourcelines(object: _SourceObjectType) -> tuple[list[str], int]
  • changed: function iscoroutine(object: object) -> TypeGuard[CoroutineType] → function iscoroutine(object: object) -> TypeGuard[CoroutineType[Any, Any, Any]]
  • changed: function isdatadescriptor(object: object) -> bool → function isdatadescriptor(object: object) -> TypeGuard[_SupportsSet[Any, Any] | _SupportsDelete[Any]]
  • changed: function isgetsetdescriptor(object: object) -> bool → function isgetsetdescriptor(object: object) -> TypeGuard[GetSetDescriptorType]
  • changed: function ismemberdescriptor(object: object) -> bool → function ismemberdescriptor(object: object) -> TypeGuard[MemberDescriptorType]
  • changed: function ismethoddescriptor(object: object) -> bool → function ismethoddescriptor(object: object) -> TypeGuard[MethodDescriptorType]
  • changed: function isroutine(object: object) -> bool → function isroutine(object: object) -> TypeGuard[FunctionType | LambdaType | MethodType | BuiltinFunctionType | BuiltinMethodType | WrapperDescriptorType | MethodDescriptorType | ClassMethodDescriptorType]
  • changed: method BlockFinder.tokeneater(type: int, token: str, srowcol: Tuple[int, int], erowcol: Tuple[int, int], line: str) -> None → method BlockFinder.tokeneater(type: int, token: str, srowcol: tuple[int, int], erowcol: tuple[int, int], line: str) -> None
  • changed: method Parameter.replace(*, name: str | None=…, kind: _ParameterKind | None=…, default: Any=…, annotation: Any=…) -> Self → method Parameter.replace(*, name: str | Type[_void]=…, kind: _ParameterKind | Type[_void]=…, default: Any=…, annotation: Any=…) -> Self
  • changed: method Signature.replace(*, parameters: Sequence[Parameter] | None=…, return_annotation: Any=…) -> Self → method Signature.replace(*, parameters: Sequence[Parameter] | Type[_void] | None=…, return_annotation: Any=…) -> Self
  • removed: property IPv6Address.teredo -> Tuple[IPv4Address, IPv4Address] | None
  • changed: function get_mixed_type_key(obj: _A) -> Tuple[int, _A] | (obj: IPv4Network) -> Tuple[int, IPv4Address, IPv4Address] | (obj: IPv6Network) -> Tuple[int, IPv6Address, IPv6Address] → function get_mixed_type_key(obj: _A) -> tuple[int, _A] | (obj: IPv4Network) -> tuple[int, IPv4Address, IPv4Address] | (obj: IPv6Network) -> tuple[int, IPv6Address, IPv6Address]
  • added: property IPv6Address.teredo -> tuple[IPv4Address, IPv4Address] | None
  • changed: function dump(obj: Any, fp: IO[str], *, skipkeys: bool=…, ensure_ascii: bool=…, check_circular: bool=…, allow_nan: bool=…, cls: Type[JSONEncoder] | None=…, indent: None | int | str=…, separators: Tuple[str, str] | None=…, default: Callable[[Any], Any] | None=…, sort_keys: bool=…, **kwds: Any) -> None → function dump(obj: Any, fp: IO[str], *, skipkeys: bool=…, ensure_ascii: bool=…, check_circular: bool=…, allow_nan: bool=…, cls: Type[JSONEncoder] | None=…, indent: None | int | str=…, separators: tuple[str, str] | None=…, default: Callable[[Any], Any] | None=…, sort_keys: bool=…, **kwds: Any) -> None
  • changed: function dumps(obj: Any, *, skipkeys: bool=…, ensure_ascii: bool=…, check_circular: bool=…, allow_nan: bool=…, cls: Type[JSONEncoder] | None=…, indent: None | int | str=…, separators: Tuple[str, str] | None=…, default: Callable[[Any], Any] | None=…, sort_keys: bool=…, **kwds: Any) -> str → function dumps(obj: Any, *, skipkeys: bool=…, ensure_ascii: bool=…, check_circular: bool=…, allow_nan: bool=…, cls: Type[JSONEncoder] | None=…, indent: None | int | str=…, separators: tuple[str, str] | None=…, default: Callable[[Any], Any] | None=…, sort_keys: bool=…, **kwds: Any) -> str
  • changed: function load(fp: SupportsRead[str | bytes], *, cls: Type[JSONDecoder] | None=…, object_hook: Callable[[dict[Any, Any]], Any] | None=…, parse_float: Callable[[str], Any] | None=…, parse_int: Callable[[str], Any] | None=…, parse_constant: Callable[[str], Any] | None=…, object_pairs_hook: Callable[[list[Tuple[Any, Any]]], Any] | None=…, **kwds: Any) -> Any → function load(fp: SupportsRead[str | bytes], *, cls: Type[JSONDecoder] | None=…, object_hook: Callable[[dict[Any, Any]], Any] | None=…, parse_float: Callable[[str], Any] | None=…, parse_int: Callable[[str], Any] | None=…, parse_constant: Callable[[str], Any] | None=…, object_pairs_hook: Callable[[list[tuple[Any, Any]]], Any] | None=…, **kwds: Any) -> Any
  • changed: function loads(s: str | bytes, *, cls: Type[JSONDecoder] | None=…, object_hook: Callable[[dict[Any, Any]], Any] | None=…, parse_float: Callable[[str], Any] | None=…, parse_int: Callable[[str], Any] | None=…, parse_constant: Callable[[str], Any] | None=…, object_pairs_hook: Callable[[list[Tuple[Any, Any]]], Any] | None=…, **kwds: Any) -> Any → function loads(s: str | bytes, *, cls: Type[JSONDecoder] | None=…, object_hook: Callable[[dict[Any, Any]], Any] | None=…, parse_float: Callable[[str], Any] | None=…, parse_int: Callable[[str], Any] | None=…, parse_constant: Callable[[str], Any] | None=…, object_pairs_hook: Callable[[list[tuple[Any, Any]]], Any] | None=…, **kwds: Any) -> Any
  • changed: constructor JSONDecoder(*, object_hook: Callable[[dict[str, Any]], Any] | None=…, parse_float: Callable[[str], Any] | None=…, parse_int: Callable[[str], Any] | None=…, parse_constant: Callable[[str], Any] | None=…, strict: bool=…, object_pairs_hook: Callable[[list[Tuple[str, Any]]], Any] | None=…) -> None → constructor JSONDecoder(*, object_hook: Callable[[dict[str, Any]], Any] | None=…, parse_float: Callable[[str], Any] | None=…, parse_int: Callable[[str], Any] | None=…, parse_constant: Callable[[str], Any] | None=…, strict: bool=…, object_pairs_hook: Callable[[list[tuple[str, Any]]], Any] | None=…) -> None
  • changed: field JSONDecoder.object_pairs_hook: Callable[[list[Tuple[str, Any]]], Any] → field JSONDecoder.object_pairs_hook: Callable[[list[tuple[str, Any]]], Any]
  • changed: method JSONDecoder.raw_decode(s: str, idx: int=…) -> Tuple[Any, int] → method JSONDecoder.raw_decode(s: str, idx: int=…) -> tuple[Any, int]
  • changed: constructor JSONEncoder(*, skipkeys: bool=…, ensure_ascii: bool=…, check_circular: bool=…, allow_nan: bool=…, sort_keys: bool=…, indent: int | None=…, separators: Tuple[str, str] | None=…, default: Callable[..., Any] | None=…) -> None → constructor JSONEncoder(*, skipkeys: bool=…, ensure_ascii: bool=…, check_circular: bool=…, allow_nan: bool=…, sort_keys: bool=…, indent: int | None=…, separators: tuple[str, str] | None=…, default: Callable[..., Any] | None=…) -> None
  • changed: field Parser.stack: list[Tuple[_DFAS, int, _RawNode]] → field Parser.stack: list[tuple[_DFAS, int, _RawNode]]
  • changed: field Parser.used_names: Set[str] → field Parser.used_names: set[str]
  • changed: field NFAState.arcs: list[Tuple[str | None, NFAState]] → field NFAState.arcs: list[tuple[str | None, NFAState]]
  • changed: method ParserGenerator.parse() -> Tuple[dict[str, list[DFAState]], str] → method ParserGenerator.parse() -> tuple[dict[str, list[DFAState]], str]
  • changed: method ParserGenerator.parse_alt() -> Tuple[NFAState, NFAState] → method ParserGenerator.parse_alt() -> tuple[NFAState, NFAState]
  • changed: method ParserGenerator.parse_atom() -> Tuple[NFAState, NFAState] → method ParserGenerator.parse_atom() -> tuple[NFAState, NFAState]
  • changed: method ParserGenerator.parse_item() -> Tuple[NFAState, NFAState] → method ParserGenerator.parse_item() -> tuple[NFAState, NFAState]
  • changed: method ParserGenerator.parse_rhs() -> Tuple[NFAState, NFAState] → method ParserGenerator.parse_rhs() -> tuple[NFAState, NFAState]
  • changed: method Untokenizer.compat(token: Tuple[int, str], iterable: Iterable[_TokenInfo]) -> None → method Untokenizer.compat(token: tuple[int, str], iterable: Iterable[_TokenInfo]) -> None
  • changed: function generate_matches(patterns: list[BasePattern], nodes: list[_NL]) -> Iterator[Tuple[int, _Results]] → function generate_matches(patterns: list[BasePattern], nodes: list[_NL]) -> Iterator[tuple[int, _Results]]
  • changed: method BasePattern.generate_matches(nodes: list[_NL]) -> Iterator[Tuple[int, _Results]] → method BasePattern.generate_matches(nodes: list[_NL]) -> Iterator[tuple[int, _Results]]
  • changed: function getdefaultlocale(envvars: Tuple[_str, ...]=…) -> Tuple[_str | None, _str | None] → function getdefaultlocale(envvars: Tuple[_str, ...]=…) -> tuple[_str | None, _str | None]
  • added: variable AM_STR: int
  • added: variable PM_STR: int
  • changed: function dictConfig(config: dict[str, Any]) -> None → function dictConfig(config: _DictConfigArgs | dict[str, Any]) -> None
  • changed: field RotatingFileHandler.backupCount: str → field RotatingFileHandler.backupCount: int
  • changed: field TimedRotatingFileHandler.backupCount: str → field TimedRotatingFileHandler.backupCount: int
  • changed: function split(s: PathLike[AnyStr]) -> Tuple[AnyStr, AnyStr] | (s: AnyStr) -> Tuple[AnyStr, AnyStr] → function split(s: PathLike[AnyStr]) -> tuple[AnyStr, AnyStr] | (s: AnyStr) -> tuple[AnyStr, AnyStr]
  • changed: method Mailbox.items() -> list[Tuple[str, _MessageT]] → method Mailbox.items() -> list[tuple[str, _MessageT]]
  • changed: method Mailbox.iteritems() -> Iterator[Tuple[str, _MessageT]] → method Mailbox.iteritems() -> Iterator[tuple[str, _MessageT]]
  • changed: method Mailbox.popitem() -> Tuple[str, _MessageT] → method Mailbox.popitem() -> tuple[str, _MessageT]
  • changed: method Mailbox.update(arg: _HasIteritems | _HasItems | Iterable[Tuple[str, _MessageData]] | None=…) -> None → method Mailbox.update(arg: _HasIteritems | _HasItems | Iterable[tuple[str, _MessageData]] | None=…) -> None
  • changed: function findmatch(caps: Mapping[str, list[_Cap]], MIMEtype: str, key: str=…, filename: str=…, plist: Sequence[str]=…) -> Tuple[str | None, _Cap | None] → function findmatch(caps: Mapping[str, list[_Cap]], MIMEtype: str, key: str=…, filename: str=…, plist: Sequence[str]=…) -> tuple[str | None, _Cap | None]
  • changed: function acos(__x: SupportsFloat) -> float → function acos(__x: _SupportsFloatOrIndex) -> float
  • changed: function acosh(__x: SupportsFloat) -> float → function acosh(__x: _SupportsFloatOrIndex) -> float
  • changed: function asin(__x: SupportsFloat) -> float → function asin(__x: _SupportsFloatOrIndex) -> float
  • changed: function asinh(__x: SupportsFloat) -> float → function asinh(__x: _SupportsFloatOrIndex) -> float
  • changed: function atan(__x: SupportsFloat) -> float → function atan(__x: _SupportsFloatOrIndex) -> float
  • changed: function atan2(__y: SupportsFloat, __x: SupportsFloat) -> float → function atan2(__y: _SupportsFloatOrIndex, __x: _SupportsFloatOrIndex) -> float
  • changed: function atanh(__x: SupportsFloat) -> float → function atanh(__x: _SupportsFloatOrIndex) -> float
  • changed: function ceil(__x: SupportsFloat) -> int → function ceil(__x: _SupportsFloatOrIndex) -> int
  • changed: function comb(__n: int, __k: int) -> int → function comb(__n: SupportsIndex, __k: SupportsIndex) -> int
  • changed: function copysign(__x: SupportsFloat, __y: SupportsFloat) -> float → function copysign(__x: _SupportsFloatOrIndex, __y: _SupportsFloatOrIndex) -> float
  • changed: function cos(__x: SupportsFloat) -> float → function cos(__x: _SupportsFloatOrIndex) -> float
  • changed: function cosh(__x: SupportsFloat) -> float → function cosh(__x: _SupportsFloatOrIndex) -> float
  • changed: function degrees(__x: SupportsFloat) -> float → function degrees(__x: _SupportsFloatOrIndex) -> float
  • changed: function dist(__p: Iterable[SupportsFloat], __q: Iterable[SupportsFloat]) -> float → function dist(__p: Iterable[_SupportsFloatOrIndex], __q: Iterable[_SupportsFloatOrIndex]) -> float
  • changed: function erf(__x: SupportsFloat) -> float → function erf(__x: _SupportsFloatOrIndex) -> float
  • changed: function erfc(__x: SupportsFloat) -> float → function erfc(__x: _SupportsFloatOrIndex) -> float
  • changed: function exp(__x: SupportsFloat) -> float → function exp(__x: _SupportsFloatOrIndex) -> float
  • changed: function expm1(__x: SupportsFloat) -> float → function expm1(__x: _SupportsFloatOrIndex) -> float
  • changed: function fabs(__x: SupportsFloat) -> float → function fabs(__x: _SupportsFloatOrIndex) -> float
  • changed: function factorial(__x: SupportsInt) -> int → function factorial(__x: int) -> int
  • changed: function floor(__x: SupportsFloat) -> int → function floor(__x: _SupportsFloatOrIndex) -> int
  • changed: function fmod(__x: SupportsFloat, __y: SupportsFloat) -> float → function fmod(__x: _SupportsFloatOrIndex, __y: _SupportsFloatOrIndex) -> float
  • changed: function frexp(__x: SupportsFloat) -> Tuple[float, int] → function frexp(__x: _SupportsFloatOrIndex) -> tuple[float, int]
  • changed: function fsum(__seq: Iterable[float]) -> float → function fsum(__seq: Iterable[_SupportsFloatOrIndex]) -> float
  • changed: function gamma(__x: SupportsFloat) -> float → function gamma(__x: _SupportsFloatOrIndex) -> float
  • changed: function gcd(__x: int, __y: int) -> int → function gcd(__x: SupportsIndex, __y: SupportsIndex) -> int
  • changed: function hypot(__x: SupportsFloat, __y: SupportsFloat) -> float → function hypot(__x: _SupportsFloatOrIndex, __y: _SupportsFloatOrIndex) -> float
  • changed: function isclose(a: SupportsFloat, b: SupportsFloat, *, rel_tol: SupportsFloat=…, abs_tol: SupportsFloat=…) -> bool → function isclose(a: _SupportsFloatOrIndex, b: _SupportsFloatOrIndex, *, rel_tol: _SupportsFloatOrIndex=…, abs_tol: _SupportsFloatOrIndex=…) -> bool
  • changed: function isfinite(__x: SupportsFloat) -> bool → function isfinite(__x: _SupportsFloatOrIndex) -> bool
  • changed: function isinf(__x: SupportsFloat) -> bool → function isinf(__x: _SupportsFloatOrIndex) -> bool
  • changed: function isnan(__x: SupportsFloat) -> bool → function isnan(__x: _SupportsFloatOrIndex) -> bool
  • changed: function isqrt(__n: int) -> int → function isqrt(__n: SupportsIndex) -> int
  • changed: function lcm(*integers: int) -> int → function lcm(*integers: SupportsIndex) -> int
  • changed: function ldexp(__x: SupportsFloat, __i: int) -> float → function ldexp(__x: _SupportsFloatOrIndex, __i: int) -> float
  • changed: function lgamma(__x: SupportsFloat) -> float → function lgamma(__x: _SupportsFloatOrIndex) -> float
  • changed: function log(x: SupportsFloat, base: SupportsFloat=…) -> float → function log(x: _SupportsFloatOrIndex, base: _SupportsFloatOrIndex=…) -> float
  • changed: function log10(__x: SupportsFloat) -> float → function log10(__x: _SupportsFloatOrIndex) -> float
  • changed: function log1p(__x: SupportsFloat) -> float → function log1p(__x: _SupportsFloatOrIndex) -> float
  • changed: function log2(__x: SupportsFloat) -> float → function log2(__x: _SupportsFloatOrIndex) -> float
  • changed: function modf(__x: SupportsFloat) -> Tuple[float, float] → function modf(__x: _SupportsFloatOrIndex) -> tuple[float, float]
  • changed: function nextafter(__x: SupportsFloat, __y: SupportsFloat) -> float → function nextafter(__x: _SupportsFloatOrIndex, __y: _SupportsFloatOrIndex) -> float
  • changed: function perm(__n: int, __k: int | None=…) -> int → function perm(__n: SupportsIndex, __k: SupportsIndex | None=…) -> int
  • changed: function pow(__x: SupportsFloat, __y: SupportsFloat) -> float → function pow(__x: _SupportsFloatOrIndex, __y: _SupportsFloatOrIndex) -> float
  • changed: function prod(__iterable: Iterable[int], *, start: int=…) -> int | (__iterable: Iterable[SupportsFloat], *, start: SupportsFloat=…) -> float → function prod(__iterable: Iterable[SupportsIndex], *, start: SupportsIndex=…) -> int | (__iterable: Iterable[_SupportsFloatOrIndex], *, start: _SupportsFloatOrIndex=…) -> float
  • changed: function radians(__x: SupportsFloat) -> float → function radians(__x: _SupportsFloatOrIndex) -> float
  • changed: function remainder(__x: SupportsFloat, __y: SupportsFloat) -> float → function remainder(__x: _SupportsFloatOrIndex, __y: _SupportsFloatOrIndex) -> float
  • changed: function sin(__x: SupportsFloat) -> float → function sin(__x: _SupportsFloatOrIndex) -> float
  • changed: function sinh(__x: SupportsFloat) -> float → function sinh(__x: _SupportsFloatOrIndex) -> float
  • changed: function sqrt(__x: SupportsFloat) -> float → function sqrt(__x: _SupportsFloatOrIndex) -> float
  • changed: function tan(__x: SupportsFloat) -> float → function tan(__x: _SupportsFloatOrIndex) -> float
  • changed: function tanh(__x: SupportsFloat) -> float → function tanh(__x: _SupportsFloatOrIndex) -> float
  • changed: function ulp(__x: SupportsFloat) -> float → function ulp(__x: _SupportsFloatOrIndex) -> float
  • changed: field MimeTypes.types_map: Tuple[dict[str, str], dict[str, str]] → field MimeTypes.types_map: tuple[dict[str, str], dict[str, str]]
  • changed: field MimeTypes.types_map_inv: Tuple[dict[str, str], dict[str, str]] → field MimeTypes.types_map_inv: tuple[dict[str, str], dict[str, str]]
  • changed: function guess_type(url: str, strict: bool=…) -> Tuple[str | None, str | None] → function guess_type(url: str, strict: bool=…) -> tuple[str | None, str | None]
  • changed: method MimeTypes.guess_type(url: str, strict: bool=…) -> Tuple[str | None, str | None] → method MimeTypes.guess_type(url: str, strict: bool=…) -> tuple[str | None, str | None]
  • changed: constructor ModuleFinder(path: list[str] | None=…, debug: int=…, excludes: Container[str]=…, replace_paths: Sequence[Tuple[str, str]]=…) -> None → constructor ModuleFinder(path: list[str] | None=…, debug: int=…, excludes: Container[str]=…, replace_paths: Sequence[tuple[str, str]]=…) -> None
  • changed: field ModuleFinder.replace_paths: Sequence[Tuple[str, str]] → field ModuleFinder.replace_paths: Sequence[tuple[str, str]]
  • changed: method ModuleFinder.any_missing_maybe() -> Tuple[list[str], list[str]] → method ModuleFinder.any_missing_maybe() -> tuple[list[str], list[str]]
  • changed: method ModuleFinder.find_head_package(parent: Module, name: str) -> Tuple[Module, str] → method ModuleFinder.find_head_package(parent: Module, name: str) -> tuple[Module, str]
  • changed: method ModuleFinder.find_module(name: str, path: str | None, parent: Module | None=…) -> Tuple[IO[Any] | None, str | None, Tuple[str, str, int]] → method ModuleFinder.find_module(name: str, path: str | None, parent: Module | None=…) -> tuple[IO[Any] | None, str | None, tuple[str, str, int]]
  • changed: method ModuleFinder.load_module(fqname: str, fp: IO[str], pathname: str, file_info: Tuple[str, str, str]) -> Module → method ModuleFinder.load_module(fqname: str, fp: IO[str], pathname: str, file_info: tuple[str, str, str]) -> Module
  • changed: method ModuleFinder.scan_opcodes(co: CodeType) -> Iterator[Tuple[str, Tuple[Any, ...]]] → method ModuleFinder.scan_opcodes(co: CodeType) -> Iterator[tuple[str, Tuple[Any, ...]]]
  • changed: variable STORE_OPS: Tuple[int, int] → variable STORE_OPS: tuple[int, int]
  • changed: field CAB.filenames: Set[str] → field CAB.filenames: set[str]
  • changed: field CAB.files: list[Tuple[str, str]] → field CAB.files: list[tuple[str, str]]
  • changed: field Directory.ids: Set[str] → field Directory.ids: set[str]
  • changed: field Directory.short_names: Set[str] → field Directory.short_names: set[str]
  • changed: field Table.fields: list[Tuple[int, str, int]] → field Table.fields: list[tuple[int, str, int]]
  • 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: Sequence[tuple[str, str | None, int]], 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) -> tuple[int, str]
  • changed: variable ActionText: list[Tuple[str, str, str | None]] → variable ActionText: list[tuple[str, str, str | None]]
  • changed: variable UIText: list[Tuple[str, str | None]] → variable UIText: list[tuple[str, str | None]]
  • changed: function Pipe(duplex: bool=…) -> Tuple[Connection, Connection] → function Pipe(duplex: bool=…) -> tuple[Connection, Connection]
  • changed: method BaseContext.Pool(processes: int | None=…, initializer: Callable[..., Any] | None=…, initargs: Iterable[Any]=…, maxtasksperchild: int | None=…) -> multiprocessing.pool.Pool → method BaseContext.Pool(processes: int | None=…, initializer: Callable[..., Any] | None=…, initargs: Iterable[Any]=…, maxtasksperchild: int | None=…) -> _Pool
  • changed: function Pipe(duplex: bool=…) -> Tuple[Connection, Connection] → function Pipe(duplex: bool=…) -> tuple[Connection, Connection]
  • changed: constructor Server(registry: dict[str, Tuple[Callable[..., Any], Any, Any, Any]], address: Any, authkey: bytes, serializer: str) -> None → constructor Server(registry: dict[str, tuple[Callable[..., Any], Any, Any, Any]], address: Any, authkey: bytes, serializer: str) -> None
  • changed: constructor Token(typeid: bytes | str | None, address: Tuple[str | bytes, int], id: str | bytes | int | None) -> None → constructor Token(typeid: bytes | str | None, address: tuple[str | bytes, int], id: str | bytes | int | None) -> None
  • changed: field Token.address: Tuple[str | bytes, int] → field Token.address: tuple[str | bytes, int]
  • changed: constructor ApplyResult(cache: Dict[int, ApplyResult[Any]], callback: Callable[[_T], None] | None, error_callback: Callable[[BaseException], None] | None) -> None → constructor ApplyResult(cache: dict[int, ApplyResult[Any]], callback: Callable[[_T], None] | None, error_callback: Callable[[BaseException], None] | None) -> None
  • changed: constructor IMapIterator(cache: Dict[int, IMapIterator[Any]]) -> None → constructor IMapIterator(cache: dict[int, IMapIterator[Any]]) -> None
  • changed: constructor MapResult(cache: Dict[int, ApplyResult[Any]], chunksize: int, length: int, callback: Callable[[List[_T]], None] | None, error_callback: Callable[[BaseException], None] | None) -> None → constructor MapResult(cache: dict[int, ApplyResult[Any]], chunksize: int, length: int, callback: Callable[[list[_T]], None] | None, error_callback: Callable[[BaseException], None] | None) -> None
  • changed: function splitunc(p: AnyStr) -> Tuple[AnyStr, AnyStr] → function splitunc(p: AnyStr) -> tuple[AnyStr, AnyStr]
  • changed: method OptionParser.check_values(values: Values, args: list[str]) -> Tuple[Values, list[str]] → method OptionParser.check_values(values: Values, args: list[str]) -> tuple[Values, list[str]]
  • changed: method OptionParser.parse_args(args: Sequence[AnyStr] | None=…, values: Values | None=…) -> Tuple[Values, list[AnyStr]] → method OptionParser.parse_args(args: Sequence[AnyStr] | None=…, values: Values | None=…) -> tuple[Values, list[AnyStr]]
  • changed: function forkpty() -> Tuple[int, int] → function forkpty() -> tuple[int, int]
  • changed: function fwalk(top: StrPath=…, topdown: bool=…, onerror: _OnError | None=…, *, follow_symlinks: bool=…, dir_fd: int | None=…) -> Iterator[Tuple[str, list[str], list[str], int]] | (top: bytes, topdown: bool=…, onerror: _OnError | None=…, *, follow_symlinks: bool=…, dir_fd: int | None=…) -> Iterator[Tuple[bytes, list[bytes], list[bytes], int]] → function fwalk(top: StrPath=…, topdown: bool=…, onerror: _OnError | None=…, *, follow_symlinks: bool=…, dir_fd: int | None=…) -> Iterator[tuple[str, list[str], list[str], int]] | (top: bytes, topdown: bool=…, onerror: _OnError | None=…, *, follow_symlinks: bool=…, dir_fd: int | None=…) -> Iterator[tuple[bytes, list[bytes], list[bytes], int]]
  • changed: function getloadavg() -> Tuple[float, float, float] → function getloadavg() -> tuple[float, float, float]
  • changed: function getresgid() -> Tuple[int, int, int] → function getresgid() -> tuple[int, int, int]
  • changed: function getresuid() -> Tuple[int, int, int] → function getresuid() -> tuple[int, int, int]
  • changed: function openpty() -> Tuple[int, int] → function openpty() -> tuple[int, int]
  • changed: function pipe() -> Tuple[int, int] → function pipe() -> tuple[int, int]
  • changed: function pipe2(flags: int) -> Tuple[int, int] → function pipe2(flags: int) -> tuple[int, int]
  • changed: function sched_getaffinity(pid: int) -> Set[int] → function sched_getaffinity(pid: int) -> set[int]
  • changed: function utime(path: _FdOrAnyPath, times: Tuple[int, int] | Tuple[float, float] | None=…, *, ns: Tuple[int, int]=…, dir_fd: int | None=…, follow_symlinks: bool=…) -> None → function utime(path: _FdOrAnyPath, times: tuple[int, int] | tuple[float, float] | None=…, *, ns: tuple[int, int]=…, dir_fd: int | None=…, follow_symlinks: bool=…) -> None
  • changed: function wait() -> Tuple[int, int] → function wait() -> tuple[int, int]
  • changed: function wait3(options: int) -> Tuple[int, int, Any] → function wait3(options: int) -> tuple[int, int, Any]
  • changed: function wait4(pid: int, options: int) -> Tuple[int, int, Any] → function wait4(pid: int, options: int) -> tuple[int, int, Any]
  • changed: function waitpid(__pid: int, __options: int) -> Tuple[int, int] → function waitpid(__pid: int, __options: int) -> tuple[int, int]
  • changed: function walk(top: AnyStr | PathLike[AnyStr], topdown: bool=…, onerror: _OnError | None=…, followlinks: bool=…) -> Iterator[Tuple[AnyStr, list[AnyStr], list[AnyStr]]] → function walk(top: AnyStr | PathLike[AnyStr], topdown: bool=…, onerror: _OnError | None=…, followlinks: bool=…) -> Iterator[tuple[AnyStr, list[AnyStr], list[AnyStr]]]
  • changed: variable supports_dir_fd: Set[Callable[..., Any]] → variable supports_dir_fd: set[Callable[..., Any]]
  • changed: variable supports_effective_ids: Set[Callable[..., Any]] → variable supports_effective_ids: set[Callable[..., Any]]
  • changed: variable supports_fd: Set[Callable[..., Any]] → variable supports_fd: set[Callable[..., Any]]
  • changed: variable supports_follow_symlinks: Set[Callable[..., Any]] → variable supports_follow_symlinks: set[Callable[..., Any]]
  • changed: function st2tuple(st: STType, line_info: bool=…, col_info: bool=…) -> Tuple[Any] → function st2tuple(st: STType, line_info: bool=…, col_info: bool=…) -> Tuple[Any, ...]
  • changed: method STType.totuple(line_info: bool=…, col_info: bool=…) -> Tuple[Any] → method STType.totuple(line_info: bool=…, col_info: bool=…) -> Tuple[Any, ...]
  • added: method Path.hardlink_to(target: str | Path) -> None
  • changed: field Pdb.stack: list[Tuple[FrameType, int]] → field Pdb.stack: list[tuple[FrameType, int]]
  • changed: function find_function(funcname: str, filename: str) -> Tuple[str, str, int] | None → function find_function(funcname: str, filename: str) -> tuple[str, str, int] | None
  • changed: function getsourcelines(obj: _SourceObjectType) -> Tuple[list[str], int] → function getsourcelines(obj: _SourceObjectType) -> tuple[list[str], int]
  • changed: method Pdb.lineinfo(identifier: str) -> Tuple[None, None, None] | Tuple[str, str, int] → method Pdb.lineinfo(identifier: str) -> tuple[None, None, None] | tuple[str, str, int]
  • changed: method Pdb.print_stack_entry(frame_lineno: Tuple[FrameType, int], prompt_prefix: str=…) -> None → method Pdb.print_stack_entry(frame_lineno: tuple[FrameType, int], prompt_prefix: str=…) -> None
  • changed: constructor Pickler(file: IO[bytes], protocol: int | None=…, *, fix_imports: bool=…) -> None → constructor Pickler(file: _WritableFileobj, protocol: int | None=…, *, fix_imports: bool=…) -> None
  • changed: constructor Unpickler(file: IO[bytes], *, fix_imports: bool=…, encoding: str=…, errors: str=…) -> None → constructor Unpickler(file: _ReadableFileobj, *, fix_imports: bool=…, encoding: str=…, errors: str=…) -> None
  • changed: function dump(obj: Any, file: IO[bytes], protocol: int | None=…, *, fix_imports: bool=…) -> None → function dump(obj: Any, file: _WritableFileobj, protocol: int | None=…, *, fix_imports: bool=…) -> None
  • changed: function load(file: IO[bytes], *, fix_imports: bool=…, encoding: str=…, errors: str=…) -> Any → function load(file: _ReadableFileobj, *, fix_imports: bool=…, encoding: str=…, errors: str=…) -> Any
  • changed: function genops(pickle: bytes | IO[bytes]) -> Iterator[Tuple[OpcodeInfo, Any | None, int | None]] → function genops(pickle: bytes | IO[bytes]) -> Iterator[tuple[OpcodeInfo, Any | None, int | None]]
  • changed: constructor ImpLoader(fullname: str, file: IO[str], filename: str, etc: Tuple[str, str, int]) -> None → constructor ImpLoader(fullname: str, file: IO[str], filename: str, etc: tuple[str, str, int]) -> None
  • changed: function architecture(executable: str=…, bits: str=…, linkage: str=…) -> Tuple[str, str] → function architecture(executable: str=…, bits: str=…, linkage: str=…) -> tuple[str, str]
  • changed: function dist(distname: str=…, version: str=…, id: str=…, supported_dists: Tuple[str, ...]=…) -> Tuple[str, str, str] → function dist(distname: str=…, version: str=…, id: str=…, supported_dists: Tuple[str, ...]=…) -> tuple[str, str, str]
  • changed: function java_ver(release: str=…, vendor: str=…, vminfo: Tuple[str, str, str]=…, osinfo: Tuple[str, str, str]=…) -> Tuple[str, str, Tuple[str, str, str], Tuple[str, str, str]] → function java_ver(release: str=…, vendor: str=…, vminfo: tuple[str, str, str]=…, osinfo: tuple[str, str, str]=…) -> tuple[str, str, tuple[str, str, str], tuple[str, str, str]]
  • changed: function libc_ver(executable: str=…, lib: str=…, version: str=…, chunksize: int=…) -> Tuple[str, str] → function libc_ver(executable: str=…, lib: str=…, version: str=…, chunksize: int=…) -> tuple[str, str]
  • changed: function linux_distribution(distname: str=…, version: str=…, id: str=…, supported_dists: Tuple[str, ...]=…, full_distribution_name: bool=…) -> Tuple[str, str, str] → function linux_distribution(distname: str=…, version: str=…, id: str=…, supported_dists: Tuple[str, ...]=…, full_distribution_name: bool=…) -> tuple[str, str, str]
  • changed: function mac_ver(release: str=…, versioninfo: Tuple[str, str, str]=…, machine: str=…) -> Tuple[str, Tuple[str, str, str], str] → function mac_ver(release: str=…, versioninfo: tuple[str, str, str]=…, machine: str=…) -> tuple[str, tuple[str, str, str], str]
  • changed: function python_build() -> Tuple[str, str] → function python_build() -> tuple[str, str]
  • changed: function python_version_tuple() -> Tuple[str, str, str] → function python_version_tuple() -> tuple[str, str, str]
  • changed: function system_alias(system: str, release: str, version: str) -> Tuple[str, str, str] → function system_alias(system: str, release: str, version: str) -> tuple[str, str, str]
  • changed: function win32_ver(release: str=…, version: str=…, csd: str=…, ptype: str=…) -> Tuple[str, str, str, str] → function win32_ver(release: str=…, version: str=…, csd: str=…, ptype: str=…) -> tuple[str, str, str, str]
  • changed: function dump(value: Mapping[str, Any], fp: IO[bytes], *, fmt: PlistFormat=…, sort_keys: bool=…, skipkeys: bool=…) -> None → function dump(value: Mapping[str, Any] | list[Any] | Tuple[Any, ...] | str | bool | float | bytes | datetime, fp: IO[bytes], *, fmt: PlistFormat=…, sort_keys: bool=…, skipkeys: bool=…) -> None
  • changed: function dumps(value: Mapping[str, Any], *, fmt: PlistFormat=…, skipkeys: bool=…, sort_keys: bool=…) -> bytes → function dumps(value: Mapping[str, Any] | list[Any] | Tuple[Any, ...] | str | bool | float | bytes | datetime, *, fmt: PlistFormat=…, skipkeys: bool=…, sort_keys: bool=…) -> bytes
  • changed: method POP3.capa() -> dict[str, List[str]] → method POP3.capa() -> dict[str, _list[str]]
  • changed: method POP3.stat() -> Tuple[int, int] → method POP3.stat() -> tuple[int, int]
  • changed: function posix_spawn(path: StrOrBytesPath, argv: _ExecVArgs, env: _ExecEnv, *, file_actions: Sequence[Tuple[Any, ...]] | None=…, setpgroup: int | None=…, resetids: bool=…, setsid: bool=…, setsigmask: Iterable[int]=…, setsigdef: Iterable[int]=…, scheduler: Tuple[Any, sched_param] | None=…) -> int → function posix_spawn(path: StrOrBytesPath, argv: _ExecVArgs, env: _ExecEnv, *, file_actions: Sequence[Tuple[Any, ...]] | None=…, setpgroup: int | None=…, resetids: bool=…, setsid: bool=…, setsigmask: Iterable[int]=…, setsigdef: Iterable[int]=…, scheduler: tuple[Any, sched_param] | None=…) -> int
  • changed: function posix_spawnp(path: StrOrBytesPath, argv: _ExecVArgs, env: _ExecEnv, *, file_actions: Sequence[Tuple[Any, ...]] | None=…, setpgroup: int | None=…, resetids: bool=…, setsid: bool=…, setsigmask: Iterable[int]=…, setsigdef: Iterable[int]=…, scheduler: Tuple[Any, sched_param] | None=…) -> int → function posix_spawnp(path: StrOrBytesPath, argv: _ExecVArgs, env: _ExecEnv, *, file_actions: Sequence[Tuple[Any, ...]] | None=…, setpgroup: int | None=…, resetids: bool=…, setsid: bool=…, setsigmask: Iterable[int]=…, setsigdef: Iterable[int]=…, scheduler: tuple[Any, sched_param] | None=…) -> int
  • changed: function islink(path: StrOrBytesPath) -> bool → function islink(path: StrOrBytesPath | int) -> bool
  • changed: function ismount(path: StrOrBytesPath) -> bool → function ismount(path: StrOrBytesPath | int) -> bool
  • changed: function lexists(path: StrOrBytesPath) -> bool → function lexists(path: StrOrBytesPath | int) -> bool
  • changed: function split(p: PathLike[AnyStr]) -> Tuple[AnyStr, AnyStr] | (p: AnyStr) -> Tuple[AnyStr, AnyStr] → function split(p: PathLike[AnyStr]) -> tuple[AnyStr, AnyStr] | (p: AnyStr) -> tuple[AnyStr, AnyStr]
  • changed: function splitdrive(p: PathLike[AnyStr]) -> Tuple[AnyStr, AnyStr] | (p: AnyStr) -> Tuple[AnyStr, AnyStr] → function splitdrive(p: PathLike[AnyStr]) -> tuple[AnyStr, AnyStr] | (p: AnyStr) -> tuple[AnyStr, AnyStr]
  • changed: function splitext(p: PathLike[AnyStr]) -> Tuple[AnyStr, AnyStr] | (p: AnyStr) -> Tuple[AnyStr, AnyStr] → function splitext(p: PathLike[AnyStr]) -> tuple[AnyStr, AnyStr] | (p: AnyStr) -> tuple[AnyStr, AnyStr]
  • changed: method PrettyPrinter.format(object: object, context: dict[int, Any], maxlevels: int, level: int) -> Tuple[str, bool, bool] → method PrettyPrinter.format(object: object, context: dict[int, Any], maxlevels: int, level: int) -> tuple[str, bool, bool]
  • changed: field Stats.sort_arg_dict_default: dict[str, Tuple[Any, str]] → field Stats.sort_arg_dict_default: dict[str, tuple[Any, str]]
  • changed: method Stats.eval_print_amount(sel: _Selector, list: list[str], msg: str) -> Tuple[list[str], str] → method Stats.eval_print_amount(sel: _Selector, list: list[str], msg: str) -> tuple[list[str], str]
  • changed: method Stats.get_print_list(sel_list: Iterable[_Selector]) -> Tuple[int, list[str]] → method Stats.get_print_list(sel_list: Iterable[_Selector]) -> tuple[int, list[str]]
  • changed: method Stats.get_sort_arg_defs() -> dict[str, Tuple[Tuple[Tuple[int, int], ...], str]] → method Stats.get_sort_arg_defs() -> dict[str, tuple[Tuple[tuple[int, int], ...], str]]
  • changed: function fork() -> Tuple[int, int] → function fork() -> tuple[int, int]
  • changed: function master_open() -> Tuple[int, str] → function master_open() -> tuple[int, str]
  • changed: function openpty() -> Tuple[int, int] → function openpty() -> tuple[int, int]
  • changed: field Helper.keywords: dict[str, str | Tuple[str, str]] → field Helper.keywords: dict[str, str | tuple[str, str]]
  • changed: function classify_class_attrs(object: object) -> list[Tuple[str, str, type, str]] → function classify_class_attrs(object: object) -> list[tuple[str, str, type, str]]
  • changed: function resolve(thing: str | object, forceload: bool=…) -> Tuple[object, str] | None → function resolve(thing: str | object, forceload: bool=…) -> tuple[object, str] | None
  • changed: function splitdoc(doc: AnyStr) -> Tuple[AnyStr, AnyStr] → function splitdoc(doc: AnyStr) -> tuple[AnyStr, AnyStr]
  • changed: function synopsis(filename: str, cache: MutableMapping[str, Tuple[int, str]]=…) -> str | None → function synopsis(filename: str, cache: MutableMapping[str, tuple[int, str]]=…) -> str | None
  • changed: method HTMLDoc.formattree(tree: list[Tuple[type, Tuple[type, ...]] | list[Any]], modname: str, parent: type | None=…) -> str → method HTMLDoc.formattree(tree: list[tuple[type, Tuple[type, ...]] | list[Any]], modname: str, parent: type | None=…) -> str
  • changed: method HTMLDoc.modpkglink(modpkginfo: Tuple[str, str, bool, bool]) -> str → method HTMLDoc.modpkglink(modpkginfo: tuple[str, str, bool, bool]) -> str
  • changed: method TextDoc.formattree(tree: list[Tuple[type, Tuple[type, ...]] | list[Any]], modname: str, parent: type | None=…, prefix: str=…) -> str → method TextDoc.formattree(tree: list[tuple[type, Tuple[type, ...]] | list[Any]], modname: str, parent: type | None=…, prefix: str=…) -> str
  • changed: variable features: list[Tuple[str, int]] → variable features: list[tuple[str, int]]
  • changed: variable version_info: Tuple[int, int, int] → variable version_info: tuple[int, int, int]
  • changed: function sample(population: Sequence[_T] | Set[_T], k: int) -> list[_T] → function sample(population: Sequence[_T] | AbstractSet[_T], k: int) -> list[_T]
  • changed: method Random.sample(population: Sequence[_T] | Set[_T], k: int) -> list[_T] → method Random.sample(population: Sequence[_T] | AbstractSet[_T], k: int) -> list[_T]
  • changed: function subn(pattern: AnyStr, repl: AnyStr, string: AnyStr, count: int=…, flags: _FlagsType=…) -> Tuple[AnyStr, int] | (pattern: AnyStr, repl: Callable[[Match[AnyStr]], AnyStr], string: AnyStr, count: int=…, flags: _FlagsType=…) -> Tuple[AnyStr, int] | (pattern: Pattern[AnyStr], repl: AnyStr, string: AnyStr, count: int=…, flags: _FlagsType=…) -> Tuple[AnyStr, int] | (pattern: Pattern[AnyStr], re… → function subn(pattern: AnyStr, repl: AnyStr, string: AnyStr, count: int=…, flags: _FlagsType=…) -> tuple[AnyStr, int] | (pattern: AnyStr, repl: Callable[[Match[AnyStr]], AnyStr], string: AnyStr, count: int=…, flags: _FlagsType=…) -> tuple[AnyStr, int] | (pattern: Pattern[AnyStr], repl: AnyStr, string: AnyStr, count: int=…, flags: _FlagsType=…) -> tuple[AnyStr, int] | (pattern: Pattern[AnyStr], re…
  • changed: method Repr.repr_deque(x: Deque[Any], level: int) -> str → method Repr.repr_deque(x: deque[Any], level: int) -> str
  • changed: method Repr.repr_frozenset(x: FrozenSet[Any], level: int) -> str → method Repr.repr_frozenset(x: frozenset[Any], level: int) -> str
  • changed: method Repr.repr_set(x: Set[Any], level: int) -> str → method Repr.repr_set(x: set[Any], level: int) -> str
  • changed: function getrlimit(__resource: int) -> Tuple[int, int] → function getrlimit(__resource: int) -> tuple[int, int]
  • changed: function prlimit(pid: int, resource: int, limits: Tuple[int, int]) -> Tuple[int, int] | (pid: int, resource: int) -> Tuple[int, int] → function prlimit(pid: int, resource: int, limits: tuple[int, int]) -> tuple[int, int] | (pid: int, resource: int) -> tuple[int, int]
  • changed: function setrlimit(__resource: int, __limits: Tuple[int, int]) -> None → function setrlimit(__resource: int, __limits: tuple[int, int]) -> None
  • changed: function select(__rlist: Iterable[Any], __wlist: Iterable[Any], __xlist: Iterable[Any], __timeout: float | None=…) -> Tuple[list[Any], list[Any], list[Any]] → function select(__rlist: Iterable[Any], __wlist: Iterable[Any], __xlist: Iterable[Any], __timeout: float | None=…) -> tuple[list[Any], list[Any], list[Any]]
  • changed: method devpoll.poll(timeout: float | None=…) -> list[Tuple[int, int]] → method devpoll.poll(timeout: float | None=…) -> list[tuple[int, int]]
  • changed: method epoll.poll(timeout: float | None=…, maxevents: int=…) -> list[Tuple[int, int]] → method epoll.poll(timeout: float | None=…, maxevents: int=…) -> list[tuple[int, int]]
  • changed: method poll.poll(timeout: float | None=…) -> list[Tuple[int, int]] → method poll.poll(timeout: float | None=…) -> list[tuple[int, int]]
  • changed: method BaseSelector.select(timeout: float | None=…) -> list[Tuple[SelectorKey, _EventMask]] → method BaseSelector.select(timeout: float | None=…) -> list[tuple[SelectorKey, _EventMask]]
  • changed: method DefaultSelector.select(timeout: float | None=…) -> list[Tuple[SelectorKey, _EventMask]] → method DefaultSelector.select(timeout: float | None=…) -> list[tuple[SelectorKey, _EventMask]]
  • changed: method DevpollSelector.select(timeout: float | None=…) -> list[Tuple[SelectorKey, _EventMask]] → method DevpollSelector.select(timeout: float | None=…) -> list[tuple[SelectorKey, _EventMask]]
  • changed: method EpollSelector.select(timeout: float | None=…) -> list[Tuple[SelectorKey, _EventMask]] → method EpollSelector.select(timeout: float | None=…) -> list[tuple[SelectorKey, _EventMask]]
  • changed: method KqueueSelector.select(timeout: float | None=…) -> list[Tuple[SelectorKey, _EventMask]] → method KqueueSelector.select(timeout: float | None=…) -> list[tuple[SelectorKey, _EventMask]]
  • changed: method PollSelector.select(timeout: float | None=…) -> list[Tuple[SelectorKey, _EventMask]] → method PollSelector.select(timeout: float | None=…) -> list[tuple[SelectorKey, _EventMask]]
  • changed: method SelectSelector.select(timeout: float | None=…) -> list[Tuple[SelectorKey, _EventMask]] → method SelectSelector.select(timeout: float | None=…) -> list[tuple[SelectorKey, _EventMask]]
  • changed: method shlex.sourcehook(newfile: str) -> Tuple[str, TextIO] → method shlex.sourcehook(newfile: str) -> tuple[str, TextIO]
  • changed: function disk_usage(path: StrPath) -> _ntuple_diskusage → function disk_usage(path: int | StrOrBytesPath) -> _ntuple_diskusage
  • changed: function get_archive_formats() -> list[Tuple[str, str]] → function get_archive_formats() -> list[tuple[str, str]]
  • changed: function get_terminal_size(fallback: Tuple[int, int]=…) -> os.terminal_size → function get_terminal_size(fallback: tuple[int, int]=…) -> os.terminal_size
  • changed: function get_unpack_formats() -> list[Tuple[str, list[str], str]] → function get_unpack_formats() -> list[tuple[str, list[str], str]]
  • changed: function ignore_patterns(*patterns: StrPath) -> Callable[[Any, list[str]], Set[str]] → function ignore_patterns(*patterns: StrPath) -> Callable[[Any, list[str]], set[str]]
  • changed: function register_archive_format(name: str, function: Callable[..., Any], extra_args: Sequence[Tuple[str, Any] | list[Any]] | None=…, description: str=…) -> None → function register_archive_format(name: str, function: Callable[..., Any], extra_args: Sequence[tuple[str, Any] | list[Any]] | None=…, description: str=…) -> None
  • changed: function register_unpack_format(name: str, extensions: list[str], function: Any, extra_args: Sequence[Tuple[str, Any]] | None=…, description: str=…) -> None → function register_unpack_format(name: str, extensions: list[str], function: Any, extra_args: Sequence[tuple[str, Any]] | None=…, description: str=…) -> None
  • changed: function getitimer(__which: int) -> Tuple[float, float] → function getitimer(__which: int) -> tuple[float, float]
  • changed: function pthread_sigmask(__how: int, __mask: Iterable[int]) -> Set[_SIGNUM] → function pthread_sigmask(__how: int, __mask: Iterable[int]) -> set[_SIGNUM]
  • changed: function setitimer(__which: int, __seconds: float, __interval: float=…) -> Tuple[float, float] → function setitimer(__which: int, __seconds: float, __interval: float=…) -> tuple[float, float]
  • changed: function valid_signals() -> Set[Signals] → function valid_signals() -> set[Signals]
  • changed: function addsitedir(sitedir: str, known_paths: Iterable[str] | None=…) -> None → function addsitedir(sitedir: str, known_paths: set[str] | None=…) -> None
  • added: function abs_paths() -> None
  • added: function addpackage(sitedir: StrPath, name: StrPath, known_paths: set[str] | None) -> set[str] | None
  • added: function addsitepackages(known_paths: set[str] | None, prefixes: Iterable[str] | None=…) -> set[str] | None
  • added: function addusersitepackages(known_paths: set[str] | None) -> set[str] | None
  • added: function check_enableusersite() -> bool | None
  • added: function enablerlcompleter() -> None
  • added: function execsitecustomize() -> None
  • added: function execusercustomize() -> None
  • added: function makepath(*paths: StrPath) -> tuple[str, str]
  • added: function removeduppaths() -> set[str]
  • added: function setcopyright() -> None
  • added: function sethelper() -> None
  • added: function setquit() -> None
  • added: function venv(known_paths: set[str] | None) -> set[str] | None
  • changed: field SMTPChannel.command_size_limits: DefaultDict[str, int] → field SMTPChannel.command_size_limits: defaultdict[str, int]
  • changed: field SMTPRecipientsRefused.args: Tuple[_SendErrs] → field SMTPRecipientsRefused.args: tuple[_SendErrs]
  • changed: field SMTPResponseException.args: Tuple[int, bytes | str] | Tuple[int, bytes, str] → field SMTPResponseException.args: tuple[int, bytes | str] | tuple[int, bytes, str]
  • changed: field SMTPSenderRefused.args: Tuple[int, bytes, str] → field SMTPSenderRefused.args: tuple[int, bytes, str]
  • changed: field ForkingMixIn.active_children: Set[int] | None → field ForkingMixIn.active_children: set[int] | None
  • changed: field Cursor.rowcount: Any → field Cursor.rowcount: int
  • changed: variable sqlite_version_info: Tuple[int, int, int] → variable sqlite_version_info: tuple[int, int, int]
  • changed: variable version_info: Tuple[int, int, int] → variable version_info: tuple[int, int, int]
  • added: variable SQLITE_CREATE_VTABLE: int
  • added: variable SQLITE_DROP_VTABLE: int
  • added: variable SQLITE_FUNCTION: int
  • added: variable SQLITE_LIMIT_ATTACHED: int
  • added: variable SQLITE_LIMIT_COLUMN: int
  • added: variable SQLITE_LIMIT_COMPOUND_SELECT: int
  • added: variable SQLITE_LIMIT_EXPR_DEPTH: int
  • added: variable SQLITE_LIMIT_FUNCTION_ARG: int
  • added: variable SQLITE_LIMIT_LENGTH: int
  • added: variable SQLITE_LIMIT_LIKE_PATTERN_LENGTH: int
  • added: variable SQLITE_LIMIT_SQL_LENGTH: int
  • added: variable SQLITE_LIMIT_TRIGGER_DEPTH: int
  • added: variable SQLITE_LIMIT_VARIABLE_NUMBER: int
  • added: variable SQLITE_LIMIT_VDBE_OP: int
  • added: variable SQLITE_LIMIT_WORKER_THREADS: int
  • added: variable SQLITE_RECURSIVE: int
  • added: variable SQLITE_SAVEPOINT: int
  • changed: variable ASCIILETTERS: FrozenSet[str] → variable ASCIILETTERS: frozenset[str]
  • changed: variable CATEGORIES: dict[str, Tuple[_NIC, _NIC] | Tuple[_NIC, list[Tuple[_NIC, _NIC]]]] → variable CATEGORIES: dict[str, tuple[_NIC, _NIC] | tuple[_NIC, list[tuple[_NIC, _NIC]]]]
  • changed: variable DIGITS: FrozenSet[str] → variable DIGITS: frozenset[str]
  • changed: variable ESCAPES: dict[str, Tuple[_NIC, int]] → variable ESCAPES: dict[str, tuple[_NIC, int]]
  • changed: variable HEXDIGITS: FrozenSet[str] → variable HEXDIGITS: frozenset[str]
  • changed: variable OCTDIGITS: FrozenSet[str] → variable OCTDIGITS: frozenset[str]
  • changed: variable WHITESPACE: FrozenSet[str] → variable WHITESPACE: frozenset[str]
  • changed: function RAND_pseudo_bytes(__num: int) -> Tuple[bytes, bool] → function RAND_pseudo_bytes(__num: int) -> tuple[bytes, bool]
  • 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=…) -> str
  • changed: method SSLObject.cipher() -> Tuple[str, str, int] | None → method SSLObject.cipher() -> tuple[str, str, int] | None
  • changed: method SSLObject.shared_ciphers() -> list[Tuple[str, str, int]] | None → method SSLObject.shared_ciphers() -> list[tuple[str, str, int]] | None
  • changed: method SSLSocket.accept() -> Tuple[SSLSocket, socket._RetAddress] → method SSLSocket.accept() -> tuple[SSLSocket, socket._RetAddress]
  • changed: method SSLSocket.cipher() -> Tuple[str, str, int] | None → method SSLSocket.cipher() -> tuple[str, str, int] | None
  • changed: method SSLSocket.shared_ciphers() -> list[Tuple[str, str, int]] | None → method SSLSocket.shared_ciphers() -> list[tuple[str, str, int]] | None
  • changed: variable OPENSSL_VERSION_INFO: Tuple[int, int, int, int, int] → variable OPENSSL_VERSION_INFO: tuple[int, int, int, int, int]
  • changed: method Formatter.parse(format_string: str) -> Iterable[Tuple[str, str | None, str | None, str | None]] → method Formatter.parse(format_string: str) -> Iterable[tuple[str, str | None, str | None, str | None]]
  • added: field Template.braceidpattern: str | None
  • added: field Template.delimiter: str
  • added: field Template.flags: RegexFlag
  • added: field Template.idpattern: str
  • added: field Template.pattern: Pattern[str]
  • changed: function getstatusoutput(cmd: _TXT) -> Tuple[int, str] → function getstatusoutput(cmd: _TXT) -> tuple[int, str]
  • changed: method Popen.communicate(input: AnyStr | None=…, timeout: float | None=…) -> Tuple[AnyStr, AnyStr] → method Popen.communicate(input: AnyStr | None=…, timeout: float | None=…) -> tuple[AnyStr, AnyStr]
  • changed: variable excepthook: Callable[[Type[BaseException], BaseException, TracebackType], Any] → variable excepthook: Callable[[Type[BaseException], BaseException, TracebackType | None], Any]
  • changed: variable ps1: str → variable ps1: object
  • changed: variable ps2: str → variable ps2: object
  • changed: variable stdlib_module_names: FrozenSet[str] → variable stdlib_module_names: frozenset[str]
  • changed: function process_tokens(tokens: Iterable[Tuple[int, str, Tuple[int, int], Tuple[int, int], str]]) -> None → function process_tokens(tokens: Iterable[tuple[int, str, tuple[int, int], tuple[int, int], str]]) -> None
  • changed: variable PAX_NAME_FIELDS: Set[str] → variable PAX_NAME_FIELDS: set[str]
  • changed: method Telnet.expect(list: Sequence[Pattern[bytes] | bytes], timeout: float | None=…) -> Tuple[int, Match[bytes] | None, bytes] → method Telnet.expect(list: Sequence[Pattern[bytes] | bytes], timeout: float | None=…) -> tuple[int, Match[bytes] | None, bytes]
  • changed: constructor TemporaryDirectory(suffix: None=…, prefix: None=…, dir: None=…) -> None | (suffix: AnyStr | None=…, prefix: AnyStr | None=…, dir: _DirT[AnyStr] | None=…) -> None → constructor TemporaryDirectory(suffix: None=…, prefix: None=…, dir: None=…, ignore_cleanup_errors: bool=…) -> None | (suffix: AnyStr | None=…, prefix: AnyStr | None=…, dir: _DirT[AnyStr] | None=…, ignore_cleanup_errors: bool=…) -> None | (suffix: None=…, prefix: None=…, dir: None=…) -> None | (suffix: AnyStr | None=…, prefix: AnyStr | None=…, dir: _DirT[AnyStr] | None=…) -> None
  • changed: function mkstemp() -> Tuple[int, str] | (suffix: AnyStr | None=…, prefix: AnyStr | None=…, dir: _DirT[AnyStr] | None=…, text: bool=…) -> Tuple[int, AnyStr] → function mkstemp() -> tuple[int, str] | (suffix: AnyStr | None=…, prefix: AnyStr | None=…, dir: _DirT[AnyStr] | None=…, text: bool=…) -> tuple[int, AnyStr]
  • changed: constructor struct_time(o: Tuple[int, int, int, int, int, int, int, int, int] | Tuple[int, int, int, int, int, int, int, int, int, str] | Tuple[int, int, int, int, int, int, int, int, int, str, int], _arg: Any=…) -> None → constructor struct_time(o: tuple[int, int, int, int, int, int, int, int, int] | tuple[int, int, int, int, int, int, int, int, int, str] | tuple[int, int, int, int, int, int, int, int, int, str, int], _arg: Any=…) -> None
  • changed: variable tzname: Tuple[str, str] → variable tzname: tuple[str, str]
  • changed: method Timer.autorange(callback: Callable[[int, float], Any] | None=…) -> Tuple[int, float] → method Timer.autorange(callback: Callable[[int, float], Any] | None=…) -> tuple[int, float]
  • changed: constructor Scrollbar(master: Misc | None=…, cnf: dict[str, Any] | None=…, *, activebackground: _Color=…, activerelief: _Relief=…, background: _Color=…, bd: _ScreenUnits=…, bg: _Color=…, border: _ScreenUnits=…, borderwidth: _ScreenUnits=…, command: Callable[..., Tuple[float, float] | None] | str=…, cursor: _Cursor=…, elementborderwidth: _ScreenUnits=…, highlightbackground: _Color=…, highlightcolo… → constructor Scrollbar(master: Misc | None=…, cnf: dict[str, Any] | None=…, *, activebackground: _Color=…, activerelief: _Relief=…, background: _Color=…, bd: _ScreenUnits=…, bg: _Color=…, border: _ScreenUnits=…, borderwidth: _ScreenUnits=…, command: Callable[..., tuple[float, float] | None] | str=…, cursor: _Cursor=…, elementborderwidth: _ScreenUnits=…, highlightbackground: _Color=…, highlightcolo…
  • changed: constructor Spinbox(master: Misc | None=…, cnf: dict[str, Any] | None=…, *, activebackground: _Color=…, background: _Color=…, bd: _ScreenUnits=…, bg: _Color=…, border: _ScreenUnits=…, borderwidth: _ScreenUnits=…, buttonbackground: _Color=…, buttoncursor: _Cursor=…, buttondownrelief: _Relief=…, buttonuprelief: _Relief=…, command: Callable[[], Any] | str | _TkinterSequence[str]=…, cursor: _Cursor=…… → constructor Spinbox(master: Misc | None=…, cnf: dict[str, Any] | None=…, *, activebackground: _Color=…, background: _Color=…, bd: _ScreenUnits=…, bg: _Color=…, border: _ScreenUnits=…, borderwidth: _ScreenUnits=…, buttonbackground: _Color=…, buttoncursor: _Cursor=…, buttondownrelief: _Relief=…, buttonuprelief: _Relief=…, command: Callable[[], Any] | str | list[str] | Tuple[str, ...]=…, cursor: _Cu…
  • changed: method Canvas.bbox(*args: str | _CanvasItemId) -> Tuple[int, int, int, int] → method Canvas.bbox(*args: str | _CanvasItemId) -> tuple[int, int, int, int]
  • changed: method Canvas.coords() -> list[float] | (__args: _TkinterSequence[int] | _TkinterSequence[float]) -> None | (__x1: float, __y1: float, *args: float) -> None → method Canvas.coords() -> list[float] | (__args: list[int] | list[float] | Tuple[float, ...]) -> None | (__x1: float, __y1: float, *args: float) -> None
  • changed: method Canvas.create_line(__x0: float, __y0: float, __x1: float, __y1: float, *, activedash: str | _TkinterSequence[int]=…, activefill: _Color=…, activestipple: str=…, activewidth: _ScreenUnits=…, arrow: Literal['first', 'last', 'both']=…, arrowshape: Tuple[float, float, float]=…, capstyle: Literal['round', 'projecting', 'butt']=…, dash: str | _TkinterSequence[int]=…, dashoffset: _ScreenUnits=…,… → method Canvas.create_line(__x0: float, __y0: float, __x1: float, __y1: float, *, activedash: str | list[int] | Tuple[int, ...]=…, activefill: _Color=…, activestipple: str=…, activewidth: _ScreenUnits=…, arrow: Literal['first', 'last', 'both']=…, arrowshape: tuple[float, float, float]=…, capstyle: Literal['round', 'projecting', 'butt']=…, dash: str | list[int] | Tuple[int, ...]=…, dashoffset: _Scr…
  • changed: method Canvas.create_oval(__x0: float, __y0: float, __x1: float, __y1: float, *, activedash: str | _TkinterSequence[int]=…, activefill: _Color=…, activeoutline: _Color=…, activeoutlinestipple: _Color=…, activestipple: str=…, activewidth: _ScreenUnits=…, dash: str | _TkinterSequence[int]=…, dashoffset: _ScreenUnits=…, disableddash: str | _TkinterSequence[int]=…, disabledfill: _Color=…, disabledout… → method Canvas.create_oval(__x0: float, __y0: float, __x1: float, __y1: float, *, activedash: str | list[int] | Tuple[int, ...]=…, activefill: _Color=…, activeoutline: _Color=…, activeoutlinestipple: _Color=…, activestipple: str=…, activewidth: _ScreenUnits=…, dash: str | list[int] | Tuple[int, ...]=…, dashoffset: _ScreenUnits=…, disableddash: str | list[int] | Tuple[int, ...]=…, disabledfill: _Co…
  • changed: method Canvas.create_polygon(__x0: float, __y0: float, __x1: float, __y1: float, *xy_pairs: float, activedash: str | _TkinterSequence[int]=…, activefill: _Color=…, activeoutline: _Color=…, activeoutlinestipple: _Color=…, activestipple: str=…, activewidth: _ScreenUnits=…, dash: str | _TkinterSequence[int]=…, dashoffset: _ScreenUnits=…, disableddash: str | _TkinterSequence[int]=…, disabledfill: _Co… → method Canvas.create_polygon(__x0: float, __y0: float, __x1: float, __y1: float, *xy_pairs: float, activedash: str | list[int] | Tuple[int, ...]=…, activefill: _Color=…, activeoutline: _Color=…, activeoutlinestipple: _Color=…, activestipple: str=…, activewidth: _ScreenUnits=…, dash: str | list[int] | Tuple[int, ...]=…, dashoffset: _ScreenUnits=…, disableddash: str | list[int] | Tuple[int, ...]=…,…
  • changed: method Canvas.create_rectangle(__x0: float, __y0: float, __x1: float, __y1: float, *, activedash: str | _TkinterSequence[int]=…, activefill: _Color=…, activeoutline: _Color=…, activeoutlinestipple: _Color=…, activestipple: str=…, activewidth: _ScreenUnits=…, dash: str | _TkinterSequence[int]=…, dashoffset: _ScreenUnits=…, disableddash: str | _TkinterSequence[int]=…, disabledfill: _Color=…, disabl… → method Canvas.create_rectangle(__x0: float, __y0: float, __x1: float, __y1: float, *, activedash: str | list[int] | Tuple[int, ...]=…, activefill: _Color=…, activeoutline: _Color=…, activeoutlinestipple: _Color=…, activestipple: str=…, activewidth: _ScreenUnits=…, dash: str | list[int] | Tuple[int, ...]=…, dashoffset: _ScreenUnits=…, disableddash: str | list[int] | Tuple[int, ...]=…, disabledfill…
  • changed: method Canvas.create_text(__x: float, __y: float, *, activefill: _Color=…, activestipple: str=…, anchor: _Anchor=…, disabledfill: _Color=…, disabledstipple: _Bitmap=…, fill: _Color=…, font: _FontDescription=…, justify: Literal['left', 'center', 'right']=…, offset: _ScreenUnits=…, state: Literal['normal', 'active', 'disabled']=…, stipple: _Bitmap=…, tags: str | _TkinterSequence[str]=…, text: float… → method Canvas.create_text(__x: float, __y: float, *, activefill: _Color=…, activestipple: str=…, anchor: _Anchor=…, disabledfill: _Color=…, disabledstipple: _Bitmap=…, fill: _Color=…, font: _FontDescription=…, justify: Literal['left', 'center', 'right']=…, offset: _ScreenUnits=…, state: Literal['normal', 'active', 'disabled']=…, stipple: _Bitmap=…, tags: str | list[str] | Tuple[str, ...]=…, text:…
  • changed: method Canvas.create_window(__x: float, __y: float, *, anchor: _Anchor=…, height: _ScreenUnits=…, state: Literal['normal', 'active', 'disabled']=…, tags: str | _TkinterSequence[str]=…, width: _ScreenUnits=…, window: Widget=…) -> _CanvasItemId | (__coords: tuple[float, float] | list[int] | list[float], *, anchor: _Anchor=…, height: _ScreenUnits=…, state: Literal['normal', 'active', 'disabled']=…,… → method Canvas.create_window(__x: float, __y: float, *, anchor: _Anchor=…, height: _ScreenUnits=…, state: Literal['normal', 'active', 'disabled']=…, tags: str | list[str] | Tuple[str, ...]=…, width: _ScreenUnits=…, window: Widget=…) -> _CanvasItemId | (__coords: tuple[float, float] | list[int] | list[float], *, anchor: _Anchor=…, height: _ScreenUnits=…, state: Literal['normal', 'active', 'disabled…
  • changed: method Canvas.tag_bind(tagOrId: str | int, sequence: str | None=…, func: Callable[[Event[Canvas]], Any] | None=…, add: bool | None=…) -> str | (tagOrId: str | int, sequence: str | None, func: str, add: bool | None=…) -> None | (tagOrId: str | int, *, func: str, add: bool | None=…) -> None → method Canvas.tag_bind(tagOrId: str | int, sequence: str | None=…, func: Callable[[Event[Canvas]], Any] | None=…, add: Literal['', '+'] | bool | None=…) -> str | (tagOrId: str | int, sequence: str | None, func: str, add: Literal['', '+'] | bool | None=…) -> None | (tagOrId: str | int, *, func: str, add: Literal['', '+'] | bool | None=…) -> None
  • changed: method Grid.grid_configure(cnf: Mapping[str, Any] | None=…, *, column: int=…, columnspan: int=…, row: int=…, rowspan: int=…, ipadx: _ScreenUnits=…, ipady: _ScreenUnits=…, padx: _ScreenUnits | Tuple[_ScreenUnits, _ScreenUnits]=…, pady: _ScreenUnits | Tuple[_ScreenUnits, _ScreenUnits]=…, sticky: str=…, in_: Misc=…, **kw: Any) -> None → method Grid.grid_configure(cnf: Mapping[str, Any] | None=…, *, column: int=…, columnspan: int=…, row: int=…, rowspan: int=…, ipadx: _ScreenUnits=…, ipady: _ScreenUnits=…, padx: _ScreenUnits | tuple[_ScreenUnits, _ScreenUnits]=…, pady: _ScreenUnits | tuple[_ScreenUnits, _ScreenUnits]=…, sticky: str=…, in_: Misc=…, **kw: Any) -> None
  • changed: method Menu.entryconfigure(index: _MenuIndex, cnf: dict[str, Any] | None=…, **kw: Any) -> dict[str, Tuple[str, str, str, Any, Any]] | None → method Menu.entryconfigure(index: _MenuIndex, cnf: dict[str, Any] | None=…, **kw: Any) -> dict[str, tuple[str, str, str, Any, Any]] | None
  • changed: method Misc.bind(sequence: str | None=…, func: Callable[[Event[Misc]], Any] | None=…, add: bool | None=…) -> str | (sequence: str | None, func: str, add: bool | None=…) -> None | (*, func: str, add: bool | None=…) -> None → method Misc.bind(sequence: str | None=…, func: Callable[[Event[Misc]], Any] | None=…, add: Literal['', '+'] | bool | None=…) -> str | (sequence: str | None, func: str, add: Literal['', '+'] | bool | None=…) -> None | (*, func: str, add: Literal['', '+'] | bool | None=…) -> None
  • changed: method Misc.bind_all(sequence: str | None=…, func: Callable[[Event[Misc]], Any] | None=…, add: bool | None=…) -> str | (sequence: str | None, func: str, add: bool | None=…) -> None | (*, func: str, add: bool | None=…) -> None → method Misc.bind_all(sequence: str | None=…, func: Callable[[Event[Misc]], Any] | None=…, add: Literal['', '+'] | bool | None=…) -> str | (sequence: str | None, func: str, add: Literal['', '+'] | bool | None=…) -> None | (*, func: str, add: Literal['', '+'] | bool | None=…) -> None
  • changed: method Misc.bind_class(className: str, sequence: str | None=…, func: Callable[[Event[Misc]], Any] | None=…, add: bool | None=…) -> str | (className: str, sequence: str | None, func: str, add: bool | None=…) -> None | (className: str, *, func: str, add: bool | None=…) -> None → method Misc.bind_class(className: str, sequence: str | None=…, func: Callable[[Event[Misc]], Any] | None=…, add: Literal['', '+'] | bool | None=…) -> str | (className: str, sequence: str | None, func: str, add: Literal['', '+'] | bool | None=…) -> None | (className: str, *, func: str, add: Literal['', '+'] | bool | None=…) -> None
  • changed: method Misc.grid_bbox(column: None=…, row: None=…, col2: None=…, row2: None=…) -> Tuple[int, int, int, int] | None | (column: int, row: int, col2: None=…, row2: None=…) -> Tuple[int, int, int, int] | None | (column: int, row: int, col2: int, row2: int) -> Tuple[int, int, int, int] | None → method Misc.grid_bbox(column: None=…, row: None=…, col2: None=…, row2: None=…) -> tuple[int, int, int, int] | None | (column: int, row: int, col2: None=…, row2: None=…) -> tuple[int, int, int, int] | None | (column: int, row: int, col2: int, row2: int) -> tuple[int, int, int, int] | None
  • changed: method Misc.grid_location(x: _ScreenUnits, y: _ScreenUnits) -> Tuple[int, int] → method Misc.grid_location(x: _ScreenUnits, y: _ScreenUnits) -> tuple[int, int]
  • changed: method Misc.grid_size() -> Tuple[int, int] → method Misc.grid_size() -> tuple[int, int]
  • changed: method Misc.winfo_pointerxy() -> Tuple[int, int] → method Misc.winfo_pointerxy() -> tuple[int, int]
  • changed: method Misc.winfo_rgb(color: _Color) -> Tuple[int, int, int] → method Misc.winfo_rgb(color: _Color) -> tuple[int, int, int]
  • changed: method Misc.winfo_visualsavailable(includeids: int=…) -> list[Tuple[str, int]] → method Misc.winfo_visualsavailable(includeids: int=…) -> list[tuple[str, int]]
  • changed: method Pack.pack_configure(cnf: Mapping[str, Any] | None=…, *, after: Misc=…, anchor: _Anchor=…, before: Misc=…, expand: int=…, fill: Literal['none', 'x', 'y', 'both']=…, side: Literal['left', 'right', 'top', 'bottom']=…, ipadx: _ScreenUnits=…, ipady: _ScreenUnits=…, padx: _ScreenUnits | Tuple[_ScreenUnits, _ScreenUnits]=…, pady: _ScreenUnits | Tuple[_ScreenUnits, _ScreenUnits]=…, in_: Misc=…, **… → method Pack.pack_configure(cnf: Mapping[str, Any] | None=…, *, after: Misc=…, anchor: _Anchor=…, before: Misc=…, expand: int=…, fill: Literal['none', 'x', 'y', 'both']=…, side: Literal['left', 'right', 'top', 'bottom']=…, ipadx: _ScreenUnits=…, ipady: _ScreenUnits=…, padx: _ScreenUnits | tuple[_ScreenUnits, _ScreenUnits]=…, pady: _ScreenUnits | tuple[_ScreenUnits, _ScreenUnits]=…, in_: Misc=…, **…
  • changed: method PhotoImage.get(x: int, y: int) -> Tuple[int, int, int] → method PhotoImage.get(x: int, y: int) -> tuple[int, int, int]
  • changed: method PhotoImage.put(data: str | _TkinterSequence[str] | _TkinterSequence2D[_Color], to: Tuple[int, int] | None=…) -> None → method PhotoImage.put(data: str | list[str] | list[list[_Color]] | list[Tuple[_Color, ...]] | Tuple[str, ...] | Tuple[list[_Color], ...] | Tuple[Tuple[_Color, ...], ...], to: tuple[int, int] | None=…) -> None
  • changed: method PhotoImage.write(filename: StrOrBytesPath, format: str | None=…, from_coords: Tuple[int, int] | None=…) -> None → method PhotoImage.write(filename: StrOrBytesPath, format: str | None=…, from_coords: tuple[int, int] | None=…) -> None
  • changed: method Scrollbar.configure(cnf: dict[str, Any] | None=…, *, activebackground: _Color=…, activerelief: _Relief=…, background: _Color=…, bd: _ScreenUnits=…, bg: _Color=…, border: _ScreenUnits=…, borderwidth: _ScreenUnits=…, command: Callable[..., Tuple[float, float] | None] | str=…, cursor: _Cursor=…, elementborderwidth: _ScreenUnits=…, highlightbackground: _Color=…, highlightcolor: _Color=…, highl… → method Scrollbar.configure(cnf: dict[str, Any] | None=…, *, activebackground: _Color=…, activerelief: _Relief=…, background: _Color=…, bd: _ScreenUnits=…, bg: _Color=…, border: _ScreenUnits=…, borderwidth: _ScreenUnits=…, command: Callable[..., tuple[float, float] | None] | str=…, cursor: _Cursor=…, elementborderwidth: _ScreenUnits=…, highlightbackground: _Color=…, highlightcolor: _Color=…, highl…
  • changed: method Spinbox.configure(cnf: dict[str, Any] | None=…, *, activebackground: _Color=…, background: _Color=…, bd: _ScreenUnits=…, bg: _Color=…, border: _ScreenUnits=…, borderwidth: _ScreenUnits=…, buttonbackground: _Color=…, buttoncursor: _Cursor=…, buttondownrelief: _Relief=…, buttonuprelief: _Relief=…, command: Callable[[], Any] | str | _TkinterSequence[str]=…, cursor: _Cursor=…, disabledbackgrou… → method Spinbox.configure(cnf: dict[str, Any] | None=…, *, activebackground: _Color=…, background: _Color=…, bd: _ScreenUnits=…, bg: _Color=…, border: _ScreenUnits=…, borderwidth: _ScreenUnits=…, buttonbackground: _Color=…, buttoncursor: _Cursor=…, buttondownrelief: _Relief=…, buttonuprelief: _Relief=…, command: Callable[[], Any] | str | list[str] | Tuple[str, ...]=…, cursor: _Cursor=…, disabledba…
  • changed: method Text.bbox(index: _TextIndex) -> Tuple[int, int, int, int] | None → method Text.bbox(index: _TextIndex) -> tuple[int, int, int, int] | None
  • changed: method Text.dlineinfo(index: _TextIndex) -> Tuple[int, int, int, int, int] | None → method Text.dlineinfo(index: _TextIndex) -> tuple[int, int, int, int, int] | None
  • changed: method Text.dump(index1: _TextIndex, index2: _TextIndex | None=…, command: None=…, *, all: bool=…, image: bool=…, mark: bool=…, tag: bool=…, text: bool=…, window: bool=…) -> list[Tuple[str, str, str]] | (index1: _TextIndex, index2: _TextIndex | None, command: Callable[[str, str, str], Any] | str, *, all: bool=…, image: bool=…, mark: bool=…, tag: bool=…, text: bool=…, window: bool=…) -> None | (in… → method Text.dump(index1: _TextIndex, index2: _TextIndex | None=…, command: None=…, *, all: bool=…, image: bool=…, mark: bool=…, tag: bool=…, text: bool=…, window: bool=…) -> list[tuple[str, str, str]] | (index1: _TextIndex, index2: _TextIndex | None, command: Callable[[str, str, str], Any] | str, *, all: bool=…, image: bool=…, mark: bool=…, tag: bool=…, text: bool=…, window: bool=…) -> None | (in…
  • changed: method Text.insert(index: _TextIndex, chars: str, *args: str | _TkinterSequence[str]) -> None → method Text.insert(index: _TextIndex, chars: str, *args: str | list[str] | Tuple[str, ...]) -> None
  • changed: method Text.replace(index1: _TextIndex, index2: _TextIndex, chars: str, *args: str | _TkinterSequence[str]) -> None → method Text.replace(index1: _TextIndex, index2: _TextIndex, chars: str, *args: str | list[str] | Tuple[str, ...]) -> None
  • changed: method Text.tag_bind(tagName: str, sequence: str | None, func: Callable[[Event[Text]], Any] | None, add: bool | None=…) -> str | (tagName: str, sequence: str | None, func: str, add: bool | None=…) -> None → method Text.tag_bind(tagName: str, sequence: str | None, func: Callable[[Event[Text]], Any] | None, add: Literal['', '+'] | bool | None=…) -> str | (tagName: str, sequence: str | None, func: str, add: Literal['', '+'] | bool | None=…) -> None
  • changed: method Text.tag_nextrange(tagName: str, index1: _TextIndex, index2: _TextIndex | None=…) -> Tuple[str, str] | Tuple[()] → method Text.tag_nextrange(tagName: str, index1: _TextIndex, index2: _TextIndex | None=…) -> tuple[str, str] | tuple[()]
  • changed: method Text.tag_prevrange(tagName: str, index1: _TextIndex, index2: _TextIndex | None=…) -> Tuple[str, str] | Tuple[()] → method Text.tag_prevrange(tagName: str, index1: _TextIndex, index2: _TextIndex | None=…) -> tuple[str, str] | tuple[()]
  • changed: method Variable.trace_info() -> list[Tuple[Tuple[_TraceMode, ...], str]] → method Variable.trace_info() -> list[tuple[Tuple[_TraceMode, ...], str]]
  • changed: method Widget.bind(sequence: str | None=…, func: Callable[[Event[_W]], Any] | None=…, add: bool | None=…) -> str | (sequence: str | None, func: str, add: bool | None=…) -> None | (*, func: str, add: bool | None=…) -> None → method Widget.bind(sequence: str | None=…, func: Callable[[Event[_W]], Any] | None=…, add: Literal['', '+'] | bool | None=…) -> str | (sequence: str | None, func: str, add: Literal['', '+'] | bool | None=…) -> None | (*, func: str, add: Literal['', '+'] | bool | None=…) -> None
  • changed: method Wm.wm_aspect(minNumer: int, minDenom: int, maxNumer: int, maxDenom: int) -> None | (minNumer: None=…, minDenom: None=…, maxNumer: None=…, maxDenom: None=…) -> Tuple[int, int, int, int] | None → method Wm.wm_aspect(minNumer: int, minDenom: int, maxNumer: int, maxDenom: int) -> None | (minNumer: None=…, minDenom: None=…, maxNumer: None=…, maxDenom: None=…) -> tuple[int, int, int, int] | None
  • changed: method Wm.wm_colormapwindows() -> list[Misc] | (__wlist: _TkinterSequence[Misc]) -> None | (__first_wlist_item: Misc, *other_wlist_items: Misc) -> None → method Wm.wm_colormapwindows() -> list[Misc] | (__wlist: list[Misc] | Tuple[Misc, ...]) -> None | (__first_wlist_item: Misc, *other_wlist_items: Misc) -> None
  • changed: method Wm.wm_maxsize(width: None=…, height: None=…) -> Tuple[int, int] | (width: int, height: int) -> None → method Wm.wm_maxsize(width: None=…, height: None=…) -> tuple[int, int] | (width: int, height: int) -> None
  • changed: method Wm.wm_minsize(width: None=…, height: None=…) -> Tuple[int, int] | (width: int, height: int) -> None → method Wm.wm_minsize(width: None=…, height: None=…) -> tuple[int, int] | (width: int, height: int) -> None
  • changed: method Wm.wm_resizable(width: None=…, height: None=…) -> Tuple[bool, bool] | (width: bool, height: bool) -> None → method Wm.wm_resizable(width: None=…, height: None=…) -> tuple[bool, bool] | (width: bool, height: bool) -> None
  • changed: method XView.xview() -> Tuple[float, float] | (*args: Any) -> Any → method XView.xview() -> tuple[float, float] | (*args: Any) -> Any
  • changed: method YView.yview() -> Tuple[float, float] | (*args: Any) -> Any → method YView.yview() -> tuple[float, float] | (*args: Any) -> Any
  • changed: function askcolor(color: str | bytes | None=…, **options: Any) -> Tuple[None, None] | Tuple[Tuple[float, float, float], str] → function askcolor(color: str | bytes | None=…, **options: Any) -> tuple[None, None] | tuple[tuple[float, float, float], str]
  • changed: function askopenfile(mode: str=…, *, defaultextension: str | None=…, filetypes: Iterable[Tuple[str, str] | Tuple[str, _TkinterSequence[str]]] | None=…, initialdir: StrOrBytesPath | None=…, initialfile: StrOrBytesPath | None=…, parent: Misc | None=…, title: str | None=…, typevariable: StringVar | str | None=…) -> IO[Any] | None → function askopenfile(mode: str=…, *, defaultextension: str | None=…, filetypes: Iterable[tuple[str, str | list[str] | Tuple[str, ...]]] | None=…, initialdir: StrOrBytesPath | None=…, initialfile: StrOrBytesPath | None=…, parent: Misc | None=…, title: str | None=…, typevariable: StringVar | str | None=…) -> IO[Any] | None
  • changed: function askopenfilename(*, defaultextension: str | None=…, filetypes: Iterable[Tuple[str, str] | Tuple[str, _TkinterSequence[str]]] | None=…, initialdir: StrOrBytesPath | None=…, initialfile: StrOrBytesPath | None=…, parent: Misc | None=…, title: str | None=…, typevariable: StringVar | str | None=…) -> str → function askopenfilename(*, defaultextension: str | None=…, filetypes: Iterable[tuple[str, str | list[str] | Tuple[str, ...]]] | None=…, initialdir: StrOrBytesPath | None=…, initialfile: StrOrBytesPath | None=…, parent: Misc | None=…, title: str | None=…, typevariable: StringVar | str | None=…) -> str
  • changed: function askopenfilenames(*, defaultextension: str | None=…, filetypes: Iterable[Tuple[str, str] | Tuple[str, _TkinterSequence[str]]] | None=…, initialdir: StrOrBytesPath | None=…, initialfile: StrOrBytesPath | None=…, parent: Misc | None=…, title: str | None=…, typevariable: StringVar | str | None=…) -> Literal[''] | Tuple[str, ...] → function askopenfilenames(*, defaultextension: str | None=…, filetypes: Iterable[tuple[str, str | list[str] | Tuple[str, ...]]] | None=…, initialdir: StrOrBytesPath | None=…, initialfile: StrOrBytesPath | None=…, parent: Misc | None=…, title: str | None=…, typevariable: StringVar | str | None=…) -> Literal[''] | Tuple[str, ...]
  • changed: function askopenfiles(mode: str=…, *, defaultextension: str | None=…, filetypes: Iterable[Tuple[str, str] | Tuple[str, _TkinterSequence[str]]] | None=…, initialdir: StrOrBytesPath | None=…, initialfile: StrOrBytesPath | None=…, parent: Misc | None=…, title: str | None=…, typevariable: StringVar | str | None=…) -> Tuple[IO[Any], ...] → function askopenfiles(mode: str=…, *, defaultextension: str | None=…, filetypes: Iterable[tuple[str, str | list[str] | Tuple[str, ...]]] | None=…, initialdir: StrOrBytesPath | None=…, initialfile: StrOrBytesPath | None=…, parent: Misc | None=…, title: str | None=…, typevariable: StringVar | str | None=…) -> Tuple[IO[Any], ...]
  • changed: function asksaveasfile(mode: str=…, *, confirmoverwrite: bool | None=…, defaultextension: str | None=…, filetypes: Iterable[Tuple[str, str] | Tuple[str, _TkinterSequence[str]]] | None=…, initialdir: StrOrBytesPath | None=…, initialfile: StrOrBytesPath | None=…, parent: Misc | None=…, title: str | None=…, typevariable: StringVar | str | None=…) -> IO[Any] | None → function asksaveasfile(mode: str=…, *, confirmoverwrite: bool | None=…, defaultextension: str | None=…, filetypes: Iterable[tuple[str, str | list[str] | Tuple[str, ...]]] | None=…, initialdir: StrOrBytesPath | None=…, initialfile: StrOrBytesPath | None=…, parent: Misc | None=…, title: str | None=…, typevariable: StringVar | str | None=…) -> IO[Any] | None
  • changed: function asksaveasfilename(*, confirmoverwrite: bool | None=…, defaultextension: str | None=…, filetypes: Iterable[Tuple[str, str] | Tuple[str, _TkinterSequence[str]]] | None=…, initialdir: StrOrBytesPath | None=…, initialfile: StrOrBytesPath | None=…, parent: Misc | None=…, title: str | None=…, typevariable: StringVar | str | None=…) -> str → function asksaveasfilename(*, confirmoverwrite: bool | None=…, defaultextension: str | None=…, filetypes: Iterable[tuple[str, str | list[str] | Tuple[str, ...]]] | None=…, initialdir: StrOrBytesPath | None=…, initialfile: StrOrBytesPath | None=…, parent: Misc | None=…, title: str | None=…, typevariable: StringVar | str | None=…) -> str
  • changed: variable dialogstates: dict[Any, Tuple[Any, Any]] → variable dialogstates: dict[Any, tuple[Any, Any]]
  • changed: method Form.grid(xsize: int=…, ysize: int=…) -> Tuple[int, int] | None → method Form.grid(xsize: int=…, ysize: int=…) -> tuple[int, int] | None
  • changed: method HList.info_bbox(entry: str) -> Tuple[int, int, int, int] → method HList.info_bbox(entry: str) -> tuple[int, int, int, int]
  • changed: constructor Scrollbar(master: tkinter.Misc | None=…, *, class_: str=…, command: Callable[..., Tuple[float, float] | None] | str=…, cursor: tkinter._Cursor=…, name: str=…, orient: Literal['horizontal', 'vertical']=…, style: str=…, takefocus: tkinter._TakeFocusValue=…) -> None → constructor Scrollbar(master: tkinter.Misc | None=…, *, class_: str=…, command: Callable[..., tuple[float, float] | None] | str=…, cursor: tkinter._Cursor=…, name: str=…, orient: Literal['horizontal', 'vertical']=…, style: str=…, takefocus: tkinter._TakeFocusValue=…) -> None
  • changed: constructor Spinbox(master: tkinter.Misc | None=…, *, background: tkinter._Color=…, class_: str=…, command: Callable[[], Any] | str | tkinter._TkinterSequence[str]=…, cursor: tkinter._Cursor=…, exportselection: bool=…, font: _FontDescription=…, foreground: tkinter._Color=…, format: str=…, from_: float=…, increment: float=…, invalidcommand: tkinter._EntryValidateCommand=…, justify: Literal['left',… → constructor Spinbox(master: tkinter.Misc | None=…, *, background: tkinter._Color=…, class_: str=…, command: Callable[[], Any] | str | list[str] | Tuple[str, ...]=…, cursor: tkinter._Cursor=…, exportselection: bool=…, font: _FontDescription=…, foreground: tkinter._Color=…, format: str=…, from_: float=…, increment: float=…, invalidcommand: tkinter._EntryValidateCommand=…, justify: Literal['left', '…
  • changed: constructor Treeview(master: tkinter.Misc | None=…, *, class_: str=…, columns: str | tkinter._TkinterSequence[str]=…, cursor: tkinter._Cursor=…, displaycolumns: str | tkinter._TkinterSequence[str] | tkinter._TkinterSequence[int] | Literal['#all']=…, height: int=…, name: str=…, padding: tkinter._Padding=…, selectmode: Literal['extended', 'browse', 'none']=…, show: Literal['tree', 'headings', 'tree… → constructor Treeview(master: tkinter.Misc | None=…, *, class_: str=…, columns: str | list[str] | Tuple[str, ...]=…, cursor: tkinter._Cursor=…, displaycolumns: str | list[str] | Tuple[str, ...] | list[int] | Tuple[int, ...] | Literal['#all']=…, height: int=…, name: str=…, padding: tkinter._Padding=…, selectmode: Literal['extended', 'browse', 'none']=…, show: Literal['tree', 'headings', 'tree headi…
  • changed: method Frame.configure(cnf: dict[str, Any] | None=…, *, border: tkinter._ScreenUnits=…, borderwidth: tkinter._ScreenUnits=…, cursor: tkinter._Cursor=…, height: tkinter._ScreenUnits=…, padding: tkinter._Padding=…, relief: tkinter._Relief=…, style: str=…, takefocus: tkinter._TakeFocusValue=…, width: tkinter._ScreenUnits=…) -> dict[str, Tuple[str, str, str, Any, Any]] | None | (cnf: str) -> Tuple[st… → method Frame.configure(cnf: dict[str, Any] | None=…, *, border: tkinter._ScreenUnits=…, borderwidth: tkinter._ScreenUnits=…, cursor: tkinter._Cursor=…, height: tkinter._ScreenUnits=…, padding: tkinter._Padding=…, relief: tkinter._Relief=…, style: str=…, takefocus: tkinter._TakeFocusValue=…, width: tkinter._ScreenUnits=…) -> dict[str, tuple[str, str, str, Any, Any]] | None | (cnf: str) -> tuple[st…
  • changed: method Notebook.configure(cnf: dict[str, Any] | None=…, *, cursor: tkinter._Cursor=…, height: int=…, padding: tkinter._Padding=…, style: str=…, takefocus: tkinter._TakeFocusValue=…, width: int=…) -> dict[str, Tuple[str, str, str, Any, Any]] | None | (cnf: str) -> Tuple[str, str, str, Any, Any] → method Notebook.configure(cnf: dict[str, Any] | None=…, *, cursor: tkinter._Cursor=…, height: int=…, padding: tkinter._Padding=…, style: str=…, takefocus: tkinter._TakeFocusValue=…, width: int=…) -> dict[str, tuple[str, str, str, Any, Any]] | None | (cnf: str) -> tuple[str, str, str, Any, Any]
  • changed: method Panedwindow.config(cnf: dict[str, Any] | None=…, *, cursor: tkinter._Cursor=…, height: int=…, style: str=…, takefocus: tkinter._TakeFocusValue=…, width: int=…) -> dict[str, Tuple[str, str, str, Any, Any]] | None | (cnf: str) -> Tuple[str, str, str, Any, Any] → method Panedwindow.config(cnf: dict[str, Any] | None=…, *, cursor: tkinter._Cursor=…, height: int=…, style: str=…, takefocus: tkinter._TakeFocusValue=…, width: int=…) -> dict[str, tuple[str, str, str, Any, Any]] | None | (cnf: str) -> tuple[str, str, str, Any, Any]
  • changed: method Panedwindow.configure(cnf: dict[str, Any] | None=…, *, cursor: tkinter._Cursor=…, height: int=…, style: str=…, takefocus: tkinter._TakeFocusValue=…, width: int=…) -> dict[str, Tuple[str, str, str, Any, Any]] | None | (cnf: str) -> Tuple[str, str, str, Any, Any] → method Panedwindow.configure(cnf: dict[str, Any] | None=…, *, cursor: tkinter._Cursor=…, height: int=…, style: str=…, takefocus: tkinter._TakeFocusValue=…, width: int=…) -> dict[str, tuple[str, str, str, Any, Any]] | None | (cnf: str) -> tuple[str, str, str, Any, Any]
  • changed: method Progressbar.configure(cnf: dict[str, Any] | None=…, *, cursor: tkinter._Cursor=…, length: tkinter._ScreenUnits=…, maximum: float=…, mode: Literal['determinate', 'indeterminate']=…, orient: Literal['horizontal', 'vertical']=…, phase: int=…, style: str=…, takefocus: tkinter._TakeFocusValue=…, value: float=…, variable: tkinter.IntVar | tkinter.DoubleVar=…) -> dict[str, Tuple[str, str, str, An… → method Progressbar.configure(cnf: dict[str, Any] | None=…, *, cursor: tkinter._Cursor=…, length: tkinter._ScreenUnits=…, maximum: float=…, mode: Literal['determinate', 'indeterminate']=…, orient: Literal['horizontal', 'vertical']=…, phase: int=…, style: str=…, takefocus: tkinter._TakeFocusValue=…, value: float=…, variable: tkinter.IntVar | tkinter.DoubleVar=…) -> dict[str, tuple[str, str, str, An…
  • changed: method Scale.config(cnf: dict[str, Any] | None=…, *, command: str | Callable[[str], Any]=…, cursor: tkinter._Cursor=…, from_: float=…, length: tkinter._ScreenUnits=…, orient: Literal['horizontal', 'vertical']=…, state: str=…, style: str=…, takefocus: tkinter._TakeFocusValue=…, to: float=…, value: float=…, variable: tkinter.IntVar | tkinter.DoubleVar=…) -> dict[str, Tuple[str, str, str, Any, Any]]… → method Scale.config(cnf: dict[str, Any] | None=…, *, command: str | Callable[[str], Any]=…, cursor: tkinter._Cursor=…, from_: float=…, length: tkinter._ScreenUnits=…, orient: Literal['horizontal', 'vertical']=…, state: str=…, style: str=…, takefocus: tkinter._TakeFocusValue=…, to: float=…, value: float=…, variable: tkinter.IntVar | tkinter.DoubleVar=…) -> dict[str, tuple[str, str, str, Any, Any]]…
  • changed: method Scale.configure(cnf: dict[str, Any] | None=…, *, command: str | Callable[[str], Any]=…, cursor: tkinter._Cursor=…, from_: float=…, length: tkinter._ScreenUnits=…, orient: Literal['horizontal', 'vertical']=…, state: str=…, style: str=…, takefocus: tkinter._TakeFocusValue=…, to: float=…, value: float=…, variable: tkinter.IntVar | tkinter.DoubleVar=…) -> dict[str, Tuple[str, str, str, Any, An… → method Scale.configure(cnf: dict[str, Any] | None=…, *, command: str | Callable[[str], Any]=…, cursor: tkinter._Cursor=…, from_: float=…, length: tkinter._ScreenUnits=…, orient: Literal['horizontal', 'vertical']=…, state: str=…, style: str=…, takefocus: tkinter._TakeFocusValue=…, to: float=…, value: float=…, variable: tkinter.IntVar | tkinter.DoubleVar=…) -> dict[str, tuple[str, str, str, Any, An…
  • changed: method Scrollbar.config(cnf: dict[str, Any] | None=…, *, command: Callable[..., Tuple[float, float] | None] | str=…, cursor: tkinter._Cursor=…, orient: Literal['horizontal', 'vertical']=…, style: str=…, takefocus: tkinter._TakeFocusValue=…) -> dict[str, Tuple[str, str, str, Any, Any]] | None | (cnf: str) -> Tuple[str, str, str, Any, Any] → method Scrollbar.config(cnf: dict[str, Any] | None=…, *, command: Callable[..., tuple[float, float] | None] | str=…, cursor: tkinter._Cursor=…, orient: Literal['horizontal', 'vertical']=…, style: str=…, takefocus: tkinter._TakeFocusValue=…) -> dict[str, tuple[str, str, str, Any, Any]] | None | (cnf: str) -> tuple[str, str, str, Any, Any]
  • changed: method Scrollbar.configure(cnf: dict[str, Any] | None=…, *, command: Callable[..., Tuple[float, float] | None] | str=…, cursor: tkinter._Cursor=…, orient: Literal['horizontal', 'vertical']=…, style: str=…, takefocus: tkinter._TakeFocusValue=…) -> dict[str, Tuple[str, str, str, Any, Any]] | None | (cnf: str) -> Tuple[str, str, str, Any, Any] → method Scrollbar.configure(cnf: dict[str, Any] | None=…, *, command: Callable[..., tuple[float, float] | None] | str=…, cursor: tkinter._Cursor=…, orient: Literal['horizontal', 'vertical']=…, style: str=…, takefocus: tkinter._TakeFocusValue=…) -> dict[str, tuple[str, str, str, Any, Any]] | None | (cnf: str) -> tuple[str, str, str, Any, Any]
  • changed: method Separator.configure(cnf: dict[str, Any] | None=…, *, cursor: tkinter._Cursor=…, orient: Literal['horizontal', 'vertical']=…, style: str=…, takefocus: tkinter._TakeFocusValue=…) -> dict[str, Tuple[str, str, str, Any, Any]] | None | (cnf: str) -> Tuple[str, str, str, Any, Any] → method Separator.configure(cnf: dict[str, Any] | None=…, *, cursor: tkinter._Cursor=…, orient: Literal['horizontal', 'vertical']=…, style: str=…, takefocus: tkinter._TakeFocusValue=…) -> dict[str, tuple[str, str, str, Any, Any]] | None | (cnf: str) -> tuple[str, str, str, Any, Any]
  • changed: method Sizegrip.configure(cnf: dict[str, Any] | None=…, *, cursor: tkinter._Cursor=…, style: str=…, takefocus: tkinter._TakeFocusValue=…) -> dict[str, Tuple[str, str, str, Any, Any]] | None | (cnf: str) -> Tuple[str, str, str, Any, Any] → method Sizegrip.configure(cnf: dict[str, Any] | None=…, *, cursor: tkinter._Cursor=…, style: str=…, takefocus: tkinter._TakeFocusValue=…) -> dict[str, tuple[str, str, str, Any, Any]] | None | (cnf: str) -> tuple[str, str, str, Any, Any]
  • changed: method Spinbox.configure(cnf: dict[str, Any] | None=…, *, background: tkinter._Color=…, command: Callable[[], Any] | str | tkinter._TkinterSequence[str]=…, cursor: tkinter._Cursor=…, exportselection: bool=…, font: _FontDescription=…, foreground: tkinter._Color=…, format: str=…, from_: float=…, increment: float=…, invalidcommand: tkinter._EntryValidateCommand=…, justify: Literal['left', 'center',… → method Spinbox.configure(cnf: dict[str, Any] | None=…, *, background: tkinter._Color=…, command: Callable[[], Any] | str | list[str] | Tuple[str, ...]=…, cursor: tkinter._Cursor=…, exportselection: bool=…, font: _FontDescription=…, foreground: tkinter._Color=…, format: str=…, from_: float=…, increment: float=…, invalidcommand: tkinter._EntryValidateCommand=…, justify: Literal['left', 'center', 'r…
  • changed: method Treeview.bbox(item, column: _TreeviewColumnId | None=…) -> Tuple[int, int, int, int] | Literal[''] → method Treeview.bbox(item, column: _TreeviewColumnId | None=…) -> tuple[int, int, int, int] | Literal['']
  • changed: method Treeview.configure(cnf: dict[str, Any] | None=…, *, columns: str | tkinter._TkinterSequence[str]=…, cursor: tkinter._Cursor=…, displaycolumns: str | tkinter._TkinterSequence[str] | tkinter._TkinterSequence[int] | Literal['#all']=…, height: int=…, padding: tkinter._Padding=…, selectmode: Literal['extended', 'browse', 'none']=…, show: Literal['tree', 'headings', 'tree headings'] | tkinter._T… → method Treeview.configure(cnf: dict[str, Any] | None=…, *, columns: str | list[str] | Tuple[str, ...]=…, cursor: tkinter._Cursor=…, displaycolumns: str | list[str] | Tuple[str, ...] | list[int] | Tuple[int, ...] | Literal['#all']=…, height: int=…, padding: tkinter._Padding=…, selectmode: Literal['extended', 'browse', 'none']=…, show: Literal['tree', 'headings', 'tree headings', ''] | list[str] |…
  • changed: method Treeview.heading(column: _TreeviewColumnId, option: Literal['text']) -> str | (column: _TreeviewColumnId, option: Literal['image']) -> Tuple[str] | (column: _TreeviewColumnId, option: Literal['anchor']) -> _tkinter.Tcl_Obj | (column: _TreeviewColumnId, option: Literal['command']) -> str | (column: _TreeviewColumnId, option: str) -> Any | (column: _TreeviewColumnId, option: None=…, *, text:… → method Treeview.heading(column: _TreeviewColumnId, option: Literal['text']) -> str | (column: _TreeviewColumnId, option: Literal['image']) -> tuple[str] | (column: _TreeviewColumnId, option: Literal['anchor']) -> _tkinter.Tcl_Obj | (column: _TreeviewColumnId, option: Literal['command']) -> str | (column: _TreeviewColumnId, option: str) -> Any | (column: _TreeviewColumnId, option: None=…, *, text:…
  • changed: method Treeview.insert(parent: str, index: int | Literal['end'], iid: str | None=…, *, id: str=…, text: str=…, image: tkinter._ImageSpec=…, values: tkinter._TkinterSequence[Any]=…, open: bool=…, tags: str | tkinter._TkinterSequence[str]=…) -> str → method Treeview.insert(parent: str, index: int | Literal['end'], iid: str | None=…, *, id: str=…, text: str=…, image: tkinter._ImageSpec=…, values: list[Any] | Tuple[Any, ...]=…, open: bool=…, tags: str | list[str] | Tuple[str, ...]=…) -> str
  • changed: method Treeview.item(item: str, option: Literal['text']) -> str | (item: str, option: Literal['image']) -> Literal[''] | Tuple[str] | (item: str, option: Literal['values']) -> Literal[''] | Tuple[Any, ...] | (item: str, option: Literal['open']) -> bool | (item: str, option: Literal['tags']) -> Literal[''] | Tuple[str, ...] | (item: str, option: str) -> Any | (item: str, option: None=…, *, text: s… → method Treeview.item(item: str, option: Literal['text']) -> str | (item: str, option: Literal['image']) -> tuple[str] | Literal[''] | (item: str, option: Literal['values']) -> Tuple[Any, ...] | Literal[''] | (item: str, option: Literal['open']) -> bool | (item: str, option: Literal['tags']) -> Tuple[str, ...] | Literal[''] | (item: str, option: str) -> Any | (item: str, option: None=…, *, text: s…
  • changed: method Treeview.selection_add(items: str | tkinter._TkinterSequence[str]) -> None → method Treeview.selection_add(items: str | list[str] | Tuple[str, ...]) -> None
  • changed: method Treeview.selection_remove(items: str | tkinter._TkinterSequence[str]) -> None → method Treeview.selection_remove(items: str | list[str] | Tuple[str, ...]) -> None
  • changed: method Treeview.selection_set(items: str | tkinter._TkinterSequence[str]) -> None → method Treeview.selection_set(items: str | list[str] | Tuple[str, ...]) -> None
  • changed: method Treeview.selection_toggle(items: str | tkinter._TkinterSequence[str]) -> None → method Treeview.selection_toggle(items: str | list[str] | Tuple[str, ...]) -> None
  • changed: function detect_encoding(readline: Callable[[], bytes]) -> Tuple[str, Sequence[bytes]] → function detect_encoding(readline: Callable[[], bytes]) -> tuple[str, Sequence[bytes]]
  • changed: variable single_quoted: Set[str] → variable single_quoted: set[str]
  • changed: variable triple_quoted: Set[str] → variable triple_quoted: set[str]
  • changed: constructor CoverageResults(counts: dict[Tuple[str, int], int] | None=…, calledfuncs: dict[_fileModuleFunction, int] | None=…, infile: StrPath | None=…, callers: dict[Tuple[_fileModuleFunction, _fileModuleFunction], int] | None=…, outfile: StrPath | None=…) -> None → constructor CoverageResults(counts: dict[tuple[str, int], int] | None=…, calledfuncs: dict[_fileModuleFunction, int] | None=…, infile: StrPath | None=…, callers: dict[tuple[_fileModuleFunction, _fileModuleFunction], int] | None=…, outfile: StrPath | None=…) -> None
  • changed: method CoverageResults.write_results_file(path: StrPath, lines: Sequence[str], lnotab: Any, lines_hit: Mapping[int, int], encoding: str | None=…) -> Tuple[int, int] → method CoverageResults.write_results_file(path: StrPath, lines: Sequence[str], lnotab: Any, lines_hit: Mapping[int, int], encoding: str | None=…) -> tuple[int, int]
  • changed: constructor TracebackException(exc_type: Type[BaseException], exc_value: BaseException, exc_traceback: TracebackType, *, 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, *, limit: int | None=…, lookup_lines: bool=…, capture_locals: bool=…, _seen: set[int] | None=…) -> None
  • changed: function walk_stack(f: FrameType | None) -> Iterator[Tuple[FrameType, int]] → function walk_stack(f: FrameType | None) -> Iterator[tuple[FrameType, int]]
  • changed: function walk_tb(tb: TracebackType | None) -> Iterator[Tuple[FrameType, int]] → function walk_tb(tb: TracebackType | None) -> Iterator[tuple[FrameType, int]]
  • changed: static method StackSummary.extract(frame_gen: Generator[Tuple[FrameType, int], None, None], *, limit: int | None=…, lookup_lines: bool=…, capture_locals: bool=…) -> StackSummary → static method StackSummary.extract(frame_gen: Iterable[tuple[FrameType, int]], *, limit: int | None=…, lookup_lines: bool=…, capture_locals: bool=…) -> StackSummary
  • changed: function color() -> Tuple[_AnyColor, _AnyColor] | (color: _Color) -> None | (r: float, g: float, b: float) -> None | (color1: _Color, color2: _Color) -> None → function color() -> tuple[_AnyColor, _AnyColor] | (color: _Color) -> None | (r: float, g: float, b: float) -> None | (color1: _Color, color2: _Color) -> None
  • changed: function distance(x: TNavigator | Tuple[float, float], y: None=…) -> float | (x: float, y: float) -> float → function distance(x: TNavigator | tuple[float, float], y: None=…) -> float | (x: float, y: float) -> float
  • changed: function goto(x: Tuple[float, float], y: None=…) -> None | (x: float, y: float) -> None → function goto(x: tuple[float, float], y: None=…) -> None | (x: float, y: float) -> None
  • changed: function pen() -> _PenState | (pen: _PenState | None=…, *, shown: bool=…, pendown: bool=…, pencolor: _Color=…, fillcolor: _Color=…, pensize: int=…, speed: int=…, resizemode: str=…, stretchfactor: Tuple[float, float]=…, outline: int=…, tilt: float=…) -> None → function pen() -> _PenState | (pen: _PenState | None=…, *, shown: bool=…, pendown: bool=…, pencolor: _Color=…, fillcolor: _Color=…, pensize: int=…, speed: int=…, resizemode: str=…, stretchfactor: tuple[float, float]=…, outline: int=…, tilt: float=…) -> None
  • changed: function screensize(canvwidth: None=…, canvheight: None=…, bg: None=…) -> Tuple[int, int] | (canvwidth: int, canvheight: int, bg: _Color | None=…) -> None → function screensize(canvwidth: None=…, canvheight: None=…, bg: None=…) -> tuple[int, int] | (canvwidth: int, canvheight: int, bg: _Color | None=…) -> None
  • changed: function shapesize() -> Tuple[float, float, float] | (stretch_wid: float | None=…, stretch_len: float | None=…, outline: float | None=…) -> None → function shapesize() -> tuple[float, float, float] | (stretch_wid: float | None=…, stretch_len: float | None=…, outline: float | None=…) -> None
  • changed: function shapetransform() -> Tuple[float, float, float, float] | (t11: float | None=…, t12: float | None=…, t21: float | None=…, t22: float | None=…) -> None → function shapetransform() -> tuple[float, float, float, float] | (t11: float | None=…, t12: float | None=…, t21: float | None=…, t22: float | None=…) -> None
  • changed: function towards(x: TNavigator | Tuple[float, float], y: None=…) -> float | (x: float, y: float) -> float → function towards(x: TNavigator | tuple[float, float], y: None=…) -> float | (x: float, y: float) -> float
  • changed: function write(arg: object, move: bool=…, align: str=…, font: Tuple[str, int, str]=…) -> None → function write(arg: object, move: bool=…, align: str=…, font: tuple[str, int, str]=…) -> None
  • changed: method RawTurtle.shapesize() -> Tuple[float, float, float] | (stretch_wid: float | None=…, stretch_len: float | None=…, outline: float | None=…) -> None → method RawTurtle.shapesize() -> tuple[float, float, float] | (stretch_wid: float | None=…, stretch_len: float | None=…, outline: float | None=…) -> None
  • changed: method RawTurtle.shapetransform() -> Tuple[float, float, float, float] | (t11: float | None=…, t12: float | None=…, t21: float | None=…, t22: float | None=…) -> None → method RawTurtle.shapetransform() -> tuple[float, float, float, float] | (t11: float | None=…, t12: float | None=…, t21: float | None=…, t22: float | None=…) -> None
  • changed: method RawTurtle.write(arg: object, move: bool=…, align: str=…, font: Tuple[str, int, str]=…) -> None → method RawTurtle.write(arg: object, move: bool=…, align: str=…, font: tuple[str, int, str]=…) -> None
  • changed: method TNavigator.distance(x: TNavigator | Tuple[float, float], y: None=…) -> float | (x: float, y: float) -> float → method TNavigator.distance(x: TNavigator | tuple[float, float], y: None=…) -> float | (x: float, y: float) -> float
  • changed: method TNavigator.goto(x: Tuple[float, float], y: None=…) -> None | (x: float, y: float) -> None → method TNavigator.goto(x: tuple[float, float], y: None=…) -> None | (x: float, y: float) -> None
  • changed: method TNavigator.towards(x: TNavigator | Tuple[float, float], y: None=…) -> float | (x: float, y: float) -> float → method TNavigator.towards(x: TNavigator | tuple[float, float], y: None=…) -> float | (x: float, y: float) -> float
  • changed: method TPen.color() -> Tuple[_AnyColor, _AnyColor] | (color: _Color) -> None | (r: float, g: float, b: float) -> None | (color1: _Color, color2: _Color) -> None → method TPen.color() -> tuple[_AnyColor, _AnyColor] | (color: _Color) -> None | (r: float, g: float, b: float) -> None | (color1: _Color, color2: _Color) -> None
  • changed: method TPen.pen() -> _PenState | (pen: _PenState | None=…, *, shown: bool=…, pendown: bool=…, pencolor: _Color=…, fillcolor: _Color=…, pensize: int=…, speed: int=…, resizemode: str=…, stretchfactor: Tuple[float, float]=…, outline: int=…, tilt: float=…) -> None → method TPen.pen() -> _PenState | (pen: _PenState | None=…, *, shown: bool=…, pendown: bool=…, pencolor: _Color=…, fillcolor: _Color=…, pensize: int=…, speed: int=…, resizemode: str=…, stretchfactor: tuple[float, float]=…, outline: int=…, tilt: float=…) -> None
  • changed: method TurtleScreen.screensize(canvwidth: None=…, canvheight: None=…, bg: None=…) -> Tuple[int, int] | (canvwidth: int, canvheight: int, bg: _Color | None=…) -> None → method TurtleScreen.screensize(canvwidth: None=…, canvheight: None=…, bg: None=…) -> tuple[int, int] | (canvwidth: int, canvheight: int, bg: _Color | None=…) -> None
  • changed: class CoroutineType → class CoroutineType(Coroutine[_T_co, _T_contra, _V_co])
  • changed: function coroutine(func: Callable[..., Any]) -> CoroutineType → function coroutine(func: Callable[_P, Generator[_R, Any, Any]]) -> Callable[_P, Awaitable[_R]] | (func: _Fn) -> _Fn
  • changed: function prepare_class(name: str, bases: Tuple[type, ...]=…, kwds: dict[str, Any] | None=…) -> Tuple[type, dict[str, Any], dict[str, Any]] → function prepare_class(name: str, bases: Tuple[type, ...]=…, kwds: dict[str, Any] | None=…) -> tuple[type, dict[str, Any], dict[str, Any]]
  • changed: method CoroutineType.send(__arg: Any) -> Any → method CoroutineType.send(__arg: _T_contra) -> _T_co
  • changed: method CoroutineType.throw(__typ: Type[BaseException], __val: BaseException | object=…, __tb: TracebackType | None=…) -> Any | (__typ: BaseException, __val: None=…, __tb: TracebackType | None=…) -> Any → method CoroutineType.throw(__typ: Type[BaseException], __val: BaseException | object=…, __tb: TracebackType | None=…) -> _T_co | (__typ: BaseException, __val: None=…, __tb: TracebackType | None=…) -> _T_co
  • added: method CodeType.co_positions() -> Iterable[tuple[int | None, int | None, int | None, int | None]]
  • removed: property Match.regs -> Tuple[Tuple[int, int], ...]
  • changed: class AbstractSet(_Collection[_T_co], Generic[_T_co]) → class AbstractSet(Collection[_T_co], Generic[_T_co])
  • changed: class Mapping(_Collection[_KT], Generic[_KT, _VT_co]) → class Mapping(Collection[_KT], Generic[_KT, _VT_co])
  • changed: class Sequence(_Collection[_T_co], Reversible[_T_co], Generic[_T_co]) → class Sequence(Collection[_T_co], Reversible[_T_co], Generic[_T_co])
  • changed: constructor NamedTuple(typename: str, fields: Iterable[Tuple[str, Any]]=…, **kwargs: Any) -> None → constructor NamedTuple(typename: str, fields: Iterable[tuple[str, Any]]=…) -> None | (typename: str, fields: None=…, **kwargs: Any) -> None
  • changed: method Mapping.get(key: _KT) -> _VT_co | None | (key: _KT, default: _VT_co | _T) -> _VT_co | _T → method Mapping.get(key: _KT) -> _VT_co | None | (__key: _KT, __default: _VT_co | _T) -> _VT_co | _T
  • changed: method Match.span(__group: int | str=…) -> Tuple[int, int] → method Match.span(__group: int | str=…) -> tuple[int, int]
  • changed: method MutableMapping.pop(key: _KT) -> _VT | (key: _KT, default: _VT | _T=…) -> _VT | _T → method MutableMapping.pop(__key: _KT) -> _VT | (__key: _KT, __default: _VT | _T=…) -> _VT | _T
  • changed: method MutableMapping.popitem() -> Tuple[_KT, _VT] → method MutableMapping.popitem() -> tuple[_KT, _VT]
  • changed: method MutableMapping.setdefault(key: _KT, default: _VT=…) -> _VT → method MutableMapping.setdefault(__key: _KT, __default: _VT=…) -> _VT
  • changed: method MutableMapping.update(__m: Mapping[_KT, _VT], **kwargs: _VT) -> None | (__m: Iterable[Tuple[_KT, _VT]], **kwargs: _VT) -> None | (**kwargs: _VT) -> None → method MutableMapping.update(__m: Mapping[_KT, _VT], **kwargs: _VT) -> None | (__m: Iterable[tuple[_KT, _VT]], **kwargs: _VT) -> None | (**kwargs: _VT) -> None
  • changed: method Pattern.subn(repl: AnyStr, string: AnyStr, count: int=…) -> Tuple[AnyStr, int] | (repl: Callable[[Match[AnyStr]], AnyStr], string: AnyStr, count: int=…) -> Tuple[AnyStr, int] → method Pattern.subn(repl: AnyStr, string: AnyStr, count: int=…) -> tuple[AnyStr, int] | (repl: Callable[[Match[AnyStr]], AnyStr], string: AnyStr, count: int=…) -> tuple[AnyStr, int]
  • changed: variable NoReturn → variable NoReturn: _SpecialForm
  • added: property Match.regs -> Tuple[tuple[int, int], ...]
  • added: variable NotRequired: _SpecialForm
  • added: variable Required: _SpecialForm
  • added: variable Self: _SpecialForm
  • changed: method TestCase.subTest(msg: Any=…, **params: Any) -> ContextManager[None] → method TestCase.subTest(msg: Any=…, **params: Any) -> AbstractContextManager[None]
  • changed: field TestResult.errors: list[Tuple[unittest.case.TestCase, str]] → field TestResult.errors: list[tuple[unittest.case.TestCase, str]]
  • changed: field TestResult.expectedFailures: list[Tuple[unittest.case.TestCase, str]] → field TestResult.expectedFailures: list[tuple[unittest.case.TestCase, str]]
  • changed: field TestResult.failures: list[Tuple[unittest.case.TestCase, str]] → field TestResult.failures: list[tuple[unittest.case.TestCase, str]]
  • changed: field TestResult.skipped: list[Tuple[unittest.case.TestCase, str]] → field TestResult.skipped: list[tuple[unittest.case.TestCase, str]]
  • changed: method TextTestResult.printErrorList(flavour: str, errors: Tuple[unittest.case.TestCase, str]) -> None → method TextTestResult.printErrorList(flavour: str, errors: tuple[unittest.case.TestCase, str]) -> None
  • changed: function sorted_list_difference(expected: Sequence[_T], actual: Sequence[_T]) -> Tuple[list[_T], list[_T]] → function sorted_list_difference(expected: Sequence[_T], actual: Sequence[_T]) -> tuple[list[_T], list[_T]]
  • changed: function unorderable_list_difference(expected: Sequence[_T], actual: Sequence[_T]) -> Tuple[list[_T], list[_T]] → function unorderable_list_difference(expected: Sequence[_T], actual: Sequence[_T]) -> tuple[list[_T], list[_T]]
  • changed: constructor ContentTooShortError(message: str, content: Tuple[str, Message]) -> None → constructor ContentTooShortError(message: str, content: tuple[str, Message]) -> None
  • changed: field ContentTooShortError.content: Tuple[str, Message] → field ContentTooShortError.content: tuple[str, Message]
  • changed: function parse_qsl(qs: AnyStr | None, keep_blank_values: bool=…, strict_parsing: bool=…, encoding: str=…, errors: str=…, max_num_fields: int | None=…, separator: str=…) -> list[Tuple[AnyStr, AnyStr]] → function parse_qsl(qs: AnyStr | None, keep_blank_values: bool=…, strict_parsing: bool=…, encoding: str=…, errors: str=…, max_num_fields: int | None=…, separator: str=…) -> list[tuple[AnyStr, AnyStr]]
  • changed: function urlencode(query: Mapping[Any, Any] | Mapping[Any, Sequence[Any]] | Sequence[Tuple[Any, Any]] | Sequence[Tuple[Any, Sequence[Any]]], doseq: bool=…, safe: AnyStr=…, encoding: str=…, errors: str=…, quote_via: Callable[[str, AnyStr, str, str], str]=…) -> str → function urlencode(query: Mapping[Any, Any] | Mapping[Any, Sequence[Any]] | Sequence[tuple[Any, Any]] | Sequence[tuple[Any, Sequence[Any]]], doseq: bool=…, safe: AnyStr=…, encoding: str=…, errors: str=…, quote_via: Callable[[str, AnyStr, str, str], str]=…) -> str
  • changed: function urlunparse(components: Tuple[AnyStr | None, AnyStr | None, AnyStr | None, AnyStr | None, AnyStr | None, AnyStr | None]) -> AnyStr | (components: Sequence[AnyStr | None]) -> AnyStr → function urlunparse(components: tuple[AnyStr | None, AnyStr | None, AnyStr | None, AnyStr | None, AnyStr | None, AnyStr | None]) -> AnyStr | (components: Sequence[AnyStr | None]) -> AnyStr
  • changed: function urlunsplit(components: Tuple[AnyStr | None, AnyStr | None, AnyStr | None, AnyStr | None, AnyStr | None]) -> AnyStr | (components: Sequence[AnyStr | None]) -> AnyStr → function urlunsplit(components: tuple[AnyStr | None, AnyStr | None, AnyStr | None, AnyStr | None, AnyStr | None]) -> AnyStr | (components: Sequence[AnyStr | None]) -> AnyStr
  • changed: field OpenerDirector.addheaders: list[Tuple[str, str]] → field OpenerDirector.addheaders: list[tuple[str, str]]
  • changed: function urlretrieve(url: str, filename: StrOrBytesPath | None=…, reporthook: Callable[[int, int, int], None] | None=…, data: bytes | None=…) -> Tuple[str, HTTPMessage] → function urlretrieve(url: str, filename: StrOrBytesPath | None=…, reporthook: Callable[[int, int, int], None] | None=…, data: bytes | None=…) -> tuple[str, HTTPMessage]
  • changed: method AbstractDigestAuthHandler.get_algorithm_impls(algorithm: str) -> Tuple[Callable[[str], str], Callable[[str, str], str]] → method AbstractDigestAuthHandler.get_algorithm_impls(algorithm: str) -> tuple[Callable[[str], str], Callable[[str, str], str]]
  • changed: method FancyURLopener.get_user_passwd(host: str, realm: str, clear_cache: int=…) -> Tuple[str, str] → method FancyURLopener.get_user_passwd(host: str, realm: str, clear_cache: int=…) -> tuple[str, str]
  • changed: method FancyURLopener.prompt_user_passwd(host: str, realm: str) -> Tuple[str, str] → method FancyURLopener.prompt_user_passwd(host: str, realm: str) -> tuple[str, str]
  • changed: method HTTPPasswordMgr.find_user_password(realm: str, authuri: str) -> Tuple[str | None, str | None] → method HTTPPasswordMgr.find_user_password(realm: str, authuri: str) -> tuple[str | None, str | None]
  • changed: method HTTPPasswordMgrWithDefaultRealm.find_user_password(realm: str | None, authuri: str) -> Tuple[str | None, str | None] → method HTTPPasswordMgrWithDefaultRealm.find_user_password(realm: str | None, authuri: str) -> tuple[str | None, str | None]
  • changed: method Request.header_items() -> list[Tuple[str, str]] → method Request.header_items() -> list[tuple[str, str]]
  • changed: method URLopener.addheader(*args: Tuple[str, str]) -> None → method URLopener.addheader(*args: tuple[str, str]) -> None
  • changed: method URLopener.retrieve(url: str, filename: str | None=…, reporthook: Callable[[int, int, int], None] | None=…, data: bytes | None=…) -> Tuple[str, Message | None] → method URLopener.retrieve(url: str, filename: str | None=…, reporthook: Callable[[int, int, int], None] | None=…, data: bytes | None=…) -> tuple[str, Message | None]
  • changed: method ftpwrapper.retrfile(file: str, type: str) -> Tuple[addclosehook, int] → method ftpwrapper.retrfile(file: str, type: str) -> tuple[addclosehook, int]
  • changed: field addinfourl.code: int → field addinfourl.code: int | None
  • changed: method addinfourl.getcode() -> int → method addinfourl.getcode() -> int | None
  • added: property addinfourl.status -> int | None
  • changed: function filterwarnings(action: str, message: str=…, category: Type[Warning]=…, module: str=…, lineno: int=…, append: bool=…) -> None → function filterwarnings(action: _ActionKind, message: str=…, category: Type[Warning]=…, module: str=…, lineno: int=…, append: bool=…) -> None
  • changed: function simplefilter(action: str, category: Type[Warning]=…, lineno: int=…, append: bool=…) -> None → function simplefilter(action: _ActionKind, category: Type[Warning]=…, lineno: int=…, append: bool=…) -> None
  • changed: class WeakMethod(ref[types.MethodType]) → class WeakMethod(ref[_CallableT], Generic[_CallableT])
  • changed: constructor WeakKeyDictionary(dict: None=…) -> None | (dict: Mapping[_KT, _VT] | Iterable[Tuple[_KT, _VT]]) -> None → constructor WeakKeyDictionary(dict: None=…) -> None | (dict: Mapping[_KT, _VT] | Iterable[tuple[_KT, _VT]]) -> None
  • changed: constructor WeakValueDictionary() -> None | (__other: Mapping[_KT, _VT] | Iterable[Tuple[_KT, _VT]], **kwargs: _VT) -> None → constructor WeakValueDictionary() -> None | (__other: Mapping[_KT, _VT] | Iterable[tuple[_KT, _VT]], **kwargs: _VT) -> None
  • changed: method WeakKeyDictionary.items() -> Iterator[Tuple[_KT, _VT]] → method WeakKeyDictionary.items() -> Iterator[tuple[_KT, _VT]]
  • changed: method WeakValueDictionary.items() -> Iterator[Tuple[_KT, _VT]] → method WeakValueDictionary.items() -> Iterator[tuple[_KT, _VT]]
  • changed: method finalize.detach() -> Tuple[Any, Any, Tuple[Any, ...], dict[str, Any]] | None → method finalize.detach() -> tuple[Any, Any, Tuple[Any, ...], dict[str, Any]] | None
  • changed: method finalize.peek() -> Tuple[Any, Any, Tuple[Any, ...], dict[str, Any]] | None → method finalize.peek() -> tuple[Any, Any, Tuple[Any, ...], dict[str, Any]] | None
  • added: method WeakKeyDictionary.pop(key: _KT) -> _VT | (key: _KT, default: _VT | _T=…) -> _VT | _T
  • added: method WeakKeyDictionary.setdefault(key: _KT, default: _VT=…) -> _VT
  • added: method WeakValueDictionary.pop(key: _KT) -> _VT | (key: _KT, default: _VT | _T=…) -> _VT | _T
  • added: method WeakValueDictionary.setdefault(key: _KT, default: _VT=…) -> _VT
  • changed: function EnumValue(__key: _KeyType, __index: int) -> Tuple[str, Any, int] → function EnumValue(__key: _KeyType, __index: int) -> tuple[str, Any, int]
  • changed: function QueryInfoKey(__key: _KeyType) -> Tuple[int, int, int] → function QueryInfoKey(__key: _KeyType) -> tuple[int, int, int]
  • changed: function QueryValueEx(__key: _KeyType, __name: str) -> Tuple[Any, int] → function QueryValueEx(__key: _KeyType, __name: str) -> tuple[Any, int]
  • changed: field BaseHandler.error_headers: list[Tuple[str, str]] → field BaseHandler.error_headers: list[tuple[str, str]]
  • changed: field BaseHandler.wsgi_version: Tuple[int, int] → field BaseHandler.wsgi_version: tuple[int, int]
  • changed: method BaseHandler.start_response(status: str, headers: list[Tuple[str, str]], exc_info: _exc_info | None=…) -> Callable[[bytes], None] → method BaseHandler.start_response(status: str, headers: list[tuple[str, str]], exc_info: _exc_info | None=…) -> Callable[[bytes], None]
  • changed: function getDOMImplementation(name: str | None=…, features: str | Iterable[Tuple[str, str | None]]=…) -> DOMImplementation → function getDOMImplementation(name: str | None=…, features: str | Iterable[tuple[str, str | None]]=…) -> DOMImplementation
  • changed: variable StringTypes: Tuple[Type[str]] → variable StringTypes: tuple[Type[str]]
  • changed: field ParseError.position: Tuple[int, int] → field ParseError.position: tuple[int, int]
  • changed: function XMLID(text: str | bytes, parser: XMLParser | None=…) -> Tuple[Element, dict[str, Element]] → function XMLID(text: str | bytes, parser: XMLParser | None=…) -> tuple[Element, dict[str, Element]]
  • changed: function iterparse(source: _File, events: Sequence[str] | None=…, parser: XMLParser | None=…) -> Iterator[Tuple[str, Any]] → function iterparse(source: _File, events: Sequence[str] | None=…, parser: XMLParser | None=…) -> Iterator[tuple[str, Any]]
  • changed: method XMLPullParser.read_events() -> Iterator[Tuple[str, Element]] → method XMLPullParser.read_events() -> Iterator[tuple[str, Element]]
  • changed: constructor AttributesNSImpl(attrs: Mapping[Tuple[str, str], str], qnames: Mapping[Tuple[str, str], str]) -> None → constructor AttributesNSImpl(attrs: Mapping[tuple[str, str], str], qnames: Mapping[tuple[str, str], str]) -> None
  • changed: function getparser(use_datetime: bool=…, use_builtin_types: bool=…) -> Tuple[ExpatParser, Unmarshaller] → function getparser(use_datetime: bool=…, use_builtin_types: bool=…) -> tuple[ExpatParser, Unmarshaller]
  • changed: function loads(data: str, use_datetime: bool=…, use_builtin_types: bool=…) -> Tuple[Tuple[_Marshallable, ...], str | None] → function loads(data: str, use_datetime: bool=…, use_builtin_types: bool=…) -> tuple[Tuple[_Marshallable, ...], str | None]
  • changed: method DateTime.make_comparable(other: _DateTimeComparable) -> Tuple[str, str] → method DateTime.make_comparable(other: _DateTimeComparable) -> tuple[str, str]
  • changed: method Transport.get_host_info(host: _HostType) -> Tuple[str, list[Tuple[str, str]], dict[str, str]] → method Transport.get_host_info(host: _HostType) -> tuple[str, list[tuple[str, str]], dict[str, str]]
  • changed: method Transport.getparser() -> Tuple[ExpatParser, Unmarshaller] → method Transport.getparser() -> tuple[ExpatParser, Unmarshaller]
  • changed: method Transport.send_headers(connection: http.client.HTTPConnection, headers: list[Tuple[str, str]]) -> None → method Transport.send_headers(connection: http.client.HTTPConnection, headers: list[tuple[str, str]]) -> None
  • changed: variable WRAPPERS: Tuple[Type[DateTime], Type[Binary]] → variable WRAPPERS: tuple[Type[DateTime], Type[Binary]]
  • changed: constructor DocXMLRPCServer(addr: Tuple[str, int], requestHandler: Type[SimpleXMLRPCRequestHandler]=…, logRequests: bool=…, allow_none: bool=…, encoding: str | None=…, bind_and_activate: bool=…, use_builtin_types: bool=…) -> None → constructor DocXMLRPCServer(addr: tuple[str, int], requestHandler: Type[SimpleXMLRPCRequestHandler]=…, logRequests: bool=…, allow_none: bool=…, encoding: str | None=…, bind_and_activate: bool=…, use_builtin_types: bool=…) -> None
  • changed: constructor MultiPathXMLRPCServer(addr: Tuple[str, int], requestHandler: Type[SimpleXMLRPCRequestHandler]=…, logRequests: bool=…, allow_none: bool=…, encoding: str | None=…, bind_and_activate: bool=…, use_builtin_types: bool=…) -> None → constructor MultiPathXMLRPCServer(addr: tuple[str, int], requestHandler: Type[SimpleXMLRPCRequestHandler]=…, logRequests: bool=…, allow_none: bool=…, encoding: str | None=…, bind_and_activate: bool=…, use_builtin_types: bool=…) -> None
  • changed: constructor SimpleXMLRPCServer(addr: Tuple[str, int], requestHandler: Type[SimpleXMLRPCRequestHandler]=…, logRequests: bool=…, allow_none: bool=…, encoding: str | None=…, bind_and_activate: bool=…, use_builtin_types: bool=…) -> None → constructor SimpleXMLRPCServer(addr: tuple[str, int], requestHandler: Type[SimpleXMLRPCRequestHandler]=…, logRequests: bool=…, allow_none: bool=…, encoding: str | None=…, bind_and_activate: bool=…, use_builtin_types: bool=…) -> None
  • changed: field SimpleXMLRPCRequestHandler.rpc_paths: Tuple[str, str] → field SimpleXMLRPCRequestHandler.rpc_paths: tuple[str, str]
  • changed: method zipimporter.find_loader(fullname: str, path: str | None=…) -> Tuple[zipimporter | None, list[str]] → method zipimporter.find_loader(fullname: str, path: str | None=…) -> tuple[zipimporter | None, list[str]]
  • changed: function available_timezones() -> Set[str] → function available_timezones() -> set[str]
  • changed: variable SubtypeCache → variable SubtypeCache: _TypeAlias
  • changed: variable SubtypeKind → variable SubtypeKind: _TypeAlias
  • changed: variable SubtypeRelationship → variable SubtypeRelationship: _TypeAlias
  • added: method TypeTraverserVisitor.visit_param_spec(t: ParamSpecType) -> None
  • changed: variable MINIMUM_WIDTH → variable MINIMUM_WIDTH: Final
  • changed: variable MINIMUM_WINDOWS_BUILD_VT100 → variable MINIMUM_WINDOWS_BUILD_VT100: Final
  • changed: variable MINIMUM_WINDOWS_MAJOR_VT100 → variable MINIMUM_WINDOWS_MAJOR_VT100: Final
  • added: function frequently_executed_blocks(entry_point: BasicBlock) -> Set[BasicBlock]
  • added: class FnError(object)
  • added: class IrCheckException(Exception)
  • added: class OpChecker(OpVisitor[None])
  • added: constructor FnError(source: Union[Op, BasicBlock], desc: str) -> None
  • added: constructor OpChecker(parent_fn: FuncIR) -> None
  • added: function assert_func_ir_valid(fn: FuncIR) -> None
  • added: function check_func_ir(fn: FuncIR) -> List[FnError]
  • added: method OpChecker.check_control_op_targets(op: ControlOp) -> None
  • added: method OpChecker.fail(source: Op, desc: str) -> None
  • added: method OpChecker.visit_assign(op: Assign) -> None
  • added: method OpChecker.visit_assign_multi(op: AssignMulti) -> None
  • added: method OpChecker.visit_box(op: Box) -> None
  • added: method OpChecker.visit_branch(op: Branch) -> None
  • added: method OpChecker.visit_call(op: Call) -> None
  • added: method OpChecker.visit_call_c(op: CallC) -> None
  • added: method OpChecker.visit_cast(op: Cast) -> None
  • added: method OpChecker.visit_comparison_op(op: ComparisonOp) -> None
  • added: method OpChecker.visit_dec_ref(op: DecRef) -> None
  • added: method OpChecker.visit_get_attr(op: GetAttr) -> None
  • added: method OpChecker.visit_get_element_ptr(op: GetElementPtr) -> None
  • added: method OpChecker.visit_goto(op: Goto) -> None
  • added: method OpChecker.visit_inc_ref(op: IncRef) -> None
  • added: method OpChecker.visit_init_static(op: InitStatic) -> None
  • added: method OpChecker.visit_int_op(op: IntOp) -> None
  • added: method OpChecker.visit_keep_alive(op: KeepAlive) -> None
  • added: method OpChecker.visit_load_address(op: LoadAddress) -> None
  • added: method OpChecker.visit_load_error_value(op: LoadErrorValue) -> None
  • added: method OpChecker.visit_load_global(op: LoadGlobal) -> None
  • added: method OpChecker.visit_load_literal(op: LoadLiteral) -> None
  • added: method OpChecker.visit_load_mem(op: LoadMem) -> None
  • added: method OpChecker.visit_load_static(op: LoadStatic) -> None
  • added: method OpChecker.visit_method_call(op: MethodCall) -> None
  • added: method OpChecker.visit_raise_standard_error(op: RaiseStandardError) -> None
  • added: method OpChecker.visit_return(op: Return) -> None
  • added: method OpChecker.visit_set_attr(op: SetAttr) -> None
  • added: method OpChecker.visit_set_mem(op: SetMem) -> None
  • added: method OpChecker.visit_truncate(op: Truncate) -> None
  • added: method OpChecker.visit_tuple_get(op: TupleGet) -> None
  • added: method OpChecker.visit_tuple_set(op: TupleSet) -> None
  • added: method OpChecker.visit_unbox(op: Unbox) -> None
  • added: method OpChecker.visit_unreachable(op: Unreachable) -> None
  • changed: function mypycify(paths: List[str], *, only_compile_paths: Optional[Iterable[str]]=…, verbose: bool=…, opt_level: str=…, strip_asserts: bool=…, multi_file: bool=…, separate: Union[bool, List[Tuple[List[str], Optional[str]]]]=…, skip_cgen_input: Optional[Any]=…, target_dir: Optional[str]=…, include_runtime_files: Optional[bool]=…) -> List[Extension] → function mypycify(paths: List[str], *, only_compile_paths: Optional[Iterable[str]]=…, verbose: bool=…, opt_level: str=…, debug_level: str=…, strip_asserts: bool=…, multi_file: bool=…, separate: Union[bool, List[Tuple[List[str], Optional[str]]]]=…, skip_cgen_input: Optional[Any]=…, target_dir: Optional[str]=…, include_runtime_files: Optional[bool]=…) -> List[Extension]
  • changed: method Emitter.emit_dec_ref(dest: str, rtype: RType, is_xdec: bool=…) -> None → method Emitter.emit_dec_ref(dest: str, rtype: RType, *, is_xdec: bool=…, rare: bool=…) -> None
  • changed: method Emitter.emit_inc_ref(dest: str, rtype: RType) -> None → method Emitter.emit_inc_ref(dest: str, rtype: RType, *, rare: bool=…) -> None
  • added: variable MIN_LITERAL_SHORT_INT: Final
  • changed: function format_blocks(blocks: List[BasicBlock], names: Dict[Value, str]) -> List[str] → function format_blocks(blocks: List[BasicBlock], names: Dict[Value, str], source_to_error: Dict[ErrorSource, List[str]]) -> List[str]
  • changed: function format_func(fn: FuncIR) -> List[str] → function format_func(fn: FuncIR, errors: Sequence[Tuple[ErrorSource, str]]=…) -> List[str]
  • added: variable ErrorSource
  • removed: method IRBuilder.leave_method() -> None
  • changed: method IRBuilder.enter_method(class_ir: ClassIR, name: str, ret_type: RType, fn_info: Union[FuncInfo, str]=…, self_type: Optional[RType]=…) -> None → method IRBuilder.enter_method(class_ir: ClassIR, name: str, ret_type: RType, fn_info: Union[FuncInfo, str]=…, self_type: Optional[RType]=…) -> Iterator[None]
  • added: function remangle_redefinition_name(name: str) -> str
  • removed: function dataclass_finalize(builder: IRBuilder, cdef: ClassDef, non_ext: NonExtClassInfo, type_obj: Value) -> None
  • removed: function dataclass_non_ext_info(builder: IRBuilder, cdef: ClassDef) -> Optional[NonExtClassInfo]
  • removed: function finish_non_ext_dict(builder: IRBuilder, non_ext: NonExtClassInfo, line: int) -> None
  • changed: function generate_attr_defaults(builder: IRBuilder, cdef: ClassDef) -> None → function generate_attr_defaults(builder: IRBuilder, cdef: ClassDef, skip: Optional[Callable[[str, AssignmentStmt], bool]]=…) -> None
  • added: class AttrsClassBuilder(DataClassBuilder)
  • added: class ClassBuilder
  • added: class DataClassBuilder(ExtClassBuilder)
  • added: class ExtClassBuilder(ClassBuilder)
  • added: class NonExtClassBuilder(ClassBuilder)
  • added: constructor ClassBuilder(builder: IRBuilder, cdef: ClassDef) -> None
  • added: constructor DataClassBuilder(builder: IRBuilder, cdef: ClassDef) -> None
  • added: constructor ExtClassBuilder(builder: IRBuilder, cdef: ClassDef) -> None
  • added: constructor NonExtClassBuilder(builder: IRBuilder, cdef: ClassDef) -> None
  • added: field AttrsClassBuilder.add_annotations_to_dict
  • added: field DataClassBuilder.add_annotations_to_dict
  • added: function add_dunders_to_non_ext_dict(builder: IRBuilder, non_ext: NonExtClassInfo, line: int, add_annotations: bool=…) -> None
  • added: function add_non_ext_class_attr_ann(builder: IRBuilder, non_ext: NonExtClassInfo, lvalue: NameExpr, stmt: AssignmentStmt, get_type_info: Optional[Callable[[AssignmentStmt], Optional[TypeInfo]]]=…) -> None
  • added: method AttrsClassBuilder.get_type_annotation(stmt: AssignmentStmt) -> Optional[TypeInfo]
  • added: method AttrsClassBuilder.skip_attr_default(name: str, stmt: AssignmentStmt) -> bool
  • added: method ClassBuilder.add_attr(lvalue: NameExpr, stmt: AssignmentStmt) -> None
  • added: method ClassBuilder.add_method(fdef: FuncDef) -> None
  • added: method ClassBuilder.finalize(ir: ClassIR) -> None
  • added: method DataClassBuilder.add_attr(lvalue: NameExpr, stmt: AssignmentStmt) -> None
  • added: method DataClassBuilder.create_non_ext_info() -> NonExtClassInfo
  • added: method DataClassBuilder.finalize(ir: ClassIR) -> None
  • added: method DataClassBuilder.get_type_annotation(stmt: AssignmentStmt) -> Optional[TypeInfo]
  • added: method DataClassBuilder.skip_attr_default(name: str, stmt: AssignmentStmt) -> bool
  • added: method ExtClassBuilder.add_attr(lvalue: NameExpr, stmt: AssignmentStmt) -> None
  • added: method ExtClassBuilder.add_method(fdef: FuncDef) -> None
  • added: method ExtClassBuilder.finalize(ir: ClassIR) -> None
  • added: method ExtClassBuilder.skip_attr_default(name: str, stmt: AssignmentStmt) -> bool
  • added: method NonExtClassBuilder.add_attr(lvalue: NameExpr, stmt: AssignmentStmt) -> None
  • added: method NonExtClassBuilder.add_method(fdef: FuncDef) -> None
  • added: method NonExtClassBuilder.create_non_ext_info() -> NonExtClassInfo
  • added: method NonExtClassBuilder.finalize(ir: ClassIR) -> None
  • added: function constant_fold_binary_int_op(op: str, left: int, right: int) -> Optional[int]
  • added: function constant_fold_binary_str_op(op: str, left: str, right: str) -> Optional[str]
  • added: function constant_fold_expr(builder: IRBuilder, expr: Expression) -> Optional[ConstantValue]
  • added: function constant_fold_unary_int_op(op: str, value: int) -> Optional[int]
  • added: variable CONST_TYPES: Final
  • added: variable ConstantValue
  • added: function try_constant_fold(builder: IRBuilder, expr: Expression) -> Optional[Value]
  • removed: function transform_method(builder: IRBuilder, cdef: ClassDef, non_ext: Optional[NonExtClassInfo], fdef: FuncDef) -> None
  • removed: method LowLevelIRBuilder.builtin_call(args: List[Value], fn_op: str, line: int) -> Value
  • added: function apply_function_specialization(builder: IRBuilder, expr: CallExpr, callee: RefExpr) -> Optional[Value]
  • added: function apply_method_specialization(builder: IRBuilder, expr: CallExpr, callee: MemberExpr, typ: Optional[RType]=…) -> Optional[Value]
  • added: function faster_min_max(builder: IRBuilder, expr: CallExpr, callee: RefExpr) -> Optional[Value]
  • added: function translate_sum_call(builder: IRBuilder, expr: CallExpr, callee: RefExpr) -> Optional[Value]
  • added: function dataclass_decorator_type(d: Expression) -> Optional[str]
  • added: function dataclass_type(cdef: ClassDef) -> Optional[str]
  • added: variable DATACLASS_DECORATORS