basedpyright 1.13.2 → 1.13.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/pyright-langserver.js +1 -1
- package/dist/pyright-langserver.js.map +1 -1
- package/dist/pyright.js +1 -1
- package/dist/pyright.js.map +1 -1
- package/dist/typeshed-fallback/commit.txt +1 -1
- package/dist/typeshed-fallback/stdlib/VERSIONS +2 -0
- package/dist/typeshed-fallback/stdlib/_ast.pyi +42 -279
- package/dist/typeshed-fallback/stdlib/_bisect.pyi +221 -221
- package/dist/typeshed-fallback/stdlib/_bootlocale.pyi +1 -1
- package/dist/typeshed-fallback/stdlib/_collections_abc.pyi +15 -5
- package/dist/typeshed-fallback/stdlib/_csv.pyi +213 -213
- package/dist/typeshed-fallback/stdlib/_decimal.pyi +0 -18
- package/dist/typeshed-fallback/stdlib/_dummy_thread.pyi +33 -33
- package/dist/typeshed-fallback/stdlib/_dummy_threading.pyi +180 -164
- package/dist/typeshed-fallback/stdlib/_heapq.pyi +67 -67
- package/dist/typeshed-fallback/stdlib/_interpqueues.pyi +16 -0
- package/dist/typeshed-fallback/stdlib/_interpreters.pyi +50 -0
- package/dist/typeshed-fallback/stdlib/_json.pyi +92 -92
- package/dist/typeshed-fallback/stdlib/_lsprof.pyi +92 -92
- package/dist/typeshed-fallback/stdlib/_msi.pyi +94 -92
- package/dist/typeshed-fallback/stdlib/_operator.pyi +0 -24
- package/dist/typeshed-fallback/stdlib/_random.pyi +30 -30
- package/dist/typeshed-fallback/stdlib/_tkinter.pyi +6 -2
- package/dist/typeshed-fallback/stdlib/_weakrefset.pyi +7 -1
- package/dist/typeshed-fallback/stdlib/abc.pyi +12 -4
- package/dist/typeshed-fallback/stdlib/argparse.pyi +3 -1
- package/dist/typeshed-fallback/stdlib/array.pyi +281 -281
- package/dist/typeshed-fallback/stdlib/asynchat.pyi +21 -21
- package/dist/typeshed-fallback/stdlib/asyncio/events.pyi +35 -4
- package/dist/typeshed-fallback/stdlib/asyncio/futures.pyi +107 -15
- package/dist/typeshed-fallback/stdlib/asyncio/locks.pyi +9 -3
- package/dist/typeshed-fallback/stdlib/asyncio/queues.pyi +10 -2
- package/dist/typeshed-fallback/stdlib/asyncio/sslproto.pyi +23 -4
- package/dist/typeshed-fallback/stdlib/asyncio/tasks.pyi +107 -12
- package/dist/typeshed-fallback/stdlib/asyncio/windows_events.pyi +86 -86
- package/dist/typeshed-fallback/stdlib/asyncio/windows_utils.pyi +49 -49
- package/dist/typeshed-fallback/stdlib/asyncore.pyi +90 -90
- package/dist/typeshed-fallback/stdlib/audioop.pyi +95 -95
- package/dist/typeshed-fallback/stdlib/binascii.pyi +123 -123
- package/dist/typeshed-fallback/stdlib/binhex.pyi +45 -45
- package/dist/typeshed-fallback/stdlib/builtins.pyi +0 -1
- package/dist/typeshed-fallback/stdlib/bz2.pyi +59 -6
- package/dist/typeshed-fallback/stdlib/cmath.pyi +112 -112
- package/dist/typeshed-fallback/stdlib/codecs.pyi +18 -6
- package/dist/typeshed-fallback/stdlib/collections/__init__.pyi +200 -56
- package/dist/typeshed-fallback/stdlib/concurrent/futures/__init__.pyi +33 -14
- package/dist/typeshed-fallback/stdlib/concurrent/futures/_base.pyi +7 -1
- package/dist/typeshed-fallback/stdlib/concurrent/futures/thread.pyi +7 -1
- package/dist/typeshed-fallback/stdlib/contextvars.pyi +99 -16
- package/dist/typeshed-fallback/stdlib/csv.pyi +14 -2
- package/dist/typeshed-fallback/stdlib/ctypes/__init__.pyi +7 -1
- package/dist/typeshed-fallback/stdlib/ctypes/_endian.pyi +6 -2
- package/dist/typeshed-fallback/stdlib/curses/panel.pyi +16 -4
- package/dist/typeshed-fallback/stdlib/dataclasses.pyi +7 -1
- package/dist/typeshed-fallback/stdlib/datetime.pyi +346 -104
- package/dist/typeshed-fallback/stdlib/dbm/gnu.pyi +52 -2
- package/dist/typeshed-fallback/stdlib/dbm/ndbm.pyi +26 -2
- package/dist/typeshed-fallback/stdlib/difflib.pyi +7 -1
- package/dist/typeshed-fallback/stdlib/distutils/__init__.pyi +5 -5
- package/dist/typeshed-fallback/stdlib/distutils/archive_util.pyi +35 -35
- package/dist/typeshed-fallback/stdlib/distutils/bcppcompiler.pyi +3 -3
- package/dist/typeshed-fallback/stdlib/distutils/ccompiler.pyi +173 -173
- package/dist/typeshed-fallback/stdlib/distutils/cmd.pyi +99 -99
- package/dist/typeshed-fallback/stdlib/distutils/command/bdist.pyi +25 -25
- package/dist/typeshed-fallback/stdlib/distutils/command/bdist_dumb.pyi +21 -21
- package/dist/typeshed-fallback/stdlib/distutils/command/bdist_msi.pyi +45 -45
- package/dist/typeshed-fallback/stdlib/distutils/command/bdist_rpm.pyi +52 -52
- package/dist/typeshed-fallback/stdlib/distutils/command/bdist_wininst.pyi +16 -16
- package/dist/typeshed-fallback/stdlib/distutils/command/build.pyi +33 -33
- package/dist/typeshed-fallback/stdlib/distutils/command/build_clib.pyi +27 -27
- package/dist/typeshed-fallback/stdlib/distutils/command/build_ext.pyi +50 -50
- package/dist/typeshed-fallback/stdlib/distutils/command/build_py.pyi +44 -44
- package/dist/typeshed-fallback/stdlib/distutils/command/build_scripts.pyi +24 -24
- package/dist/typeshed-fallback/stdlib/distutils/command/check.pyi +39 -39
- package/dist/typeshed-fallback/stdlib/distutils/command/clean.pyi +17 -17
- package/dist/typeshed-fallback/stdlib/distutils/command/config.pyi +84 -84
- package/dist/typeshed-fallback/stdlib/distutils/command/install.pyi +65 -65
- package/dist/typeshed-fallback/stdlib/distutils/command/install_data.pyi +19 -19
- package/dist/typeshed-fallback/stdlib/distutils/command/install_egg_info.pyi +18 -18
- package/dist/typeshed-fallback/stdlib/distutils/command/install_headers.pyi +16 -16
- package/dist/typeshed-fallback/stdlib/distutils/command/install_lib.pyi +25 -25
- package/dist/typeshed-fallback/stdlib/distutils/command/install_scripts.pyi +18 -18
- package/dist/typeshed-fallback/stdlib/distutils/command/register.pyi +20 -20
- package/dist/typeshed-fallback/stdlib/distutils/command/sdist.pyi +44 -44
- package/dist/typeshed-fallback/stdlib/distutils/command/upload.pyi +17 -17
- package/dist/typeshed-fallback/stdlib/distutils/config.pyi +17 -17
- package/dist/typeshed-fallback/stdlib/distutils/core.pyi +57 -57
- package/dist/typeshed-fallback/stdlib/distutils/cygwinccompiler.pyi +20 -20
- package/dist/typeshed-fallback/stdlib/distutils/debug.pyi +1 -1
- package/dist/typeshed-fallback/stdlib/distutils/dep_util.pyi +14 -14
- package/dist/typeshed-fallback/stdlib/distutils/dir_util.pyi +23 -23
- package/dist/typeshed-fallback/stdlib/distutils/dist.pyi +149 -149
- package/dist/typeshed-fallback/stdlib/distutils/errors.pyi +19 -19
- package/dist/typeshed-fallback/stdlib/distutils/extension.pyi +36 -36
- package/dist/typeshed-fallback/stdlib/distutils/fancy_getopt.pyi +34 -34
- package/dist/typeshed-fallback/stdlib/distutils/file_util.pyi +38 -38
- package/dist/typeshed-fallback/stdlib/distutils/filelist.pyi +58 -58
- package/dist/typeshed-fallback/stdlib/distutils/log.pyi +25 -25
- package/dist/typeshed-fallback/stdlib/distutils/msvccompiler.pyi +3 -3
- package/dist/typeshed-fallback/stdlib/distutils/spawn.pyi +6 -6
- package/dist/typeshed-fallback/stdlib/distutils/sysconfig.pyi +33 -33
- package/dist/typeshed-fallback/stdlib/distutils/text_file.pyi +21 -21
- package/dist/typeshed-fallback/stdlib/distutils/unixccompiler.pyi +3 -3
- package/dist/typeshed-fallback/stdlib/distutils/util.pyi +50 -50
- package/dist/typeshed-fallback/stdlib/distutils/version.pyi +38 -36
- package/dist/typeshed-fallback/stdlib/dummy_threading.pyi +2 -2
- package/dist/typeshed-fallback/stdlib/email/_header_value_parser.pyi +3 -1
- package/dist/typeshed-fallback/stdlib/email/charset.pyi +3 -1
- package/dist/typeshed-fallback/stdlib/email/header.pyi +3 -1
- package/dist/typeshed-fallback/stdlib/email/headerregistry.pyi +6 -1
- package/dist/typeshed-fallback/stdlib/enum.pyi +8 -1
- package/dist/typeshed-fallback/stdlib/filecmp.pyi +7 -1
- package/dist/typeshed-fallback/stdlib/fileinput.pyi +7 -1
- package/dist/typeshed-fallback/stdlib/formatter.pyi +88 -88
- package/dist/typeshed-fallback/stdlib/fractions.pyi +6 -2
- package/dist/typeshed-fallback/stdlib/functools.pyi +65 -13
- package/dist/typeshed-fallback/stdlib/graphlib.pyi +7 -1
- package/dist/typeshed-fallback/stdlib/gzip.pyi +3 -1
- package/dist/typeshed-fallback/stdlib/hashlib.pyi +42 -14
- package/dist/typeshed-fallback/stdlib/heapq.pyi +3 -1
- package/dist/typeshed-fallback/stdlib/hmac.pyi +30 -2
- package/dist/typeshed-fallback/stdlib/http/cookies.pyi +7 -1
- package/dist/typeshed-fallback/stdlib/imp.pyi +62 -62
- package/dist/typeshed-fallback/stdlib/importlib/abc.pyi +3 -1
- package/dist/typeshed-fallback/stdlib/importlib/machinery.pyi +3 -1
- package/dist/typeshed-fallback/stdlib/importlib/metadata/__init__.pyi +79 -15
- package/dist/typeshed-fallback/stdlib/importlib/metadata/_meta.pyi +3 -1
- package/dist/typeshed-fallback/stdlib/importlib/resources/simple.pyi +3 -1
- package/dist/typeshed-fallback/stdlib/io.pyi +428 -44
- package/dist/typeshed-fallback/stdlib/ipaddress.pyi +153 -28
- package/dist/typeshed-fallback/stdlib/itertools.pyi +5 -1
- package/dist/typeshed-fallback/stdlib/json/encoder.pyi +14 -2
- package/dist/typeshed-fallback/stdlib/keyword.pyi +6 -2
- package/dist/typeshed-fallback/stdlib/lib2to3/pytree.pyi +12 -2
- package/dist/typeshed-fallback/stdlib/logging/__init__.pyi +17 -3
- package/dist/typeshed-fallback/stdlib/lzma.pyi +107 -9
- package/dist/typeshed-fallback/stdlib/mailbox.pyi +14 -2
- package/dist/typeshed-fallback/stdlib/math.pyi +424 -424
- package/dist/typeshed-fallback/stdlib/mmap.pyi +160 -160
- package/dist/typeshed-fallback/stdlib/msilib/__init__.pyi +177 -177
- package/dist/typeshed-fallback/stdlib/msilib/schema.pyi +94 -94
- package/dist/typeshed-fallback/stdlib/msilib/sequence.pyi +13 -13
- package/dist/typeshed-fallback/stdlib/msilib/text.pyi +7 -7
- package/dist/typeshed-fallback/stdlib/multiprocessing/connection.pyi +9 -3
- package/dist/typeshed-fallback/stdlib/multiprocessing/context.pyi +12 -2
- package/dist/typeshed-fallback/stdlib/multiprocessing/dummy/__init__.pyi +3 -1
- package/dist/typeshed-fallback/stdlib/multiprocessing/managers.pyi +10 -2
- package/dist/typeshed-fallback/stdlib/multiprocessing/pool.pyi +7 -1
- package/dist/typeshed-fallback/stdlib/multiprocessing/popen_spawn_win32.pyi +30 -30
- package/dist/typeshed-fallback/stdlib/multiprocessing/process.pyi +15 -4
- package/dist/typeshed-fallback/stdlib/multiprocessing/queues.pyi +14 -2
- package/dist/typeshed-fallback/stdlib/multiprocessing/shared_memory.pyi +19 -5
- package/dist/typeshed-fallback/stdlib/nis.pyi +31 -4
- package/dist/typeshed-fallback/stdlib/numbers.pyi +26 -6
- package/dist/typeshed-fallback/stdlib/opcode.pyi +3 -1
- package/dist/typeshed-fallback/stdlib/optparse.pyi +3 -1
- package/dist/typeshed-fallback/stdlib/os/__init__.pyi +1447 -217
- package/dist/typeshed-fallback/stdlib/pathlib.pyi +42 -11
- package/dist/typeshed-fallback/stdlib/pickle.pyi +200 -12
- package/dist/typeshed-fallback/stdlib/posixpath.pyi +6 -2
- package/dist/typeshed-fallback/stdlib/pyexpat/errors.pyi +2 -0
- package/dist/typeshed-fallback/stdlib/pyexpat/model.pyi +2 -0
- package/dist/typeshed-fallback/stdlib/queue.pyi +57 -9
- package/dist/typeshed-fallback/stdlib/re.pyi +219 -57
- package/dist/typeshed-fallback/stdlib/sched.pyi +8 -1
- package/dist/typeshed-fallback/stdlib/signal.pyi +95 -19
- package/dist/typeshed-fallback/stdlib/smtpd.pyi +91 -91
- package/dist/typeshed-fallback/stdlib/socket.pyi +12 -2
- package/dist/typeshed-fallback/stdlib/sqlite3/dbapi2.pyi +417 -83
- package/dist/typeshed-fallback/stdlib/ssl.pyi +133 -22
- package/dist/typeshed-fallback/stdlib/statistics.pyi +20 -5
- package/dist/typeshed-fallback/stdlib/struct.pyi +114 -13
- package/dist/typeshed-fallback/stdlib/subprocess.pyi +14 -2
- package/dist/typeshed-fallback/stdlib/symbol.pyi +93 -93
- package/dist/typeshed-fallback/stdlib/symtable.pyi +30 -1
- package/dist/typeshed-fallback/stdlib/sys/__init__.pyi +7 -3
- package/dist/typeshed-fallback/stdlib/tarfile.pyi +6 -2
- package/dist/typeshed-fallback/stdlib/tempfile.pyi +17 -3
- package/dist/typeshed-fallback/stdlib/threading.pyi +68 -7
- package/dist/typeshed-fallback/stdlib/tkinter/__init__.pyi +3 -1
- package/dist/typeshed-fallback/stdlib/turtle.pyi +11 -3
- package/dist/typeshed-fallback/stdlib/types.pyi +306 -79
- package/dist/typeshed-fallback/stdlib/typing.pyi +310 -31
- package/dist/typeshed-fallback/stdlib/typing_extensions.pyi +42 -11
- package/dist/typeshed-fallback/stdlib/unittest/__init__.pyi +6 -1
- package/dist/typeshed-fallback/stdlib/unittest/case.pyi +7 -1
- package/dist/typeshed-fallback/stdlib/unittest/mock.pyi +3 -1
- package/dist/typeshed-fallback/stdlib/urllib/parse.pyi +51 -3
- package/dist/typeshed-fallback/stdlib/weakref.pyi +6 -2
- package/dist/typeshed-fallback/stdlib/winsound.pyi +44 -28
- package/dist/typeshed-fallback/stdlib/xml/dom/minicompat.pyi +6 -2
- package/dist/typeshed-fallback/stdlib/xml/dom/minidom.pyi +33 -11
- package/dist/typeshed-fallback/stdlib/xml/etree/ElementTree.pyi +30 -10
- package/dist/typeshed-fallback/stdlib/xml/parsers/expat/errors.pyi +2 -0
- package/dist/typeshed-fallback/stdlib/xml/parsers/expat/model.pyi +2 -0
- package/dist/typeshed-fallback/stdlib/xxlimited.pyi +19 -4
- package/dist/typeshed-fallback/stdlib/zipimport.pyi +31 -0
- package/dist/typeshed-fallback/stdlib/zlib.pyi +157 -157
- package/dist/typeshed-fallback/stdlib/zoneinfo/__init__.pyi +18 -6
- package/dist/typeshed-fallback/stubs/assertpy/assertpy/extracting.pyi +2 -2
- package/dist/typeshed-fallback/stubs/docker/docker/_types.pyi +18 -1
- package/dist/typeshed-fallback/stubs/docker/docker/api/container.pyi +5 -19
- package/dist/typeshed-fallback/stubs/docker/docker/api/daemon.pyi +2 -1
- package/dist/typeshed-fallback/stubs/docker/docker/models/containers.pyi +268 -6
- package/dist/typeshed-fallback/stubs/docker/docker/types/containers.pyi +3 -7
- package/dist/typeshed-fallback/stubs/docker/docker/types/daemon.pyi +10 -4
- package/dist/typeshed-fallback/stubs/docutils/docutils/parsers/rst/states.pyi +47 -0
- package/dist/typeshed-fallback/stubs/gdb/gdb/__init__.pyi +1 -1
- package/dist/typeshed-fallback/stubs/networkx/networkx/algorithms/shortest_paths/generic.pyi +1 -1
- package/dist/typeshed-fallback/stubs/openpyxl/METADATA.toml +1 -1
- package/dist/typeshed-fallback/stubs/openpyxl/openpyxl/packaging/extended.pyi +0 -2
- package/dist/typeshed-fallback/stubs/openpyxl/openpyxl/styles/named_styles.pyi +2 -1
- package/dist/typeshed-fallback/stubs/pygit2/METADATA.toml +1 -1
- package/dist/typeshed-fallback/stubs/pytest-lazy-fixture/pytest_lazyfixture.pyi +2 -2
- package/dist/typeshed-fallback/stubs/python-crontab/METADATA.toml +1 -1
- package/dist/typeshed-fallback/stubs/reportlab/METADATA.toml +1 -1
- package/dist/typeshed-fallback/stubs/reportlab/reportlab/lib/rl_safe_eval.pyi +23 -11
- package/dist/typeshed-fallback/stubs/reportlab/reportlab/pdfbase/pdfdoc.pyi +6 -0
- package/dist/typeshed-fallback/stubs/setuptools/METADATA.toml +1 -1
- package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/archive_util.pyi +8 -8
- package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/ccompiler.pyi +11 -17
- package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/cmd.pyi +11 -11
- package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/command/build_py.pyi +1 -2
- package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/filelist.pyi +4 -12
- package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/sysconfig.pyi +2 -4
- package/dist/typeshed-fallback/stubs/setuptools/setuptools/_distutils/util.pyi +5 -8
- package/dist/typeshed-fallback/stubs/str2bool/METADATA.toml +2 -0
- package/dist/typeshed-fallback/stubs/str2bool/str2bool/__init__.pyi +7 -0
- package/package.json +1 -1
|
@@ -1,91 +1,91 @@
|
|
|
1
|
-
import asynchat
|
|
2
|
-
import asyncore
|
|
3
|
-
import socket
|
|
4
|
-
import sys
|
|
5
|
-
from collections import defaultdict
|
|
6
|
-
from typing import Any
|
|
7
|
-
from typing_extensions import TypeAlias
|
|
8
|
-
|
|
9
|
-
if sys.version_info >= (3, 11):
|
|
10
|
-
__all__ = ["SMTPChannel", "SMTPServer", "DebuggingServer", "PureProxy"]
|
|
11
|
-
else:
|
|
12
|
-
__all__ = ["SMTPChannel", "SMTPServer", "DebuggingServer", "PureProxy", "MailmanProxy"]
|
|
13
|
-
|
|
14
|
-
_Address: TypeAlias = tuple[str, int] # (host, port)
|
|
15
|
-
|
|
16
|
-
class SMTPChannel(asynchat.async_chat):
|
|
17
|
-
COMMAND: int
|
|
18
|
-
DATA: int
|
|
19
|
-
|
|
20
|
-
command_size_limits: defaultdict[str, int]
|
|
21
|
-
smtp_server: SMTPServer
|
|
22
|
-
conn: socket.socket
|
|
23
|
-
addr: Any
|
|
24
|
-
received_lines: list[str]
|
|
25
|
-
smtp_state: int
|
|
26
|
-
seen_greeting: str
|
|
27
|
-
mailfrom: str
|
|
28
|
-
rcpttos: list[str]
|
|
29
|
-
received_data: str
|
|
30
|
-
fqdn: str
|
|
31
|
-
peer: str
|
|
32
|
-
|
|
33
|
-
command_size_limit: int
|
|
34
|
-
data_size_limit: int
|
|
35
|
-
|
|
36
|
-
enable_SMTPUTF8: bool
|
|
37
|
-
@property
|
|
38
|
-
def max_command_size_limit(self) -> int: ...
|
|
39
|
-
def __init__(
|
|
40
|
-
self,
|
|
41
|
-
server: SMTPServer,
|
|
42
|
-
conn: socket.socket,
|
|
43
|
-
addr: Any,
|
|
44
|
-
data_size_limit: int = 33554432,
|
|
45
|
-
map: asyncore._MapType | None = None,
|
|
46
|
-
enable_SMTPUTF8: bool = False,
|
|
47
|
-
decode_data: bool = False,
|
|
48
|
-
) -> None: ...
|
|
49
|
-
# base asynchat.async_chat.push() accepts bytes
|
|
50
|
-
def push(self, msg: str) -> None: ... # type: ignore[override]
|
|
51
|
-
def collect_incoming_data(self, data: bytes) -> None: ...
|
|
52
|
-
def found_terminator(self) -> None: ...
|
|
53
|
-
def smtp_HELO(self, arg: str) -> None: ...
|
|
54
|
-
def smtp_NOOP(self, arg: str) -> None: ...
|
|
55
|
-
def smtp_QUIT(self, arg: str) -> None: ...
|
|
56
|
-
def smtp_MAIL(self, arg: str) -> None: ...
|
|
57
|
-
def smtp_RCPT(self, arg: str) -> None: ...
|
|
58
|
-
def smtp_RSET(self, arg: str) -> None: ...
|
|
59
|
-
def smtp_DATA(self, arg: str) -> None: ...
|
|
60
|
-
def smtp_EHLO(self, arg: str) -> None: ...
|
|
61
|
-
def smtp_HELP(self, arg: str) -> None: ...
|
|
62
|
-
def smtp_VRFY(self, arg: str) -> None: ...
|
|
63
|
-
def smtp_EXPN(self, arg: str) -> None: ...
|
|
64
|
-
|
|
65
|
-
class SMTPServer(asyncore.dispatcher):
|
|
66
|
-
channel_class: type[SMTPChannel]
|
|
67
|
-
|
|
68
|
-
data_size_limit: int
|
|
69
|
-
enable_SMTPUTF8: bool
|
|
70
|
-
def __init__(
|
|
71
|
-
self,
|
|
72
|
-
localaddr: _Address,
|
|
73
|
-
remoteaddr: _Address,
|
|
74
|
-
data_size_limit: int = 33554432,
|
|
75
|
-
map: asyncore._MapType | None = None,
|
|
76
|
-
enable_SMTPUTF8: bool = False,
|
|
77
|
-
decode_data: bool = False,
|
|
78
|
-
) -> None: ...
|
|
79
|
-
def handle_accepted(self, conn: socket.socket, addr: Any) -> None: ...
|
|
80
|
-
def process_message(
|
|
81
|
-
self, peer: _Address, mailfrom: str, rcpttos: list[str], data: bytes | str, **kwargs: Any
|
|
82
|
-
) -> str | None: ...
|
|
83
|
-
|
|
84
|
-
class DebuggingServer(SMTPServer): ...
|
|
85
|
-
|
|
86
|
-
class PureProxy(SMTPServer):
|
|
87
|
-
def process_message(self, peer: _Address, mailfrom: str, rcpttos: list[str], data: bytes | str) -> str | None: ... # type: ignore[override]
|
|
88
|
-
|
|
89
|
-
if sys.version_info < (3, 11):
|
|
90
|
-
class MailmanProxy(PureProxy):
|
|
91
|
-
def process_message(self, peer: _Address, mailfrom: str, rcpttos: list[str], data: bytes | str) -> str | None: ... # type: ignore[override]
|
|
1
|
+
import asynchat
|
|
2
|
+
import asyncore
|
|
3
|
+
import socket
|
|
4
|
+
import sys
|
|
5
|
+
from collections import defaultdict
|
|
6
|
+
from typing import Any
|
|
7
|
+
from typing_extensions import TypeAlias
|
|
8
|
+
|
|
9
|
+
if sys.version_info >= (3, 11):
|
|
10
|
+
__all__ = ["SMTPChannel", "SMTPServer", "DebuggingServer", "PureProxy"]
|
|
11
|
+
else:
|
|
12
|
+
__all__ = ["SMTPChannel", "SMTPServer", "DebuggingServer", "PureProxy", "MailmanProxy"]
|
|
13
|
+
|
|
14
|
+
_Address: TypeAlias = tuple[str, int] # (host, port)
|
|
15
|
+
|
|
16
|
+
class SMTPChannel(asynchat.async_chat):
|
|
17
|
+
COMMAND: int
|
|
18
|
+
DATA: int
|
|
19
|
+
|
|
20
|
+
command_size_limits: defaultdict[str, int]
|
|
21
|
+
smtp_server: SMTPServer
|
|
22
|
+
conn: socket.socket
|
|
23
|
+
addr: Any
|
|
24
|
+
received_lines: list[str]
|
|
25
|
+
smtp_state: int
|
|
26
|
+
seen_greeting: str
|
|
27
|
+
mailfrom: str
|
|
28
|
+
rcpttos: list[str]
|
|
29
|
+
received_data: str
|
|
30
|
+
fqdn: str
|
|
31
|
+
peer: str
|
|
32
|
+
|
|
33
|
+
command_size_limit: int
|
|
34
|
+
data_size_limit: int
|
|
35
|
+
|
|
36
|
+
enable_SMTPUTF8: bool
|
|
37
|
+
@property
|
|
38
|
+
def max_command_size_limit(self) -> int: ...
|
|
39
|
+
def __init__(
|
|
40
|
+
self,
|
|
41
|
+
server: SMTPServer,
|
|
42
|
+
conn: socket.socket,
|
|
43
|
+
addr: Any,
|
|
44
|
+
data_size_limit: int = 33554432,
|
|
45
|
+
map: asyncore._MapType | None = None,
|
|
46
|
+
enable_SMTPUTF8: bool = False,
|
|
47
|
+
decode_data: bool = False,
|
|
48
|
+
) -> None: ...
|
|
49
|
+
# base asynchat.async_chat.push() accepts bytes
|
|
50
|
+
def push(self, msg: str) -> None: ... # type: ignore[override]
|
|
51
|
+
def collect_incoming_data(self, data: bytes) -> None: ...
|
|
52
|
+
def found_terminator(self) -> None: ...
|
|
53
|
+
def smtp_HELO(self, arg: str) -> None: ...
|
|
54
|
+
def smtp_NOOP(self, arg: str) -> None: ...
|
|
55
|
+
def smtp_QUIT(self, arg: str) -> None: ...
|
|
56
|
+
def smtp_MAIL(self, arg: str) -> None: ...
|
|
57
|
+
def smtp_RCPT(self, arg: str) -> None: ...
|
|
58
|
+
def smtp_RSET(self, arg: str) -> None: ...
|
|
59
|
+
def smtp_DATA(self, arg: str) -> None: ...
|
|
60
|
+
def smtp_EHLO(self, arg: str) -> None: ...
|
|
61
|
+
def smtp_HELP(self, arg: str) -> None: ...
|
|
62
|
+
def smtp_VRFY(self, arg: str) -> None: ...
|
|
63
|
+
def smtp_EXPN(self, arg: str) -> None: ...
|
|
64
|
+
|
|
65
|
+
class SMTPServer(asyncore.dispatcher):
|
|
66
|
+
channel_class: type[SMTPChannel]
|
|
67
|
+
|
|
68
|
+
data_size_limit: int
|
|
69
|
+
enable_SMTPUTF8: bool
|
|
70
|
+
def __init__(
|
|
71
|
+
self,
|
|
72
|
+
localaddr: _Address,
|
|
73
|
+
remoteaddr: _Address,
|
|
74
|
+
data_size_limit: int = 33554432,
|
|
75
|
+
map: asyncore._MapType | None = None,
|
|
76
|
+
enable_SMTPUTF8: bool = False,
|
|
77
|
+
decode_data: bool = False,
|
|
78
|
+
) -> None: ...
|
|
79
|
+
def handle_accepted(self, conn: socket.socket, addr: Any) -> None: ...
|
|
80
|
+
def process_message(
|
|
81
|
+
self, peer: _Address, mailfrom: str, rcpttos: list[str], data: bytes | str, **kwargs: Any
|
|
82
|
+
) -> str | None: ...
|
|
83
|
+
|
|
84
|
+
class DebuggingServer(SMTPServer): ...
|
|
85
|
+
|
|
86
|
+
class PureProxy(SMTPServer):
|
|
87
|
+
def process_message(self, peer: _Address, mailfrom: str, rcpttos: list[str], data: bytes | str) -> str | None: ... # type: ignore[override]
|
|
88
|
+
|
|
89
|
+
if sys.version_info < (3, 11):
|
|
90
|
+
class MailmanProxy(PureProxy):
|
|
91
|
+
def process_message(self, peer: _Address, mailfrom: str, rcpttos: list[str], data: bytes | str) -> str | None: ... # type: ignore[override]
|
|
@@ -776,9 +776,19 @@ class socket(_socket.socket):
|
|
|
776
776
|
) -> TextIOWrapper: ...
|
|
777
777
|
def sendfile(self, file: _SendableFile, offset: int = 0, count: int | None = None) -> int: ...
|
|
778
778
|
@property
|
|
779
|
-
def family(self) -> AddressFamily:
|
|
779
|
+
def family(self) -> AddressFamily:
|
|
780
|
+
"""
|
|
781
|
+
Read-only access to the address family for this socket.
|
|
782
|
+
|
|
783
|
+
"""
|
|
784
|
+
...
|
|
780
785
|
@property
|
|
781
|
-
def type(self) -> SocketKind:
|
|
786
|
+
def type(self) -> SocketKind:
|
|
787
|
+
"""
|
|
788
|
+
Read-only access to the socket type.
|
|
789
|
+
|
|
790
|
+
"""
|
|
791
|
+
...
|
|
782
792
|
def get_inheritable(self) -> bool: ...
|
|
783
793
|
def set_inheritable(self, inheritable: bool) -> None: ...
|
|
784
794
|
|