From: Daniele Varrazzo Date: Wed, 28 Sep 2022 00:28:41 +0000 (+0100) Subject: chore: upgrade mypy to 0.981 X-Git-Tag: 3.1.3~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f7740dacd0c181f57b3962a835b6dcf45f523885;p=thirdparty%2Fpsycopg.git chore: upgrade mypy to 0.981 Most changes needed by https://github.com/python/typeshed/pull/8446. --- diff --git a/psycopg/psycopg/pq/_pq_ctypes.py b/psycopg/psycopg/pq/_pq_ctypes.py index 4f9d00fb2..9ca1d1291 100644 --- a/psycopg/psycopg/pq/_pq_ctypes.py +++ b/psycopg/psycopg/pq/_pq_ctypes.py @@ -758,7 +758,7 @@ def generate_stub() -> None: "LP_c_ulong", "LP_FILE", ): - return f"pointer[{t.__name__[3:]}]" + return f"_Pointer[{t.__name__[3:]}]" else: assert False, f"can't deal with {t} in {fname}" diff --git a/psycopg/psycopg/pq/_pq_ctypes.pyi b/psycopg/psycopg/pq/_pq_ctypes.pyi index 9f7e7cdac..5d2ee3f8f 100644 --- a/psycopg/psycopg/pq/_pq_ctypes.pyi +++ b/psycopg/psycopg/pq/_pq_ctypes.pyi @@ -5,12 +5,12 @@ types stub for ctypes functions # Copyright (C) 2020 The Psycopg Team from typing import Any, Callable, Optional, Sequence -from ctypes import Array, pointer +from ctypes import Array, pointer, _Pointer from ctypes import c_char, c_char_p, c_int, c_ubyte, c_uint, c_ulong class FILE: ... -def fdopen(fd: int, mode: bytes) -> pointer[FILE]: ... # type: ignore[type-var] +def fdopen(fd: int, mode: bytes) -> _Pointer[FILE]: ... # type: ignore[type-var] Oid = c_uint @@ -62,14 +62,14 @@ def PQprepare( ) -> PGresult_struct: ... def PQgetvalue( arg1: Optional[PGresult_struct], arg2: int, arg3: int -) -> pointer[c_char]: ... +) -> _Pointer[c_char]: ... def PQcmdTuples(arg1: Optional[PGresult_struct]) -> bytes: ... def PQescapeStringConn( arg1: Optional[PGconn_struct], arg2: c_char_p, arg3: bytes, arg4: int, - arg5: pointer[c_int], + arg5: _Pointer[c_int], ) -> int: ... def PQescapeString(arg1: c_char_p, arg2: bytes, arg3: int) -> int: ... def PQsendPrepare( @@ -98,10 +98,10 @@ def PQsetNoticeReceiver( # a subtype of "ctypes._CData" def PQnotifies( arg1: Optional[PGconn_struct], -) -> Optional[pointer[PGnotify_struct]]: ... # type: ignore +) -> Optional[_Pointer[PGnotify_struct]]: ... # type: ignore def PQputCopyEnd(arg1: Optional[PGconn_struct], arg2: Optional[bytes]) -> int: ... -# Arg 2 is a pointer, reported as _CArgObject by mypy +# Arg 2 is a _Pointer, reported as _CArgObject by mypy def PQgetCopyData(arg1: Optional[PGconn_struct], arg2: Any, arg3: int) -> int: ... def PQsetResultAttrs( arg1: Optional[PGresult_struct], @@ -110,7 +110,7 @@ def PQsetResultAttrs( ) -> int: ... def PQtrace( arg1: Optional[PGconn_struct], - arg2: pointer[FILE], # type: ignore[type-var] + arg2: _Pointer[FILE], # type: ignore[type-var] ) -> None: ... def PQencryptPasswordConn( arg1: Optional[PGconn_struct], @@ -133,7 +133,7 @@ def PQconnectPoll(arg1: Optional[PGconn_struct]) -> int: ... def PQconndefaults() -> Sequence[PQconninfoOption_struct]: ... def PQconninfoFree(arg1: Sequence[PQconninfoOption_struct]) -> None: ... def PQconninfo(arg1: Optional[PGconn_struct]) -> Sequence[PQconninfoOption_struct]: ... -def PQconninfoParse(arg1: bytes, arg2: pointer[c_char_p]) -> Sequence[PQconninfoOption_struct]: ... +def PQconninfoParse(arg1: bytes, arg2: _Pointer[c_char_p]) -> Sequence[PQconninfoOption_struct]: ... def PQfinish(arg1: Optional[PGconn_struct]) -> None: ... def PQreset(arg1: Optional[PGconn_struct]) -> None: ... def PQresetStart(arg1: Optional[PGconn_struct]) -> int: ... @@ -158,7 +158,7 @@ def PQconnectionNeedsPassword(arg1: Optional[PGconn_struct]) -> int: ... def PQconnectionUsedPassword(arg1: Optional[PGconn_struct]) -> int: ... def PQsslInUse(arg1: Optional[PGconn_struct]) -> int: ... def PQexec(arg1: Optional[PGconn_struct], arg2: bytes) -> PGresult_struct: ... -def PQexecParams(arg1: Optional[PGconn_struct], arg2: bytes, arg3: int, arg4: pointer[c_uint], arg5: pointer[c_char_p], arg6: pointer[c_int], arg7: pointer[c_int], arg8: int) -> PGresult_struct: ... +def PQexecParams(arg1: Optional[PGconn_struct], arg2: bytes, arg3: int, arg4: _Pointer[c_uint], arg5: _Pointer[c_char_p], arg6: _Pointer[c_int], arg7: _Pointer[c_int], arg8: int) -> PGresult_struct: ... def PQdescribePrepared(arg1: Optional[PGconn_struct], arg2: bytes) -> PGresult_struct: ... def PQdescribePortal(arg1: Optional[PGconn_struct], arg2: bytes) -> PGresult_struct: ... def PQresultStatus(arg1: Optional[PGresult_struct]) -> int: ... @@ -182,11 +182,11 @@ def PQcmdStatus(arg1: Optional[PGresult_struct]) -> Optional[bytes]: ... def PQoidValue(arg1: Optional[PGresult_struct]) -> int: ... def PQescapeLiteral(arg1: Optional[PGconn_struct], arg2: bytes, arg3: int) -> Optional[bytes]: ... def PQescapeIdentifier(arg1: Optional[PGconn_struct], arg2: bytes, arg3: int) -> Optional[bytes]: ... -def PQescapeByteaConn(arg1: Optional[PGconn_struct], arg2: bytes, arg3: int, arg4: pointer[c_ulong]) -> pointer[c_ubyte]: ... -def PQescapeBytea(arg1: bytes, arg2: int, arg3: pointer[c_ulong]) -> pointer[c_ubyte]: ... -def PQunescapeBytea(arg1: bytes, arg2: pointer[c_ulong]) -> pointer[c_ubyte]: ... +def PQescapeByteaConn(arg1: Optional[PGconn_struct], arg2: bytes, arg3: int, arg4: _Pointer[c_ulong]) -> _Pointer[c_ubyte]: ... +def PQescapeBytea(arg1: bytes, arg2: int, arg3: _Pointer[c_ulong]) -> _Pointer[c_ubyte]: ... +def PQunescapeBytea(arg1: bytes, arg2: _Pointer[c_ulong]) -> _Pointer[c_ubyte]: ... def PQsendQuery(arg1: Optional[PGconn_struct], arg2: bytes) -> int: ... -def PQsendQueryParams(arg1: Optional[PGconn_struct], arg2: bytes, arg3: int, arg4: pointer[c_uint], arg5: pointer[c_char_p], arg6: pointer[c_int], arg7: pointer[c_int], arg8: int) -> int: ... +def PQsendQueryParams(arg1: Optional[PGconn_struct], arg2: bytes, arg3: int, arg4: _Pointer[c_uint], arg5: _Pointer[c_char_p], arg6: _Pointer[c_int], arg7: _Pointer[c_int], arg8: int) -> int: ... def PQsendDescribePrepared(arg1: Optional[PGconn_struct], arg2: bytes) -> int: ... def PQsendDescribePortal(arg1: Optional[PGconn_struct], arg2: bytes) -> int: ... def PQgetResult(arg1: Optional[PGconn_struct]) -> PGresult_struct: ... diff --git a/psycopg/setup.py b/psycopg/setup.py index bb2299595..fb041efd1 100644 --- a/psycopg/setup.py +++ b/psycopg/setup.py @@ -37,7 +37,7 @@ extras_require = { ], # Requirements to run the test suite "test": [ - "mypy >= 0.940", + "mypy >= 0.981", "pproxy >= 2.7", "pytest >= 6.2.5", "pytest-asyncio >= 0.17", @@ -49,7 +49,7 @@ extras_require = { "black >= 22.3.0", "dnspython >= 2.1", "flake8 >= 4.0", - "mypy >= 0.940", + "mypy >= 0.981", "types-setuptools >= 57.4", "wheel >= 0.37", ], diff --git a/tests/constraints.txt b/tests/constraints.txt index 7acc4c10c..ef03ba145 100644 --- a/tests/constraints.txt +++ b/tests/constraints.txt @@ -8,7 +8,7 @@ backports.zoneinfo == 0.2.0 typing-extensions == 4.1.0 # From the 'test' extra -mypy == 0.940 +mypy == 0.981 pproxy == 2.7.0 pytest == 6.2.5 pytest-asyncio == 0.17.0 @@ -19,7 +19,7 @@ pytest-randomly == 3.10.0 black == 22.3.0 dnspython == 2.1.0 flake8 == 4.0.0 -mypy == 0.940 +mypy == 0.981 types-setuptools == 57.4.0 wheel == 0.37 diff --git a/tests/test_adapt.py b/tests/test_adapt.py index ceb6f828a..2190a846d 100644 --- a/tests/test_adapt.py +++ b/tests/test_adapt.py @@ -407,10 +407,7 @@ def test_optimised_adapters(): # All the registered adapters reg_adapters = set() - adapters = ( - list(postgres.adapters._dumpers.values()) - + postgres.adapters._loaders # type: ignore[operator] - ) + adapters = list(postgres.adapters._dumpers.values()) + postgres.adapters._loaders assert len(adapters) == 5 for m in adapters: reg_adapters |= set(m.values()) diff --git a/tests/test_psycopg_dbapi20.py b/tests/test_psycopg_dbapi20.py index 28c79bd3b..82a5d730c 100644 --- a/tests/test_psycopg_dbapi20.py +++ b/tests/test_psycopg_dbapi20.py @@ -40,8 +40,8 @@ class PsycopgTPCTests(dbapi20_tpc.TwoPhaseCommitTests): # Shut up warnings -PsycopgTests.failUnless = PsycopgTests.assertTrue # type: ignore[assignment] -PsycopgTPCTests.assertEquals = PsycopgTPCTests.assertEqual # type: ignore[assignment] +PsycopgTests.failUnless = PsycopgTests.assertTrue +PsycopgTPCTests.assertEquals = PsycopgTPCTests.assertEqual @pytest.mark.parametrize(