From: Oto Šťáva Date: Mon, 5 Feb 2024 16:38:18 +0000 (+0100) Subject: manager: get rid of old linters and clean-up some warnings X-Git-Tag: v6.0.7~22^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=94031a502fb159dfbd0ddaa37dd9b0ddd9d7319b;p=thirdparty%2Fknot-resolver.git manager: get rid of old linters and clean-up some warnings Removes references to pyright, which is not in use anymore. Also removes warning suppressions and instead properly resolves the warnings. --- diff --git a/manager/knot_resolver_manager/cli/command.py b/manager/knot_resolver_manager/cli/command.py index f89174175..ba490e47e 100644 --- a/manager/knot_resolver_manager/cli/command.py +++ b/manager/knot_resolver_manager/cli/command.py @@ -58,7 +58,7 @@ def get_socket_from_config(config: Path, optional_file: bool) -> Optional[Socket ) return None except ValueError as e: - raise DataValidationError(*e.args) + raise DataValidationError(*e.args) from e except OSError as e: if not optional_file: raise e diff --git a/manager/knot_resolver_manager/compat/asyncio.py b/manager/knot_resolver_manager/compat/asyncio.py index 9362db3fd..d98f06c16 100644 --- a/manager/knot_resolver_manager/compat/asyncio.py +++ b/manager/knot_resolver_manager/compat/asyncio.py @@ -2,15 +2,6 @@ # # pylint: disable=no-member -# We disable pyright checks because it can't find method that don't exist in this Python version -# so the reported error is correct, but due to the version checking conditions, it never happens. -# Due to backporting, we are also using private methods and non-existent members of classes -# -# pyright: reportUnknownMemberType=false -# pyright: reportUnknownVariableType=false -# pyright: reportGeneralTypeIssues=false -# pyright: reportPrivateUsage=false - import asyncio import functools import logging diff --git a/manager/knot_resolver_manager/datamodel/config_schema.py b/manager/knot_resolver_manager/datamodel/config_schema.py index 3383ad3aa..8aa99446c 100644 --- a/manager/knot_resolver_manager/datamodel/config_schema.py +++ b/manager/knot_resolver_manager/datamodel/config_schema.py @@ -159,7 +159,7 @@ class KresConfig(ConfigSchema): # FIXME the `cwd` argument is used only for configuring control socket path # it should be removed and relative path used instead as soon as issue # https://gitlab.nic.cz/knot/knot-resolver/-/issues/720 is fixed - return MAIN_TEMPLATE.render(cfg=self, cwd=os.getcwd()) # pyright: reportUnknownMemberType=false + return MAIN_TEMPLATE.render(cfg=self, cwd=os.getcwd()) def get_rundir_without_validation(data: Dict[str, Any]) -> Dir: diff --git a/manager/knot_resolver_manager/datamodel/types/types.py b/manager/knot_resolver_manager/datamodel/types/types.py index 19bc75bb2..505b0be76 100644 --- a/manager/knot_resolver_manager/datamodel/types/types.py +++ b/manager/knot_resolver_manager/datamodel/types/types.py @@ -147,11 +147,11 @@ class DomainName(StrBase): super().__init__(source_value, object_path) try: punycode = self._value.encode("idna").decode("utf-8") if self._value != "." else "." - except ValueError: + except ValueError as e: raise ValueError( f"conversion of '{self._value}' to IDN punycode representation failed", object_path, - ) + ) from e if type(self)._re.match(punycode): self._punycode = punycode diff --git a/manager/knot_resolver_manager/kresd_controller/supervisord/config_file.py b/manager/knot_resolver_manager/kresd_controller/supervisord/config_file.py index 08450739b..fab0a1430 100644 --- a/manager/knot_resolver_manager/kresd_controller/supervisord/config_file.py +++ b/manager/knot_resolver_manager/kresd_controller/supervisord/config_file.py @@ -32,7 +32,7 @@ class SupervisordKresID(KresID): @staticmethod def from_string(val: str) -> "SupervisordKresID": - if val == "cache-gc" or val == "cache-gc:cache-gc": + if val in ("cache-gc", "cache-gc:cache-gc"): # the double name is checked because thats how we read it from supervisord return SupervisordKresID.new(SubprocessType.GC, 0) else: @@ -170,7 +170,7 @@ async def write_config_file(config: KresConfig) -> None: template = await read_resource(__package__, "supervisord.conf.j2") assert template is not None template = template.decode("utf8") - config_string = Template(template).render( # pyright: reportUnknownMemberType=false + config_string = Template(template).render( gc=ProcessTypeConfig.create_gc_config(config), kresd=ProcessTypeConfig.create_kresd_config(config), manager=ProcessTypeConfig.create_manager_config(config), diff --git a/manager/knot_resolver_manager/server.py b/manager/knot_resolver_manager/server.py index 6834e70fb..a6fc408d0 100644 --- a/manager/knot_resolver_manager/server.py +++ b/manager/knot_resolver_manager/server.py @@ -432,7 +432,7 @@ def _set_working_directory(config_raw: Dict[str, Any]) -> None: try: rundir = get_rundir_without_validation(config_raw) except ValueError as e: - raise DataValidationError(str(e), "/rundir") + raise DataValidationError(str(e), "/rundir") from e logger.debug(f"Changing working directory to '{rundir.to_path().absolute()}'.") os.chdir(rundir.to_path()) @@ -457,12 +457,12 @@ def _lock_working_directory(attempt: int = 0) -> None: raise KresManagerException( "Another manager is running in the same working directory." f" PID file is located at {os.getcwd()}/{PID_FILE_NAME}" - ) + ) from e else: raise KresManagerException( "Another manager is running in the same working directory." f" PID file is located at {os.getcwd()}/{PID_FILE_NAME}" - ) + ) from e # now we know that we are the only manager running in this directory diff --git a/manager/knot_resolver_manager/utils/__init__.py b/manager/knot_resolver_manager/utils/__init__.py index 062b740dc..edc36fcad 100644 --- a/manager/knot_resolver_manager/utils/__init__.py +++ b/manager/knot_resolver_manager/utils/__init__.py @@ -22,10 +22,10 @@ def ignore_exceptions_optional( try: return func(*nargs, **nkwargs) except BaseException as e: - if isinstance(e, exceptions): # pyright: reportUnnecessaryIsInstance=false + if isinstance(e, exceptions): return default else: - raise e # pyright: reportGeneralTypeIssues=false + raise e return f diff --git a/manager/knot_resolver_manager/utils/modeling/base_schema.py b/manager/knot_resolver_manager/utils/modeling/base_schema.py index 06a6cc22b..78fe187af 100644 --- a/manager/knot_resolver_manager/utils/modeling/base_schema.py +++ b/manager/knot_resolver_manager/utils/modeling/base_schema.py @@ -521,7 +521,7 @@ class ObjectMapper: try: default = self._create_default(getattr(cls, name, None)) except ValueError as e: - raise DataValidationError(str(e), f"{object_path}/{name}") + raise DataValidationError(str(e), f"{object_path}/{name}") from e value = self.map_object(python_type, default, object_path=f"{object_path}/{name}") setattr(obj, name, value) diff --git a/manager/knot_resolver_manager/utils/modeling/json_pointer.py b/manager/knot_resolver_manager/utils/modeling/json_pointer.py index adbfa36d8..6d7c9e397 100644 --- a/manager/knot_resolver_manager/utils/modeling/json_pointer.py +++ b/manager/knot_resolver_manager/utils/modeling/json_pointer.py @@ -69,10 +69,10 @@ class _JSONPtr: try: token = int(token) current = current[token] - except ValueError: + except ValueError as e: raise ValueError( f"invalid JSON pointer: list '{current_ptr}' require numbers as keys, instead got '{token}'" - ) + ) from e elif isinstance(current, dict): current = current.get(token, None) diff --git a/manager/knot_resolver_manager/utils/modeling/parsing.py b/manager/knot_resolver_manager/utils/modeling/parsing.py index aaac68077..185a53a13 100644 --- a/manager/knot_resolver_manager/utils/modeling/parsing.py +++ b/manager/knot_resolver_manager/utils/modeling/parsing.py @@ -39,7 +39,7 @@ class _RaiseDuplicatesLoader(yaml.SafeLoader): node.start_mark, f"found unacceptable key ({exc})", key_node.start_mark, - ) + ) from exc # check for duplicate keys if key in mapping: @@ -92,4 +92,8 @@ def try_to_parse(data: str) -> Any: try: return parse_yaml(data) except yaml.YAMLError as ye: - raise DataParsingError(f"failed to parse data, JSON: {je}, YAML: {ye}") + # We do not raise-from here because there are two possible causes + # and we may not know which one is the actual one. + raise DataParsingError( # pylint: disable=raise-missing-from + f"failed to parse data, JSON: {je}, YAML: {ye}" + ) diff --git a/manager/pyproject.toml b/manager/pyproject.toml index 4d220a7bd..b5445f266 100644 --- a/manager/pyproject.toml +++ b/manager/pyproject.toml @@ -129,22 +129,16 @@ disable= [ "missing-docstring", "no-else-return", "no-self-use", - "raise-missing-from", "too-few-public-methods", "unused-import", # checked by flake8, - "bad-continuation", # conflicts with black - "consider-using-in", # pyright can't see through in expressions, "too-many-return-statements", # would prevent us from using recursive tree traversals "logging-fstring-interpolation", # see https://github.com/PyCQA/pylint/issues/1788 "no-else-raise", # not helpful for readability, when we want explicit branches "raising-bad-type", # handled by type checker "too-many-arguments", # sure, but how can we change the signatures to take less arguments? artificially create objects with arguments? That's stupid... - "no-member", # checked by pyright - "import-error", # checked by pyright (and pylint does not do it properly) - "unsupported-delete-operation", # checked by pyright - "unsubscriptable-object", # checked by pyright - "unsupported-membership-test", # checked by pyright "invalid-overridden-method", # hopefully checked by type checkers + "no-member", # pylint does not do it properly + "import-error", # pylint does not do it properly ] [tool.pylint.SIMILARITIES] @@ -156,14 +150,6 @@ ignore-imports = "yes" [tool.pylint.DESIGN] max-parents = "10" -[tool.pyright] -include = [ - "knot_resolver_manager", - "tests" -] -exclude = [] -typeCheckingMode = "strict" - [tool.mypy] python_version = "3.7" # strict = true diff --git a/manager/typings/READMEmd b/manager/typings/READMEmd deleted file mode 100644 index 2e2c88bbd..000000000 --- a/manager/typings/READMEmd +++ /dev/null @@ -1,8 +0,0 @@ -# Type stubs - -See (pyright documentation)[https://github.com/microsoft/pyright/blob/master/docs/type-stubs.md] - -Generate stubs using this command (replacing `jinja2` for an appropriate package): -``` -poetry run yarn pyright --createstub jinja2 -``` \ No newline at end of file diff --git a/manager/typings/pytest/__init__.pyi b/manager/typings/pytest/__init__.pyi deleted file mode 100644 index 1a485dd4f..000000000 --- a/manager/typings/pytest/__init__.pyi +++ /dev/null @@ -1,36 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from _pytest import __version__ -from _pytest.assertion import register_assert_rewrite -from _pytest.compat import _setup_collect_fakemodule -from _pytest.config import ExitCode, UsageError, cmdline, hookimpl, hookspec, main -from _pytest.debugging import pytestPDB as __pytestPDB -from _pytest.fixtures import fillfixtures as _fillfuncargs -from _pytest.fixtures import fixture, yield_fixture -from _pytest.freeze_support import freeze_includes -from _pytest.main import Session -from _pytest.mark import MARK_GEN as mark -from _pytest.mark import param -from _pytest.nodes import Collector, File, Item -from _pytest.outcomes import exit, fail, importorskip, skip, xfail -from _pytest.python import Class, Function, Instance, Module, Package -from _pytest.python_api import approx, raises -from _pytest.recwarn import deprecated_call, warns -from _pytest.warning_types import ( - PytestAssertRewriteWarning, - PytestCacheWarning, - PytestCollectionWarning, - PytestConfigWarning, - PytestDeprecationWarning, - PytestExperimentalApiWarning, - PytestUnhandledCoroutineWarning, - PytestUnknownMarkWarning, - PytestWarning, -) - -""" -pytest: unit and functional testing with Python. -""" -set_trace = ... diff --git a/manager/typings/pytest/__main__.pyi b/manager/typings/pytest/__main__.pyi deleted file mode 100644 index de3c14cad..000000000 --- a/manager/typings/pytest/__main__.pyi +++ /dev/null @@ -1,9 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -""" -pytest entry point -""" -if __name__ == "__main__": - ... diff --git a/manager/typings/supervisor/__init__.pyi b/manager/typings/supervisor/__init__.pyi deleted file mode 100644 index cea7ef962..000000000 --- a/manager/typings/supervisor/__init__.pyi +++ /dev/null @@ -1,3 +0,0 @@ -""" -This type stub file was generated by pyright. -""" diff --git a/manager/typings/supervisor/childutils.pyi b/manager/typings/supervisor/childutils.pyi deleted file mode 100644 index 7845a5afc..000000000 --- a/manager/typings/supervisor/childutils.pyi +++ /dev/null @@ -1,51 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -def getRPCTransport(env): # -> SupervisorTransport: - ... - -def getRPCInterface(env): - ... - -def get_headers(line): # -> dict[Unknown, Unknown]: - ... - -def eventdata(payload): # -> tuple[dict[Unknown, Unknown], Unknown]: - ... - -def get_asctime(now=...): # -> str: - ... - -class ProcessCommunicationsProtocol: - def send(self, msg, fp=...): # -> None: - ... - - def stdout(self, msg): # -> None: - ... - - def stderr(self, msg): # -> None: - ... - - - -pcomm = ... -class EventListenerProtocol: - def wait(self, stdin=..., stdout=...): # -> tuple[dict[Unknown, Unknown], Unknown]: - ... - - def ready(self, stdout=...): # -> None: - ... - - def ok(self, stdout=...): # -> None: - ... - - def fail(self, stdout=...): # -> None: - ... - - def send(self, data, stdout=...): # -> None: - ... - - - -listener = ... diff --git a/manager/typings/supervisor/compat.pyi b/manager/typings/supervisor/compat.pyi deleted file mode 100644 index 72fc9a435..000000000 --- a/manager/typings/supervisor/compat.pyi +++ /dev/null @@ -1,39 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -PY2 = ... -if PY2: - long = ... - raw_input = ... - unicode = ... - unichr = ... - basestring = ... - def as_bytes(s, encoding=...): # -> str: - ... - - def as_string(s, encoding=...): # -> unicode: - ... - - def is_text_stream(stream): # -> bool: - ... - -else: - long = ... - basestring = ... - raw_input = ... - unichr = ... - class unicode(str): - def __init__(self, string, encoding, errors) -> None: - ... - - - - def as_bytes(s, encoding=...): # -> bytes: - ... - - def as_string(s, encoding=...): # -> str: - ... - - def is_text_stream(stream): # -> bool: - ... diff --git a/manager/typings/supervisor/confecho.pyi b/manager/typings/supervisor/confecho.pyi deleted file mode 100644 index 9cd6e68a1..000000000 --- a/manager/typings/supervisor/confecho.pyi +++ /dev/null @@ -1,6 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -def main(out=...): # -> None: - ... diff --git a/manager/typings/supervisor/datatypes.pyi b/manager/typings/supervisor/datatypes.pyi deleted file mode 100644 index 5ef53bc4b..000000000 --- a/manager/typings/supervisor/datatypes.pyi +++ /dev/null @@ -1,199 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -def process_or_group_name(name): # -> str: - """Ensures that a process or group name is not created with - characters that break the eventlistener protocol or web UI URLs""" - ... - -def integer(value): # -> int: - ... - -TRUTHY_STRINGS = ... -FALSY_STRINGS = ... -def boolean(s): # -> bool: - """Convert a string value to a boolean value.""" - ... - -def list_of_strings(arg): # -> list[Unknown]: - ... - -def list_of_ints(arg): # -> list[int]: - ... - -def list_of_exitcodes(arg): # -> list[int]: - ... - -def dict_of_key_value_pairs(arg): # -> dict[Unknown, Unknown]: - """ parse KEY=val,KEY2=val2 into {'KEY':'val', 'KEY2':'val2'} - Quotes can be used to allow commas in the value - """ - ... - -class Automatic: - ... - - -class Syslog: - """TODO deprecated; remove this special 'syslog' filename in the future""" - ... - - -LOGFILE_NONES = ... -LOGFILE_AUTOS = ... -LOGFILE_SYSLOGS = ... -def logfile_name(val): # -> Type[Automatic] | Type[Syslog] | None: - ... - -class RangeCheckedConversion: - """Conversion helper that range checks another conversion.""" - def __init__(self, conversion, min=..., max=...) -> None: - ... - - def __call__(self, value): - ... - - - -port_number = ... -def inet_address(s): # -> tuple[Unknown | Literal[''], Unknown]: - ... - -class SocketAddress: - def __init__(self, s) -> None: - ... - - - -class SocketConfig: - """ Abstract base class which provides a uniform abstraction - for TCP vs Unix sockets """ - url = ... - addr = ... - backlog = ... - def __repr__(self): # -> str: - ... - - def __str__(self) -> str: - ... - - def __eq__(self, other) -> bool: - ... - - def __ne__(self, other) -> bool: - ... - - def get_backlog(self): # -> None: - ... - - def addr(self): - ... - - def create_and_bind(self): - ... - - - -class InetStreamSocketConfig(SocketConfig): - """ TCP socket config helper """ - host = ... - port = ... - def __init__(self, host, port, **kwargs) -> None: - ... - - def addr(self): # -> tuple[Unknown | None, Unknown | None]: - ... - - def create_and_bind(self): # -> socket: - ... - - - -class UnixStreamSocketConfig(SocketConfig): - """ Unix domain socket config helper """ - path = ... - mode = ... - owner = ... - sock = ... - def __init__(self, path, **kwargs) -> None: - ... - - def addr(self): # -> Unknown | None: - ... - - def create_and_bind(self): # -> socket: - ... - - def get_mode(self): # -> None: - ... - - def get_owner(self): # -> None: - ... - - - -def colon_separated_user_group(arg): # -> tuple[int, int]: - """ Find a user ID and group ID from a string like 'user:group'. Returns - a tuple (uid, gid). If the string only contains a user like 'user' - then (uid, -1) will be returned. Raises ValueError if either - the user or group can't be resolved to valid IDs on the system. """ - ... - -def name_to_uid(name): # -> int: - """ Find a user ID from a string containing a user name or ID. - Raises ValueError if the string can't be resolved to a valid - user ID on the system. """ - ... - -def name_to_gid(name): # -> int: - """ Find a group ID from a string containing a group name or ID. - Raises ValueError if the string can't be resolved to a valid - group ID on the system. """ - ... - -def gid_for_uid(uid): # -> int: - ... - -def octal_type(arg): # -> int: - ... - -def existing_directory(v): - ... - -def existing_dirpath(v): - ... - -def logging_level(value): # -> Any: - ... - -class SuffixMultiplier: - def __init__(self, d, default=...) -> None: - ... - - def __call__(self, v): # -> int: - ... - - - -byte_size = ... -def url(value): - ... - -SIGNUMS = ... -def signal_number(value): # -> int | Any: - ... - -class RestartWhenExitUnexpected: - ... - - -class RestartUnconditionally: - ... - - -def auto_restart(value): # -> Type[RestartUnconditionally] | Type[RestartWhenExitUnexpected] | str | Literal[False]: - ... - -def profile_options(value): # -> tuple[list[Unknown], bool]: - ... diff --git a/manager/typings/supervisor/dispatchers.pyi b/manager/typings/supervisor/dispatchers.pyi deleted file mode 100644 index dfeff5c4d..000000000 --- a/manager/typings/supervisor/dispatchers.pyi +++ /dev/null @@ -1,158 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -def find_prefix_at_end(haystack, needle): # -> int: - ... - -class PDispatcher: - """ Asyncore dispatcher for mainloop, representing a process channel - (stdin, stdout, or stderr). This class is abstract. """ - closed = ... - def __init__(self, process, channel, fd) -> None: - ... - - def __repr__(self): # -> str: - ... - - def readable(self): - ... - - def writable(self): - ... - - def handle_read_event(self): - ... - - def handle_write_event(self): - ... - - def handle_error(self): # -> None: - ... - - def close(self): # -> None: - ... - - def flush(self): # -> None: - ... - - - -class POutputDispatcher(PDispatcher): - """ - Dispatcher for one channel (stdout or stderr) of one process. - Serves several purposes: - - - capture output sent within and - tags and signal a ProcessCommunicationEvent - by calling notify(event). - - route the output to the appropriate log handlers as specified in the - config. - """ - childlog = ... - normallog = ... - capturelog = ... - capturemode = ... - output_buffer = ... - def __init__(self, process, event_type, fd) -> None: - """ - Initialize the dispatcher. - - `event_type` should be one of ProcessLogStdoutEvent or - ProcessLogStderrEvent - """ - ... - - def removelogs(self): # -> None: - ... - - def reopenlogs(self): # -> None: - ... - - def record_output(self): # -> None: - ... - - def toggle_capturemode(self): # -> None: - ... - - def writable(self): # -> Literal[False]: - ... - - def readable(self): # -> bool: - ... - - def handle_read_event(self): # -> None: - ... - - - -class PEventListenerDispatcher(PDispatcher): - """ An output dispatcher that monitors and changes a process' - listener_state """ - childlog = ... - state_buffer = ... - READY_FOR_EVENTS_TOKEN = ... - RESULT_TOKEN_START = ... - READY_FOR_EVENTS_LEN = ... - RESULT_TOKEN_START_LEN = ... - def __init__(self, process, channel, fd) -> None: - ... - - def removelogs(self): # -> None: - ... - - def reopenlogs(self): # -> None: - ... - - def writable(self): # -> Literal[False]: - ... - - def readable(self): # -> bool: - ... - - def handle_read_event(self): # -> None: - ... - - def handle_listener_state_change(self): # -> None: - ... - - def handle_result(self, result): # -> None: - ... - - - -class PInputDispatcher(PDispatcher): - """ Input (stdin) dispatcher """ - def __init__(self, process, channel, fd) -> None: - ... - - def writable(self): # -> bool: - ... - - def readable(self): # -> Literal[False]: - ... - - def flush(self): # -> None: - ... - - def handle_write_event(self): # -> None: - ... - - - -ANSI_ESCAPE_BEGIN = ... -ANSI_TERMINATORS = ... -def stripEscapes(s): # -> Literal[b'']: - """ - Remove all ANSI color escapes from the given string. - """ - ... - -class RejectEvent(Exception): - """ The exception type expected by a dispatcher when a handler wants - to reject an event """ - ... - - -def default_handler(event, response): # -> None: - ... diff --git a/manager/typings/supervisor/events.pyi b/manager/typings/supervisor/events.pyi deleted file mode 100644 index 85c666225..000000000 --- a/manager/typings/supervisor/events.pyi +++ /dev/null @@ -1,227 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -callbacks = ... -def subscribe(type, callback): # -> None: - ... - -def unsubscribe(type, callback): # -> None: - ... - -def notify(event): # -> None: - ... - -def clear(): # -> None: - ... - -class Event: - """ Abstract event type """ - ... - - -class ProcessLogEvent(Event): - """ Abstract """ - channel = ... - def __init__(self, process, pid, data) -> None: - ... - - def payload(self): # -> str: - ... - - - -class ProcessLogStdoutEvent(ProcessLogEvent): - channel = ... - - -class ProcessLogStderrEvent(ProcessLogEvent): - channel = ... - - -class ProcessCommunicationEvent(Event): - """ Abstract """ - BEGIN_TOKEN = ... - END_TOKEN = ... - def __init__(self, process, pid, data) -> None: - ... - - def payload(self): # -> str: - ... - - - -class ProcessCommunicationStdoutEvent(ProcessCommunicationEvent): - channel = ... - - -class ProcessCommunicationStderrEvent(ProcessCommunicationEvent): - channel = ... - - -class RemoteCommunicationEvent(Event): - def __init__(self, type, data) -> None: - ... - - def payload(self): # -> str: - ... - - - -class SupervisorStateChangeEvent(Event): - """ Abstract class """ - def payload(self): # -> Literal['']: - ... - - - -class SupervisorRunningEvent(SupervisorStateChangeEvent): - ... - - -class SupervisorStoppingEvent(SupervisorStateChangeEvent): - ... - - -class EventRejectedEvent: - def __init__(self, process, event) -> None: - ... - - - -class ProcessStateEvent(Event): - """ Abstract class, never raised directly """ - frm = ... - to = ... - def __init__(self, process, from_state, expected=...) -> None: - ... - - def payload(self): # -> str: - ... - - def get_extra_values(self): # -> list[Unknown]: - ... - - - -class ProcessStateFatalEvent(ProcessStateEvent): - ... - - -class ProcessStateUnknownEvent(ProcessStateEvent): - ... - - -class ProcessStateStartingOrBackoffEvent(ProcessStateEvent): - def get_extra_values(self): # -> list[tuple[Literal['tries'], int]]: - ... - - - -class ProcessStateBackoffEvent(ProcessStateStartingOrBackoffEvent): - ... - - -class ProcessStateStartingEvent(ProcessStateStartingOrBackoffEvent): - ... - - -class ProcessStateExitedEvent(ProcessStateEvent): - def get_extra_values(self): # -> list[tuple[Literal['expected'], int] | tuple[Literal['pid'], Unknown]]: - ... - - - -class ProcessStateRunningEvent(ProcessStateEvent): - def get_extra_values(self): # -> list[tuple[Literal['pid'], Unknown]]: - ... - - - -class ProcessStateStoppingEvent(ProcessStateEvent): - def get_extra_values(self): # -> list[tuple[Literal['pid'], Unknown]]: - ... - - - -class ProcessStateStoppedEvent(ProcessStateEvent): - def get_extra_values(self): # -> list[tuple[Literal['pid'], Unknown]]: - ... - - - -class ProcessGroupEvent(Event): - def __init__(self, group) -> None: - ... - - def payload(self): # -> str: - ... - - - -class ProcessGroupAddedEvent(ProcessGroupEvent): - ... - - -class ProcessGroupRemovedEvent(ProcessGroupEvent): - ... - - -class TickEvent(Event): - """ Abstract """ - def __init__(self, when, supervisord) -> None: - ... - - def payload(self): # -> str: - ... - - - -class Tick5Event(TickEvent): - period = ... - - -class Tick60Event(TickEvent): - period = ... - - -class Tick3600Event(TickEvent): - period = ... - - -TICK_EVENTS = ... -class EventTypes: - EVENT = Event - PROCESS_STATE = ProcessStateEvent - PROCESS_STATE_STOPPED = ProcessStateStoppedEvent - PROCESS_STATE_EXITED = ProcessStateExitedEvent - PROCESS_STATE_STARTING = ProcessStateStartingEvent - PROCESS_STATE_STOPPING = ProcessStateStoppingEvent - PROCESS_STATE_BACKOFF = ProcessStateBackoffEvent - PROCESS_STATE_FATAL = ProcessStateFatalEvent - PROCESS_STATE_RUNNING = ProcessStateRunningEvent - PROCESS_STATE_UNKNOWN = ProcessStateUnknownEvent - PROCESS_COMMUNICATION = ProcessCommunicationEvent - PROCESS_COMMUNICATION_STDOUT = ProcessCommunicationStdoutEvent - PROCESS_COMMUNICATION_STDERR = ProcessCommunicationStderrEvent - PROCESS_LOG = ProcessLogEvent - PROCESS_LOG_STDOUT = ProcessLogStdoutEvent - PROCESS_LOG_STDERR = ProcessLogStderrEvent - REMOTE_COMMUNICATION = RemoteCommunicationEvent - SUPERVISOR_STATE_CHANGE = SupervisorStateChangeEvent - SUPERVISOR_STATE_CHANGE_RUNNING = SupervisorRunningEvent - SUPERVISOR_STATE_CHANGE_STOPPING = SupervisorStoppingEvent - TICK = TickEvent - TICK_5 = Tick5Event - TICK_60 = Tick60Event - TICK_3600 = Tick3600Event - PROCESS_GROUP = ProcessGroupEvent - PROCESS_GROUP_ADDED = ProcessGroupAddedEvent - PROCESS_GROUP_REMOVED = ProcessGroupRemovedEvent - - -def getEventNameByType(requested): # -> str | None: - ... - -def register(name, event): # -> None: - ... diff --git a/manager/typings/supervisor/http.pyi b/manager/typings/supervisor/http.pyi deleted file mode 100644 index 4f0503f35..000000000 --- a/manager/typings/supervisor/http.pyi +++ /dev/null @@ -1,216 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from supervisor.medusa import http_server -from supervisor.medusa.auth_handler import auth_handler - -class NOT_DONE_YET: - ... - - -class deferring_chunked_producer: - """A producer that implements the 'chunked' transfer coding for HTTP/1.1. - Here is a sample usage: - request['Transfer-Encoding'] = 'chunked' - request.push ( - producers.chunked_producer (your_producer) - ) - request.done() - """ - def __init__(self, producer, footers=...) -> None: - ... - - def more(self): # -> Type[NOT_DONE_YET] | bytes: - ... - - - -class deferring_composite_producer: - """combine a fifo of producers into one""" - def __init__(self, producers) -> None: - ... - - def more(self): # -> Type[NOT_DONE_YET] | Literal[b'']: - ... - - - -class deferring_globbing_producer: - """ - 'glob' the output from a producer into a particular buffer size. - helps reduce the number of calls to send(). [this appears to - gain about 30% performance on requests to a single channel] - """ - def __init__(self, producer, buffer_size=...) -> None: - ... - - def more(self): # -> Type[NOT_DONE_YET] | bytes: - ... - - - -class deferring_hooked_producer: - """ - A producer that will call when it empties,. - with an argument of the number of bytes produced. Useful - for logging/instrumentation purposes. - """ - def __init__(self, producer, function) -> None: - ... - - def more(self): # -> Type[NOT_DONE_YET] | Literal[b'']: - ... - - - -class deferring_http_request(http_server.http_request): - """ The medusa http_request class uses the default set of producers in - medusa.producers. We can't use these because they don't know anything - about deferred responses, so we override various methods here. This was - added to support tail -f like behavior on the logtail handler """ - def done(self, *arg, **kw): # -> None: - """ I didn't want to override this, but there's no way around - it in order to support deferreds - CM - - finalize this transaction - send output to the http channel""" - ... - - def log(self, bytes): # -> None: - """ We need to override this because UNIX domain sockets return - an empty string for the addr rather than a (host, port) combination """ - ... - - def cgi_environment(self): # -> dict[Unknown, Unknown]: - ... - - def get_server_url(self): # -> str: - """ Functionality that medusa's http request doesn't have; set an - attribute named 'server_url' on the request based on the Host: header - """ - ... - - - -class deferring_http_channel(http_server.http_channel): - ac_out_buffer_size = ... - delay = ... - last_writable_check = ... - def writable(self, now=...): # -> bool: - ... - - def refill_buffer(self): # -> None: - """ Implement deferreds """ - ... - - def found_terminator(self): # -> None: - """ We only override this to use 'deferring_http_request' class - instead of the normal http_request class; it sucks to need to override - this """ - ... - - - -class supervisor_http_server(http_server.http_server): - channel_class = deferring_http_channel - ip = ... - def prebind(self, sock, logger_object): # -> None: - """ Override __init__ to do logger setup earlier so it can - go to our logger object instead of stdout """ - ... - - def postbind(self): # -> None: - ... - - def log_info(self, message, type=...): # -> None: - ... - - - -class supervisor_af_inet_http_server(supervisor_http_server): - """ AF_INET version of supervisor HTTP server """ - def __init__(self, ip, port, logger_object) -> None: - ... - - - -class supervisor_af_unix_http_server(supervisor_http_server): - """ AF_UNIX version of supervisor HTTP server """ - def __init__(self, socketname, sockchmod, sockchown, logger_object) -> None: - ... - - def checkused(self, socketname): # -> bool: - ... - - - -class tail_f_producer: - def __init__(self, request, filename, head) -> None: - ... - - def __del__(self): # -> None: - ... - - def more(self): # -> bytes | Type[NOT_DONE_YET] | Literal['''==> File truncated <== -''']: - ... - - - -class logtail_handler: - IDENT = ... - path = ... - def __init__(self, supervisord) -> None: - ... - - def match(self, request): - ... - - def handle_request(self, request): # -> None: - ... - - - -class mainlogtail_handler: - IDENT = ... - path = ... - def __init__(self, supervisord) -> None: - ... - - def match(self, request): - ... - - def handle_request(self, request): # -> None: - ... - - - -def make_http_servers(options, supervisord): # -> list[Unknown]: - ... - -class LogWrapper: - '''Receives log messages from the Medusa servers and forwards - them to the Supervisor logger''' - def __init__(self, logger) -> None: - ... - - def log(self, msg): # -> None: - '''Medusa servers call this method. There is no log level so - we have to sniff the message. We want "Server Error" messages - from medusa.http_server logged as errors at least.''' - ... - - - -class encrypted_dictionary_authorizer: - def __init__(self, dict) -> None: - ... - - def authorize(self, auth_info): # -> Literal[False]: - ... - - - -class supervisor_auth_handler(auth_handler): - def __init__(self, dict, handler, realm=...) -> None: - ... diff --git a/manager/typings/supervisor/http_client.pyi b/manager/typings/supervisor/http_client.pyi deleted file mode 100644 index 94dcd828d..000000000 --- a/manager/typings/supervisor/http_client.pyi +++ /dev/null @@ -1,84 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from supervisor.medusa import asynchat_25 as asynchat - -CR = ... -LF = ... -CRLF = ... -class Listener: - def status(self, url, status): # -> None: - ... - - def error(self, url, error): # -> None: - ... - - def response_header(self, url, name, value): # -> None: - ... - - def done(self, url): # -> None: - ... - - def feed(self, url, data): # -> None: - ... - - def close(self, url): # -> None: - ... - - - -class HTTPHandler(asynchat.async_chat): - def __init__(self, listener, username=..., password=..., conn=..., map=...) -> None: - ... - - def get(self, serverurl, path=...): # -> None: - ... - - def close(self): # -> None: - ... - - def header(self, name, value): # -> None: - ... - - def handle_error(self): # -> None: - ... - - def handle_connect(self): # -> None: - ... - - def feed(self, data): # -> None: - ... - - def collect_incoming_data(self, bytes): # -> None: - ... - - def found_terminator(self): # -> None: - ... - - def ignore(self): # -> None: - ... - - def status_line(self): # -> tuple[bytes | Unknown, int, bytes | Unknown]: - ... - - def headers(self): # -> None: - ... - - def response_header(self, name, value): # -> None: - ... - - def body(self): # -> None: - ... - - def done(self): # -> None: - ... - - def chunked_size(self): # -> None: - ... - - def chunked_body(self): # -> None: - ... - - def trailer(self): # -> None: - ... diff --git a/manager/typings/supervisor/loggers.pyi b/manager/typings/supervisor/loggers.pyi deleted file mode 100644 index b46f2336a..000000000 --- a/manager/typings/supervisor/loggers.pyi +++ /dev/null @@ -1,233 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -""" -Logger implementation loosely modeled on PEP 282. We don't use the -PEP 282 logger implementation in the stdlib ('logging') because it's -idiosyncratic and a bit slow for our purposes (we don't use threads). -""" -class LevelsByName: - CRIT = ... - ERRO = ... - WARN = ... - INFO = ... - DEBG = ... - TRAC = ... - BLAT = ... - - -class LevelsByDescription: - critical = ... - error = ... - warn = ... - info = ... - debug = ... - trace = ... - blather = ... - - -LOG_LEVELS_BY_NUM = ... -def getLevelNumByDescription(description): # -> Any | None: - ... - -class Handler: - fmt = ... - level = ... - def __init__(self, stream=...) -> None: - ... - - def setFormat(self, fmt): # -> None: - ... - - def setLevel(self, level): # -> None: - ... - - def flush(self): # -> None: - ... - - def close(self): # -> None: - ... - - def emit(self, record): # -> None: - ... - - def handleError(self): # -> None: - ... - - - -class StreamHandler(Handler): - def __init__(self, strm=...) -> None: - ... - - def remove(self): # -> None: - ... - - def reopen(self): # -> None: - ... - - - -class BoundIO: - def __init__(self, maxbytes, buf=...) -> None: - ... - - def flush(self): # -> None: - ... - - def close(self): # -> None: - ... - - def write(self, b): # -> None: - ... - - def getvalue(self): # -> Unknown | bytes: - ... - - def clear(self): # -> None: - ... - - - -class FileHandler(Handler): - """File handler which supports reopening of logs. - """ - def __init__(self, filename, mode=...) -> None: - ... - - def reopen(self): # -> None: - ... - - def remove(self): # -> None: - ... - - - -class RotatingFileHandler(FileHandler): - def __init__(self, filename, mode=..., maxBytes=..., backupCount=...) -> None: - """ - Open the specified file and use it as the stream for logging. - - By default, the file grows indefinitely. You can specify particular - values of maxBytes and backupCount to allow the file to rollover at - a predetermined size. - - Rollover occurs whenever the current log file is nearly maxBytes in - length. If backupCount is >= 1, the system will successively create - new files with the same pathname as the base file, but with extensions - ".1", ".2" etc. appended to it. For example, with a backupCount of 5 - and a base file name of "app.log", you would get "app.log", - "app.log.1", "app.log.2", ... through to "app.log.5". The file being - written to is always "app.log" - when it gets filled up, it is closed - and renamed to "app.log.1", and if files "app.log.1", "app.log.2" etc. - exist, then they are renamed to "app.log.2", "app.log.3" etc. - respectively. - - If maxBytes is zero, rollover never occurs. - """ - ... - - def emit(self, record): # -> None: - """ - Emit a record. - - Output the record to the file, catering for rollover as described - in doRollover(). - """ - ... - - def removeAndRename(self, sfn, dfn): # -> None: - ... - - def doRollover(self): # -> None: - """ - Do a rollover, as described in __init__(). - """ - ... - - - -class LogRecord: - def __init__(self, level, msg, **kw) -> None: - ... - - def asdict(self): # -> dict[str, str | Unknown]: - ... - - - -class Logger: - def __init__(self, level=..., handlers=...) -> None: - ... - - def close(self): # -> None: - ... - - def blather(self, msg, **kw): # -> None: - ... - - def trace(self, msg, **kw): # -> None: - ... - - def debug(self, msg, **kw): # -> None: - ... - - def info(self, msg, **kw): # -> None: - ... - - def warn(self, msg, **kw): # -> None: - ... - - def error(self, msg, **kw): # -> None: - ... - - def critical(self, msg, **kw): # -> None: - ... - - def log(self, level, msg, **kw): # -> None: - ... - - def addHandler(self, hdlr): # -> None: - ... - - def getvalue(self): - ... - - - -class SyslogHandler(Handler): - def __init__(self) -> None: - ... - - def close(self): # -> None: - ... - - def reopen(self): # -> None: - ... - - def emit(self, record): # -> None: - ... - - - -def getLogger(level=...): # -> Logger: - ... - -_2MB = ... -def handle_boundIO(logger, fmt, maxbytes=...): # -> None: - """Attach a new BoundIO handler to an existing Logger""" - ... - -def handle_stdout(logger, fmt): # -> None: - """Attach a new StreamHandler with stdout handler to an existing Logger""" - ... - -def handle_syslog(logger, fmt): # -> None: - """Attach a new Syslog handler to an existing Logger""" - ... - -def handle_file(logger, filename, fmt, rotating=..., maxbytes=..., backups=...): # -> None: - """Attach a new file handler to an existing Logger. If the filename - is the magic name of 'syslog' then make it a syslog handler instead.""" - ... diff --git a/manager/typings/supervisor/medusa/__init__.pyi b/manager/typings/supervisor/medusa/__init__.pyi deleted file mode 100644 index 2317f9a83..000000000 --- a/manager/typings/supervisor/medusa/__init__.pyi +++ /dev/null @@ -1,7 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -"""medusa.__init__ -""" -__revision__ = ... diff --git a/manager/typings/supervisor/medusa/asynchat_25.pyi b/manager/typings/supervisor/medusa/asynchat_25.pyi deleted file mode 100644 index c269d9003..000000000 --- a/manager/typings/supervisor/medusa/asynchat_25.pyi +++ /dev/null @@ -1,117 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from supervisor.medusa import asyncore_25 as asyncore - -r"""A class supporting chat-style (command/response) protocols. - -This class adds support for 'chat' style protocols - where one side -sends a 'command', and the other sends a response (examples would be -the common internet protocols - smtp, nntp, ftp, etc..). - -The handle_read() method looks at the input stream for the current -'terminator' (usually '\r\n' for single-line responses, '\r\n.\r\n' -for multi-line output), calling self.found_terminator() on its -receipt. - -for example: -Say you build an async nntp client using this class. At the start -of the connection, you'll have self.terminator set to '\r\n', in -order to process the single-line greeting. Just before issuing a -'LIST' command you'll set it to '\r\n.\r\n'. The output of the LIST -command will be accumulated (using your own 'collect_incoming_data' -method) up to the terminator, and then control will be returned to -you - by calling your self.found_terminator() method. -""" -class async_chat(asyncore.dispatcher): - """This is an abstract class. You must derive from this class, and add - the two methods collect_incoming_data() and found_terminator()""" - ac_in_buffer_size = ... - ac_out_buffer_size = ... - def __init__(self, conn=..., map=...) -> None: - ... - - def collect_incoming_data(self, data): - ... - - def found_terminator(self): - ... - - def set_terminator(self, term): # -> None: - """Set the input delimiter. Can be a fixed string of any length, an integer, or None""" - ... - - def get_terminator(self): # -> int: - ... - - def handle_read(self): # -> None: - ... - - def handle_write(self): # -> None: - ... - - def handle_close(self): # -> None: - ... - - def push(self, data): # -> None: - ... - - def push_with_producer(self, producer): # -> None: - ... - - def readable(self): # -> bool: - """predicate for inclusion in the readable for select()""" - ... - - def writable(self): # -> bool: - """predicate for inclusion in the writable for select()""" - ... - - def close_when_done(self): # -> None: - """automatically close this channel once the outgoing queue is empty""" - ... - - def refill_buffer(self): # -> None: - ... - - def initiate_send(self): # -> None: - ... - - def discard_buffers(self): # -> None: - ... - - - -class simple_producer: - def __init__(self, data, buffer_size=...) -> None: - ... - - def more(self): # -> bytes: - ... - - - -class fifo: - def __init__(self, list=...) -> None: - ... - - def __len__(self): # -> int: - ... - - def is_empty(self): # -> bool: - ... - - def first(self): - ... - - def push(self, data): # -> None: - ... - - def pop(self): # -> tuple[Literal[1], Unknown] | tuple[Literal[0], None]: - ... - - - -def find_prefix_at_end(haystack, needle): # -> int: - ... diff --git a/manager/typings/supervisor/medusa/asyncore_25.pyi b/manager/typings/supervisor/medusa/asyncore_25.pyi deleted file mode 100644 index d0eb145f4..000000000 --- a/manager/typings/supervisor/medusa/asyncore_25.pyi +++ /dev/null @@ -1,195 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -import os - -"""Basic infrastructure for asynchronous socket service clients and servers. - -There are only two ways to have a program on a single processor do "more -than one thing at a time". Multi-threaded programming is the simplest and -most popular way to do it, but there is another very different technique, -that lets you have nearly all the advantages of multi-threading, without -actually using multiple threads. it's really only practical if your program -is largely I/O bound. If your program is CPU bound, then preemptive -scheduled threads are probably what you really need. Network servers are -rarely CPU-bound, however. - -If your operating system supports the select() system call in its I/O -library (and nearly all do), then you can use it to juggle multiple -communication channels at once; doing other work while your I/O is taking -place in the "background." Although this strategy can seem strange and -complex, especially at first, it is in many ways easier to understand and -control than multi-threaded programming. The module documented here solves -many of the difficult problems for you, making the task of building -sophisticated high-performance network servers and clients a snap. -""" -class ExitNow(Exception): - ... - - -def read(obj): # -> None: - ... - -def write(obj): # -> None: - ... - -def readwrite(obj, flags): # -> None: - ... - -def poll(timeout=..., map=...): # -> None: - ... - -def poll2(timeout=..., map=...): # -> None: - ... - -poll3 = ... -def loop(timeout=..., use_poll=..., map=..., count=...): # -> None: - ... - -class dispatcher: - debug = ... - connected = ... - accepting = ... - closing = ... - addr = ... - def __init__(self, sock=..., map=...) -> None: - ... - - def __repr__(self): # -> str: - ... - - def add_channel(self, map=...): # -> None: - ... - - def del_channel(self, map=...): # -> None: - ... - - def create_socket(self, family, type): # -> None: - ... - - def set_socket(self, sock, map=...): # -> None: - ... - - def set_reuse_addr(self): # -> None: - ... - - def readable(self): # -> Literal[True]: - ... - - def writable(self): # -> Literal[True]: - ... - - def listen(self, num): # -> None: - ... - - def bind(self, addr): # -> None: - ... - - def connect(self, address): # -> None: - ... - - def accept(self): # -> tuple[socket | Unknown, _RetAddress | Unknown] | None: - ... - - def send(self, data): # -> int: - ... - - def recv(self, buffer_size): # -> bytes: - ... - - def close(self): # -> None: - ... - - def __getattr__(self, attr): # -> Any: - ... - - def log(self, message): # -> None: - ... - - def log_info(self, message, type=...): # -> None: - ... - - def handle_read_event(self): # -> None: - ... - - def handle_write_event(self): # -> None: - ... - - def handle_expt_event(self): # -> None: - ... - - def handle_error(self): # -> None: - ... - - def handle_expt(self): # -> None: - ... - - def handle_read(self): # -> None: - ... - - def handle_write(self): # -> None: - ... - - def handle_connect(self): # -> None: - ... - - def handle_accept(self): # -> None: - ... - - def handle_close(self): # -> None: - ... - - - -class dispatcher_with_send(dispatcher): - def __init__(self, sock=..., map=...) -> None: - ... - - def initiate_send(self): # -> None: - ... - - def handle_write(self): # -> None: - ... - - def writable(self): # -> int | Literal[True]: - ... - - def send(self, data): # -> None: - ... - - - -def compact_traceback(): # -> tuple[tuple[Unknown, Unknown, Unknown], Type[BaseException] | None, BaseException | None, str]: - ... - -def close_all(map=...): # -> None: - ... - -if os.name == 'posix': - class file_wrapper: - def __init__(self, fd) -> None: - ... - - def recv(self, buffersize): # -> str: - ... - - def send(self, s): # -> int: - ... - - read = ... - write = ... - def close(self): # -> None: - ... - - def fileno(self): - ... - - - - class file_dispatcher(dispatcher): - def __init__(self, fd, map=...) -> None: - ... - - def set_file(self, fd): # -> None: - ... diff --git a/manager/typings/supervisor/medusa/auth_handler.pyi b/manager/typings/supervisor/medusa/auth_handler.pyi deleted file mode 100644 index 8c19e35f6..000000000 --- a/manager/typings/supervisor/medusa/auth_handler.pyi +++ /dev/null @@ -1,42 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -RCS_ID = ... -get_header = ... -class auth_handler: - def __init__(self, dict, handler, realm=...) -> None: - ... - - def match(self, request): - ... - - def handle_request(self, request): # -> None: - ... - - def handle_unauthorized(self, request): # -> None: - ... - - def make_nonce(self, request): # -> bytes: - """A digest-authentication , constructed as suggested in RFC 2069""" - ... - - def apply_hash(self, s): # -> bytes: - """Apply MD5 to a string , then wrap it in base64 encoding.""" - ... - - def status(self): # -> composite_producer: - ... - - - -class dictionary_authorizer: - def __init__(self, dict) -> None: - ... - - def authorize(self, auth_info): # -> Literal[1, 0]: - ... - - - -AUTHORIZATION = ... diff --git a/manager/typings/supervisor/medusa/counter.pyi b/manager/typings/supervisor/medusa/counter.pyi deleted file mode 100644 index f54023095..000000000 --- a/manager/typings/supervisor/medusa/counter.pyi +++ /dev/null @@ -1,27 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -class counter: - """general-purpose counter""" - def __init__(self, initial_value=...) -> None: - ... - - def increment(self, delta=...): # -> Unknown: - ... - - def decrement(self, delta=...): # -> Unknown: - ... - - def as_long(self): # -> int: - ... - - def __nonzero__(self): - ... - - __bool__ = ... - def __repr__(self): # -> str: - ... - - def __str__(self) -> str: - ... diff --git a/manager/typings/supervisor/medusa/default_handler.pyi b/manager/typings/supervisor/medusa/default_handler.pyi deleted file mode 100644 index 227e0dabc..000000000 --- a/manager/typings/supervisor/medusa/default_handler.pyi +++ /dev/null @@ -1,41 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -import supervisor.medusa.producers as producers - -RCS_ID = ... -unquote = ... -class default_handler: - valid_commands = ... - IDENT = ... - directory_defaults = ... - default_file_producer = producers.file_producer - def __init__(self, filesystem) -> None: - ... - - hit_counter = ... - def __repr__(self): # -> str: - ... - - def match(self, request): # -> Literal[1]: - ... - - def handle_request(self, request): # -> None: - ... - - def set_content_type(self, path, request): # -> None: - ... - - def status(self): # -> simple_producer: - ... - - - -IF_MODIFIED_SINCE = ... -USER_AGENT = ... -CONTENT_TYPE = ... -get_header = ... -get_header_match = ... -def get_extension(path): # -> Literal['']: - ... diff --git a/manager/typings/supervisor/medusa/filesys.pyi b/manager/typings/supervisor/medusa/filesys.pyi deleted file mode 100644 index 7f0ffdb9e..000000000 --- a/manager/typings/supervisor/medusa/filesys.pyi +++ /dev/null @@ -1,176 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -import os - -class abstract_filesystem: - def __init__(self) -> None: - ... - - def current_directory(self): # -> None: - """Return a string representing the current directory.""" - ... - - def listdir(self, path, long=...): # -> None: - """Return a listing of the directory at 'path' The empty string - indicates the current directory. If 'long' is set, instead - return a list of (name, stat_info) tuples - """ - ... - - def open(self, path, mode): # -> None: - """Return an open file object""" - ... - - def stat(self, path): # -> None: - """Return the equivalent of os.stat() on the given path.""" - ... - - def isdir(self, path): # -> None: - """Does the path represent a directory?""" - ... - - def isfile(self, path): # -> None: - """Does the path represent a plain file?""" - ... - - def cwd(self, path): # -> None: - """Change the working directory.""" - ... - - def cdup(self): # -> None: - """Change to the parent of the current directory.""" - ... - - def longify(self, path): # -> None: - """Return a 'long' representation of the filename - [for the output of the LIST command]""" - ... - - - -def safe_stat(path): # -> tuple[Unknown, stat_result] | None: - ... - -class os_filesystem: - path_module = os.path - do_globbing = ... - def __init__(self, root, wd=...) -> None: - ... - - def current_directory(self): # -> Unknown | str: - ... - - def isfile(self, path): # -> bool: - ... - - def isdir(self, path): # -> bool: - ... - - def cwd(self, path): # -> Literal[0, 1]: - ... - - def cdup(self): # -> Literal[0, 1]: - ... - - def listdir(self, path, long=...): # -> list_producer: - ... - - def stat(self, path): # -> stat_result: - ... - - def open(self, path, mode): # -> TextIOWrapper: - ... - - def unlink(self, path): # -> None: - ... - - def mkdir(self, path): # -> None: - ... - - def rmdir(self, path): # -> None: - ... - - def rename(self, src, dst): # -> None: - ... - - def normalize(self, path): # -> str: - ... - - def translate(self, path): # -> str: - ... - - def longify(self, path_stat_info_tuple): # -> str: - ... - - def __repr__(self): # -> str: - ... - - - -if os.name == 'posix': - class unix_filesystem(os_filesystem): - ... - - - class schizophrenic_unix_filesystem(os_filesystem): - PROCESS_UID = ... - PROCESS_EUID = ... - PROCESS_GID = ... - PROCESS_EGID = ... - def __init__(self, root, wd=..., persona=...) -> None: - ... - - def become_persona(self): # -> None: - ... - - def become_nobody(self): # -> None: - ... - - def cwd(self, path): # -> Literal[0, 1]: - ... - - def cdup(self): # -> Literal[0, 1]: - ... - - def open(self, filename, mode): # -> TextIOWrapper: - ... - - def listdir(self, path, long=...): # -> list_producer: - ... - - - -class msdos_filesystem(os_filesystem): - def longify(self, path_stat_info_tuple): # -> str: - ... - - - -class merged_filesystem: - def __init__(self, *fsys) -> None: - ... - - - -def msdos_longify(file, stat_info): # -> str: - ... - -def msdos_date(t): # -> str: - ... - -months = ... -mode_table = ... -def unix_longify(file, stat_info): # -> str: - ... - -def ls_date(now, t): # -> str: - ... - -class list_producer: - def __init__(self, list, func=...) -> None: - ... - - def more(self): # -> str: - ... diff --git a/manager/typings/supervisor/medusa/http_date.pyi b/manager/typings/supervisor/medusa/http_date.pyi deleted file mode 100644 index 1aa9fa0de..000000000 --- a/manager/typings/supervisor/medusa/http_date.pyi +++ /dev/null @@ -1,37 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -def concat(*args): # -> str: - ... - -def join(seq, field=...): - ... - -def group(s): - ... - -short_days = ... -long_days = ... -short_day_reg = ... -long_day_reg = ... -daymap = ... -hms_reg = ... -months = ... -monmap = ... -months_reg = ... -rfc822_date = ... -rfc822_reg = ... -def unpack_rfc822(m): # -> tuple[int, Unknown, int, int, int, int, Literal[0], Literal[0], Literal[0]]: - ... - -rfc850_date = ... -rfc850_reg = ... -def unpack_rfc850(m): # -> tuple[int, Unknown, int, int, int, int, Literal[0], Literal[0], Literal[0]]: - ... - -def build_http_date(when): # -> str: - ... - -def parse_http_date(d): # -> int: - ... diff --git a/manager/typings/supervisor/medusa/http_server.pyi b/manager/typings/supervisor/medusa/http_server.pyi deleted file mode 100644 index 0a3ee6263..000000000 --- a/manager/typings/supervisor/medusa/http_server.pyi +++ /dev/null @@ -1,196 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -import supervisor.medusa.asynchat_25 as asynchat -import supervisor.medusa.asyncore_25 as asyncore - -RCS_ID = ... -VERSION_STRING = ... -class http_request: - reply_code = ... - request_counter = ... - use_chunked = ... - collector = ... - def __init__(self, *args) -> None: - ... - - def __setitem__(self, key, value): # -> None: - ... - - def __getitem__(self, key): # -> str: - ... - - def __contains__(self, key): # -> bool: - ... - - def has_key(self, key): # -> bool: - ... - - def build_reply_header(self): # -> bytes: - ... - - def add_header(self, name, value): # -> None: - """ Adds a header to the reply headers """ - ... - - def clear_headers(self): # -> None: - """ Clears the reply header list """ - ... - - def remove_header(self, name, value=...): # -> None: - """ Removes the specified header. - If a value is provided, the name and - value must match to remove the header. - If the value is None, removes all headers - with that name.""" - ... - - def get_reply_headers(self): # -> List[Unknown]: - """ Get the tuple of headers that will be used - for generating reply headers""" - ... - - def get_reply_header_text(self): # -> str: - """ Gets the reply header (including status and - additional crlf)""" - ... - - path_regex = ... - def split_uri(self): # -> Tuple[str | Any, ...]: - ... - - def get_header_with_regex(self, head_reg, group): # -> Literal['']: - ... - - def get_header(self, header): # -> None: - ... - - def collect_incoming_data(self, data): # -> None: - ... - - def found_terminator(self): # -> None: - ... - - def push(self, thing): # -> None: - ... - - def response(self, code=...): # -> str: - ... - - def error(self, code): # -> None: - ... - - reply_now = ... - def done(self): # -> None: - """finalize this transaction - send output to the http channel""" - ... - - def log_date_string(self, when): # -> str: - ... - - def log(self, bytes): # -> None: - ... - - responses = ... - DEFAULT_ERROR_MESSAGE = ... - def log_info(self, msg, level): # -> None: - ... - - - -class http_channel(asynchat.async_chat): - ac_out_buffer_size = ... - current_request = ... - channel_counter = ... - def __init__(self, server, conn, addr) -> None: - ... - - def __repr__(self): # -> str: - ... - - maintenance_interval = ... - def check_maintenance(self): # -> None: - ... - - def maintenance(self): # -> None: - ... - - zombie_timeout = ... - def kill_zombies(self): # -> None: - ... - - def send(self, data): # -> int: - ... - - def recv(self, buffer_size): # -> bytes: - ... - - def handle_error(self): # -> None: - ... - - def log(self, *args): # -> None: - ... - - def collect_incoming_data(self, data): # -> None: - ... - - def found_terminator(self): # -> None: - ... - - def writable_for_proxy(self): # -> bool | Literal[1] | None: - ... - - - -class http_server(asyncore.dispatcher): - SERVER_IDENT = ... - channel_class = http_channel - def __init__(self, ip, port, resolver=..., logger_object=...) -> None: - ... - - def writable(self): # -> Literal[0]: - ... - - def handle_read(self): # -> None: - ... - - def readable(self): # -> bool: - ... - - def handle_connect(self): # -> None: - ... - - def handle_accept(self): # -> None: - ... - - def install_handler(self, handler, back=...): # -> None: - ... - - def remove_handler(self, handler): # -> None: - ... - - def status(self): # -> composite_producer: - ... - - - -def maybe_status(thing): # -> None: - ... - -CONNECTION = ... -def join_headers(headers): # -> list[Unknown]: - ... - -def get_header(head_reg, lines, group=...): # -> Literal['']: - ... - -def get_header_match(head_reg, lines): # -> Literal['']: - ... - -REQUEST = ... -def crack_request(r): # -> tuple[str | Any, str | Any, str | Any | None] | tuple[None, None, None]: - ... - -if __name__ == '__main__': - ... diff --git a/manager/typings/supervisor/medusa/logger.pyi b/manager/typings/supervisor/medusa/logger.pyi deleted file mode 100644 index 2a2a9d001..000000000 --- a/manager/typings/supervisor/medusa/logger.pyi +++ /dev/null @@ -1,122 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -import supervisor.medusa.asynchat_25 as asynchat - -class file_logger: - def __init__(self, file, flush=..., mode=...) -> None: - ... - - def __repr__(self): # -> str: - ... - - def write(self, data): # -> None: - ... - - def writeline(self, line): # -> None: - ... - - def writelines(self, lines): # -> None: - ... - - def maybe_flush(self): # -> None: - ... - - def flush(self): # -> None: - ... - - def softspace(self, *args): # -> None: - ... - - def log(self, message): # -> None: - ... - - - -class rotating_file_logger(file_logger): - def __init__(self, file, freq=..., maxsize=..., flush=..., mode=...) -> None: - ... - - def __repr__(self): # -> str: - ... - - def next_backup(self, freq): # -> float | None: - ... - - def maybe_flush(self): # -> None: - ... - - def maybe_rotate(self): # -> None: - ... - - def rotate(self): # -> None: - ... - - - -class socket_logger(asynchat.async_chat): - def __init__(self, address) -> None: - ... - - def __repr__(self): # -> str: - ... - - def log(self, message): # -> None: - ... - - - -class multi_logger: - def __init__(self, loggers) -> None: - ... - - def __repr__(self): # -> str: - ... - - def log(self, message): # -> None: - ... - - - -class resolving_logger: - """Feed (ip, message) combinations into this logger to get a - resolved hostname in front of the message. The message will not - be logged until the PTR request finishes (or fails).""" - def __init__(self, resolver, logger) -> None: - ... - - class logger_thunk: - def __init__(self, message, logger) -> None: - ... - - def __call__(self, host, ttl, answer): # -> None: - ... - - - - def log(self, ip, message): # -> None: - ... - - - -class unresolving_logger: - """Just in case you don't want to resolve""" - def __init__(self, logger) -> None: - ... - - def log(self, ip, message): # -> None: - ... - - - -def strip_eol(line): - ... - -class tail_logger: - """Keep track of the last log messages""" - def __init__(self, logger, size=...) -> None: - ... - - def log(self, message): # -> None: - ... diff --git a/manager/typings/supervisor/medusa/producers.pyi b/manager/typings/supervisor/medusa/producers.pyi deleted file mode 100644 index 00a005d76..000000000 --- a/manager/typings/supervisor/medusa/producers.pyi +++ /dev/null @@ -1,155 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -RCS_ID = ... -class simple_producer: - """producer for a string""" - def __init__(self, data, buffer_size=...) -> None: - ... - - def more(self): # -> bytes | Unknown: - ... - - - -class scanning_producer: - """like simple_producer, but more efficient for large strings""" - def __init__(self, data, buffer_size=...) -> None: - ... - - def more(self): # -> Literal[b'']: - ... - - - -class lines_producer: - """producer for a list of lines""" - def __init__(self, lines) -> None: - ... - - def more(self): # -> str: - ... - - - -class buffer_list_producer: - """producer for a list of strings""" - def __init__(self, buffers) -> None: - ... - - def more(self): # -> Literal[b'']: - ... - - - -class file_producer: - """producer wrapper for file[-like] objects""" - out_buffer_size = ... - def __init__(self, file) -> None: - ... - - def more(self): # -> Literal[b'']: - ... - - - -class output_producer: - """Acts like an output file; suitable for capturing sys.stdout""" - def __init__(self) -> None: - ... - - def write(self, data): # -> None: - ... - - def writeline(self, line): # -> None: - ... - - def writelines(self, lines): # -> None: - ... - - def flush(self): # -> None: - ... - - def softspace(self, *args): # -> None: - ... - - def more(self): # -> bytes | Literal['']: - ... - - - -class composite_producer: - """combine a fifo of producers into one""" - def __init__(self, producers) -> None: - ... - - def more(self): # -> Literal[b'']: - ... - - - -class globbing_producer: - """ - 'glob' the output from a producer into a particular buffer size. - helps reduce the number of calls to send(). [this appears to - gain about 30% performance on requests to a single channel] - """ - def __init__(self, producer, buffer_size=...) -> None: - ... - - def more(self): # -> bytes: - ... - - - -class hooked_producer: - """ - A producer that will call when it empties,. - with an argument of the number of bytes produced. Useful - for logging/instrumentation purposes. - """ - def __init__(self, producer, function) -> None: - ... - - def more(self): # -> Literal['']: - ... - - - -class chunked_producer: - """A producer that implements the 'chunked' transfer coding for HTTP/1.1. - Here is a sample usage: - request['Transfer-Encoding'] = 'chunked' - request.push ( - producers.chunked_producer (your_producer) - ) - request.done() - """ - def __init__(self, producer, footers=...) -> None: - ... - - def more(self): # -> bytes: - ... - - - -class compressed_producer: - """ - Compress another producer on-the-fly, using ZLIB - """ - def __init__(self, producer, level=...) -> None: - ... - - def more(self): # -> bytes: - ... - - - -class escaping_producer: - """A producer that escapes a sequence of characters""" - def __init__(self, producer, esc_from=..., esc_to=...) -> None: - ... - - def more(self): - ... diff --git a/manager/typings/supervisor/medusa/util.pyi b/manager/typings/supervisor/medusa/util.pyi deleted file mode 100644 index 9d54a35c0..000000000 --- a/manager/typings/supervisor/medusa/util.pyi +++ /dev/null @@ -1,18 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -def html_repr(object): # -> str: - ... - -def progressive_divide(n, parts): # -> list[Unknown]: - ... - -def split_by_units(n, units, dividers, format_string): # -> list[Unknown]: - ... - -def english_bytes(n): # -> list[str]: - ... - -def english_time(n): # -> list[str]: - ... diff --git a/manager/typings/supervisor/medusa/xmlrpc_handler.pyi b/manager/typings/supervisor/medusa/xmlrpc_handler.pyi deleted file mode 100644 index 52e60dc40..000000000 --- a/manager/typings/supervisor/medusa/xmlrpc_handler.pyi +++ /dev/null @@ -1,42 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -VERSION = ... -class xmlrpc_handler: - def match(self, request): # -> Literal[1, 0]: - ... - - def handle_request(self, request): # -> None: - ... - - def continue_request(self, data, request): # -> None: - ... - - def call(self, method, params): # -> NoReturn: - ... - - - -class collector: - """gathers input for POST and PUT requests""" - def __init__(self, handler, request) -> None: - ... - - def collect_incoming_data(self, data): # -> None: - ... - - def found_terminator(self): # -> None: - ... - - - -if __name__ == '__main__': - class rpc_demo(xmlrpc_handler): - def call(self, method, params): # -> Literal['Sure, that works']: - ... - - - - hs = ... - rpc = ... diff --git a/manager/typings/supervisor/options.pyi b/manager/typings/supervisor/options.pyi deleted file mode 100644 index 3363b96ec..000000000 --- a/manager/typings/supervisor/options.pyi +++ /dev/null @@ -1,527 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -import warnings - -from supervisor.compat import ConfigParser - -VERSION = ... -def normalize_path(v): - ... - -class Dummy: - ... - - -class Options: - stderr = ... - stdout = ... - exit = ... - warnings = warnings - uid = ... - progname = ... - configfile = ... - schemadir = ... - configroot = ... - here = ... - positional_args_allowed = ... - def __init__(self, require_configfile=...) -> None: - """Constructor. - - Params: - require_configfile -- whether we should fail on no config file. - """ - ... - - def default_configfile(self): # -> str | None: - """Return the name of the found config file or print usage/exit.""" - ... - - def help(self, dummy): # -> None: - """Print a long help message to stdout and exit(0). - - Occurrences of "%s" in are replaced by self.progname. - """ - ... - - def usage(self, msg): # -> None: - """Print a brief error message to stderr and exit(2).""" - ... - - def add(self, name=..., confname=..., short=..., long=..., handler=..., default=..., required=..., flag=..., env=...): # -> None: - """Add information about a configuration option. - - This can take several forms: - - add(name, confname) - Configuration option 'confname' maps to attribute 'name' - add(name, None, short, long) - Command line option '-short' or '--long' maps to 'name' - add(None, None, short, long, handler) - Command line option calls handler - add(name, None, short, long, handler) - Assign handler return value to attribute 'name' - - In addition, one of the following keyword arguments may be given: - - default=... -- if not None, the default value - required=... -- if nonempty, an error message if no value provided - flag=... -- if not None, flag value for command line option - env=... -- if not None, name of environment variable that - overrides the configuration file or default - """ - ... - - def realize(self, args=..., doc=..., progname=...): # -> None: - """Realize a configuration. - - Optional arguments: - - args -- the command line arguments, less the program name - (default is sys.argv[1:]) - - doc -- usage message (default is __main__.__doc__) - """ - ... - - def process_config(self, do_usage=...): # -> None: - """Process configuration data structure. - - This includes reading config file if necessary, setting defaults etc. - """ - ... - - def process_config_file(self, do_usage): # -> None: - ... - - def exists(self, path): # -> bool: - ... - - def open(self, fn, mode=...): # -> TextIOWrapper: - ... - - def get_plugins(self, parser, factory_key, section_prefix): # -> list[Unknown]: - ... - - def import_spec(self, spec): # -> Any: - ... - - - -class ServerOptions(Options): - user = ... - sockchown = ... - sockchmod = ... - logfile = ... - loglevel = ... - pidfile = ... - passwdfile = ... - nodaemon = ... - silent = ... - httpservers = ... - unlink_pidfile = ... - unlink_socketfiles = ... - mood = ... - def __init__(self) -> None: - ... - - def version(self, dummy): # -> None: - """Print version to stdout and exit(0). - """ - ... - - def getLogger(self, *args, **kwargs): # -> Logger: - ... - - def default_configfile(self): # -> str | None: - ... - - def realize(self, *arg, **kw): # -> None: - ... - - def process_config(self, do_usage=...): # -> None: - ... - - def read_config(self, fp): - ... - - def process_groups_from_parser(self, parser): # -> list[Unknown]: - ... - - def parse_fcgi_socket(self, sock, proc_uid, socket_owner, socket_mode, socket_backlog): # -> UnixStreamSocketConfig | InetStreamSocketConfig: - ... - - def processes_from_section(self, parser, section, group_name, klass=...): # -> list[Unknown]: - ... - - def server_configs_from_parser(self, parser): # -> list[Unknown]: - ... - - def daemonize(self): # -> None: - ... - - def write_pidfile(self): # -> None: - ... - - def cleanup(self): # -> None: - ... - - def close_httpservers(self): # -> None: - ... - - def close_logger(self): # -> None: - ... - - def setsignals(self): # -> None: - ... - - def get_signal(self): # -> None: - ... - - def openhttpservers(self, supervisord): # -> None: - ... - - def get_autochildlog_name(self, name, identifier, channel): - ... - - def clear_autochildlogdir(self): # -> None: - ... - - def get_socket_map(self): # -> dict[Unknown, Unknown]: - ... - - def cleanup_fds(self): # -> None: - ... - - def kill(self, pid, signal): # -> None: - ... - - def waitpid(self): # -> tuple[int | None, int | None]: - ... - - def drop_privileges(self, user): # -> str | None: - """Drop privileges to become the specified user, which may be a - username or uid. Called for supervisord startup and when spawning - subprocesses. Returns None on success or a string error message if - privileges could not be dropped.""" - ... - - def set_uid_or_exit(self): # -> None: - """Set the uid of the supervisord process. Called during supervisord - startup only. No return value. Exits the process via usage() if - privileges could not be dropped.""" - ... - - def set_rlimits_or_exit(self): # -> None: - """Set the rlimits of the supervisord process. Called during - supervisord startup only. No return value. Exits the process via - usage() if any rlimits could not be set.""" - ... - - def make_logger(self): # -> None: - ... - - def make_http_servers(self, supervisord): # -> list[Unknown]: - ... - - def close_fd(self, fd): # -> None: - ... - - def fork(self): # -> int: - ... - - def dup2(self, frm, to): # -> None: - ... - - def setpgrp(self): # -> None: - ... - - def stat(self, filename): # -> stat_result: - ... - - def write(self, fd, data): # -> int: - ... - - def execve(self, filename, argv, env): # -> NoReturn: - ... - - def mktempfile(self, suffix, prefix, dir): - ... - - def remove(self, path): # -> None: - ... - - def setumask(self, mask): # -> None: - ... - - def get_path(self): # -> List[str]: - """Return a list corresponding to $PATH, or a default.""" - ... - - def get_pid(self): # -> int: - ... - - def check_execv_args(self, filename, argv, st): # -> None: - ... - - def reopenlogs(self): # -> None: - ... - - def readfd(self, fd): # -> bytes: - ... - - def chdir(self, dir): # -> None: - ... - - def make_pipes(self, stderr=...): # -> dict[str, None]: - """ Create pipes for parent to child stdin/stdout/stderr - communications. Open fd in non-blocking mode so we can read them - in the mainloop without blocking. If stderr is False, don't - create a pipe for stderr. """ - ... - - def close_parent_pipes(self, pipes): # -> None: - ... - - def close_child_pipes(self, pipes): # -> None: - ... - - - -class ClientOptions(Options): - positional_args_allowed = ... - interactive = ... - prompt = ... - serverurl = ... - username = ... - password = ... - history_file = ... - def __init__(self) -> None: - ... - - def realize(self, *arg, **kw): # -> None: - ... - - def read_config(self, fp): - ... - - def getServerProxy(self): - ... - - - -_marker = ... -class UnhosedConfigParser(ConfigParser.RawConfigParser): - mysection = ... - def __init__(self, *args, **kwargs) -> None: - ... - - def read_string(self, string, source=...): # -> None: - '''Parse configuration data from a string. This is intended - to be used in tests only. We add this method for Py 2/3 compat.''' - ... - - def read(self, filenames, **kwargs): # -> list[Unknown]: - '''Attempt to read and parse a list of filenames, returning a list - of filenames which were successfully parsed. This is a method of - RawConfigParser that is overridden to build self.section_to_file, - which is a mapping of section names to the files they came from. - ''' - ... - - def saneget(self, section, option, default=..., do_expand=..., expansions=...): # -> str: - ... - - def getdefault(self, option, default=..., expansions=..., **kwargs): # -> str: - ... - - def expand_here(self, here): # -> None: - ... - - - -class Config: - def __ne__(self, other) -> bool: - ... - - def __lt__(self, other) -> bool: - ... - - def __le__(self, other) -> bool: - ... - - def __gt__(self, other) -> bool: - ... - - def __ge__(self, other) -> bool: - ... - - def __repr__(self): # -> str: - ... - - - -class ProcessConfig(Config): - req_param_names = ... - optional_param_names = ... - def __init__(self, options, **params) -> None: - ... - - def __eq__(self, other) -> bool: - ... - - def get_path(self): - '''Return a list corresponding to $PATH that is configured to be set - in the process environment, or the system default.''' - ... - - def create_autochildlogs(self): # -> None: - ... - - def make_process(self, group=...): # -> Subprocess: - ... - - def make_dispatchers(self, proc): # -> tuple[dict[Unknown, Unknown], Unknown]: - ... - - - -class EventListenerConfig(ProcessConfig): - def make_dispatchers(self, proc): # -> tuple[dict[Unknown, Unknown], Unknown]: - ... - - - -class FastCGIProcessConfig(ProcessConfig): - def make_process(self, group=...): # -> FastCGISubprocess: - ... - - def make_dispatchers(self, proc): # -> tuple[dict[Unknown, Unknown], Unknown]: - ... - - - -class ProcessGroupConfig(Config): - def __init__(self, options, name, priority, process_configs) -> None: - ... - - def __eq__(self, other) -> bool: - ... - - def after_setuid(self): # -> None: - ... - - def make_group(self): # -> ProcessGroup: - ... - - - -class EventListenerPoolConfig(Config): - def __init__(self, options, name, priority, process_configs, buffer_size, pool_events, result_handler) -> None: - ... - - def __eq__(self, other) -> bool: - ... - - def after_setuid(self): # -> None: - ... - - def make_group(self): # -> EventListenerPool: - ... - - - -class FastCGIGroupConfig(ProcessGroupConfig): - def __init__(self, options, name, priority, process_configs, socket_config) -> None: - ... - - def __eq__(self, other) -> bool: - ... - - def make_group(self): # -> FastCGIProcessGroup: - ... - - - -def readFile(filename, offset, length): # -> bytes: - """ Read length bytes from the file named by filename starting at - offset """ - ... - -def tailFile(filename, offset, length): # -> list[str | int | bool] | list[str | Unknown | bool]: - """ - Read length bytes from the file named by filename starting at - offset, automatically increasing offset and setting overflow - flag if log size has grown beyond (offset + length). If length - bytes are not available, as many bytes as are available are returned. - """ - ... - -def decode_wait_status(sts): # -> tuple[int, str] | tuple[Literal[-1], Unknown | str] | tuple[Literal[-1], Unknown]: - """Decode the status returned by wait() or waitpid(). - - Return a tuple (exitstatus, message) where exitstatus is the exit - status, or -1 if the process was killed by a signal; and message - is a message telling what happened. It is the caller's - responsibility to display the message. - """ - ... - -_signames = ... -def signame(sig): - """Return a symbolic name for a signal. - - Return "signal NNN" if there is no corresponding SIG name in the - signal module. - """ - ... - -class SignalReceiver: - def __init__(self) -> None: - ... - - def receive(self, sig, frame): # -> None: - ... - - def get_signal(self): # -> None: - ... - - - -def expand(s, expansions, name): - ... - -def make_namespec(group_name, process_name): # -> str: - ... - -def split_namespec(namespec): # -> tuple[Unknown, Unknown | None]: - ... - -class ProcessException(Exception): - """ Specialized exceptions used when attempting to start a process """ - ... - - -class BadCommand(ProcessException): - """ Indicates the command could not be parsed properly. """ - ... - - -class NotExecutable(ProcessException): - """ Indicates that the filespec cannot be executed because its path - resolves to a file which is not executable, or which is a directory. """ - ... - - -class NotFound(ProcessException): - """ Indicates that the filespec cannot be executed because it could not - be found """ - ... - - -class NoPermission(ProcessException): - """ Indicates that the file cannot be executed because the supervisor - process does not possess the appropriate UNIX filesystem permission - to execute the file. """ - ... diff --git a/manager/typings/supervisor/pidproxy.pyi b/manager/typings/supervisor/pidproxy.pyi deleted file mode 100644 index 21a4d3f4c..000000000 --- a/manager/typings/supervisor/pidproxy.pyi +++ /dev/null @@ -1,33 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -""" An executable which proxies for a subprocess; upon a signal, it sends that -signal to the process identified by a pidfile. """ -class PidProxy: - pid = ... - def __init__(self, args) -> None: - ... - - def go(self): # -> None: - ... - - def usage(self): # -> None: - ... - - def setsignals(self): # -> None: - ... - - def reap(self, sig, frame): # -> None: - ... - - def passtochild(self, sig, frame): # -> None: - ... - - - -def main(): # -> None: - ... - -if __name__ == '__main__': - ... diff --git a/manager/typings/supervisor/poller.pyi b/manager/typings/supervisor/poller.pyi deleted file mode 100644 index f4b0d9926..000000000 --- a/manager/typings/supervisor/poller.pyi +++ /dev/null @@ -1,127 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -class BasePoller: - def __init__(self, options) -> None: - ... - - def initialize(self): # -> None: - ... - - def register_readable(self, fd): - ... - - def register_writable(self, fd): - ... - - def unregister_readable(self, fd): - ... - - def unregister_writable(self, fd): - ... - - def poll(self, timeout): - ... - - def before_daemonize(self): # -> None: - ... - - def after_daemonize(self): # -> None: - ... - - def close(self): # -> None: - ... - - - -class SelectPoller(BasePoller): - def initialize(self): # -> None: - ... - - def register_readable(self, fd): # -> None: - ... - - def register_writable(self, fd): # -> None: - ... - - def unregister_readable(self, fd): # -> None: - ... - - def unregister_writable(self, fd): # -> None: - ... - - def unregister_all(self): # -> None: - ... - - def poll(self, timeout): # -> tuple[list[Unknown], list[Unknown]] | tuple[List[Any], List[Any]]: - ... - - - -class PollPoller(BasePoller): - def initialize(self): # -> None: - ... - - def register_readable(self, fd): # -> None: - ... - - def register_writable(self, fd): # -> None: - ... - - def unregister_readable(self, fd): # -> None: - ... - - def unregister_writable(self, fd): # -> None: - ... - - def poll(self, timeout): # -> tuple[list[Unknown], list[Unknown]]: - ... - - - -class KQueuePoller(BasePoller): - ''' - Wrapper for select.kqueue()/kevent() - ''' - max_events = ... - def initialize(self): # -> None: - ... - - def register_readable(self, fd): # -> None: - ... - - def register_writable(self, fd): # -> None: - ... - - def unregister_readable(self, fd): # -> None: - ... - - def unregister_writable(self, fd): # -> None: - ... - - def poll(self, timeout): # -> tuple[list[Unknown], list[Unknown]]: - ... - - def before_daemonize(self): # -> None: - ... - - def after_daemonize(self): # -> None: - ... - - def close(self): # -> None: - ... - - - -def implements_poll(): # -> bool: - ... - -def implements_kqueue(): # -> bool: - ... - -if implements_kqueue(): - Poller = ... -else: - Poller = ... - Poller = ... diff --git a/manager/typings/supervisor/process.pyi b/manager/typings/supervisor/process.pyi deleted file mode 100644 index df784aa33..000000000 --- a/manager/typings/supervisor/process.pyi +++ /dev/null @@ -1,224 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -import functools - -@functools.total_ordering -class Subprocess: - """A class to manage a subprocess.""" - pid = ... - config = ... - state = ... - listener_state = ... - event = ... - laststart = ... - laststop = ... - laststopreport = ... - delay = ... - administrative_stop = ... - system_stop = ... - killing = ... - backoff = ... - dispatchers = ... - pipes = ... - exitstatus = ... - spawnerr = ... - group = ... - def __init__(self, config) -> None: - """Constructor. - - Argument is a ProcessConfig instance. - """ - ... - - def removelogs(self): # -> None: - ... - - def reopenlogs(self): # -> None: - ... - - def drain(self): # -> None: - ... - - def write(self, chars): # -> None: - ... - - def get_execv_args(self): # -> tuple[str | None, List[str]]: - """Internal: turn a program name into a file name, using $PATH, - make sure it exists / is executable, raising a ProcessException - if not """ - ... - - event_map = ... - def change_state(self, new_state, expected=...): # -> Literal[False] | None: - ... - - def record_spawnerr(self, msg): # -> None: - ... - - def spawn(self): # -> None: - """Start the subprocess. It must not be running already. - - Return the process id. If the fork() call fails, return None. - """ - ... - - def stop(self): # -> str | None: - """ Administrative stop """ - ... - - def stop_report(self): # -> None: - """ Log a 'waiting for x to stop' message with throttling. """ - ... - - def give_up(self): # -> None: - ... - - def kill(self, sig): # -> str | None: - """Send a signal to the subprocess with the intention to kill - it (to make it exit). This may or may not actually kill it. - - Return None if the signal was sent, or an error message string - if an error occurred or if the subprocess is not running. - """ - ... - - def signal(self, sig): # -> str | None: - """Send a signal to the subprocess, without intending to kill it. - - Return None if the signal was sent, or an error message string - if an error occurred or if the subprocess is not running. - """ - ... - - def finish(self, pid, sts): # -> None: - """ The process was reaped and we need to report and manage its state - """ - ... - - def set_uid(self): # -> None: - ... - - def __lt__(self, other) -> bool: - ... - - def __eq__(self, other) -> bool: - ... - - def __repr__(self): # -> str: - ... - - def get_state(self): # -> int | None: - ... - - def transition(self): # -> None: - ... - - - -class FastCGISubprocess(Subprocess): - """Extends Subprocess class to handle FastCGI subprocesses""" - def __init__(self, config) -> None: - ... - - def before_spawn(self): # -> None: - """ - The FastCGI socket needs to be created by the parent before we fork - """ - ... - - def spawn(self): # -> None: - """ - Overrides Subprocess.spawn() so we can hook in before it happens - """ - ... - - def after_finish(self): # -> None: - """ - Releases reference to FastCGI socket when process is reaped - """ - ... - - def finish(self, pid, sts): # -> None: - """ - Overrides Subprocess.finish() so we can hook in after it happens - """ - ... - - - -@functools.total_ordering -class ProcessGroupBase: - def __init__(self, config) -> None: - ... - - def __lt__(self, other) -> bool: - ... - - def __eq__(self, other) -> bool: - ... - - def __repr__(self): # -> str: - ... - - def removelogs(self): # -> None: - ... - - def reopenlogs(self): # -> None: - ... - - def stop_all(self): # -> None: - ... - - def get_unstopped_processes(self): # -> list[Unknown]: - """ Processes which aren't in a state that is considered 'stopped' """ - ... - - def get_dispatchers(self): # -> dict[Unknown, Unknown]: - ... - - def before_remove(self): # -> None: - ... - - - -class ProcessGroup(ProcessGroupBase): - def transition(self): # -> None: - ... - - - -class FastCGIProcessGroup(ProcessGroup): - def __init__(self, config, **kwargs) -> None: - ... - - - -class EventListenerPool(ProcessGroupBase): - def __init__(self, config) -> None: - ... - - def handle_rejected(self, event): # -> None: - ... - - def transition(self): # -> None: - ... - - def before_remove(self): # -> None: - ... - - def dispatch(self): # -> None: - ... - - - -class GlobalSerial: - def __init__(self) -> None: - ... - - - -GlobalSerial = ... -def new_serial(inst): - ... diff --git a/manager/typings/supervisor/rpcinterface.pyi b/manager/typings/supervisor/rpcinterface.pyi deleted file mode 100644 index df40334ad..000000000 --- a/manager/typings/supervisor/rpcinterface.pyi +++ /dev/null @@ -1,336 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -API_VERSION = ... -class SupervisorNamespaceRPCInterface: - def __init__(self, supervisord) -> None: - ... - - def getAPIVersion(self): # -> Literal['3.0']: - """ Return the version of the RPC API used by supervisord - - @return string version version id - """ - ... - - getVersion = ... - def getSupervisorVersion(self): # -> str: - """ Return the version of the supervisor package in use by supervisord - - @return string version version id - """ - ... - - def getIdentification(self): - """ Return identifying string of supervisord - - @return string identifier identifying string - """ - ... - - def getState(self): # -> dict[str, Unknown | None]: - """ Return current state of supervisord as a struct - - @return struct A struct with keys int statecode, string statename - """ - ... - - def getPID(self): - """ Return the PID of supervisord - - @return int PID - """ - ... - - def readLog(self, offset, length): # -> str: - """ Read length bytes from the main log starting at offset - - @param int offset offset to start reading from. - @param int length number of bytes to read from the log. - @return string result Bytes of log - """ - ... - - readMainLog = ... - def clearLog(self): # -> Literal[True]: - """ Clear the main log. - - @return boolean result always returns True unless error - """ - ... - - def shutdown(self): # -> Literal[True]: - """ Shut down the supervisor process - - @return boolean result always returns True unless error - """ - ... - - def restart(self): # -> Literal[True]: - """ Restart the supervisor process - - @return boolean result always return True unless error - """ - ... - - def reloadConfig(self): # -> list[list[list[Unknown]]]: - """ - Reload the configuration. - - The result contains three arrays containing names of process - groups: - - * `added` gives the process groups that have been added - * `changed` gives the process groups whose contents have - changed - * `removed` gives the process groups that are no longer - in the configuration - - @return array result [[added, changed, removed]] - - """ - ... - - def addProcessGroup(self, name): # -> Literal[True]: - """ Update the config for a running process from config file. - - @param string name name of process group to add - @return boolean result true if successful - """ - ... - - def removeProcessGroup(self, name): # -> Literal[True]: - """ Remove a stopped process from the active configuration. - - @param string name name of process group to remove - @return boolean result Indicates whether the removal was successful - """ - ... - - def startProcess(self, name, wait=...): # -> () -> (Type[NOT_DONE_YET] | Literal[True]) | Literal[True]: - """ Start a process - - @param string name Process name (or ``group:name``, or ``group:*``) - @param boolean wait Wait for process to be fully started - @return boolean result Always true unless error - - """ - ... - - def startProcessGroup(self, name, wait=...): # -> (processes: Unknown = processes, predicate: Unknown = predicate, func: Unknown = func, extra_kwargs: Unknown = extra_kwargs, callbacks: Unknown = callbacks, results: Unknown = results) -> (Unknown | Type[NOT_DONE_YET]): - """ Start all processes in the group named 'name' - - @param string name The group name - @param boolean wait Wait for each process to be fully started - @return array result An array of process status info structs - """ - ... - - def startAllProcesses(self, wait=...): # -> (processes: Unknown = processes, predicate: Unknown = predicate, func: Unknown = func, extra_kwargs: Unknown = extra_kwargs, callbacks: Unknown = callbacks, results: Unknown = results) -> (Unknown | Type[NOT_DONE_YET]): - """ Start all processes listed in the configuration file - - @param boolean wait Wait for each process to be fully started - @return array result An array of process status info structs - """ - ... - - def stopProcess(self, name, wait=...): # -> () -> (Type[NOT_DONE_YET] | Literal[True]) | Literal[True]: - """ Stop a process named by name - - @param string name The name of the process to stop (or 'group:name') - @param boolean wait Wait for the process to be fully stopped - @return boolean result Always return True unless error - """ - ... - - def stopProcessGroup(self, name, wait=...): # -> (processes: Unknown = processes, predicate: Unknown = predicate, func: Unknown = func, extra_kwargs: Unknown = extra_kwargs, callbacks: Unknown = callbacks, results: Unknown = results) -> (Unknown | Type[NOT_DONE_YET]): - """ Stop all processes in the process group named 'name' - - @param string name The group name - @param boolean wait Wait for each process to be fully stopped - @return array result An array of process status info structs - """ - ... - - def stopAllProcesses(self, wait=...): # -> (processes: Unknown = processes, predicate: Unknown = predicate, func: Unknown = func, extra_kwargs: Unknown = extra_kwargs, callbacks: Unknown = callbacks, results: Unknown = results) -> (Unknown | Type[NOT_DONE_YET]): - """ Stop all processes in the process list - - @param boolean wait Wait for each process to be fully stopped - @return array result An array of process status info structs - """ - ... - - def signalProcess(self, name, signal): # -> Literal[True]: - """ Send an arbitrary UNIX signal to the process named by name - - @param string name Name of the process to signal (or 'group:name') - @param string signal Signal to send, as name ('HUP') or number ('1') - @return boolean - """ - ... - - def signalProcessGroup(self, name, signal): # -> Type[NOT_DONE_YET] | list[Unknown]: - """ Send a signal to all processes in the group named 'name' - - @param string name The group name - @param string signal Signal to send, as name ('HUP') or number ('1') - @return array - """ - ... - - def signalAllProcesses(self, signal): # -> Type[NOT_DONE_YET] | list[Unknown]: - """ Send a signal to all processes in the process list - - @param string signal Signal to send, as name ('HUP') or number ('1') - @return array An array of process status info structs - """ - ... - - def getAllConfigInfo(self): # -> list[Unknown]: - """ Get info about all available process configurations. Each struct - represents a single process (i.e. groups get flattened). - - @return array result An array of process config info structs - """ - ... - - def getProcessInfo(self, name): # -> dict[str, Unknown | int | str | None]: - """ Get info about a process named name - - @param string name The name of the process (or 'group:name') - @return struct result A structure containing data about the process - """ - ... - - def getAllProcessInfo(self): # -> list[Unknown]: - """ Get info about all processes - - @return array result An array of process status results - """ - ... - - def readProcessStdoutLog(self, name, offset, length): # -> str: - """ Read length bytes from name's stdout log starting at offset - - @param string name the name of the process (or 'group:name') - @param int offset offset to start reading from. - @param int length number of bytes to read from the log. - @return string result Bytes of log - """ - ... - - readProcessLog = ... - def readProcessStderrLog(self, name, offset, length): # -> str: - """ Read length bytes from name's stderr log starting at offset - - @param string name the name of the process (or 'group:name') - @param int offset offset to start reading from. - @param int length number of bytes to read from the log. - @return string result Bytes of log - """ - ... - - def tailProcessStdoutLog(self, name, offset, length): # -> list[str | int | bool]: - """ - Provides a more efficient way to tail the (stdout) log than - readProcessStdoutLog(). Use readProcessStdoutLog() to read - chunks and tailProcessStdoutLog() to tail. - - Requests (length) bytes from the (name)'s log, starting at - (offset). If the total log size is greater than (offset + - length), the overflow flag is set and the (offset) is - automatically increased to position the buffer at the end of - the log. If less than (length) bytes are available, the - maximum number of available bytes will be returned. (offset) - returned is always the last offset in the log +1. - - @param string name the name of the process (or 'group:name') - @param int offset offset to start reading from - @param int length maximum number of bytes to return - @return array result [string bytes, int offset, bool overflow] - """ - ... - - tailProcessLog = ... - def tailProcessStderrLog(self, name, offset, length): # -> list[str | int | bool]: - """ - Provides a more efficient way to tail the (stderr) log than - readProcessStderrLog(). Use readProcessStderrLog() to read - chunks and tailProcessStderrLog() to tail. - - Requests (length) bytes from the (name)'s log, starting at - (offset). If the total log size is greater than (offset + - length), the overflow flag is set and the (offset) is - automatically increased to position the buffer at the end of - the log. If less than (length) bytes are available, the - maximum number of available bytes will be returned. (offset) - returned is always the last offset in the log +1. - - @param string name the name of the process (or 'group:name') - @param int offset offset to start reading from - @param int length maximum number of bytes to return - @return array result [string bytes, int offset, bool overflow] - """ - ... - - def clearProcessLogs(self, name): # -> Literal[True]: - """ Clear the stdout and stderr logs for the named process and - reopen them. - - @param string name The name of the process (or 'group:name') - @return boolean result Always True unless error - """ - ... - - clearProcessLog = ... - def clearAllProcessLogs(self): # -> () -> (Type[NOT_DONE_YET] | list[Unknown]): - """ Clear all process log files - - @return array result An array of process status info structs - """ - ... - - def sendProcessStdin(self, name, chars): # -> Literal[True]: - """ Send a string of chars to the stdin of the process name. - If non-7-bit data is sent (unicode), it is encoded to utf-8 - before being sent to the process' stdin. If chars is not a - string or is not unicode, raise INCORRECT_PARAMETERS. If the - process is not running, raise NOT_RUNNING. If the process' - stdin cannot accept input (e.g. it was closed by the child - process), raise NO_FILE. - - @param string name The process name to send to (or 'group:name') - @param string chars The character data to send to the process - @return boolean result Always return True unless error - """ - ... - - def sendRemoteCommEvent(self, type, data): # -> Literal[True]: - """ Send an event that will be received by event listener - subprocesses subscribing to the RemoteCommunicationEvent. - - @param string type String for the "type" key in the event header - @param string data Data for the event body - @return boolean Always return True unless error - """ - ... - - - -def make_allfunc(processes, predicate, func, **extra_kwargs): # -> (processes: Unknown = processes, predicate: Unknown = predicate, func: Unknown = func, extra_kwargs: Unknown = extra_kwargs, callbacks: Unknown = callbacks, results: Unknown = results) -> (Unknown | Type[NOT_DONE_YET]): - """ Return a closure representing a function that calls a - function for every process, and returns a result """ - ... - -def isRunning(process): # -> bool: - ... - -def isNotRunning(process): # -> bool: - ... - -def isSignallable(process): # -> Literal[True] | None: - ... - -def make_main_rpcinterface(supervisord): # -> SupervisorNamespaceRPCInterface: - ... diff --git a/manager/typings/supervisor/socket_manager.pyi b/manager/typings/supervisor/socket_manager.pyi deleted file mode 100644 index 05b26f0b1..000000000 --- a/manager/typings/supervisor/socket_manager.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -class Proxy: - """ Class for wrapping a shared resource object and getting - notified when it's deleted - """ - def __init__(self, object, **kwargs) -> None: - ... - - def __del__(self): # -> None: - ... - - def __getattr__(self, name): # -> Any: - ... - - - -class ReferenceCounter: - """ Class for tracking references to a shared resource - """ - def __init__(self, **kwargs) -> None: - ... - - def get_count(self): # -> int: - ... - - def increment(self): # -> None: - ... - - def decrement(self): # -> None: - ... - - - -class SocketManager: - """ Class for managing sockets in servers that create/bind/listen - before forking multiple child processes to accept() - Sockets are managed at the process group level and referenced counted - at the process level b/c that's really the only place to hook in - """ - def __init__(self, socket_config, **kwargs) -> None: - ... - - def __repr__(self): # -> str: - ... - - def config(self): # -> Unknown: - ... - - def is_prepared(self): # -> bool: - ... - - def get_socket(self): # -> Proxy: - ... - - def get_socket_ref_count(self): # -> int: - ... diff --git a/manager/typings/supervisor/states.pyi b/manager/typings/supervisor/states.pyi deleted file mode 100644 index d0a21f5c9..000000000 --- a/manager/typings/supervisor/states.pyi +++ /dev/null @@ -1,44 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -class ProcessStates: - STOPPED = ... - STARTING = ... - RUNNING = ... - BACKOFF = ... - STOPPING = ... - EXITED = ... - FATAL = ... - UNKNOWN = ... - - -STOPPED_STATES = ... -RUNNING_STATES = ... -SIGNALLABLE_STATES = ... -def getProcessStateDescription(code): # -> None: - ... - -class SupervisorStates: - FATAL = ... - RUNNING = ... - RESTARTING = ... - SHUTDOWN = ... - - -def getSupervisorStateDescription(code): # -> None: - ... - -class EventListenerStates: - READY = ... - BUSY = ... - ACKNOWLEDGED = ... - UNKNOWN = ... - - -def getEventListenerStateDescription(code): # -> None: - ... - -_process_states_by_code = ... -_supervisor_states_by_code = ... -_eventlistener_states_by_code = ... diff --git a/manager/typings/supervisor/supervisorctl.pyi b/manager/typings/supervisor/supervisorctl.pyi deleted file mode 100644 index 3034638a5..000000000 --- a/manager/typings/supervisor/supervisorctl.pyi +++ /dev/null @@ -1,280 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -import cmd -import threading - -"""supervisorctl -- control applications run by supervisord from the cmd line. - -Usage: %s [options] [action [arguments]] - -Options: --c/--configuration FILENAME -- configuration file path (searches if not given) --h/--help -- print usage message and exit --i/--interactive -- start an interactive shell after executing commands --s/--serverurl URL -- URL on which supervisord server is listening - (default "http://localhost:9001"). --u/--username USERNAME -- username to use for authentication with server --p/--password PASSWORD -- password to use for authentication with server --r/--history-file -- keep a readline history (if readline is available) - -action [arguments] -- see below - -Actions are commands like "tail" or "stop". If -i is specified or no action is -specified on the command line, a "shell" interpreting actions typed -interactively is started. Use the action "help" to find out about available -actions. -""" -class LSBInitExitStatuses: - SUCCESS = ... - GENERIC = ... - INVALID_ARGS = ... - UNIMPLEMENTED_FEATURE = ... - INSUFFICIENT_PRIVILEGES = ... - NOT_INSTALLED = ... - NOT_RUNNING = ... - - -class LSBStatusExitStatuses: - NOT_RUNNING = ... - UNKNOWN = ... - - -DEAD_PROGRAM_FAULTS = ... -class fgthread(threading.Thread): - """ A subclass of threading.Thread, with a kill() method. - To be used for foreground output/error streaming. - http://mail.python.org/pipermail/python-list/2004-May/260937.html - """ - def __init__(self, program, ctl) -> None: - ... - - def start(self): # -> None: - ... - - def run(self): # -> None: - ... - - def globaltrace(self, frame, why, arg): # -> (frame: Unknown, why: Unknown, arg: Unknown) -> (frame: Unknown, why: Unknown, arg: Unknown) -> Unknown | None: - ... - - def localtrace(self, frame, why, arg): # -> (frame: Unknown, why: Unknown, arg: Unknown) -> Unknown: - ... - - def kill(self): # -> None: - ... - - - -class Controller(cmd.Cmd): - def __init__(self, options, completekey=..., stdin=..., stdout=...) -> None: - ... - - def emptyline(self): # -> None: - ... - - def default(self, line): # -> None: - ... - - def exec_cmdloop(self, args, options): # -> None: - ... - - def set_exitstatus_from_xmlrpc_fault(self, faultcode, ignored_faultcode=...): # -> None: - ... - - def onecmd(self, line): # -> Any | None: - """ Override the onecmd method to: - - catch and print all exceptions - - call 'do_foo' on plugins rather than ourself - """ - ... - - def output(self, message): # -> None: - ... - - def get_supervisor(self): # -> Any: - ... - - def get_server_proxy(self, namespace=...): # -> Any: - ... - - def upcheck(self): # -> bool: - ... - - def complete(self, text, state, line=...): # -> str | None: - """Completer function that Cmd will register with readline using - readline.set_completer(). This function will be called by readline - as complete(text, state) where text is a fragment to complete and - state is an integer (0..n). Each call returns a string with a new - completion. When no more are available, None is returned.""" - ... - - def do_help(self, arg): # -> None: - ... - - def help_help(self): # -> None: - ... - - def do_EOF(self, arg): # -> Literal[1]: - ... - - def help_EOF(self): # -> None: - ... - - - -def get_names(inst): # -> List[Unknown]: - ... - -class ControllerPluginBase: - name = ... - def __init__(self, controller) -> None: - ... - - doc_header = ... - def do_help(self, arg): # -> None: - ... - - - -def not_all_langs(): # -> str | None: - ... - -def check_encoding(ctl): # -> None: - ... - -class DefaultControllerPlugin(ControllerPluginBase): - name = ... - listener = ... - def do_tail(self, arg): # -> None: - ... - - def help_tail(self): # -> None: - ... - - def do_maintail(self, arg): # -> None: - ... - - def help_maintail(self): # -> None: - ... - - def do_quit(self, arg): - ... - - def help_quit(self): # -> None: - ... - - do_exit = ... - def help_exit(self): # -> None: - ... - - def do_status(self, arg): # -> None: - ... - - def help_status(self): # -> None: - ... - - def do_pid(self, arg): # -> None: - ... - - def help_pid(self): # -> None: - ... - - def do_start(self, arg): # -> None: - ... - - def help_start(self): # -> None: - ... - - def do_stop(self, arg): # -> None: - ... - - def help_stop(self): # -> None: - ... - - def do_signal(self, arg): # -> None: - ... - - def help_signal(self): # -> None: - ... - - def do_restart(self, arg): # -> None: - ... - - def help_restart(self): # -> None: - ... - - def do_shutdown(self, arg): # -> None: - ... - - def help_shutdown(self): # -> None: - ... - - def do_reload(self, arg): # -> None: - ... - - def help_reload(self): # -> None: - ... - - def do_avail(self, arg): # -> None: - ... - - def help_avail(self): # -> None: - ... - - def do_reread(self, arg): # -> None: - ... - - def help_reread(self): # -> None: - ... - - def do_add(self, arg): # -> None: - ... - - def help_add(self): # -> None: - ... - - def do_remove(self, arg): # -> None: - ... - - def help_remove(self): # -> None: - ... - - def do_update(self, arg): # -> None: - ... - - def help_update(self): # -> None: - ... - - def do_clear(self, arg): # -> None: - ... - - def help_clear(self): # -> None: - ... - - def do_open(self, arg): # -> None: - ... - - def help_open(self): # -> None: - ... - - def do_version(self, arg): # -> None: - ... - - def help_version(self): # -> None: - ... - - def do_fg(self, arg): # -> None: - ... - - def help_fg(self, args=...): # -> None: - ... - - - -def main(args=..., options=...): # -> None: - ... - -if __name__ == "__main__": - ... diff --git a/manager/typings/supervisor/supervisord.pyi b/manager/typings/supervisor/supervisord.pyi deleted file mode 100644 index 5990f964a..000000000 --- a/manager/typings/supervisor/supervisord.pyi +++ /dev/null @@ -1,102 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -"""supervisord -- run a set of applications as daemons. - -Usage: %s [options] - -Options: --c/--configuration FILENAME -- configuration file path (searches if not given) --n/--nodaemon -- run in the foreground (same as 'nodaemon=true' in config file) --s/--silent -- no logs to stdout (maps to 'silent=true' in config file) --h/--help -- print this usage message and exit --v/--version -- print supervisord version number and exit --u/--user USER -- run supervisord as this user (or numeric uid) --m/--umask UMASK -- use this umask for daemon subprocess (default is 022) --d/--directory DIRECTORY -- directory to chdir to when daemonized --l/--logfile FILENAME -- use FILENAME as logfile path --y/--logfile_maxbytes BYTES -- use BYTES to limit the max size of logfile --z/--logfile_backups NUM -- number of backups to keep when max bytes reached --e/--loglevel LEVEL -- use LEVEL as log level (debug,info,warn,error,critical) --j/--pidfile FILENAME -- write a pid file for the daemon process to FILENAME --i/--identifier STR -- identifier used for this instance of supervisord --q/--childlogdir DIRECTORY -- the log directory for child process logs --k/--nocleanup -- prevent the process from performing cleanup (removal of - old automatic child log files) at startup. --a/--minfds NUM -- the minimum number of file descriptors for start success --t/--strip_ansi -- strip ansi escape codes from process output ---minprocs NUM -- the minimum number of processes available for start success ---profile_options OPTIONS -- run supervisord under profiler and output - results based on OPTIONS, which is a comma-sep'd - list of 'cumulative', 'calls', and/or 'callers', - e.g. 'cumulative,callers') -""" -class Supervisor: - stopping = ... - lastshutdownreport = ... - process_groups = ... - stop_groups = ... - def __init__(self, options) -> None: - ... - - def main(self): # -> None: - ... - - def run(self): # -> None: - ... - - def diff_to_active(self): # -> tuple[list[Unknown], list[Unknown], list[Unknown]]: - ... - - def add_process_group(self, config): # -> bool: - ... - - def remove_process_group(self, name): # -> bool: - ... - - def get_process_map(self): # -> dict[Unknown, Unknown]: - ... - - def shutdown_report(self): # -> list[Unknown]: - ... - - def ordered_stop_groups_phase_1(self): # -> None: - ... - - def ordered_stop_groups_phase_2(self): # -> None: - ... - - def runforever(self): # -> None: - ... - - def tick(self, now=...): # -> None: - """ Send one or more 'tick' events when the timeslice related to - the period for the event type rolls over """ - ... - - def reap(self, once=..., recursionguard=...): # -> None: - ... - - def handle_signal(self): # -> None: - ... - - def get_state(self): - ... - - - -def timeslice(period, when): # -> int: - ... - -def profile(cmd, globals, locals, sort_order, callers): # -> None: - ... - -def main(args=..., test=...): # -> None: - ... - -def go(options): # -> None: - ... - -if __name__ == "__main__": - ... diff --git a/manager/typings/supervisor/templating.pyi b/manager/typings/supervisor/templating.pyi deleted file mode 100644 index e12282638..000000000 --- a/manager/typings/supervisor/templating.pyi +++ /dev/null @@ -1,476 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from xml.etree.ElementTree import TreeBuilder - -from supervisor.compat import PY2, HTMLParser - -AUTOCLOSE = ... -IGNOREEND = ... -_BLANK = ... -_SPACE = ... -_EQUAL = ... -_QUOTE = ... -_OPEN_TAG_START = ... -_CLOSE_TAG_START = ... -_OPEN_TAG_END = ... -_SELF_CLOSE = ... -_OMITTED_TEXT = ... -_COMMENT_START = ... -_COMMENT_END = ... -_PI_START = ... -_PI_END = ... -_AMPER_ESCAPED = ... -_LT = ... -_LT_ESCAPED = ... -_QUOTE_ESCAPED = ... -_XML_PROLOG_BEGIN = ... -_ENCODING = ... -_XML_PROLOG_END = ... -_DOCTYPE_BEGIN = ... -_PUBLIC = ... -_DOCTYPE_END = ... -if PY2: - def encode(text, encoding): - ... - -else: - def encode(text, encoding): # -> bytes: - ... - -def Replace(text, structure=...): # -> _MeldElementInterface: - ... - -class PyHelper: - def findmeld(self, node, name, default=...): - ... - - def clone(self, node, parent=...): # -> _MeldElementInterface: - ... - - def bfclone(self, node, parent=...): # -> _MeldElementInterface: - ... - - def getiterator(self, node, tag=...): # -> list[Unknown]: - ... - - def content(self, node, text, structure=...): # -> None: - ... - - - -helper = ... -_MELD_NS_URL = ... -_MELD_PREFIX = ... -_MELD_LOCAL = ... -_MELD_ID = ... -_MELD_SHORT_ID = ... -_XHTML_NS_URL = ... -_XHTML_PREFIX = ... -_XHTML_PREFIX_LEN = ... -_marker = ... -class doctype: - html_strict = ... - html = ... - xhtml_strict = ... - xhtml = ... - - -class _MeldElementInterface: - parent = ... - attrib = ... - text = ... - tail = ... - structure = ... - def __init__(self, tag, attrib) -> None: - ... - - def __repr__(self): # -> str: - ... - - def __len__(self): # -> int: - ... - - def __getitem__(self, index): - ... - - def __getslice__(self, start, stop): # -> List[Unknown]: - ... - - def getchildren(self): # -> list[Unknown]: - ... - - def find(self, path): - ... - - def findtext(self, path, default=...): - ... - - def findall(self, path): - ... - - def clear(self): # -> None: - ... - - def get(self, key, default=...): - ... - - def set(self, key, value): # -> None: - ... - - def keys(self): # -> list[Unknown]: - ... - - def items(self): # -> list[Unknown]: - ... - - def getiterator(self, *ignored_args, **ignored_kw): # -> list[Unknown]: - ... - - def __setitem__(self, index, element): # -> None: - ... - - def __setslice__(self, start, stop, elements): # -> None: - ... - - def append(self, element): # -> None: - ... - - def insert(self, index, element): # -> None: - ... - - def __delitem__(self, index): # -> None: - ... - - def __delslice__(self, start, stop): # -> None: - ... - - def remove(self, element): # -> None: - ... - - def makeelement(self, tag, attrib): # -> _MeldElementInterface: - ... - - def __mod__(self, other): # -> list[Unknown]: - """ Fill in the text values of meld nodes in tree; only - support dictionarylike operand (sequence operand doesn't seem - to make sense here)""" - ... - - def fillmelds(self, **kw): # -> list[Unknown]: - """ Fill in the text values of meld nodes in tree using the - keyword arguments passed in; use the keyword keys as meld ids - and the keyword values as text that should fill in the node - text on which that meld id is found. Return a list of keys - from **kw that were not able to be found anywhere in the tree. - Never raises an exception. """ - ... - - def fillmeldhtmlform(self, **kw): # -> list[Unknown]: - """ Perform magic to 'fill in' HTML form element values from a - dictionary. Unlike 'fillmelds', the type of element being - 'filled' is taken into consideration. - - Perform a 'findmeld' on each key in the dictionary and use the - value that corresponds to the key to perform mutation of the - tree, changing data in what is presumed to be one or more HTML - form elements according to the following rules:: - - If the found element is an 'input group' (its meld id ends - with the string ':inputgroup'), set the 'checked' attribute - on the appropriate subelement which has a 'value' attribute - which matches the dictionary value. Also remove the - 'checked' attribute from every other 'input' subelement of - the input group. If no input subelement's value matches the - dictionary value, this key is treated as 'unfilled'. - - If the found element is an 'input type=text', 'input - type=hidden', 'input type=submit', 'input type=password', - 'input type=reset' or 'input type=file' element, replace its - 'value' attribute with the value. - - If the found element is an 'input type=checkbox' or 'input - type='radio' element, set its 'checked' attribute to true if - the dict value is true, or remove its 'checked' attribute if - the dict value is false. - - If the found element is a 'select' element and the value - exists in the 'value=' attribute of one of its 'option' - subelements, change that option's 'selected' attribute to - true and mark all other option elements as unselected. If - the select element does not contain an option with a value - that matches the dictionary value, do nothing and return - this key as unfilled. - - If the found element is a 'textarea' or any other kind of - element, replace its text with the value. - - If the element corresponding to the key is not found, - do nothing and treat the key as 'unfilled'. - - Return a list of 'unfilled' keys, representing meld ids - present in the dictionary but not present in the element tree - or meld ids which could not be filled due to the lack of any - matching subelements for 'select' nodes or 'inputgroup' nodes. - """ - ... - - def findmeld(self, name, default=...): - """ Find a node in the tree that has a 'meld id' corresponding - to 'name'. Iterate over all subnodes recursively looking for a - node which matches. If we can't find the node, return None.""" - ... - - def findmelds(self): # -> list[Unknown]: - """ Find all nodes that have a meld id attribute and return - the found nodes in a list""" - ... - - def findwithattrib(self, attrib, value=...): # -> list[Unknown]: - """ Find all nodes that have an attribute named 'attrib'. If - 'value' is not None, omit nodes on which the attribute value - does not compare equally to 'value'. Return the found nodes in - a list.""" - ... - - def repeat(self, iterable, childname=...): # -> list[Unknown]: - """repeats an element with values from an iterable. If - 'childname' is not None, repeat the element on which the - repeat is called, otherwise find the child element with a - 'meld:id' matching 'childname' and repeat that. The element - is repeated within its parent element (nodes that are created - as a result of a repeat share the same parent). This method - returns an iterable; the value of each iteration is a - two-sequence in the form (newelement, data). 'newelement' is - a clone of the template element (including clones of its - children) which has already been seated in its parent element - in the template. 'data' is a value from the passed in - iterable. Changing 'newelement' (typically based on values - from 'data') mutates the element 'in place'.""" - ... - - def replace(self, text, structure=...): # -> None: - """ Replace this element with a Replace node in our parent with - the text 'text' and return the index of our position in - our parent. If we have no parent, do nothing, and return None. - Pass the 'structure' flag to the replace node so it can do the right - thing at render time. """ - ... - - def content(self, text, structure=...): # -> None: - """ Delete this node's children and append a Replace node that - contains text. Always return None. Pass the 'structure' flag - to the replace node so it can do the right thing at render - time.""" - ... - - def attributes(self, **kw): # -> None: - """ Set attributes on this node. """ - ... - - def write_xmlstring(self, encoding=..., doctype=..., fragment=..., declaration=..., pipeline=...): # -> bytes: - ... - - def write_xml(self, file, encoding=..., doctype=..., fragment=..., declaration=..., pipeline=...): # -> None: - """ Write XML to 'file' (which can be a filename or filelike object) - - encoding - encoding string (if None, 'utf-8' encoding is assumed) - Must be a recognizable Python encoding type. - doctype - 3-tuple indicating name, pubid, system of doctype. - The default is to prevent a doctype from being emitted. - fragment - True if a 'fragment' should be emitted for this node (no - declaration, no doctype). This causes both the - 'declaration' and 'doctype' parameters to become ignored - if provided. - declaration - emit an xml declaration header (including an encoding - if it's not None). The default is to emit the - doctype. - pipeline - preserve 'meld' namespace identifiers in output - for use in pipelining - """ - ... - - def write_htmlstring(self, encoding=..., doctype=..., fragment=...): # -> bytes: - ... - - def write_html(self, file, encoding=..., doctype=..., fragment=...): # -> None: - """ Write HTML to 'file' (which can be a filename or filelike object) - - encoding - encoding string (if None, 'utf-8' encoding is assumed). - Unlike XML output, this is not used in a declaration, - but it is used to do actual character encoding during - output. Must be a recognizable Python encoding type. - doctype - 3-tuple indicating name, pubid, system of doctype. - The default is the value of doctype.html (HTML 4.0 - 'loose') - fragment - True if a "fragment" should be omitted (no doctype). - This overrides any provided "doctype" parameter if - provided. - - Namespace'd elements and attributes have their namespaces removed - during output when writing HTML, so pipelining cannot be performed. - - HTML is not valid XML, so an XML declaration header is never emitted. - """ - ... - - def write_xhtmlstring(self, encoding=..., doctype=..., fragment=..., declaration=..., pipeline=...): # -> bytes: - ... - - def write_xhtml(self, file, encoding=..., doctype=..., fragment=..., declaration=..., pipeline=...): # -> None: - """ Write XHTML to 'file' (which can be a filename or filelike object) - - encoding - encoding string (if None, 'utf-8' encoding is assumed) - Must be a recognizable Python encoding type. - doctype - 3-tuple indicating name, pubid, system of doctype. - The default is the value of doctype.xhtml (XHTML - 'loose'). - fragment - True if a 'fragment' should be emitted for this node (no - declaration, no doctype). This causes both the - 'declaration' and 'doctype' parameters to be ignored. - declaration - emit an xml declaration header (including an encoding - string if 'encoding' is not None) - pipeline - preserve 'meld' namespace identifiers in output - for use in pipelining - """ - ... - - def clone(self, parent=...): # -> _MeldElementInterface: - """ Create a clone of an element. If parent is not None, - append the element to the parent. Recurse as necessary to create - a deep clone of the element. """ - ... - - def deparent(self): # -> None: - """ Remove ourselves from our parent node (de-parent) and return - the index of the parent which was deleted. """ - ... - - def parentindex(self): # -> None: - """ Return the parent node index in which we live """ - ... - - def shortrepr(self, encoding=...): # -> bytes: - ... - - def diffmeld(self, other): # -> dict[str, dict[str, list[Unknown]]]: - """ Compute the meld element differences from this node (the - source) to 'other' (the target). Return a dictionary of - sequences in the form {'unreduced: - {'added':[], 'removed':[], 'moved':[]}, - 'reduced': - {'added':[], 'removed':[], 'moved':[]},} - """ - ... - - def meldid(self): - ... - - def lineage(self): # -> list[Unknown]: - ... - - - -class MeldTreeBuilder(TreeBuilder): - def __init__(self) -> None: - ... - - def start(self, tag, attrs): # -> Element: - ... - - def comment(self, data): # -> None: - ... - - def doctype(self, name, pubid, system): # -> None: - ... - - - -class HTMLXMLParser(HTMLParser): - """ A mostly-cut-and-paste of ElementTree's HTMLTreeBuilder that - does special meld3 things (like preserve comments and munge meld - ids). Subclassing is not possible due to private attributes. :-(""" - def __init__(self, builder=..., encoding=...) -> None: - ... - - def close(self): # -> Element: - ... - - def handle_starttag(self, tag, attrs): # -> None: - ... - - def handle_endtag(self, tag): # -> None: - ... - - def handle_charref(self, char): # -> None: - ... - - def handle_entityref(self, name): # -> None: - ... - - def handle_data(self, data): # -> None: - ... - - def unknown_entityref(self, name): # -> None: - ... - - def handle_comment(self, data): # -> None: - ... - - - -def do_parse(source, parser): # -> Element: - ... - -def parse_xml(source): # -> Element: - """ Parse source (a filelike object) into an element tree. If - html is true, use a parser that can resolve somewhat ambiguous - HTML into XHTML. Otherwise use a 'normal' parser only.""" - ... - -def parse_html(source, encoding=...): # -> Element: - ... - -def parse_xmlstring(text): # -> Element: - ... - -def parse_htmlstring(text, encoding=...): # -> Element: - ... - -attrib_needs_escaping = ... -cdata_needs_escaping = ... -_HTMLTAGS_UNBALANCED = ... -_HTMLTAGS_NOESCAPE = ... -_HTMLATTRS_BOOLEAN = ... -_NONENTITY_RE = ... -_XML_DECL_RE = ... -_BEGIN_TAG_RE = ... -def insert_doctype(data, doctype=...): - ... - -def insert_meld_ns_decl(data): - ... - -def prefeed(data, doctype=...): - ... - -def sharedlineage(srcelement, tgtelement): # -> bool: - ... - -def diffreduce(elements): # -> list[Unknown]: - ... - -def intersection(S1, S2): # -> list[Unknown]: - ... - -def melditerator(element, meldid=..., _MELD_ID=...): # -> Generator[Unknown, None, None]: - ... - -_NON_ASCII_MIN = ... -_NON_ASCII_MAX = ... -_escape_map = ... -_namespace_map = ... -_pattern = ... -def fixtag(tag, namespaces): # -> tuple[str, tuple[str, str | Unknown] | None]: - ... diff --git a/manager/typings/supervisor/tests/__init__.pyi b/manager/typings/supervisor/tests/__init__.pyi deleted file mode 100644 index cea7ef962..000000000 --- a/manager/typings/supervisor/tests/__init__.pyi +++ /dev/null @@ -1,3 +0,0 @@ -""" -This type stub file was generated by pyright. -""" diff --git a/manager/typings/supervisor/web.pyi b/manager/typings/supervisor/web.pyi deleted file mode 100644 index 3ac195f5b..000000000 --- a/manager/typings/supervisor/web.pyi +++ /dev/null @@ -1,87 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -class DeferredWebProducer: - """ A medusa producer that implements a deferred callback; requires - a subclass of asynchat.async_chat that handles NOT_DONE_YET sentinel """ - CONNECTION = ... - def __init__(self, request, callback) -> None: - ... - - def more(self): # -> Type[NOT_DONE_YET] | Literal[''] | None: - ... - - def sendresponse(self, response): # -> None: - ... - - - -class ViewContext: - def __init__(self, **kw) -> None: - ... - - - -class MeldView: - content_type = ... - delay = ... - def __init__(self, context) -> None: - ... - - def __call__(self): # -> Type[NOT_DONE_YET]: - ... - - def render(self): # -> None: - ... - - def clone(self): - ... - - - -class TailView(MeldView): - def render(self): # -> str: - ... - - - -class StatusView(MeldView): - def actions_for_process(self, process): # -> list[dict[str, str | Unknown | None] | dict[str, str | Unknown]] | list[dict[str, str | Unknown | None] | dict[str, str | Unknown] | None]: - ... - - def css_class_for_state(self, state): # -> Literal['statusrunning', 'statuserror', 'statusnominal']: - ... - - def make_callback(self, namespec, action): # -> () -> str | () -> (Type[NOT_DONE_YET] | str) | () -> Unknown | () -> (str | Type[NOT_DONE_YET] | Unknown) | () -> (Type[NOT_DONE_YET] | Unknown): - ... - - def render(self): # -> Type[NOT_DONE_YET] | str: - ... - - - -class OKView: - delay = ... - def __init__(self, context) -> None: - ... - - def __call__(self): # -> dict[str, str]: - ... - - - -VIEWS = ... -class supervisor_ui_handler: - IDENT = ... - def __init__(self, supervisord) -> None: - ... - - def match(self, request): # -> bool | None: - ... - - def handle_request(self, request): # -> None: - ... - - def continue_request(self, data, request): # -> None: - ... diff --git a/manager/typings/supervisor/xmlrpc.pyi b/manager/typings/supervisor/xmlrpc.pyi deleted file mode 100644 index 879c49b92..000000000 --- a/manager/typings/supervisor/xmlrpc.pyi +++ /dev/null @@ -1,174 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from supervisor.compat import httplib, xmlrpclib -from supervisor.medusa.xmlrpc_handler import xmlrpc_handler - -class Faults: - UNKNOWN_METHOD = ... - INCORRECT_PARAMETERS = ... - BAD_ARGUMENTS = ... - SIGNATURE_UNSUPPORTED = ... - SHUTDOWN_STATE = ... - BAD_NAME = ... - BAD_SIGNAL = ... - NO_FILE = ... - NOT_EXECUTABLE = ... - FAILED = ... - ABNORMAL_TERMINATION = ... - SPAWN_ERROR = ... - ALREADY_STARTED = ... - NOT_RUNNING = ... - SUCCESS = ... - ALREADY_ADDED = ... - STILL_RUNNING = ... - CANT_REREAD = ... - - -def getFaultDescription(code): # -> str: - ... - -class RPCError(Exception): - def __init__(self, code, extra=...) -> None: - ... - - def __str__(self) -> str: - ... - - - -class DeferredXMLRPCResponse: - """ A medusa producer that implements a deferred callback; requires - a subclass of asynchat.async_chat that handles NOT_DONE_YET sentinel """ - CONNECTION = ... - def __init__(self, request, callback) -> None: - ... - - def more(self): # -> Type[NOT_DONE_YET] | Literal[''] | None: - ... - - def getresponse(self, body): # -> None: - ... - - - -def xmlrpc_marshal(value): - ... - -class SystemNamespaceRPCInterface: - def __init__(self, namespaces) -> None: - ... - - def listMethods(self): # -> list[Unknown]: - """ Return an array listing the available method names - - @return array result An array of method names available (strings). - """ - ... - - def methodHelp(self, name): - """ Return a string showing the method's documentation - - @param string name The name of the method. - @return string result The documentation for the method name. - """ - ... - - def methodSignature(self, name): # -> List[Unknown]: - """ Return an array describing the method signature in the - form [rtype, ptype, ptype...] where rtype is the return data type - of the method, and ptypes are the parameter data types that the - method accepts in method argument order. - - @param string name The name of the method. - @return array result The result. - """ - ... - - def multicall(self, calls): # -> (remaining_calls: Unknown = remaining_calls, callbacks: Unknown = callbacks, results: Unknown = results) -> (Type[NOT_DONE_YET] | Unknown) | Type[NOT_DONE_YET] | list[Unknown]: - """Process an array of calls, and return an array of - results. Calls should be structs of the form {'methodName': - string, 'params': array}. Each result will either be a - single-item array containing the result value, or a struct of - the form {'faultCode': int, 'faultString': string}. This is - useful when you need to make lots of small calls without lots - of round trips. - - @param array calls An array of call requests - @return array result An array of results - """ - ... - - - -class AttrDict(dict): - def __getattr__(self, name): # -> None: - ... - - - -class RootRPCInterface: - def __init__(self, subinterfaces) -> None: - ... - - - -def capped_int(value): # -> int: - ... - -def make_datetime(text): # -> datetime: - ... - -class supervisor_xmlrpc_handler(xmlrpc_handler): - path = ... - IDENT = ... - unmarshallers = ... - def __init__(self, supervisord, subinterfaces) -> None: - ... - - def loads(self, data): # -> tuple[tuple[Any, ...] | None, Any | None]: - ... - - def match(self, request): - ... - - def continue_request(self, data, request): # -> None: - ... - - def call(self, method, params): # -> Any: - ... - - - -def traverse(ob, method, params): # -> Any: - ... - -class SupervisorTransport(xmlrpclib.Transport): - """ - Provides a Transport for xmlrpclib that uses - httplib.HTTPConnection in order to support persistent - connections. Also support basic auth and UNIX domain socket - servers. - """ - connection = ... - def __init__(self, username=..., password=..., serverurl=...) -> None: - ... - - def close(self): # -> None: - ... - - def request(self, host, handler, request_body, verbose=...): - ... - - - -class UnixStreamHTTPConnection(httplib.HTTPConnection): - def connect(self): # -> None: - ... - - - -def gettags(comment): # -> list[Unknown]: - """ Parse documentation strings into JavaDoc-like tokens """ - ...