Skip to content

Commit 6630e35

Browse files
committed
Add Python 3.15 sqlite3 updates
1 parent 206f5ca commit 6630e35

4 files changed

Lines changed: 33 additions & 17 deletions

File tree

stdlib/@tests/stubtest_allowlists/py315.txt

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ _pyrepl.types
3636
_pyrepl.utils
3737
_pyrepl.windows_console
3838
_pyrepl.windows_eventqueue
39-
_sqlite3.SQLITE_KEYWORDS
4039
_ssl.HAS_PSK_TLS13
4140
_ssl._SSLContext.get_groups
4241
_ssl._SSLContext.set_ciphersuites
@@ -273,13 +272,6 @@ site.addsitedir
273272
site.addsitepackages
274273
site.addusersitepackages
275274
site.process_startup_files
276-
sqlite3.Connection.create_aggregate
277-
sqlite3.Connection.create_function
278-
sqlite3.Connection.set_authorizer
279-
sqlite3.Connection.set_progress_handler
280-
sqlite3.Connection.set_trace_callback
281-
sqlite3.SQLITE_KEYWORDS
282-
sqlite3.dbapi2.SQLITE_KEYWORDS
283275
sre_compile
284276
sre_constants
285277
sre_parse

stdlib/_sqlite3.pyi

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@ SQLITE_SAVEPOINT: Final = 32
6969
SQLITE_SELECT: Final = 21
7070
SQLITE_TRANSACTION: Final = 22
7171
SQLITE_UPDATE: Final = 23
72+
if sys.version_info >= (3, 15):
73+
SQLITE_KEYWORDS: tuple[str, ...]
7274
adapters: dict[tuple[type[Any], type[Any]], _Adapter[Any]]
7375
converters: dict[str, _Converter]
7476
sqlite_version: str

stdlib/sqlite3/__init__.pyi

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@ from typing_extensions import Self, disjoint_base
6868
if sys.version_info < (3, 14):
6969
from sqlite3.dbapi2 import version_info as version_info
7070

71+
if sys.version_info >= (3, 15):
72+
from sqlite3.dbapi2 import SQLITE_KEYWORDS as SQLITE_KEYWORDS
73+
7174
if sys.version_info >= (3, 12):
7275
from sqlite3.dbapi2 import (
7376
LEGACY_TRANSACTION_CONTROL as LEGACY_TRANSACTION_CONTROL,
@@ -331,7 +334,10 @@ class Connection:
331334
def blobopen(self, table: str, column: str, row: int, /, *, readonly: bool = False, name: str = "main") -> Blob: ...
332335

333336
def commit(self) -> None: ...
334-
def create_aggregate(self, name: str, n_arg: int, aggregate_class: Callable[[], _AggregateProtocol]) -> None: ...
337+
if sys.version_info >= (3, 15):
338+
def create_aggregate(self, name: str, n_arg: int, aggregate_class: Callable[[], _AggregateProtocol], /) -> None: ...
339+
else:
340+
def create_aggregate(self, /, name: str, n_arg: int, aggregate_class: Callable[[], _AggregateProtocol]) -> None: ...
335341
if sys.version_info >= (3, 11):
336342
# num_params determines how many params will be passed to the aggregate class. We provide an overload
337343
# for the case where num_params = 1, which is expected to be the common case.
@@ -350,9 +356,15 @@ class Connection:
350356
) -> None: ...
351357

352358
def create_collation(self, name: str, callback: Callable[[str, str], SupportsIndex] | None, /) -> None: ...
353-
def create_function(
354-
self, name: str, narg: int, func: Callable[..., _SqliteData] | None, *, deterministic: bool = False
355-
) -> None: ...
359+
if sys.version_info >= (3, 15):
360+
def create_function(
361+
self, name: str, narg: int, func: Callable[..., _SqliteData] | None, /, *, deterministic: bool = False
362+
) -> None: ...
363+
else:
364+
def create_function(
365+
self, /, name: str, narg: int, func: Callable[..., _SqliteData] | None, *, deterministic: bool = False
366+
) -> None: ...
367+
356368
@overload
357369
def cursor(self, factory: None = None) -> Cursor: ...
358370
@overload
@@ -367,11 +379,18 @@ class Connection:
367379
def iterdump(self) -> Generator[str]: ...
368380

369381
def rollback(self) -> None: ...
370-
def set_authorizer(
371-
self, authorizer_callback: Callable[[int, str | None, str | None, str | None, str | None], int] | None
372-
) -> None: ...
373-
def set_progress_handler(self, progress_handler: Callable[[], int | None] | None, n: int) -> None: ...
374-
def set_trace_callback(self, trace_callback: Callable[[str], object] | None) -> None: ...
382+
if sys.version_info >= (3, 15):
383+
def set_authorizer(
384+
self, authorizer_callback: Callable[[int, str | None, str | None, str | None, str | None], int] | None, /
385+
) -> None: ...
386+
def set_progress_handler(self, progress_handler: Callable[[], int | None] | None, /, n: int) -> None: ...
387+
def set_trace_callback(self, trace_callback: Callable[[str], object] | None, /) -> None: ...
388+
else:
389+
def set_authorizer(
390+
self, /, authorizer_callback: Callable[[int, str | None, str | None, str | None, str | None], int] | None
391+
) -> None: ...
392+
def set_progress_handler(self, /, progress_handler: Callable[[], int | None] | None, n: int) -> None: ...
393+
def set_trace_callback(self, /, trace_callback: Callable[[str], object] | None) -> None: ...
375394
# enable_load_extension and load_extension is not available on python distributions compiled
376395
# without sqlite3 loadable extension support. see footnotes https://docs.python.org/3/library/sqlite3.html#f1
377396
def enable_load_extension(self, enable: bool, /) -> None: ...

stdlib/sqlite3/dbapi2.pyi

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@ if sys.version_info >= (3, 12):
9090
SQLITE_DBCONFIG_WRITABLE_SCHEMA as SQLITE_DBCONFIG_WRITABLE_SCHEMA,
9191
)
9292

93+
if sys.version_info >= (3, 15):
94+
from _sqlite3 import SQLITE_KEYWORDS as SQLITE_KEYWORDS
95+
9396
if sys.version_info >= (3, 11):
9497
from _sqlite3 import (
9598
SQLITE_ABORT as SQLITE_ABORT,

0 commit comments

Comments
 (0)