From f37709f9c3155debccfa03eba6207131694c7823 Mon Sep 17 00:00:00 2001 From: Jelle Zijlstra Date: Mon, 9 Apr 2018 12:32:59 -0700 Subject: [PATCH] Merge stubs for sqlite3 (#2026) As promised in #2014. There are virtually no real changes between Python 2 and 3 in this module, but the stub had accumulated some meaningless differences. I also fixed a few incorrect types. --- stdlib/2/sqlite3/dbapi2.pyi | 259 ----------------------- stdlib/{2 => 2and3}/sqlite3/__init__.pyi | 0 stdlib/{3 => 2and3}/sqlite3/dbapi2.pyi | 59 +++--- stdlib/3/sqlite3/__init__.pyi | 1 - 4 files changed, 35 insertions(+), 284 deletions(-) delete mode 100644 stdlib/2/sqlite3/dbapi2.pyi rename stdlib/{2 => 2and3}/sqlite3/__init__.pyi (100%) rename stdlib/{3 => 2and3}/sqlite3/dbapi2.pyi (86%) delete mode 100644 stdlib/3/sqlite3/__init__.pyi diff --git a/stdlib/2/sqlite3/dbapi2.pyi b/stdlib/2/sqlite3/dbapi2.pyi deleted file mode 100644 index 1b5df3143..000000000 --- a/stdlib/2/sqlite3/dbapi2.pyi +++ /dev/null @@ -1,259 +0,0 @@ -# Filip Hron -# based heavily on Andrey Vlasovskikh's python-skeletons https://github.com/JetBrains/python-skeletons/blob/master/sqlite3.py - -import sys -from typing import Any, Callable, Iterator, List, Optional, Union -from datetime import time, datetime -from collections import Iterable - -paramstyle = ... # type: str -threadsafety = ... # type: int -apilevel = ... # type: str -Date = ... # type: datetime -Time = ... # type: time -Timestamp = ... # type: datetime - -def DateFromTicks(ticks): ... -def TimeFromTicks(ticks): ... -def TimestampFromTicks(ticks): ... - -version_info = ... # type: Any -sqlite_version_info = ... # type: Any -Binary = ... # type: Any - -def register_adapters_and_converters(): ... - -# The remaining definitions are imported from _sqlite3. - -PARSE_COLNAMES = ... # type: int -PARSE_DECLTYPES = ... # type: int -SQLITE_ALTER_TABLE = ... # type: int -SQLITE_ANALYZE = ... # type: int -SQLITE_ATTACH = ... # type: int -SQLITE_CREATE_INDEX = ... # type: int -SQLITE_CREATE_TABLE = ... # type: int -SQLITE_CREATE_TEMP_INDEX = ... # type: int -SQLITE_CREATE_TEMP_TABLE = ... # type: int -SQLITE_CREATE_TEMP_TRIGGER = ... # type: int -SQLITE_CREATE_TEMP_VIEW = ... # type: int -SQLITE_CREATE_TRIGGER = ... # type: int -SQLITE_CREATE_VIEW = ... # type: int -SQLITE_DELETE = ... # type: int -SQLITE_DENY = ... # type: int -SQLITE_DETACH = ... # type: int -SQLITE_DROP_INDEX = ... # type: int -SQLITE_DROP_TABLE = ... # type: int -SQLITE_DROP_TEMP_INDEX = ... # type: int -SQLITE_DROP_TEMP_TABLE = ... # type: int -SQLITE_DROP_TEMP_TRIGGER = ... # type: int -SQLITE_DROP_TEMP_VIEW = ... # type: int -SQLITE_DROP_TRIGGER = ... # type: int -SQLITE_DROP_VIEW = ... # type: int -SQLITE_IGNORE = ... # type: int -SQLITE_INSERT = ... # type: int -SQLITE_OK = ... # type: int -SQLITE_PRAGMA = ... # type: int -SQLITE_READ = ... # type: int -SQLITE_REINDEX = ... # type: int -SQLITE_SELECT = ... # type: int -SQLITE_TRANSACTION = ... # type: int -SQLITE_UPDATE = ... # type: int -adapters = ... # type: Any -converters = ... # type: Any -sqlite_version = ... # type: str -version = ... # type: str - -# TODO: adapt needs to get probed -def adapt(obj, protocol, alternate): ... -def complete_statement(sql: str) -> bool: ... -def connect(database: Union[bytes, unicode], - timeout: float = ..., - detect_types: int = ..., - isolation_level: Union[str, None] = ..., - check_same_thread: bool = ..., - factory: Union[Connection, None] = ..., - cached_statements: int = ...) -> Connection: ... -def enable_callback_tracebacks(flag: bool) -> None: ... -def enable_shared_cache(do_enable: int) -> None: ... -def register_adapter(type: type, callable: Any) -> None: ... -# TODO: sqlite3.register_converter.__doc__ specifies callable as unknown -def register_converter(typename: str, callable: bytes) -> None: ... - -class Cache(object): - def __init__(self, *args, **kwargs) -> None: ... - def display(self, *args, **kwargs) -> None: ... - def get(self, *args, **kwargs) -> None: ... - -class Connection(object): - DataError = ... # type: Any - DatabaseError = ... # type: Any - Error = ... # type: Any - IntegrityError = ... # type: Any - InterfaceError = ... # type: Any - InternalError = ... # type: Any - NotSupportedError = ... # type: Any - OperationalError = ... # type: Any - ProgrammingError = ... # type: Any - Warning = ... # type: Any - in_transaction = ... # type: Any - isolation_level = ... # type: Any - row_factory = ... # type: Any - text_factory = ... # type: Any - total_changes = ... # type: Any - def __init__(self, *args, **kwargs): ... - def close(self) -> None: ... - def commit(self) -> None: ... - def create_aggregate(self, name: str, num_params: int, aggregate_class: type) -> None: ... - def create_collation(self, name: str, callable: Any) -> None: ... - def create_function(self, name: str, num_params: int, func: Any) -> None: ... - def cursor(self, cursorClass=...) -> Cursor: ... - def execute(self, sql: str, parameters: Iterable = ...) -> Cursor: ... - # TODO: please check in executemany() if seq_of_parameters type is possible like this - def executemany(self, sql: str, seq_of_parameters: Iterable[Iterable]) -> Cursor: ... - def executescript(self, sql_script: Union[bytes, unicode]) -> Cursor: ... - def interrupt(self, *args, **kwargs) -> None: ... - def iterdump(self, *args, **kwargs) -> None: ... - def rollback(self, *args, **kwargs) -> None: ... - # TODO: set_authorizer(authorzer_callback) - # see https://docs.python.org/2/library/sqlite3.html#sqlite3.Connection.set_authorizer - # returns [SQLITE_OK, SQLITE_DENY, SQLITE_IGNORE] so perhaps int - def set_authorizer(self, *args, **kwargs) -> None: ... - # set_progress_handler(handler, n) -> see https://docs.python.org/2/library/sqlite3.html#sqlite3.Connection.set_progress_handler - def set_progress_handler(self, *args, **kwargs) -> None: ... - def set_trace_callback(self, *args, **kwargs): ... - if sys.version_info >= (3, 7): - def backup(self, target: Connection, *, pages: int = ..., - progress: Optional[Callable[[int, int, int], object]] = ..., name: str = ..., - sleep: float = ...) -> None: ... - def __call__(self, *args, **kwargs): ... - def __enter__(self, *args, **kwargs): ... - def __exit__(self, *args, **kwargs): ... - -class Cursor(Iterator[Any]): - arraysize = ... # type: Any - connection = ... # type: Any - description = ... # type: Any - lastrowid = ... # type: Any - row_factory = ... # type: Any - rowcount = ... # type: Any - # TODO: Cursor class accepts exactly 1 argument - # required type is sqlite3.Connection (which is imported as _Connection) - # however, the name of the __init__ variable is unknown - def __init__(self, *args, **kwargs): ... - def close(self, *args, **kwargs): ... - def execute(self, sql: str, parameters: Iterable = ...) -> Cursor: ... - def executemany(self, sql: str, seq_of_parameters: Iterable[Iterable]): ... - def executescript(self, sql_script: Union[bytes, unicode]) -> Cursor: ... - def fetchall(self) -> List[Any]: ... - def fetchmany(self, size: Optional[int] = ...) -> List[Any]: ... - def fetchone(self) -> Any: ... - def setinputsizes(self, *args, **kwargs): ... - def setoutputsize(self, *args, **kwargs): ... - def __iter__(self) -> Cursor: ... - def __next__(self) -> Any: ... - - -class DataError(DatabaseError): ... - -class DatabaseError(Error): ... - -class Error(Exception): ... - -class IntegrityError(DatabaseError): ... - -class InterfaceError(Error): ... - -class InternalError(DatabaseError): ... - -class NotSupportedError(DatabaseError): ... - -class OperationalError(DatabaseError): ... - -class OptimizedUnicode(object): - maketrans = ... # type: Any - def __init__(self, *args, **kwargs): ... - def capitalize(self, *args, **kwargs): ... - def casefold(self, *args, **kwargs): ... - def center(self, *args, **kwargs): ... - def count(self, *args, **kwargs): ... - def encode(self, *args, **kwargs): ... - def endswith(self, *args, **kwargs): ... - def expandtabs(self, *args, **kwargs): ... - def find(self, *args, **kwargs): ... - def format(self, *args, **kwargs): ... - def format_map(self, *args, **kwargs): ... - def index(self, *args, **kwargs): ... - def isalnum(self, *args, **kwargs): ... - def isalpha(self, *args, **kwargs): ... - def isdecimal(self, *args, **kwargs): ... - def isdigit(self, *args, **kwargs): ... - def isidentifier(self, *args, **kwargs): ... - def islower(self, *args, **kwargs): ... - def isnumeric(self, *args, **kwargs): ... - def isprintable(self, *args, **kwargs): ... - def isspace(self, *args, **kwargs): ... - def istitle(self, *args, **kwargs): ... - def isupper(self, *args, **kwargs): ... - def join(self, *args, **kwargs): ... - def ljust(self, *args, **kwargs): ... - def lower(self, *args, **kwargs): ... - def lstrip(self, *args, **kwargs): ... - def partition(self, *args, **kwargs): ... - def replace(self, *args, **kwargs): ... - def rfind(self, *args, **kwargs): ... - def rindex(self, *args, **kwargs): ... - def rjust(self, *args, **kwargs): ... - def rpartition(self, *args, **kwargs): ... - def rsplit(self, *args, **kwargs): ... - def rstrip(self, *args, **kwargs): ... - def split(self, *args, **kwargs): ... - def splitlines(self, *args, **kwargs): ... - def startswith(self, *args, **kwargs): ... - def strip(self, *args, **kwargs): ... - def swapcase(self, *args, **kwargs): ... - def title(self, *args, **kwargs): ... - def translate(self, *args, **kwargs): ... - def upper(self, *args, **kwargs): ... - def zfill(self, *args, **kwargs): ... - def __add__(self, other): ... - def __contains__(self, *args, **kwargs): ... - def __eq__(self, other): ... - def __format__(self, *args, **kwargs): ... - def __ge__(self, other): ... - def __getitem__(self, index): ... - def __getnewargs__(self, *args, **kwargs): ... - def __gt__(self, other): ... - def __hash__(self): ... - def __iter__(self): ... - def __le__(self, other): ... - def __len__(self, *args, **kwargs): ... - def __lt__(self, other): ... - def __mod__(self, other): ... - def __mul__(self, other): ... - def __ne__(self, other): ... - def __rmod__(self, other): ... - def __rmul__(self, other): ... - -class PrepareProtocol(object): - def __init__(self, *args, **kwargs): ... - -class ProgrammingError(DatabaseError): ... - -class Row(object): - def __init__(self, *args, **kwargs): ... - def keys(self, *args, **kwargs): ... - def __eq__(self, other): ... - def __ge__(self, other): ... - def __getitem__(self, index): ... - def __gt__(self, other): ... - def __hash__(self): ... - def __iter__(self): ... - def __le__(self, other): ... - def __len__(self, *args, **kwargs): ... - def __lt__(self, other): ... - def __ne__(self, other): ... - -class Statement(object): - def __init__(self, *args, **kwargs): ... - -class Warning(Exception): ... diff --git a/stdlib/2/sqlite3/__init__.pyi b/stdlib/2and3/sqlite3/__init__.pyi similarity index 100% rename from stdlib/2/sqlite3/__init__.pyi rename to stdlib/2and3/sqlite3/__init__.pyi diff --git a/stdlib/3/sqlite3/dbapi2.pyi b/stdlib/2and3/sqlite3/dbapi2.pyi similarity index 86% rename from stdlib/3/sqlite3/dbapi2.pyi rename to stdlib/2and3/sqlite3/dbapi2.pyi index 026b6b5c2..fd223a4e0 100644 --- a/stdlib/3/sqlite3/dbapi2.pyi +++ b/stdlib/2and3/sqlite3/dbapi2.pyi @@ -2,26 +2,25 @@ # based heavily on Andrey Vlasovskikh's python-skeletons https://github.com/JetBrains/python-skeletons/blob/master/sqlite3.py import sys -from typing import Any, Union, List, Iterator, Optional, TypeVar, Callable -from datetime import time, datetime -from collections import Iterable +from typing import Any, Callable, Iterable, Iterator, List, Optional, Text, Tuple, Type, TypeVar, Union +from datetime import date, time, datetime _T = TypeVar('_T') -paramstyle = ... # type: str -threadsafety = ... # type: int -apilevel = ... # type: str -Date = ... # type: datetime -Time = ... # type: time -Timestamp = ... # type: datetime +paramstyle: str +threadsafety: int +apilevel: str +Date = date +Time = time +Timestamp = datetime def DateFromTicks(ticks): ... def TimeFromTicks(ticks): ... def TimestampFromTicks(ticks): ... -version_info = ... # type: Any -sqlite_version_info = ... # type: Any -Binary = ... # type: Any +version_info: str +sqlite_version_info: Tuple[int, int, int] +Binary: Type[Any] def register_adapters_and_converters(): ... @@ -69,21 +68,33 @@ version = ... # type: str def adapt(obj, protocol, alternate): ... def complete_statement(sql: str) -> bool: ... if sys.version_info >= (3, 4): - def connect(database: Union[bytes, str], timeout: float = ..., detect_types: int = ..., isolation_level: Union[str, None] = ..., check_same_thread: bool = ..., factory: Union[Connection, None] = ..., cached_statements: int = ..., uri: bool = ...) -> Connection: ... + def connect(database: Union[bytes, Text], + timeout: float = ..., + detect_types: int = ..., + isolation_level: Optional[str] = ..., + check_same_thread: bool = ..., + factory: Optional[Type[Connection]] = ..., + cached_statements: int = ..., + uri: bool = ...) -> Connection: ... else: - def connect(database: Union[bytes, str], timeout: float = ..., detect_types: int = ..., isolation_level: Union[str, None] = ..., check_same_thread: bool = ..., factory: Union[Connection, None] = ..., cached_statements: int = ...) -> Connection: ... + def connect(database: Union[bytes, Text], + timeout: float = ..., + detect_types: int = ..., + isolation_level: Optional[str] = ..., + check_same_thread: bool = ..., + factory: Optional[Type[Connection]] = ..., + cached_statements: int = ...) -> Connection: ... def enable_callback_tracebacks(flag: bool) -> None: ... def enable_shared_cache(do_enable: int) -> None: ... -def register_adapter(type: _T, callable: Callable[[_T], Union[int, float, str, bytes]]) -> None: ... -# TODO: sqlite3.register_converter.__doc__ specifies callable as unknown +def register_adapter(type: Type[_T], callable: Callable[[_T], Union[int, float, str, bytes]]) -> None: ... def register_converter(typename: str, callable: Callable[[bytes], Any]) -> None: ... -class Cache: +class Cache(object): def __init__(self, *args, **kwargs) -> None: ... def display(self, *args, **kwargs) -> None: ... def get(self, *args, **kwargs) -> None: ... -class Connection: +class Connection(object): DataError = ... # type: Any DatabaseError = ... # type: Any Error = ... # type: Any @@ -109,7 +120,7 @@ class Connection: def execute(self, sql: str, parameters: Iterable = ...) -> Cursor: ... # TODO: please check in executemany() if seq_of_parameters type is possible like this def executemany(self, sql: str, seq_of_parameters: Iterable[Iterable]) -> Cursor: ... - def executescript(self, sql_script: Union[bytes, str]) -> Cursor: ... + def executescript(self, sql_script: Union[bytes, Text]) -> Cursor: ... def interrupt(self, *args, **kwargs) -> None: ... def iterdump(self, *args, **kwargs) -> None: ... def rollback(self, *args, **kwargs) -> None: ... @@ -142,7 +153,7 @@ class Cursor(Iterator[Any]): def close(self, *args, **kwargs): ... def execute(self, sql: str, parameters: Iterable = ...) -> Cursor: ... def executemany(self, sql: str, seq_of_parameters: Iterable[Iterable]): ... - def executescript(self, sql_script: Union[bytes, str]) -> Cursor: ... + def executescript(self, sql_script: Union[bytes, Text]) -> Cursor: ... def fetchall(self) -> List[Any]: ... def fetchmany(self, size: Optional[int] = ...) -> List[Any]: ... def fetchone(self) -> Any: ... @@ -168,7 +179,7 @@ class NotSupportedError(DatabaseError): ... class OperationalError(DatabaseError): ... -class OptimizedUnicode: +class OptimizedUnicode(object): maketrans = ... # type: Any def __init__(self, *args, **kwargs): ... def capitalize(self, *args, **kwargs): ... @@ -233,12 +244,12 @@ class OptimizedUnicode: def __rmod__(self, other): ... def __rmul__(self, other): ... -class PrepareProtocol: +class PrepareProtocol(object): def __init__(self, *args, **kwargs): ... class ProgrammingError(DatabaseError): ... -class Row: +class Row(object): def __init__(self, *args, **kwargs): ... def keys(self, *args, **kwargs): ... def __eq__(self, other): ... @@ -252,7 +263,7 @@ class Row: def __lt__(self, other): ... def __ne__(self, other): ... -class Statement: +class Statement(object): def __init__(self, *args, **kwargs): ... class Warning(Exception): ... diff --git a/stdlib/3/sqlite3/__init__.pyi b/stdlib/3/sqlite3/__init__.pyi deleted file mode 100644 index d5d20d67b..000000000 --- a/stdlib/3/sqlite3/__init__.pyi +++ /dev/null @@ -1 +0,0 @@ -from sqlite3.dbapi2 import * # noqa: F403