diff --git a/stubs/PyMySQL/@tests/stubtest_allowlist.txt b/stubs/PyMySQL/@tests/stubtest_allowlist.txt index 1bb567319..30e7a1729 100644 --- a/stubs/PyMySQL/@tests/stubtest_allowlist.txt +++ b/stubs/PyMySQL/@tests/stubtest_allowlist.txt @@ -2,40 +2,6 @@ pymysql.connections.byte2int pymysql.connections.int2byte pymysql.connections.lenenc_int pymysql.connections.pack_int24 -pymysql.converters.ESCAPE_MAP -pymysql.converters.ESCAPE_REGEX -pymysql.converters.FLAG -pymysql.converters.PYTHON3 -pymysql.converters.charset_by_id -pymysql.converters.convert_bit -pymysql.converters.convert_characters -pymysql.converters.convert_date -pymysql.converters.convert_datetime -pymysql.converters.convert_decimal -pymysql.converters.convert_float -pymysql.converters.convert_int -pymysql.converters.convert_long -pymysql.converters.convert_mysql_timestamp -pymysql.converters.convert_set -pymysql.converters.convert_time -pymysql.converters.convert_timedelta -pymysql.converters.escape_None -pymysql.converters.escape_bool -pymysql.converters.escape_date -pymysql.converters.escape_datetime -pymysql.converters.escape_decimal -pymysql.converters.escape_dict -pymysql.converters.escape_float -pymysql.converters.escape_item -pymysql.converters.escape_long -pymysql.converters.escape_object -pymysql.converters.escape_sequence -pymysql.converters.escape_set -pymysql.converters.escape_string -pymysql.converters.escape_struct_time -pymysql.converters.escape_time -pymysql.converters.escape_timedelta -pymysql.converters.escape_unicode pymysql.cursors.Cursor.__del__ # DictCursorMixin changes method types of inherited classes, but doesn't contain much at runtime pymysql.cursors.DictCursorMixin.__iter__ diff --git a/stubs/PyMySQL/METADATA.toml b/stubs/PyMySQL/METADATA.toml index e29f8e7f8..f3e83f9c4 100644 --- a/stubs/PyMySQL/METADATA.toml +++ b/stubs/PyMySQL/METADATA.toml @@ -1,2 +1 @@ version = "1.0.*" -python2 = true diff --git a/stubs/PyMySQL/pymysql/converters.pyi b/stubs/PyMySQL/pymysql/converters.pyi index 01a256158..ee2e4ba89 100644 --- a/stubs/PyMySQL/pymysql/converters.pyi +++ b/stubs/PyMySQL/pymysql/converters.pyi @@ -1,47 +1,39 @@ -from typing import Any +import datetime +import time +from collections.abc import Callable, Mapping, Sequence +from decimal import Decimal +from typing import Any, Optional, Type, TypeVar -from .charset import charset_by_id as charset_by_id -from .constants import FIELD_TYPE as FIELD_TYPE, FLAG as FLAG +_EscaperMapping = Optional[Mapping[Type[object], Callable[..., str]]] +_T = TypeVar("_T") -PYTHON3: Any -ESCAPE_REGEX: Any -ESCAPE_MAP: Any +def escape_item(val: object, charset: object, mapping: _EscaperMapping = ...) -> str: ... +def escape_dict(val: Mapping[str, object], charset: object, mapping: _EscaperMapping = ...) -> dict[str, str]: ... +def escape_sequence(val: Sequence[object], charset: object, mapping: _EscaperMapping = ...) -> str: ... +def escape_set(val: set[object], charset: object, mapping: _EscaperMapping = ...) -> str: ... +def escape_bool(value: bool, mapping: _EscaperMapping = ...) -> str: ... +def escape_int(value: int, mapping: _EscaperMapping = ...) -> str: ... +def escape_float(value: float, mapping: _EscaperMapping = ...) -> str: ... +def escape_string(value: str, mapping: _EscaperMapping = ...) -> str: ... +def escape_bytes_prefixed(value: bytes, mapping: _EscaperMapping = ...) -> str: ... +def escape_bytes(value: bytes, mapping: _EscaperMapping = ...) -> str: ... +def escape_str(value: str, mapping: _EscaperMapping = ...) -> str: ... +def escape_None(value: None, mapping: _EscaperMapping = ...) -> str: ... +def escape_timedelta(obj: datetime.timedelta, mapping: _EscaperMapping = ...) -> str: ... +def escape_time(obj: datetime.time, mapping: _EscaperMapping = ...) -> str: ... +def escape_datetime(obj: datetime.datetime, mapping: _EscaperMapping = ...) -> str: ... +def escape_date(obj: datetime.date, mapping: _EscaperMapping = ...) -> str: ... +def escape_struct_time(obj: time.struct_time, mapping: _EscaperMapping = ...) -> str: ... +def Decimal2Literal(o: Decimal, d: object) -> str: ... +def convert_datetime(obj: str | bytes) -> datetime.datetime | str: ... +def convert_timedelta(obj: str | bytes) -> datetime.timedelta | str: ... +def convert_time(obj: str | bytes) -> datetime.time | str: ... +def convert_date(obj: str | bytes) -> datetime.date | str: ... +def through(x: _T) -> _T: ... -def escape_item(val, charset): ... -def escape_dict(val, charset): ... -def escape_sequence(val, charset): ... -def escape_set(val, charset): ... -def escape_bool(value): ... -def escape_object(value): ... +convert_bit = through -escape_int: Any - -escape_long: Any - -def escape_float(value): ... -def escape_string(value): ... -def escape_unicode(value): ... -def escape_None(value): ... -def escape_timedelta(obj): ... -def escape_time(obj): ... -def escape_datetime(obj): ... -def escape_date(obj): ... -def escape_struct_time(obj): ... -def convert_datetime(connection, field, obj): ... -def convert_timedelta(connection, field, obj): ... -def convert_time(connection, field, obj): ... -def convert_date(connection, field, obj): ... -def convert_mysql_timestamp(connection, field, timestamp): ... -def convert_set(s): ... -def convert_bit(connection, field, b): ... -def convert_characters(connection, field, data): ... -def convert_int(connection, field, data): ... -def convert_long(connection, field, data): ... -def convert_float(connection, field, data): ... - -encoders: Any -decoders: Any -conversions: Any - -def convert_decimal(connection, field, data): ... -def escape_decimal(obj): ... +encoders: dict[Type[object], Callable[..., str]] +decoders: dict[int, Callable[[str | bytes], Any]] +conversions: dict[Type[object] | int, Callable[..., Any]] +Thing2Literal = escape_str