Skip to content

Commit 306c30a

Browse files
authored
psycopg2: Fix missing Protocol base class in file protocols (#10943)
This is an error I introduced in #10630 because I didn't know protocols need to be explicitly inherited from in other protocol subclasses. The added test shows the change. Basically these protocols were unusable.
1 parent 5643362 commit 306c30a

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

stubs/psycopg2/@tests/test_cases/check_extensions.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from __future__ import annotations
22

3+
import io
34
from typing_extensions import assert_type
45

56
import psycopg2.extensions
@@ -54,3 +55,8 @@ class MyCursor(psycopg2.extensions.cursor):
5455
assert_type(dconn.cursor("test-dcur", None), psycopg2.extras.DictCursor)
5556
assert_type(dconn.cursor("test-dcur", cursor_factory=None), psycopg2.extras.DictCursor)
5657
assert_type(dconn.cursor("test-dcur", cursor_factory=MyCursor), MyCursor)
58+
59+
# file protocols
60+
# --------------
61+
cur = conn.cursor()
62+
cur.copy_from(io.StringIO(), "table")

stubs/psycopg2/psycopg2/_psycopg.pyi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,8 @@ threadsafety: int
8383

8484
__libpq_version__: int
8585

86-
class _SupportsReadAndReadline(SupportsRead[str], SupportsReadline[str]): ...
87-
class _SupportsReadAndReadlineAndWrite(_SupportsReadAndReadline, SupportsWrite[str]): ...
86+
class _SupportsReadAndReadline(SupportsRead[str], SupportsReadline[str], Protocol): ...
87+
class _SupportsReadAndReadlineAndWrite(_SupportsReadAndReadline, SupportsWrite[str], Protocol): ...
8888

8989
class cursor:
9090
arraysize: int

0 commit comments

Comments
 (0)