Improve pymysql stubs (#12942)

Co-authored-by: Shamil <ashm.tech@proton.me>
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
This commit is contained in:
Danny Yang
2024-11-02 19:27:01 -04:00
committed by GitHub
parent 04ed1db155
commit 348c44f468
5 changed files with 74 additions and 14 deletions

View File

@@ -1,6 +1,5 @@
pymysql.connections.byte2int
pymysql.connections.int2byte
pymysql.connections.lenenc_int
pymysql.connections.pack_int24
pymysql.cursors.Cursor.__del__
# DictCursorMixin changes method types of inherited classes, but doesn't contain much at runtime

View File

@@ -0,0 +1,13 @@
from _typeshed import Incomplete, ReadableBuffer
from typing import Final
DEBUG: Final[bool]
SCRAMBLE_LENGTH: Final[int]
sha1_new: Incomplete
def scramble_native_password(password: ReadableBuffer | None, message: ReadableBuffer | None) -> bytes: ...
def ed25519_password(password: ReadableBuffer, scramble: ReadableBuffer) -> bytes: ...
def sha2_rsa_encrypt(password: bytes, salt: bytes, public_key: bytes) -> bytes: ...
def sha256_password_auth(conn, pkt): ...
def scramble_caching_sha2(password: ReadableBuffer, nonce: ReadableBuffer) -> bytes: ...
def caching_sha2_password_auth(conn, pkt) -> Incomplete | None: ...

View File

@@ -1,15 +1,22 @@
from typing import Any
from collections.abc import Callable
from typing import Final
MBLENGTH: Any
MBLENGTH: Final[dict[int, int]]
class Charset:
is_default: bool
def __init__(self, id, name, collation, is_default: bool = False) -> None: ...
def __init__(self, id: int, name: str, collation: str, is_default: bool = False) -> None: ...
@property
def encoding(self) -> str: ...
@property
def is_binary(self) -> bool: ...
class Charsets:
def add(self, c): ...
def by_id(self, id): ...
def by_name(self, name): ...
def __init__(self) -> None: ...
def add(self, c: Charset) -> None: ...
def by_id(self, id: int) -> Charset: ...
def by_name(self, name: str) -> Charset: ...
def charset_by_name(name): ...
def charset_by_id(id): ...
_charsets: Charsets
charset_by_name: Callable[[str], Charset]
charset_by_id: Callable[[int], Charset]

View File

@@ -10,17 +10,19 @@ from .constants import CLIENT as CLIENT, COMMAND as COMMAND, FIELD_TYPE as FIELD
from .cursors import Cursor
from .util import byte2int as byte2int, int2byte as int2byte
SSL_ENABLED: Any
DEFAULT_USER: Any
DEBUG: Any
DEFAULT_CHARSET: Any
SSL_ENABLED: bool
DEFAULT_USER: str | None
DEBUG: bool
DEFAULT_CHARSET: str
TEXT_TYPES: set[int]
MAX_PACKET_LEN: int
_C = TypeVar("_C", bound=Cursor)
_C2 = TypeVar("_C2", bound=Cursor)
def dump_packet(data): ...
def pack_int24(n): ...
def lenenc_int(i: int) -> bytes: ...
def _lenenc_int(i: int) -> bytes: ...
class MysqlPacket:
connection: Any

View File

@@ -0,0 +1,39 @@
from _typeshed import Incomplete
from typing import Final
DEBUG: Final[bool]
NULL_COLUMN: Final[int]
UNSIGNED_CHAR_COLUMN: Final[int]
UNSIGNED_SHORT_COLUMN: Final[int]
UNSIGNED_INT24_COLUMN: Final[int]
UNSIGNED_INT64_COLUMN: Final[int]
def dump_packet(data) -> None: ...
class MysqlPacket:
def __init__(self, data, encoding) -> None: ...
def get_all_data(self): ...
def read(self, size): ...
def read_all(self): ...
def advance(self, length: int) -> None: ...
def rewind(self, position: int = 0) -> None: ...
def get_bytes(self, position: int, length: int = 1): ...
def read_uint8(self): ...
def read_uint16(self): ...
def read_uint24(self): ...
def read_uint32(self): ...
def read_uint64(self): ...
def read_string(self): ...
def read_length_encoded_integer(self) -> Incomplete | None: ...
def read_length_coded_string(self): ...
def read_struct(self, fmt): ...
def is_ok_packet(self) -> bool: ...
def is_eof_packet(self) -> bool: ...
def is_auth_switch_request(self) -> bool: ...
def is_extra_auth_data(self) -> bool: ...
def is_resultset_packet(self) -> bool: ...
def is_load_local_packet(self) -> bool: ...
def is_error_packet(self) -> bool: ...
def check_error(self) -> None: ...
def raise_for_error(self) -> None: ...
def dump(self) -> None: ...