Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package mypy for openSUSE:Factory checked in at 2023-07-19 19:10:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mypy (Old) and /work/SRC/openSUSE:Factory/.mypy.new.5570 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mypy" Wed Jul 19 19:10:47 2023 rev:39 rq:1099368 version:1.4.1 Changes: -------- --- /work/SRC/openSUSE:Factory/mypy/mypy.changes 2023-06-21 22:40:28.794595318 +0200 +++ /work/SRC/openSUSE:Factory/.mypy.new.5570/mypy.changes 2023-07-19 19:10:48.996630222 +0200 @@ -1,0 +2,6 @@ +Sun Jul 16 08:34:41 UTC 2023 - Sebastian Wagner <se...@sebix.at> + +- Update to 1.4.1 +- disable pep561 tests, as they fail on Python 3.11.4, see https://github.com/python/mypy/issues/15446 + +------------------------------------------------------------------- Old: ---- mypy-1.4.0.tar.gz types-psutil-5.9.5.12.tar.gz types-setuptools-67.7.0.1.tar.gz types-typed-ast-1.5.8.6.tar.gz New: ---- mypy-1.4.1.tar.gz types-psutil-5.9.5.15.tar.gz types-setuptools-68.0.0.2.tar.gz types-typed-ast-1.5.8.7.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mypy.spec ++++++ --- /var/tmp/diff_new_pack.Xz2igP/_old 2023-07-19 19:10:50.968641757 +0200 +++ /var/tmp/diff_new_pack.Xz2igP/_new 2023-07-19 19:10:50.976641803 +0200 @@ -19,11 +19,11 @@ %{?sle15_python_module_pythons} %bcond_without test %define skip_python2 1 -%define typed_ast_version 1.5.8.6 -%define types_psutil_version 5.9.5.12 -%define types_setuptools_version 67.7.0.1 +%define typed_ast_version 1.5.8.7 +%define types_psutil_version 5.9.5.15 +%define types_setuptools_version 68.0.0.2 Name: mypy -Version: 1.4.0 +Version: 1.4.1 Release: 0 Summary: Optional static typing for Python License: MIT @@ -143,7 +143,9 @@ donttest+=" or teststubtest" # gh#python/mypy#15221 donttest+=" or testMathOps or testFloatOps" -%pytest -n auto -k "not (testallexcept ${donttest} ${$python_donttest})" +# fails on Python 3.11.4, see gh#python/mypy#15446. Patch db5b5af1201fff03465b0684d16b6489a62a3d78 does not apply clean, better wait for a new upstream version +donttest+=" or PEP561Suite" +%pytest -n auto -k "not (testallexcept ${donttest} ${$python_donttest})" -x %endif %post ++++++ mypy-1.4.0.tar.gz -> mypy-1.4.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/PKG-INFO new/mypy-1.4.1/PKG-INFO --- old/mypy-1.4.0/PKG-INFO 2023-06-15 00:02:11.203390000 +0200 +++ new/mypy-1.4.1/PKG-INFO 2023-06-25 22:08:15.647109000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: mypy -Version: 1.4.0 +Version: 1.4.1 Summary: Optional static typing for Python Home-page: https://www.mypy-lang.org/ Author: Jukka Lehtosalo diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/docs/source/conf.py new/mypy-1.4.1/docs/source/conf.py --- old/mypy-1.4.0/docs/source/conf.py 2023-06-15 00:01:39.000000000 +0200 +++ new/mypy-1.4.1/docs/source/conf.py 2023-06-25 22:07:41.000000000 +0200 @@ -35,7 +35,7 @@ # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. -extensions = ["sphinx.ext.intersphinx"] +extensions = ["sphinx.ext.intersphinx", "docs.source.html_builder"] # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/docs/source/error_code_list.rst new/mypy-1.4.1/docs/source/error_code_list.rst --- old/mypy-1.4.0/docs/source/error_code_list.rst 2023-06-15 00:01:39.000000000 +0200 +++ new/mypy-1.4.1/docs/source/error_code_list.rst 2023-06-25 22:07:41.000000000 +0200 @@ -8,6 +8,8 @@ about error codes. :ref:`error-codes-optional` documents additional error codes that you can enable. +.. _code-attr-defined: + Check that attribute exists [attr-defined] ------------------------------------------ @@ -43,6 +45,8 @@ above example, the type of ``non_existent`` will be ``Any``, which can be important if you silence the error. +.. _code-union-attr: + Check that attribute exists in each union item [union-attr] ----------------------------------------------------------- @@ -75,6 +79,8 @@ or ``assert obj is not None`` to tell mypy that you know that the type is more specific than what mypy thinks. +.. _code-name-defined: + Check that name is defined [name-defined] ----------------------------------------- @@ -89,6 +95,7 @@ x = sort([3, 2, 4]) # Error: Name "sort" is not defined [name-defined] +.. _code-used-before-def: Check that a variable is not used before it's defined [used-before-def] ----------------------------------------------------------------------- @@ -105,6 +112,7 @@ print(x) # Error: Name "x" is used before definition [used-before-def] x = 123 +.. _code-call-arg: Check arguments in calls [call-arg] ----------------------------------- @@ -124,6 +132,8 @@ greet('jack') # OK greet('jill', 'jack') # Error: Too many arguments for "greet" [call-arg] +.. _code-arg-type: + Check argument types [arg-type] ------------------------------- @@ -144,6 +154,8 @@ # expected "list[int]" [arg-type] print(first(t)) +.. _code-call-overload: + Check calls to overloaded functions [call-overload] --------------------------------------------------- @@ -175,6 +187,8 @@ # Error: No overload variant of "inc_maybe" matches argument type "float" [call-overload] inc_maybe(1.2) +.. _code-valid-type: + Check validity of types [valid-type] ------------------------------------ @@ -207,6 +221,8 @@ for x in objs: f(x) +.. _code-var-annotated: + Require annotation if variable type is unclear [var-annotated] -------------------------------------------------------------- @@ -239,6 +255,8 @@ reveal_type(Bundle().items) # list[str] +.. _code-override: + Check validity of overrides [override] -------------------------------------- @@ -275,6 +293,8 @@ arg: bool) -> int: ... +.. _code-return: + Check that function returns a value [return] -------------------------------------------- @@ -303,6 +323,8 @@ else: raise ValueError('not defined for zero') +.. _code-return-value: + Check that return value is compatible [return-value] ---------------------------------------------------- @@ -317,6 +339,8 @@ # Error: Incompatible return value type (got "int", expected "str") [return-value] return x + 1 +.. _code-assignment: + Check types in assignment statement [assignment] ------------------------------------------------ @@ -339,6 +363,8 @@ # variable has type "str") [assignment] r.name = 5 +.. _code-method-assign: + Check that assignment target is not a method [method-assign] ------------------------------------------------------------ @@ -368,6 +394,8 @@ This error code is a subcode of the more general ``[assignment]`` code. +.. _code-type-var: + Check type variable values [type-var] ------------------------------------- @@ -390,6 +418,8 @@ # Error: Value of type variable "T1" of "add" cannot be "str" [type-var] add('x', 'y') +.. _code-operator: + Check uses of various operators [operator] ------------------------------------------ @@ -404,6 +434,8 @@ # Error: Unsupported operand types for + ("int" and "str") [operator] 1 + 'x' +.. _code-index: + Check indexing operations [index] --------------------------------- @@ -425,6 +457,8 @@ # Error: Invalid index type "bytes" for "dict[str, int]"; expected type "str" [index] a[b'x'] = 4 +.. _code-list-item: + Check list items [list-item] ---------------------------- @@ -439,6 +473,8 @@ # Error: List item 0 has incompatible type "int"; expected "str" [list-item] a: list[str] = [0] +.. _code-dict-item: + Check dict items [dict-item] ---------------------------- @@ -453,6 +489,8 @@ # Error: Dict entry 0 has incompatible type "str": "str"; expected "str": "int" [dict-item] d: dict[str, int] = {'key': 'value'} +.. _code-typeddict-item: + Check TypedDict items [typeddict-item] -------------------------------------- @@ -477,6 +515,8 @@ # TypedDict item "x" has type "int") [typeddict-item] p: Point = {'x': 1.2, 'y': 4} +.. _code-typeddict-unknown-key: + Check TypedDict Keys [typeddict-unknown-key] -------------------------------------------- @@ -533,6 +573,8 @@ This error code is a subcode of the wider ``[typeddict-item]`` code. +.. _code-has-type: + Check that type of target is known [has-type] --------------------------------------------- @@ -572,6 +614,8 @@ def set_y(self) -> None: self.y: int = self.x # Added annotation here +.. _code-import: + Check that import target can be found [import] ---------------------------------------------- @@ -587,6 +631,8 @@ See :ref:`ignore-missing-imports` for how to work around these errors. +.. _code-no-redef: + Check that each name is defined once [no-redef] ----------------------------------------------- @@ -613,6 +659,8 @@ # (the first definition wins!) A('x') +.. _code-func-returns-value: + Check that called function returns a value [func-returns-value] --------------------------------------------------------------- @@ -635,6 +683,8 @@ if f(): print("not false") +.. _code-abstract: + Check instantiation of abstract classes [abstract] -------------------------------------------------- @@ -666,6 +716,8 @@ # Error: Cannot instantiate abstract class "Thing" with abstract attribute "save" [abstract] t = Thing() +.. _code-type-abstract: + Safe handling of abstract type object types [type-abstract] ----------------------------------------------------------- @@ -692,6 +744,8 @@ # Error: Only concrete class can be given where "Type[Config]" is expected [type-abstract] make_many(Config, 5) +.. _code-safe-super: + Check that call to an abstract method via super is valid [safe-super] --------------------------------------------------------------------- @@ -714,6 +768,8 @@ Mypy considers the following as trivial bodies: a ``pass`` statement, a literal ellipsis ``...``, a docstring, and a ``raise NotImplementedError`` statement. +.. _code-valid-newtype: + Check the target of NewType [valid-newtype] ------------------------------------------- @@ -738,6 +794,8 @@ for ``acme`` or create a stub file for the module. See :ref:`ignore-missing-imports` for more information. +.. _code-exit-return: + Check the return type of __exit__ [exit-return] ----------------------------------------------- @@ -794,6 +852,8 @@ def __exit__(self, exc, value, tb) -> None: # Also OK print('exit') +.. _code-name-match: + Check that naming is consistent [name-match] -------------------------------------------- @@ -807,6 +867,8 @@ # Error: First argument to namedtuple() should be "Point2D", not "Point" Point2D = NamedTuple("Point", [("x", int), ("y", int)]) +.. _code-literal-required: + Check that literal is used where expected [literal-required] ------------------------------------------------------------ @@ -836,6 +898,8 @@ # expected one of ("x", "y") [literal-required] p[key] +.. _code-no-overload-impl: + Check that overloaded functions have an implementation [no-overload-impl] ------------------------------------------------------------------------- @@ -858,6 +922,8 @@ def func(value): pass # actual implementation +.. _code-unused-coroutine: + Check that coroutine return value is used [unused-coroutine] ------------------------------------------------------------ @@ -881,6 +947,8 @@ _ = f() # No error +.. _code-assert-type: + Check types in assert_type [assert-type] ---------------------------------------- @@ -895,6 +963,8 @@ assert_type([1], list[str]) # Error +.. _code-truthy-function: + Check that function isn't used in boolean context [truthy-function] ------------------------------------------------------------------- @@ -908,6 +978,8 @@ if f: # Error: Function "Callable[[], Any]" could always be true in boolean context [truthy-function] pass +.. _code-str-bytes-safe: + Check for implicit bytes coercions [str-bytes-safe] ------------------------------------------------------------------- @@ -926,6 +998,8 @@ print(f"The alphabet starts with {b!r}") # The alphabet starts with b'abc' print(f"The alphabet starts with {b.decode('utf-8')}") # The alphabet starts with abc +.. _code-syntax: + Report syntax errors [syntax] ----------------------------- @@ -933,6 +1007,8 @@ syntax error. Most, but not all, syntax errors are *blocking errors*: they can't be ignored with a ``# type: ignore`` comment. +.. _code-misc: + Miscellaneous checks [misc] --------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/docs/source/error_code_list2.rst new/mypy-1.4.1/docs/source/error_code_list2.rst --- old/mypy-1.4.0/docs/source/error_code_list2.rst 2023-06-15 00:01:39.000000000 +0200 +++ new/mypy-1.4.1/docs/source/error_code_list2.rst 2023-06-25 22:07:41.000000000 +0200 @@ -15,6 +15,8 @@ options by using a :ref:`configuration file <config-file>` or :ref:`command-line options <command-line>`. +.. _code-type-arg: + Check that type arguments exist [type-arg] ------------------------------------------ @@ -34,6 +36,8 @@ def remove_dups(items: list) -> list: ... +.. _code-no-untyped-def: + Check that every function has an annotation [no-untyped-def] ------------------------------------------------------------ @@ -62,6 +66,8 @@ def __init__(self) -> None: self.value = 0 +.. _code-redundant-cast: + Check that cast is not redundant [redundant-cast] ------------------------------------------------- @@ -82,6 +88,8 @@ # Error: Redundant cast to "int" [redundant-cast] return cast(int, x) +.. _code-redundant-self: + Check that methods do not have redundant Self annotations [redundant-self] -------------------------------------------------------------------------- @@ -104,6 +112,8 @@ def copy(self: Self) -> Self: return type(self)() +.. _code-comparison-overlap: + Check that comparisons are overlapping [comparison-overlap] ----------------------------------------------------------- @@ -135,6 +145,8 @@ def is_magic(x: bytes) -> bool: return x == b'magic' # OK +.. _code-no-untyped-call: + Check that no untyped functions are called [no-untyped-call] ------------------------------------------------------------ @@ -154,6 +166,7 @@ def bad(): ... +.. _code-no-any-return: Check that function does not return Any value [no-any-return] ------------------------------------------------------------- @@ -175,6 +188,8 @@ # Error: Returning Any from function declared to return "str" [no-any-return] return fields(x)[0] +.. _code-no-any-unimported: + Check that types have no Any components due to missing imports [no-any-unimported] ---------------------------------------------------------------------------------- @@ -195,6 +210,8 @@ def feed(cat: Cat) -> None: ... +.. _code-unreachable: + Check that statement or expression is unreachable [unreachable] --------------------------------------------------------------- @@ -214,6 +231,8 @@ # Error: Statement is unreachable [unreachable] print('unreachable') +.. _code-redundant-expr: + Check that expression is redundant [redundant-expr] --------------------------------------------------- @@ -236,6 +255,8 @@ [i for i in range(x) if isinstance(i, int)] +.. _code-truthy-bool: + Check that expression is not implicitly true in boolean context [truthy-bool] ----------------------------------------------------------------------------- @@ -259,6 +280,7 @@ if foo: ... +.. _code-truthy-iterable: Check that iterable is not implicitly true in boolean context [truthy-iterable] ------------------------------------------------------------------------------- @@ -286,8 +308,7 @@ recommended to annotate ``items`` as ``Collection[int]`` instead of ``Iterable[int]``. - -.. _ignore-without-code: +.. _code-ignore-without-code: Check that ``# type: ignore`` include an error code [ignore-without-code] ------------------------------------------------------------------------- @@ -319,6 +340,8 @@ # Error: "Foo" has no attribute "nme"; maybe "name"? f.nme = 42 # type: ignore[assignment] +.. _code-unused-awaitable: + Check that awaitable return value is used [unused-awaitable] ------------------------------------------------------------ @@ -348,6 +371,8 @@ async def g() -> None: _ = asyncio.create_task(f()) # No error +.. _code-unused-ignore: + Check that ``# type: ignore`` comment is used [unused-ignore] ------------------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/docs/source/error_codes.rst new/mypy-1.4.1/docs/source/error_codes.rst --- old/mypy-1.4.0/docs/source/error_codes.rst 2023-06-15 00:01:39.000000000 +0200 +++ new/mypy-1.4.1/docs/source/error_codes.rst 2023-06-25 22:07:41.000000000 +0200 @@ -32,7 +32,7 @@ prog.py:1: error: "str" has no attribute "trim" [attr-defined] It's also possible to require error codes for ``type: ignore`` comments. -See :ref:`ignore-without-code<ignore-without-code>` for more information. +See :ref:`ignore-without-code<code-ignore-without-code>` for more information. .. _silence-error-codes: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/docs/source/html_builder.py new/mypy-1.4.1/docs/source/html_builder.py --- old/mypy-1.4.0/docs/source/html_builder.py 1970-01-01 01:00:00.000000000 +0100 +++ new/mypy-1.4.1/docs/source/html_builder.py 2023-06-25 22:07:41.000000000 +0200 @@ -0,0 +1,74 @@ +from __future__ import annotations + +import json +import os +import textwrap +from pathlib import Path +from typing import Any + +from sphinx.addnodes import document +from sphinx.application import Sphinx +from sphinx.builders.html import StandaloneHTMLBuilder + + +class MypyHTMLBuilder(StandaloneHTMLBuilder): + def __init__(self, app: Sphinx) -> None: + super().__init__(app) + self._ref_to_doc = {} + + def write_doc(self, docname: str, doctree: document) -> None: + super().write_doc(docname, doctree) + self._ref_to_doc.update({_id: docname for _id in doctree.ids}) + + def _verify_error_codes(self) -> None: + from mypy.errorcodes import error_codes + + known_missing = { + # TODO: fix these before next release + "annotation-unchecked", + "empty-body", + "possibly-undefined", + "str-format", + "top-level-await", + } + missing_error_codes = { + c + for c in error_codes + if f"code-{c}" not in self._ref_to_doc and c not in known_missing + } + if missing_error_codes: + raise ValueError( + f"Some error codes are not documented: {', '.join(sorted(missing_error_codes))}" + ) + + def _write_ref_redirector(self) -> None: + if os.getenv("VERIFY_MYPY_ERROR_CODES"): + self._verify_error_codes() + p = Path(self.outdir) / "_refs.html" + data = f""" + <html> + <body> + <script> + const ref_to_doc = {json.dumps(self._ref_to_doc)}; + const hash = window.location.hash.substring(1); + const doc = ref_to_doc[hash]; + if (doc) {{ + window.location.href = doc + '.html' + '#' + hash; + }} else {{ + window.document.innerText = 'Unknown reference: ' + hash; + }} + </script> + </body> + </html> + """ + p.write_text(textwrap.dedent(data)) + + def finish(self) -> None: + super().finish() + self._write_ref_redirector() + + +def setup(app: Sphinx) -> dict[str, Any]: + app.add_builder(MypyHTMLBuilder, override=True) + + return {"version": "0.1", "parallel_read_safe": True, "parallel_write_safe": True} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/mypy/fastparse.py new/mypy-1.4.1/mypy/fastparse.py --- old/mypy-1.4.0/mypy/fastparse.py 2023-06-15 00:01:39.000000000 +0200 +++ new/mypy-1.4.1/mypy/fastparse.py 2023-06-25 22:07:41.000000000 +0200 @@ -521,7 +521,14 @@ return [block] stack = self.class_and_function_stack - if self.strip_function_bodies and len(stack) == 1 and stack[0] == "F": + # Fast case for stripping function bodies + if ( + can_strip + and self.strip_function_bodies + and len(stack) == 1 + and stack[0] == "F" + and not is_coroutine + ): return [] res: list[Statement] = [] @@ -529,32 +536,33 @@ node = self.visit(stmt) res.append(node) - if ( - self.strip_function_bodies - and can_strip - and stack[-2:] == ["C", "F"] - and not is_possible_trivial_body(res) - ): - # We only strip method bodies if they don't assign to an attribute, as - # this may define an attribute which has an externally visible effect. - visitor = FindAttributeAssign() - for s in res: - s.accept(visitor) - if visitor.found: - break - else: - if is_coroutine: - # Yields inside an async function affect the return type and should not - # be stripped. - yield_visitor = FindYield() + # Slow case for stripping function bodies + if can_strip and self.strip_function_bodies: + if stack[-2:] == ["C", "F"]: + if is_possible_trivial_body(res): + can_strip = False + else: + # We only strip method bodies if they don't assign to an attribute, as + # this may define an attribute which has an externally visible effect. + visitor = FindAttributeAssign() for s in res: - s.accept(yield_visitor) - if yield_visitor.found: + s.accept(visitor) + if visitor.found: + can_strip = False break - else: - return [] - else: - return [] + + if can_strip and stack[-1] == "F" and is_coroutine: + # Yields inside an async function affect the return type and should not + # be stripped. + yield_visitor = FindYield() + for s in res: + s.accept(yield_visitor) + if yield_visitor.found: + can_strip = False + break + + if can_strip: + return [] return res def translate_type_comment( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/mypy/semanal_main.py new/mypy-1.4.1/mypy/semanal_main.py --- old/mypy-1.4.0/mypy/semanal_main.py 2023-06-15 00:01:39.000000000 +0200 +++ new/mypy-1.4.1/mypy/semanal_main.py 2023-06-25 22:07:41.000000000 +0200 @@ -75,7 +75,6 @@ "abc", "collections", "collections.abc", - "typing_extensions", ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/mypy/test/testpep561.py new/mypy-1.4.1/mypy/test/testpep561.py --- old/mypy-1.4.0/mypy/test/testpep561.py 2023-06-15 00:01:39.000000000 +0200 +++ new/mypy-1.4.1/mypy/test/testpep561.py 2023-06-25 22:07:41.000000000 +0200 @@ -46,23 +46,39 @@ yield venv_dir, os.path.abspath(os.path.join(venv_dir, "bin", "python")) +def upgrade_pip(python_executable: str) -> None: + """Install pip>=21.3.1. Required for editable installs with PEP 660.""" + if ( + sys.version_info >= (3, 11) + or (3, 10, 3) <= sys.version_info < (3, 11) + or (3, 9, 11) <= sys.version_info < (3, 10) + or (3, 8, 13) <= sys.version_info < (3, 9) + ): + # Skip for more recent Python releases which come with pip>=21.3.1 + # out of the box - for performance reasons. + return + + install_cmd = [python_executable, "-m", "pip", "install", "pip>=21.3.1"] + try: + with filelock.FileLock(pip_lock, timeout=pip_timeout): + proc = subprocess.run(install_cmd, capture_output=True, env=os.environ) + except filelock.Timeout as err: + raise Exception(f"Failed to acquire {pip_lock}") from err + if proc.returncode != 0: + raise Exception(proc.stdout.decode("utf-8") + proc.stderr.decode("utf-8")) + + def install_package( - pkg: str, python_executable: str = sys.executable, use_pip: bool = True, editable: bool = False + pkg: str, python_executable: str = sys.executable, editable: bool = False ) -> None: """Install a package from test-data/packages/pkg/""" working_dir = os.path.join(package_path, pkg) with tempfile.TemporaryDirectory() as dir: - if use_pip: - install_cmd = [python_executable, "-m", "pip", "install"] - if editable: - install_cmd.append("-e") - install_cmd.append(".") - else: - install_cmd = [python_executable, "setup.py"] - if editable: - install_cmd.append("develop") - else: - install_cmd.append("install") + install_cmd = [python_executable, "-m", "pip", "install"] + if editable: + install_cmd.append("-e") + install_cmd.append(".") + # Note that newer versions of pip (21.3+) don't # follow this env variable, but this is for compatibility env = {"PIP_BUILD": dir} @@ -82,21 +98,28 @@ assert testcase.old_cwd is not None, "test was not properly set up" python = sys.executable + if sys.version_info < (3, 8) and testcase.location[-1] == "testTypedPkgSimpleEditable": + # Python 3.7 doesn't ship with new enough pip to support PEP 660 + # This is a quick hack to skip the test; we'll drop Python 3.7 support soon enough + return + assert python is not None, "Should be impossible" pkgs, pip_args = parse_pkgs(testcase.input[0]) mypy_args = parse_mypy_args(testcase.input[1]) - use_pip = True editable = False for arg in pip_args: - if arg == "no-pip": - use_pip = False - elif arg == "editable": + if arg == "editable": editable = True + else: + raise ValueError(f"Unknown pip argument: {arg}") assert pkgs, "No packages to install for PEP 561 test?" with virtualenv(python) as venv: venv_dir, python_executable = venv + if editable: + # Editable installs with PEP 660 require pip>=21.3 + upgrade_pip(python_executable) for pkg in pkgs: - install_package(pkg, python_executable, use_pip, editable) + install_package(pkg, python_executable, editable) cmd_line = list(mypy_args) has_program = not ("-p" in cmd_line or "--package" in cmd_line) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/mypy/version.py new/mypy-1.4.1/mypy/version.py --- old/mypy-1.4.0/mypy/version.py 2023-06-15 00:01:39.000000000 +0200 +++ new/mypy-1.4.1/mypy/version.py 2023-06-25 22:07:41.000000000 +0200 @@ -8,7 +8,7 @@ # - Release versions have the form "1.2.3". # - Dev versions have the form "1.2.3+dev" (PLUS sign to conform to PEP 440). # - Before 1.0 we had the form "0.NNN". -__version__ = "1.4.0" +__version__ = "1.4.1" base_version = __version__ mypy_dir = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/mypy-requirements.txt new/mypy-1.4.1/mypy-requirements.txt --- old/mypy-1.4.0/mypy-requirements.txt 2023-06-15 00:01:39.000000000 +0200 +++ new/mypy-1.4.1/mypy-requirements.txt 2023-06-25 22:07:41.000000000 +0200 @@ -1,5 +1,5 @@ # NOTE: this needs to be kept in sync with the "requires" list in pyproject.toml -typing_extensions>=3.10 +typing_extensions>=4.1.0 mypy_extensions>=1.0.0 typed_ast>=1.4.0,<2; python_version<'3.8' tomli>=1.1.0; python_version<'3.11' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/mypy.egg-info/PKG-INFO new/mypy-1.4.1/mypy.egg-info/PKG-INFO --- old/mypy-1.4.0/mypy.egg-info/PKG-INFO 2023-06-15 00:02:10.000000000 +0200 +++ new/mypy-1.4.1/mypy.egg-info/PKG-INFO 2023-06-25 22:08:15.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: mypy -Version: 1.4.0 +Version: 1.4.1 Summary: Optional static typing for Python Home-page: https://www.mypy-lang.org/ Author: Jukka Lehtosalo diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/mypy.egg-info/SOURCES.txt new/mypy-1.4.1/mypy.egg-info/SOURCES.txt --- old/mypy-1.4.0/mypy.egg-info/SOURCES.txt 2023-06-15 00:02:11.000000000 +0200 +++ new/mypy-1.4.1/mypy.egg-info/SOURCES.txt 2023-06-25 22:08:15.000000000 +0200 @@ -35,6 +35,7 @@ docs/source/final_attrs.rst docs/source/generics.rst docs/source/getting_started.rst +docs/source/html_builder.py docs/source/index.rst docs/source/inline_config.rst docs/source/installed_packages.rst @@ -1099,8 +1100,8 @@ test-data/packages/modulefinder/pkg1/a test-data/packages/modulefinder/pkg1/a.py test-data/packages/modulefinder/pkg2/b/__init__.py -test-data/packages/typedpkg/setup.py -test-data/packages/typedpkg-stubs/setup.py +test-data/packages/typedpkg/pyproject.toml +test-data/packages/typedpkg-stubs/pyproject.toml test-data/packages/typedpkg-stubs/typedpkg-stubs/__init__.pyi test-data/packages/typedpkg-stubs/typedpkg-stubs/py.typed test-data/packages/typedpkg-stubs/typedpkg-stubs/sample.pyi @@ -1111,13 +1112,13 @@ test-data/packages/typedpkg/typedpkg/pkg/__init__.py test-data/packages/typedpkg/typedpkg/pkg/aaa.py test-data/packages/typedpkg/typedpkg/pkg/py.typed -test-data/packages/typedpkg_ns_a/setup.py +test-data/packages/typedpkg_ns_a/pyproject.toml test-data/packages/typedpkg_ns_a/typedpkg_ns/__init__.py test-data/packages/typedpkg_ns_a/typedpkg_ns/a/__init__.py test-data/packages/typedpkg_ns_a/typedpkg_ns/a/bbb.py test-data/packages/typedpkg_ns_a/typedpkg_ns/a/py.typed -test-data/packages/typedpkg_ns_b/setup.py -test-data/packages/typedpkg_ns_b-stubs/setup.py +test-data/packages/typedpkg_ns_b/pyproject.toml +test-data/packages/typedpkg_ns_b-stubs/pyproject.toml test-data/packages/typedpkg_ns_b-stubs/typedpkg_ns-stubs/b/__init__.pyi test-data/packages/typedpkg_ns_b-stubs/typedpkg_ns-stubs/b/bbb.pyi test-data/packages/typedpkg_ns_b/typedpkg_ns/__init__.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/mypy.egg-info/requires.txt new/mypy-1.4.1/mypy.egg-info/requires.txt --- old/mypy-1.4.0/mypy.egg-info/requires.txt 2023-06-15 00:02:10.000000000 +0200 +++ new/mypy-1.4.1/mypy.egg-info/requires.txt 2023-06-25 22:08:15.000000000 +0200 @@ -1,4 +1,4 @@ -typing_extensions>=3.10 +typing_extensions>=4.1.0 mypy_extensions>=1.0.0 [:python_version < "3.11"] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/pyproject.toml new/mypy-1.4.1/pyproject.toml --- old/mypy-1.4.0/pyproject.toml 2023-06-15 00:01:39.000000000 +0200 +++ new/mypy-1.4.1/pyproject.toml 2023-06-25 22:07:41.000000000 +0200 @@ -6,7 +6,7 @@ "setuptools >= 40.6.2", "wheel >= 0.30.0", # the following is from mypy-requirements.txt - "typing_extensions>=3.10", + "typing_extensions>=4.1.0", "mypy_extensions>=1.0.0", "typed_ast>=1.4.0,<2; python_version<'3.8'", "tomli>=1.1.0; python_version<'3.11'", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/setup.py new/mypy-1.4.1/setup.py --- old/mypy-1.4.0/setup.py 2023-06-15 00:01:39.000000000 +0200 +++ new/mypy-1.4.1/setup.py 2023-06-25 22:07:41.000000000 +0200 @@ -222,7 +222,7 @@ # When changing this, also update mypy-requirements.txt. install_requires=[ "typed_ast >= 1.4.0, < 2; python_version<'3.8'", - "typing_extensions>=3.10", + "typing_extensions>=4.1.0", "mypy_extensions >= 1.0.0", "tomli>=1.1.0; python_version<'3.11'", ], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/test-data/packages/typedpkg/pyproject.toml new/mypy-1.4.1/test-data/packages/typedpkg/pyproject.toml --- old/mypy-1.4.0/test-data/packages/typedpkg/pyproject.toml 1970-01-01 01:00:00.000000000 +0100 +++ new/mypy-1.4.1/test-data/packages/typedpkg/pyproject.toml 2023-06-25 22:07:41.000000000 +0200 @@ -0,0 +1,8 @@ +[project] +name = 'typedpkg' +version = '0.1' +description = 'test' + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/test-data/packages/typedpkg/setup.py new/mypy-1.4.1/test-data/packages/typedpkg/setup.py --- old/mypy-1.4.0/test-data/packages/typedpkg/setup.py 2023-06-15 00:01:39.000000000 +0200 +++ new/mypy-1.4.1/test-data/packages/typedpkg/setup.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,15 +0,0 @@ -""" -This setup file installs packages to test mypy's PEP 561 implementation -""" - -from setuptools import setup - -setup( - name='typedpkg', - author="The mypy team", - version='0.1', - package_data={'typedpkg': ['py.typed']}, - packages=['typedpkg', 'typedpkg.pkg'], - include_package_data=True, - zip_safe=False, -) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/test-data/packages/typedpkg-stubs/pyproject.toml new/mypy-1.4.1/test-data/packages/typedpkg-stubs/pyproject.toml --- old/mypy-1.4.0/test-data/packages/typedpkg-stubs/pyproject.toml 1970-01-01 01:00:00.000000000 +0100 +++ new/mypy-1.4.1/test-data/packages/typedpkg-stubs/pyproject.toml 2023-06-25 22:07:41.000000000 +0200 @@ -0,0 +1,11 @@ +[project] +name = 'typedpkg-stubs' +version = '0.1' +description = 'test' + +[tool.hatch.build] +include = ["**/*.pyi"] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/test-data/packages/typedpkg-stubs/setup.py new/mypy-1.4.1/test-data/packages/typedpkg-stubs/setup.py --- old/mypy-1.4.0/test-data/packages/typedpkg-stubs/setup.py 2023-06-15 00:01:39.000000000 +0200 +++ new/mypy-1.4.1/test-data/packages/typedpkg-stubs/setup.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,13 +0,0 @@ -""" -This setup file installs packages to test mypy's PEP 561 implementation -""" - -from setuptools import setup - -setup( - name='typedpkg-stubs', - author="The mypy team", - version='0.1', - package_data={'typedpkg-stubs': ['sample.pyi', '__init__.pyi', 'py.typed']}, - packages=['typedpkg-stubs'], -) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/test-data/packages/typedpkg_ns_a/pyproject.toml new/mypy-1.4.1/test-data/packages/typedpkg_ns_a/pyproject.toml --- old/mypy-1.4.0/test-data/packages/typedpkg_ns_a/pyproject.toml 1970-01-01 01:00:00.000000000 +0100 +++ new/mypy-1.4.1/test-data/packages/typedpkg_ns_a/pyproject.toml 2023-06-25 22:07:41.000000000 +0200 @@ -0,0 +1,11 @@ +[project] +name = 'typedpkg_namespace.alpha' +version = '0.1' +description = 'test' + +[tool.hatch.build] +include = ["**/*.py", "**/*.pyi", "**/py.typed"] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/test-data/packages/typedpkg_ns_a/setup.py new/mypy-1.4.1/test-data/packages/typedpkg_ns_a/setup.py --- old/mypy-1.4.0/test-data/packages/typedpkg_ns_a/setup.py 2023-06-15 00:01:39.000000000 +0200 +++ new/mypy-1.4.1/test-data/packages/typedpkg_ns_a/setup.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,10 +0,0 @@ -from setuptools import setup - -setup( - name='typedpkg_namespace.alpha', - version='1.0.0', - namespace_packages=['typedpkg_ns'], - zip_safe=False, - package_data={'typedpkg_ns.a': ['py.typed']}, - packages=['typedpkg_ns.a'], -) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/test-data/packages/typedpkg_ns_b/pyproject.toml new/mypy-1.4.1/test-data/packages/typedpkg_ns_b/pyproject.toml --- old/mypy-1.4.0/test-data/packages/typedpkg_ns_b/pyproject.toml 1970-01-01 01:00:00.000000000 +0100 +++ new/mypy-1.4.1/test-data/packages/typedpkg_ns_b/pyproject.toml 2023-06-25 22:07:41.000000000 +0200 @@ -0,0 +1,8 @@ +[project] +name = 'typedpkg_namespace.beta' +version = '0.1' +description = 'test' + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/test-data/packages/typedpkg_ns_b/setup.py new/mypy-1.4.1/test-data/packages/typedpkg_ns_b/setup.py --- old/mypy-1.4.0/test-data/packages/typedpkg_ns_b/setup.py 2023-06-15 00:01:39.000000000 +0200 +++ new/mypy-1.4.1/test-data/packages/typedpkg_ns_b/setup.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,10 +0,0 @@ -from setuptools import setup - -setup( - name='typedpkg_namespace.beta', - version='1.0.0', - namespace_packages=['typedpkg_ns'], - zip_safe=False, - package_data={'typedpkg_ns.b': []}, - packages=['typedpkg_ns.b'], -) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/test-data/packages/typedpkg_ns_b-stubs/pyproject.toml new/mypy-1.4.1/test-data/packages/typedpkg_ns_b-stubs/pyproject.toml --- old/mypy-1.4.0/test-data/packages/typedpkg_ns_b-stubs/pyproject.toml 1970-01-01 01:00:00.000000000 +0100 +++ new/mypy-1.4.1/test-data/packages/typedpkg_ns_b-stubs/pyproject.toml 2023-06-25 22:07:41.000000000 +0200 @@ -0,0 +1,11 @@ +[project] +name = 'typedpkg_ns-stubs' +version = '0.1' +description = 'test' + +[tool.hatch.build] +include = ["**/*.pyi"] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/test-data/packages/typedpkg_ns_b-stubs/setup.py new/mypy-1.4.1/test-data/packages/typedpkg_ns_b-stubs/setup.py --- old/mypy-1.4.0/test-data/packages/typedpkg_ns_b-stubs/setup.py 2023-06-15 00:01:39.000000000 +0200 +++ new/mypy-1.4.1/test-data/packages/typedpkg_ns_b-stubs/setup.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,14 +0,0 @@ -""" -This setup file installs packages to test mypy's PEP 561 implementation -""" - -from distutils.core import setup - -setup( - name='typedpkg_ns_b-stubs', - author="The mypy team", - version='0.1', - namespace_packages=['typedpkg_ns-stubs'], - package_data={'typedpkg_ns-stubs.b': ['__init__.pyi', 'bbb.pyi']}, - packages=['typedpkg_ns-stubs.b'], -) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/test-data/unit/check-async-await.test new/mypy-1.4.1/test-data/unit/check-async-await.test --- old/mypy-1.4.0/test-data/unit/check-async-await.test 2023-06-15 00:01:39.000000000 +0200 +++ new/mypy-1.4.1/test-data/unit/check-async-await.test 2023-06-25 22:07:41.000000000 +0200 @@ -945,17 +945,21 @@ [typing fixtures/typing-async.pyi] [case testAsyncIteratorWithIgnoredErrors] -from m import L +import m -async def func(l: L) -> None: +async def func(l: m.L) -> None: reveal_type(l.get_iterator) # N: Revealed type is "def () -> typing.AsyncIterator[builtins.str]" reveal_type(l.get_iterator2) # N: Revealed type is "def () -> typing.AsyncIterator[builtins.str]" async for i in l.get_iterator(): reveal_type(i) # N: Revealed type is "builtins.str" + reveal_type(m.get_generator) # N: Revealed type is "def () -> typing.AsyncGenerator[builtins.int, None]" + async for i2 in m.get_generator(): + reveal_type(i2) # N: Revealed type is "builtins.int" + [file m.py] # mypy: ignore-errors=True -from typing import AsyncIterator +from typing import AsyncIterator, AsyncGenerator class L: async def some_func(self, i: int) -> str: @@ -968,6 +972,9 @@ if self: a = (yield 'x') +async def get_generator() -> AsyncGenerator[int, None]: + yield 1 + [builtins fixtures/async_await.pyi] [typing fixtures/typing-async.pyi] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/test-data/unit/pep561.test new/mypy-1.4.1/test-data/unit/pep561.test --- old/mypy-1.4.0/test-data/unit/pep561.test 2023-06-15 00:01:39.000000000 +0200 +++ new/mypy-1.4.1/test-data/unit/pep561.test 2023-06-25 22:07:41.000000000 +0200 @@ -72,15 +72,6 @@ [out] testStubPrecedence.py:5: note: Revealed type is "builtins.list[builtins.str]" -[case testTypedPkgSimpleEgg] -# pkgs: typedpkg; no-pip -from typedpkg.sample import ex -from typedpkg import dne -a = ex(['']) -reveal_type(a) -[out] -testTypedPkgSimpleEgg.py:5: note: Revealed type is "builtins.tuple[builtins.str, ...]" - [case testTypedPkgSimpleEditable] # pkgs: typedpkg; editable from typedpkg.sample import ex @@ -90,15 +81,6 @@ [out] testTypedPkgSimpleEditable.py:5: note: Revealed type is "builtins.tuple[builtins.str, ...]" -[case testTypedPkgSimpleEditableEgg] -# pkgs: typedpkg; editable; no-pip -from typedpkg.sample import ex -from typedpkg import dne -a = ex(['']) -reveal_type(a) -[out] -testTypedPkgSimpleEditableEgg.py:5: note: Revealed type is "builtins.tuple[builtins.str, ...]" - [case testTypedPkgNamespaceImportFrom] # pkgs: typedpkg, typedpkg_ns_a from typedpkg.pkg.aaa import af diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mypy-1.4.0/test-requirements.txt new/mypy-1.4.1/test-requirements.txt --- old/mypy-1.4.0/test-requirements.txt 2023-06-15 00:01:39.000000000 +0200 +++ new/mypy-1.4.1/test-requirements.txt 2023-06-25 22:07:41.000000000 +0200 @@ -12,7 +12,8 @@ pre-commit-hooks==4.4.0 psutil>=4.0 # pytest 6.2.3 does not support Python 3.10 -pytest>=6.2.4 +# TODO: fix use of removed private APIs so we can use the latest pytest +pytest>=6.2.4,<7.4.0 pytest-xdist>=1.34.0 pytest-forked>=1.3.0,<2.0.0 pytest-cov>=2.10.0 ++++++ types-psutil-5.9.5.12.tar.gz -> types-psutil-5.9.5.15.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/types-psutil-5.9.5.12/CHANGELOG.md new/types-psutil-5.9.5.15/CHANGELOG.md --- old/types-psutil-5.9.5.12/CHANGELOG.md 2023-04-20 05:15:56.000000000 +0200 +++ new/types-psutil-5.9.5.15/CHANGELOG.md 2023-06-12 14:28:49.000000000 +0200 @@ -1,3 +1,15 @@ +## 5.9.5.15 (2023-06-12) + +psutil: import platform-specific 'pio' definitions (#10305) + +## 5.9.5.14 (2023-06-12) + +psutil: declare return type of io_counters() (#10303) + +## 5.9.5.13 (2023-06-01) + +[psutil] Fix cpu_percent return type when percpu is True (#10238) + ## 5.9.5.12 (2023-04-20) psutil: fix stubtest (#10065) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/types-psutil-5.9.5.12/PKG-INFO new/types-psutil-5.9.5.15/PKG-INFO --- old/types-psutil-5.9.5.12/PKG-INFO 2023-04-20 05:15:57.977673300 +0200 +++ new/types-psutil-5.9.5.15/PKG-INFO 2023-06-12 14:28:51.626813400 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: types-psutil -Version: 5.9.5.12 +Version: 5.9.5.15 Summary: Typing stubs for psutil Home-page: https://github.com/python/typeshed License: Apache-2.0 license @@ -26,4 +26,4 @@ types and metadata should be contributed there. See https://github.com/python/typeshed/blob/main/README.md for more details. -This package was generated from typeshed commit `143b9612f1217e72c60df732b8b66a64d8ecc304`. +This package was generated from typeshed commit `fce4fe7b881be596fc8315c5ed6bdea0e45912c5`. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/types-psutil-5.9.5.12/psutil-stubs/__init__.pyi new/types-psutil-5.9.5.15/psutil-stubs/__init__.pyi --- old/types-psutil-5.9.5.12/psutil-stubs/__init__.pyi 2023-04-20 05:15:40.000000000 +0200 +++ new/types-psutil-5.9.5.15/psutil-stubs/__init__.pyi 2023-06-12 14:28:37.000000000 +0200 @@ -133,6 +133,13 @@ def sensors_battery(): ... +if sys.platform == "linux": + from ._pslinux import pio +elif sys.platform == "win32": + from ._pswindows import pio +else: + from ._common import pio + AF_LINK: int version_info: tuple[int, int, int] __version__: str @@ -184,7 +191,7 @@ def terminal(self) -> str: ... def num_fds(self) -> int: ... if sys.platform != "darwin": - def io_counters(self): ... + def io_counters(self) -> pio: ... def ionice(self, ioclass: int | None = None, value: int | None = None) -> pionice: ... def cpu_affinity(self, cpus: list[int] | None = None) -> list[int] | None: ... def memory_maps(self, grouped: bool = True): ... @@ -231,7 +238,12 @@ ) -> tuple[list[Process], list[Process]]: ... def cpu_count(logical: bool = True) -> int: ... def cpu_times(percpu: bool = False): ... -def cpu_percent(interval: float | None = None, percpu: bool = False) -> float: ... +@overload +def cpu_percent(interval: float | None = None, percpu: Literal[False] = False) -> float: ... +@overload +def cpu_percent(interval: float | None, percpu: Literal[True]) -> list[float]: ... +@overload +def cpu_percent(*, percpu: Literal[True]) -> list[float]: ... def cpu_times_percent(interval: float | None = None, percpu: bool = False): ... def cpu_stats() -> scpustats: ... def cpu_freq(percpu: bool = False) -> scpufreq: ... diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/types-psutil-5.9.5.12/psutil-stubs/_psbsd.pyi new/types-psutil-5.9.5.15/psutil-stubs/_psbsd.pyi --- old/types-psutil-5.9.5.12/psutil-stubs/_psbsd.pyi 2023-04-20 05:15:40.000000000 +0200 +++ new/types-psutil-5.9.5.15/psutil-stubs/_psbsd.pyi 2023-06-12 14:28:37.000000000 +0200 @@ -12,6 +12,7 @@ conn_tmap as conn_tmap, conn_to_ntuple as conn_to_ntuple, memoize as memoize, + pio, usage_percent as usage_percent, ) @@ -140,7 +141,7 @@ def nice_get(self): ... def nice_set(self, value): ... def status(self): ... - def io_counters(self): ... + def io_counters(self) -> pio: ... def cwd(self): ... class nt_mmap_grouped(NamedTuple): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/types-psutil-5.9.5.12/psutil-stubs/_pslinux.pyi new/types-psutil-5.9.5.15/psutil-stubs/_pslinux.pyi --- old/types-psutil-5.9.5.12/psutil-stubs/_pslinux.pyi 2023-04-20 05:15:40.000000000 +0200 +++ new/types-psutil-5.9.5.15/psutil-stubs/_pslinux.pyi 2023-06-12 14:28:37.000000000 +0200 @@ -199,7 +199,7 @@ def cmdline(self): ... def environ(self): ... def terminal(self): ... - def io_counters(self): ... + def io_counters(self) -> pio: ... def cpu_times(self): ... def cpu_num(self): ... def wait(self, timeout: Incomplete | None = ...): ... diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/types-psutil-5.9.5.12/psutil-stubs/_pswindows.pyi new/types-psutil-5.9.5.15/psutil-stubs/_pswindows.pyi --- old/types-psutil-5.9.5.12/psutil-stubs/_pswindows.pyi 2023-04-20 05:15:40.000000000 +0200 +++ new/types-psutil-5.9.5.15/psutil-stubs/_pswindows.pyi 2023-06-12 14:28:37.000000000 +0200 @@ -193,7 +193,7 @@ def nice_set(self, value): ... def ionice_get(self): ... def ionice_set(self, ioclass, value) -> None: ... - def io_counters(self): ... + def io_counters(self) -> pio: ... def status(self): ... def cpu_affinity_get(self): ... def cpu_affinity_set(self, value): ... diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/types-psutil-5.9.5.12/setup.py new/types-psutil-5.9.5.15/setup.py --- old/types-psutil-5.9.5.12/setup.py 2023-04-20 05:15:56.000000000 +0200 +++ new/types-psutil-5.9.5.15/setup.py 2023-06-12 14:28:49.000000000 +0200 @@ -16,11 +16,11 @@ types and metadata should be contributed there. See https://github.com/python/typeshed/blob/main/README.md for more details. -This package was generated from typeshed commit `143b9612f1217e72c60df732b8b66a64d8ecc304`. +This package was generated from typeshed commit `fce4fe7b881be596fc8315c5ed6bdea0e45912c5`. '''.lstrip() setup(name=name, - version="5.9.5.12", + version="5.9.5.15", description=description, long_description=long_description, long_description_content_type="text/markdown", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/types-psutil-5.9.5.12/types_psutil.egg-info/PKG-INFO new/types-psutil-5.9.5.15/types_psutil.egg-info/PKG-INFO --- old/types-psutil-5.9.5.12/types_psutil.egg-info/PKG-INFO 2023-04-20 05:15:57.000000000 +0200 +++ new/types-psutil-5.9.5.15/types_psutil.egg-info/PKG-INFO 2023-06-12 14:28:51.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: types-psutil -Version: 5.9.5.12 +Version: 5.9.5.15 Summary: Typing stubs for psutil Home-page: https://github.com/python/typeshed License: Apache-2.0 license @@ -26,4 +26,4 @@ types and metadata should be contributed there. See https://github.com/python/typeshed/blob/main/README.md for more details. -This package was generated from typeshed commit `143b9612f1217e72c60df732b8b66a64d8ecc304`. +This package was generated from typeshed commit `fce4fe7b881be596fc8315c5ed6bdea0e45912c5`. ++++++ types-setuptools-67.7.0.1.tar.gz -> types-setuptools-68.0.0.2.tar.gz ++++++ ++++ 2125 lines of diff (skipped) ++++++ types-typed-ast-1.5.8.6.tar.gz -> types-typed-ast-1.5.8.7.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/types-typed-ast-1.5.8.6/CHANGELOG.md new/types-typed-ast-1.5.8.7/CHANGELOG.md --- old/types-typed-ast-1.5.8.6/CHANGELOG.md 2023-03-28 14:33:13.000000000 +0200 +++ new/types-typed-ast-1.5.8.7/CHANGELOG.md 2023-07-05 20:21:28.000000000 +0200 @@ -1,3 +1,7 @@ +## 1.5.8.7 (2023-07-05) + +Mark `types-typed-ast` as no longer updated (#10410) + ## 1.5.8.6 (2023-03-28) Add defaults for third-party stubs Q-T (#9959) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/types-typed-ast-1.5.8.6/PKG-INFO new/types-typed-ast-1.5.8.7/PKG-INFO --- old/types-typed-ast-1.5.8.6/PKG-INFO 2023-03-28 14:33:13.861138300 +0200 +++ new/types-typed-ast-1.5.8.7/PKG-INFO 2023-07-05 20:21:31.136128700 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: types-typed-ast -Version: 1.5.8.6 +Version: 1.5.8.7 Summary: Typing stubs for typed-ast Home-page: https://github.com/python/typeshed License: Apache-2.0 license @@ -25,5 +25,10 @@ https://github.com/python/typeshed/tree/main/stubs/typed-ast. All fixes for types and metadata should be contributed there. +*Note:* `types-typed-ast` is unmaintained and won't be updated. + + See https://github.com/python/typeshed/blob/main/README.md for more details. -This package was generated from typeshed commit `6b485a882325829dcbb6dd1d59c5e54b0bcfece1`. +This package was generated from typeshed commit `597810e46e823732a87dd7c0c6632e2c63a40016` and was tested +with mypy 1.4.1, pyright 1.1.316, and +pytype 2023.6.16. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/types-typed-ast-1.5.8.6/setup.py new/types-typed-ast-1.5.8.7/setup.py --- old/types-typed-ast-1.5.8.6/setup.py 2023-03-28 14:33:13.000000000 +0200 +++ new/types-typed-ast-1.5.8.7/setup.py 2023-07-05 20:21:28.000000000 +0200 @@ -15,12 +15,17 @@ https://github.com/python/typeshed/tree/main/stubs/typed-ast. All fixes for types and metadata should be contributed there. +*Note:* `types-typed-ast` is unmaintained and won't be updated. + + See https://github.com/python/typeshed/blob/main/README.md for more details. -This package was generated from typeshed commit `6b485a882325829dcbb6dd1d59c5e54b0bcfece1`. +This package was generated from typeshed commit `597810e46e823732a87dd7c0c6632e2c63a40016` and was tested +with mypy 1.4.1, pyright 1.1.316, and +pytype 2023.6.16. '''.lstrip() setup(name=name, - version="1.5.8.6", + version="1.5.8.7", description=description, long_description=long_description, long_description_content_type="text/markdown", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/types-typed-ast-1.5.8.6/typed_ast-stubs/METADATA.toml new/types-typed-ast-1.5.8.7/typed_ast-stubs/METADATA.toml --- old/types-typed-ast-1.5.8.6/typed_ast-stubs/METADATA.toml 2023-03-28 14:33:13.000000000 +0200 +++ new/types-typed-ast-1.5.8.7/typed_ast-stubs/METADATA.toml 2023-07-05 20:21:28.000000000 +0200 @@ -1 +1,2 @@ version = "1.5.*" +no_longer_updated = true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/types-typed-ast-1.5.8.6/types_typed_ast.egg-info/PKG-INFO new/types-typed-ast-1.5.8.7/types_typed_ast.egg-info/PKG-INFO --- old/types-typed-ast-1.5.8.6/types_typed_ast.egg-info/PKG-INFO 2023-03-28 14:33:13.000000000 +0200 +++ new/types-typed-ast-1.5.8.7/types_typed_ast.egg-info/PKG-INFO 2023-07-05 20:21:31.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: types-typed-ast -Version: 1.5.8.6 +Version: 1.5.8.7 Summary: Typing stubs for typed-ast Home-page: https://github.com/python/typeshed License: Apache-2.0 license @@ -25,5 +25,10 @@ https://github.com/python/typeshed/tree/main/stubs/typed-ast. All fixes for types and metadata should be contributed there. +*Note:* `types-typed-ast` is unmaintained and won't be updated. + + See https://github.com/python/typeshed/blob/main/README.md for more details. -This package was generated from typeshed commit `6b485a882325829dcbb6dd1d59c5e54b0bcfece1`. +This package was generated from typeshed commit `597810e46e823732a87dd7c0c6632e2c63a40016` and was tested +with mypy 1.4.1, pyright 1.1.316, and +pytype 2023.6.16.