massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-pyright / node_modules / pyright / dist / typeshed-fallback / stdlib / nntplib.pyi
1 import datetime
2 import socket
3 import ssl
4 import sys
5 from _typeshed import Self
6 from typing import IO, Any, Iterable, NamedTuple, Tuple, Union
7
8 _File = Union[IO[bytes], bytes, str, None]
9
10 class NNTPError(Exception):
11     response: str
12
13 class NNTPReplyError(NNTPError): ...
14 class NNTPTemporaryError(NNTPError): ...
15 class NNTPPermanentError(NNTPError): ...
16 class NNTPProtocolError(NNTPError): ...
17 class NNTPDataError(NNTPError): ...
18
19 NNTP_PORT: int
20 NNTP_SSL_PORT: int
21
22 class GroupInfo(NamedTuple):
23     group: str
24     last: str
25     first: str
26     flag: str
27
28 class ArticleInfo(NamedTuple):
29     number: int
30     message_id: str
31     lines: list[bytes]
32
33 def decode_header(header_str: str) -> str: ...
34
35 _list = list  # conflicts with a method named "list"
36
37 class _NNTPBase:
38     encoding: str
39     errors: str
40
41     host: str
42     file: IO[bytes]
43     debugging: int
44     welcome: str
45     readermode_afterauth: bool
46     tls_on: bool
47     authenticated: bool
48     nntp_implementation: str
49     nntp_version: int
50     def __init__(self, file: IO[bytes], host: str, readermode: bool | None = ..., timeout: float = ...) -> None: ...
51     def __enter__(self: Self) -> Self: ...
52     def __exit__(self, *args: Any) -> None: ...
53     def getwelcome(self) -> str: ...
54     def getcapabilities(self) -> dict[str, _list[str]]: ...
55     def set_debuglevel(self, level: int) -> None: ...
56     def debug(self, level: int) -> None: ...
57     def capabilities(self) -> tuple[str, dict[str, _list[str]]]: ...
58     def newgroups(self, date: datetime.date | datetime.datetime, *, file: _File = ...) -> tuple[str, _list[str]]: ...
59     def newnews(self, group: str, date: datetime.date | datetime.datetime, *, file: _File = ...) -> tuple[str, _list[str]]: ...
60     def list(self, group_pattern: str | None = ..., *, file: _File = ...) -> tuple[str, _list[str]]: ...
61     def description(self, group: str) -> str: ...
62     def descriptions(self, group_pattern: str) -> tuple[str, dict[str, str]]: ...
63     def group(self, name: str) -> tuple[str, int, int, int, str]: ...
64     def help(self, *, file: _File = ...) -> tuple[str, _list[str]]: ...
65     def stat(self, message_spec: Any = ...) -> tuple[str, int, str]: ...
66     def next(self) -> tuple[str, int, str]: ...
67     def last(self) -> tuple[str, int, str]: ...
68     def head(self, message_spec: Any = ..., *, file: _File = ...) -> tuple[str, ArticleInfo]: ...
69     def body(self, message_spec: Any = ..., *, file: _File = ...) -> tuple[str, ArticleInfo]: ...
70     def article(self, message_spec: Any = ..., *, file: _File = ...) -> tuple[str, ArticleInfo]: ...
71     def slave(self) -> str: ...
72     def xhdr(self, hdr: str, str: Any, *, file: _File = ...) -> tuple[str, _list[str]]: ...
73     def xover(self, start: int, end: int, *, file: _File = ...) -> tuple[str, _list[tuple[int, dict[str, str]]]]: ...
74     def over(
75         self, message_spec: None | str | _list[Any] | Tuple[Any, ...], *, file: _File = ...
76     ) -> tuple[str, _list[tuple[int, dict[str, str]]]]: ...
77     if sys.version_info < (3, 9):
78         def xgtitle(self, group: str, *, file: _File = ...) -> tuple[str, _list[tuple[str, str]]]: ...
79         def xpath(self, id: Any) -> tuple[str, str]: ...
80     def date(self) -> tuple[str, datetime.datetime]: ...
81     def post(self, data: bytes | Iterable[bytes]) -> str: ...
82     def ihave(self, message_id: Any, data: bytes | Iterable[bytes]) -> str: ...
83     def quit(self) -> str: ...
84     def login(self, user: str | None = ..., password: str | None = ..., usenetrc: bool = ...) -> None: ...
85     def starttls(self, context: ssl.SSLContext | None = ...) -> None: ...
86
87 class NNTP(_NNTPBase):
88     port: int
89     sock: socket.socket
90     def __init__(
91         self,
92         host: str,
93         port: int = ...,
94         user: str | None = ...,
95         password: str | None = ...,
96         readermode: bool | None = ...,
97         usenetrc: bool = ...,
98         timeout: float = ...,
99     ) -> None: ...
100
101 class NNTP_SSL(_NNTPBase):
102     sock: socket.socket
103     def __init__(
104         self,
105         host: str,
106         port: int = ...,
107         user: str | None = ...,
108         password: str | None = ...,
109         ssl_context: ssl.SSLContext | None = ...,
110         readermode: bool | None = ...,
111         usenetrc: bool = ...,
112         timeout: float = ...,
113     ) -> None: ...