Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-mypy for openSUSE:Factory checked in at 2025-06-01 21:36:30 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-mypy (Old) and /work/SRC/openSUSE:Factory/.python-mypy.new.16005 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-mypy" Sun Jun 1 21:36:30 2025 rev:13 rq:1281381 version:1.16.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-mypy/python-mypy.changes 2025-05-06 16:40:12.785119703 +0200 +++ /work/SRC/openSUSE:Factory/.python-mypy.new.16005/python-mypy.changes 2025-06-01 21:36:54.890186131 +0200 @@ -1,0 +2,250 @@ +Thu May 29 15:25:57 UTC 2025 - Matej Cepl <mc...@cepl.eu> + +- Remove upstreamed mypy-1.14.1-gcc15.patch +- Update to 1.16.0: + Different Property Getter and Setter Types + + Mypy now supports using different types for a property getter and setter: + + class A: + _value: int + + @property + def foo(self) -> int: + return self._value + + @foo.setter + def foo(self, x: str | int) -> None: + try: + self._value = int(x) + except ValueError: + raise Exception(f"'{x}' is not a valid value for 'foo'") + + This was contributed by Ivan Levkivskyi (PR 18510). + Flexible Variable Redefinitions (Experimental) + + Mypy now allows unannotated variables to be freely redefined + with different types when using the experimental + --allow-redefinition-new flag. You will also need to enable + --local-partial-types. Mypy will now infer a union type when + different types are assigned to a variable: + + # mypy: allow-redefinition-new, local-partial-types + + def f(n: int, b: bool) -> int | str: + if b: + x = n + else: + x = str(n) + # Type of 'x' is int | str here. + return x + + Without the new flag, mypy only supports inferring optional + types (X | None) from multiple assignments, but now mypy can + infer arbitrary union types. + + An unannotated variable can now also have different types in + different code locations: + + # mypy: allow-redefinition-new, local-partial-types + ... + + if cond(): + for x in range(n): + # Type of 'x' is 'int' here + ... + else: + for x in ['a', 'b']: + # Type of 'x' is 'str' here + ... + + We are planning to turn this flag on by default in mypy 2.0, + along with --local-partial-types. The feature is still + experimental and has known issues, and the semantics may + still change in the future. You may need to update or add + type annotations when switching to the new behavior, but if + you encounter anything unexpected, please create a GitHub + issue. + + This was contributed by Jukka Lehtosalo (PR 18727, PR 19153). + Stricter Type Checking with Imprecise Types + + Mypy can now detect additional errors in code that uses Any + types or has missing function annotations. + + When calling dict.get(x, None) on an object of type dict[str, + Any], this now results in an optional type (in the past it + was Any): + + def f(d: dict[str, Any]) -> int: + # Error: Return value has type "Any | None" but expected "int" + return d.get("x", None) + + Type narrowing using assignments can result in more precise + types in the presence of Any types: + + def foo(): ... + + def bar(n: int) -> None: + x = foo() + # Type of 'x' is 'Any' here + if n > 5: + x = str(n) + # Type of 'x' is 'str' here + + When using --check-untyped-defs, unannotated overrides are + now checked more strictly against superclass definitions. + + Related PRs: + + Use union types instead of join in binder (Ivan Levkivskyi, PR 18538) + Check superclass compatibility of untyped methods if + --check-untyped-defs is set (Stanislav Terliakov, PR + 18970) + + Improvements to Attribute Resolution + + This release includes several fixes to inconsistent + resolution of attribute, method and descriptor types. + + Consolidate descriptor handling (Ivan Levkivskyi, PR 18831) + Make multiple inheritance checking use common semantics (Ivan Levkivskyi, PR 18876) + Make method override checking use common semantics (Ivan Levkivskyi, PR 18870) + Fix descriptor overload selection (Ivan Levkivskyi, PR 18868) + Handle union types when binding self (Ivan Levkivskyi, PR 18867) + Make variable override checking use common semantics (Ivan Levkivskyi, PR 18847) + Make descriptor handling behave consistently (Ivan Levkivskyi, PR 18831) + + Make Implementation for Abstract Overloads Optional + + The implementation can now be omitted for abstract overloaded methods, even outside stubs: + + from abc import abstractmethod + from typing import overload + + class C: + @abstractmethod + @overload + def foo(self, x: int) -> int: ... + + @abstractmethod + @overload + def foo(self, x: str) -> str: ... + + # No implementation required for "foo" + + This was contributed by Ivan Levkivskyi (PR 18882). + Option to Exclude Everything in .gitignore + + You can now use --exclude-gitignore to exclude everything in + a .gitignore file from the mypy build. This behaves similar + to excluding the paths using --exclude. We might enable this + by default in a future mypy release. + + This was contributed by Ivan Levkivskyi (PR 18696). + Selectively Disable Deprecated Warnings + + It's now possible to selectively disable warnings generated + from warnings.deprecated using the --deprecated-calls-exclude + option: + + # mypy --enable-error-code deprecated + # --deprecated-calls-exclude=foo.A + import foo + + foo.A().func() # OK, the deprecated warning is ignored + + # file foo.py + + from typing_extensions import deprecated + + class A: + @deprecated("Use A.func2 instead") + def func(self): pass + + ... + + Contributed by Marc Mueller (PR 18641) + Annotating Native/Non-Native Classes in Mypyc + + You can now declare a class as a non-native class when + compiling with mypyc. Unlike native classes, which are + extension classes and have an immutable structure, non-native + classes are normal Python classes at runtime and are fully + dynamic. Example: + + from mypy_extensions import mypyc_attr + + @mypyc_attr(native_class=False) + class NonNativeClass: + ... + + o = NonNativeClass() + + # Ok, even if attribute "foo" not declared in class body + setattr(o, "foo", 1) + + Classes are native by default in compiled modules, but + classes that use certain features (such as most metaclasses) + are implicitly non-native. + + You can also explicitly declare a class as native. In this + case mypyc will generate an error if it can't compile the + class as a native class, instead of falling back to + a non-native class: + + from mypy_extensions import mypyc_attr + from foo import MyMeta + + # Error: Unsupported metaclass for a native class + @mypyc_attr(native_class=True) + class C(metaclass=MyMeta): + ... + + Since native classes are significantly more efficient that + non-native classes, you may want to ensure that certain + classes always compiled as native classes. + +- Update to 1.15.0: + + By default, mypy treats bytearray and memoryview values as + assignable to the bytes type, for historical reasons. Use the + --strict-bytes flag to disable this behavior. PEP 688 + specified the removal of this special case. The flag will be + enabled by default in mypy 2.0. + + Contributed by Ali Hamdan (PR 18263) and Shantanu Jain (PR 13952). + Improvements to Reachability Analysis and Partial Type Handling in Loops + + This change results in mypy better modelling control flow + within loops and hence detecting several previously ignored + issues. In some cases, this change may require additional + explicit variable annotations. + + Contributed by Christoph Tyralla (PR 18180, PR 18433). + + (Speaking of partial types, remember that we plan to enable + --local-partial-types by default in mypy 2.0.) + Better Discovery of Configuration Files + + Mypy will now walk up the filesystem (up until a repository + or file system root) to discover configuration files. See the + mypy configuration file documentation for more details. + + Contributed by Mikhail Shiryaev and Shantanu Jain (PR 16965, PR 18482) + Better Line Numbers for Decorators and Slice Expressions + + Mypy now uses more correct line numbers for decorators and + slice expressions. In some cases, you may have to change the + location of a # type: ignore comment. + + Contributed by Shantanu Jain (PR 18392, PR 18397). + Drop Support for Python 3.8 + + Mypy no longer supports running with Python 3.8, which has + reached end-of-life. When running mypy with Python 3.9+, it + is still possible to type check code that needs to support + Python 3.8 with the --python-version 3.8 argument. Support + for this will be dropped in the first half of 2025! + +------------------------------------------------------------------- Old: ---- mypy-1.14.1-gcc15.patch mypy-1.14.1.tar.gz New: ---- mypy-1.16.0.tar.gz BETA DEBUG BEGIN: Old: - Remove upstreamed mypy-1.14.1-gcc15.patch - Update to 1.16.0: BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-mypy.spec ++++++ --- /var/tmp/diff_new_pack.ifDhpB/_old 2025-06-01 21:36:55.474210321 +0200 +++ /var/tmp/diff_new_pack.ifDhpB/_new 2025-06-01 21:36:55.474210321 +0200 @@ -21,7 +21,7 @@ %bcond_without test %{?sle15_python_module_pythons} Name: python-mypy -Version: 1.14.1 +Version: 1.16.0 Release: 0 Summary: Optional static typing for Python License: MIT @@ -33,10 +33,9 @@ # License Source2: Apache-2.0. Only for the test suite, not packaged here. Source2: https://files.pythonhosted.org/packages/source/t/types_setuptools/types_setuptools-%{types_setuptools_version}.tar.gz Source99: python-mypy-rpmlintrc -# PATCH-FIX-UPSTREAM -Patch1: mypy-1.14.1-gcc15.patch BuildRequires: %{python_module exceptiongroup} BuildRequires: %{python_module mypy_extensions >= 1.0.0} +BuildRequires: %{python_module pathspec} BuildRequires: %{python_module pip} BuildRequires: %{python_module setuptools} BuildRequires: %{python_module tomli >= 1.1.0} @@ -45,6 +44,7 @@ BuildRequires: fdupes BuildRequires: python-rpm-macros Requires: python-mypy_extensions >= 0.4.3 +Requires: python-pathspec Requires: python-typing_extensions >= 3.10 Requires: (python-tomli >= 1.1.0 if python-base < 3.11) Requires(post): update-alternatives ++++++ mypy-1.14.1.tar.gz -> mypy-1.16.0.tar.gz ++++++ ++++ 62313 lines of diff (skipped)