From bdede7405843a2ced4f94f3f32cdf08adad37922 Mon Sep 17 00:00:00 2001 From: Trinh Anh Ngoc Date: Sat, 19 Nov 2022 23:05:09 +0700 Subject: [PATCH] Update stubs --- odoo-stubs/__init__.pyi | 31 +++-- odoo-stubs/conf/__init__.pyi | 6 +- odoo-stubs/loglevels.pyi | 10 +- odoo-stubs/modules/__init__.pyi | 27 +++- odoo-stubs/modules/db.pyi | 12 +- odoo-stubs/modules/graph.pyi | 52 ++++---- odoo-stubs/modules/migration.pyi | 19 +-- odoo-stubs/release.pyi | 26 ++-- odoo-stubs/service/common.pyi | 18 +-- odoo-stubs/service/db.pyi | 56 +++++---- odoo-stubs/service/model.pyi | 19 +-- odoo-stubs/service/security.pyi | 13 +- odoo-stubs/service/server.pyi | 195 +++++++++++++++-------------- odoo-stubs/service/wsgi_server.pyi | 14 +-- 14 files changed, 279 insertions(+), 219 deletions(-) diff --git a/odoo-stubs/__init__.pyi b/odoo-stubs/__init__.pyi index c8698cf..5976a53 100644 --- a/odoo-stubs/__init__.pyi +++ b/odoo-stubs/__init__.pyi @@ -1,16 +1,33 @@ -from . import addons as addons, api as api, cli as cli, conf as conf, fields as fields, http as http, loglevels as loglevels, models as models, netsvc as netsvc, osv as osv, release as release, service as service, sql_db as sql_db, tools as tools, upgrade as upgrade -from .tools.translate import _ as _, _lt as _lt -from typing import Any, Optional +from psycopg2 import connection + +from . import ( + addons as addons, + api as api, + cli as cli, + conf as conf, + fields as fields, + http as http, + loglevels as loglevels, + models as models, + netsvc as netsvc, + osv as osv, + release as release, + service as service, + sql_db as sql_db, + tools as tools, + upgrade as upgrade +) +from .api import Registry +from .tools.translate import _ as _, _lt as _lt -__path__: Any evented: bool -def gevent_wait_callback(conn: Any, timeout: Optional[Any] = ...) -> None: ... +def gevent_wait_callback(conn: connection, timeout: float | None = ...) -> None: ... multi_process: bool -def _decompress(data: Any): ... +def _decompress(data: bytes) -> bytes: ... SUPERUSER_ID: int -def registry(database_name: Optional[Any] = ...): ... +def registry(database_name: str | None = ...) -> Registry: ... diff --git a/odoo-stubs/conf/__init__.pyi b/odoo-stubs/conf/__init__.pyi index 4e0cedb..b9703b0 100644 --- a/odoo-stubs/conf/__init__.pyi +++ b/odoo-stubs/conf/__init__.pyi @@ -1,4 +1,2 @@ -from typing import Any - -addons_paths: Any -server_wide_modules: Any +addons_paths: list[str] +server_wide_modules: list[str] diff --git a/odoo-stubs/loglevels.pyi b/odoo-stubs/loglevels.pyi index a0121db..1336f66 100644 --- a/odoo-stubs/loglevels.pyi +++ b/odoo-stubs/loglevels.pyi @@ -1,4 +1,4 @@ -from typing import Any +from typing import Generator LOG_NOTSET: str LOG_DEBUG: str @@ -7,9 +7,9 @@ LOG_WARNING: str LOG_ERROR: str LOG_CRITICAL: str -def get_encodings(hint_encoding: str = ...) -> None: ... +def get_encodings(hint_encoding: str = ...) -> Generator[str, None, None]: ... -text_type: Any +text_type: type[str] -def ustr(value: Any, hint_encoding: str = ..., errors: str = ...): ... -def exception_to_unicode(e: Any): ... +def ustr(value, hint_encoding: str = ..., errors: str = ...) -> str: ... +def exception_to_unicode(e: BaseException) -> str: ... diff --git a/odoo-stubs/modules/__init__.pyi b/odoo-stubs/modules/__init__.pyi index 3e87be7..8fe50ad 100644 --- a/odoo-stubs/modules/__init__.pyi +++ b/odoo-stubs/modules/__init__.pyi @@ -1,3 +1,24 @@ -from . import db as db, graph as graph, loading as loading, migration as migration, module as module, registry as registry -from odoo.modules.loading import load_modules as load_modules, reset_modules_state as reset_modules_state -from odoo.modules.module import adapt_version as adapt_version, get_module_path as get_module_path, get_module_resource as get_module_resource, get_modules as get_modules, get_modules_with_version as get_modules_with_version, get_resource_from_path as get_resource_from_path, get_resource_path as get_resource_path, initialize_sys_path as initialize_sys_path, load_information_from_description_file as load_information_from_description_file, load_openerp_module as load_openerp_module +from . import ( + db as db, + graph as graph, + loading as loading, + migration as migration, + module as module, + registry as registry +) +from .loading import ( + load_modules as load_modules, + reset_modules_state as reset_modules_state +) +from .module import ( + adapt_version as adapt_version, + get_module_path as get_module_path, + get_module_resource as get_module_resource, + get_modules as get_modules, + get_modules_with_version as get_modules_with_version, + get_resource_from_path as get_resource_from_path, + get_resource_path as get_resource_path, + initialize_sys_path as initialize_sys_path, + load_information_from_description_file as load_information_from_description_file, + load_openerp_module as load_openerp_module +) diff --git a/odoo-stubs/modules/db.pyi b/odoo-stubs/modules/db.pyi index ef896c9..015e3a9 100644 --- a/odoo-stubs/modules/db.pyi +++ b/odoo-stubs/modules/db.pyi @@ -1,8 +1,6 @@ -from typing import Any +from ..sql_db import Cursor -_logger: Any - -def is_initialized(cr: Any): ... -def initialize(cr: Any) -> None: ... -def create_categories(cr: Any, categories: Any): ... -def has_unaccent(cr: Any): ... +def is_initialized(cr: Cursor) -> bool: ... +def initialize(cr: Cursor) -> None: ... +def create_categories(cr: Cursor, categories: list[str]) -> int | None: ... +def has_unaccent(cr: Cursor) -> bool: ... diff --git a/odoo-stubs/modules/graph.pyi b/odoo-stubs/modules/graph.pyi index 20a9621..fdc1933 100644 --- a/odoo-stubs/modules/graph.pyi +++ b/odoo-stubs/modules/graph.pyi @@ -1,30 +1,34 @@ -from typing import Any, Optional +from typing import Any, Iterable, Iterator -_logger: Any +from ..sql_db import Cursor -class Graph(dict): - def add_node(self, name: Any, info: Any): ... - def update_from_db(self, cr: Any) -> None: ... - def add_module(self, cr: Any, module: Any, force: Optional[Any] = ...) -> None: ... - def add_modules(self, cr: Any, module_list: Any, force: Optional[Any] = ...): ... - def __iter__(self) -> Any: ... - def __str__(self): ... +class Graph(dict[str, Node]): + def add_node(self, name: str, info: dict[str, Any]) -> Node: ... + def update_from_db(self, cr: Cursor) -> None: ... + def add_module(self, cr: Cursor, module: str, force: list | None = ...) -> None: ... + def add_modules(self, cr: Cursor, module_list: list[str], force: list | None = ...): ... + def __iter__(self) -> Iterator[Node]: ... + def __str__(self) -> str: ... class Node: - def __new__(cls, name: Any, graph: Any, info: Any): ... - name: Any = ... - graph: Any = ... - info: Any = ... - children: Any = ... - depth: int = ... - def __init__(self, name: Any, graph: Any, info: Any) -> None: ... + def __new__(cls, name: str, graph: Graph, info: dict[str, Any]) -> Node: ... + id: int + name: str + graph: Graph + info: dict[str, Any] + children: list[Node] + depth: int + dbdemo: bool + state: str + installed_version: str + def __init__(self, name: str, graph: Graph, info: dict[str, Any] | None) -> None: ... @property - def data(self): ... - def add_child(self, name: Any, info: Any): ... - def __setattr__(self, name: Any, value: Any) -> None: ... - def __iter__(self) -> Any: ... - def __str__(self): ... - def _pprint(self, depth: int = ...): ... - def should_have_demo(self): ... + def data(self) -> dict[str, Any]: ... + def add_child(self, name: str, info: dict[str, Any]): ... + def __setattr__(self, name: str, value) -> None: ... + def __iter__(self) -> Iterator[Node]: ... + def __str__(self) -> str: ... + def _pprint(self, depth: int = ...) -> str: ... + def should_have_demo(self) -> bool: ... @property - def parents(self): ... + def parents(self) -> Iterable[Node]: ... diff --git a/odoo-stubs/modules/migration.pyi b/odoo-stubs/modules/migration.pyi index ef8e705..22b1740 100644 --- a/odoo-stubs/modules/migration.pyi +++ b/odoo-stubs/modules/migration.pyi @@ -1,13 +1,14 @@ -from typing import Any +from types import ModuleType -_logger: Any +from .graph import Graph, Node +from ..sql_db import Cursor -def load_script(path: Any, module_name: Any): ... +def load_script(path: str, module_name: str) -> ModuleType: ... class MigrationManager: - cr: Any = ... - graph: Any = ... - migrations: Any = ... - def __init__(self, cr: Any, graph: Any) -> None: ... - def _get_files(self): ... - def migrate_module(self, pkg: Any, stage: Any): ... + cr: Cursor + graph: Graph + migrations: dict + def __init__(self, cr: Cursor, graph: Graph) -> None: ... + def _get_files(self) -> None: ... + def migrate_module(self, pkg: Node, stage: str) -> None: ... diff --git a/odoo-stubs/release.pyi b/odoo-stubs/release.pyi index 2cf63c8..4c52b3b 100644 --- a/odoo-stubs/release.pyi +++ b/odoo-stubs/release.pyi @@ -1,16 +1,14 @@ -from typing import Any - -RELEASE_LEVELS: Any -ALPHA: Any -BETA: Any -RELEASE_CANDIDATE: Any -FINAL: Any -RELEASE_LEVELS_DISPLAY: Any -version_info: Any -version: Any -series: Any -serie: Any -major_version: Any +RELEASE_LEVELS: list[str] +ALPHA: str +BETA: str +RELEASE_CANDIDATE: str +FINAL: str +RELEASE_LEVELS_DISPLAY: dict[str, str] +version_info: tuple +version: str +series: str +serie: str +major_version: str product_name: str description: str long_desc: str @@ -19,4 +17,4 @@ url: str author: str author_email: str license: str -nt_service_name: Any +nt_service_name: str diff --git a/odoo-stubs/service/common.pyi b/odoo-stubs/service/common.pyi index adb7ea8..a8c347a 100644 --- a/odoo-stubs/service/common.pyi +++ b/odoo-stubs/service/common.pyi @@ -1,11 +1,11 @@ -from typing import Any, Optional +from logging import Logger +from typing import Any, Literal -_logger: Any -RPC_VERSION_1: Any +RPC_VERSION_1: dict[str, Any] -def exp_login(db: Any, login: Any, password: Any): ... -def exp_authenticate(db: Any, login: Any, password: Any, user_agent_env: Any): ... -def exp_version(): ... -def exp_about(extended: bool = ...): ... -def exp_set_loglevel(loglevel: Any, logger: Optional[Any] = ...): ... -def dispatch(method: Any, params: Any): ... +def exp_login(db: str, login: str, password: str) -> int: ... +def exp_authenticate(db: str, login: str, password: str, user_agent_env: dict | None) -> int: ... +def exp_version() -> dict[str, Any]: ... +def exp_about(extended: bool = ...) -> str | tuple[str, str]: ... +def exp_set_loglevel(loglevel, logger: Logger | None = ...) -> Literal[True]: ... +def dispatch(method: str, params): ... diff --git a/odoo-stubs/service/db.pyi b/odoo-stubs/service/db.pyi index eff2a14..5e64ad9 100644 --- a/odoo-stubs/service/db.pyi +++ b/odoo-stubs/service/db.pyi @@ -1,31 +1,35 @@ from functools import wraps as wraps -from typing import Any, Optional +from typing import Any, Callable, IO, Iterable, Literal, TypeVar -_logger: Any +from ..sql_db import Cursor + +_CallableT = TypeVar('_CallableT', bound=Callable) class DatabaseExists(Warning): ... -def check_db_management_enabled(method: Any): ... -def check_super(passwd: Any): ... -def _initialize_db(id: Any, db_name: Any, demo: Any, lang: Any, user_password: Any, login: str = ..., country_code: Optional[Any] = ..., phone: Optional[Any] = ...) -> None: ... -def _create_empty_database(name: Any) -> None: ... -def exp_create_database(db_name: Any, demo: Any, lang: Any, user_password: str = ..., login: str = ..., country_code: Optional[Any] = ..., phone: Optional[Any] = ...): ... -def exp_duplicate_database(db_original_name: Any, db_name: Any): ... -def _drop_conn(cr: Any, db_name: Any) -> None: ... -def exp_drop(db_name: Any): ... -def exp_dump(db_name: Any, format: Any): ... -def dump_db_manifest(cr: Any): ... -def dump_db(db_name: Any, stream: Any, backup_format: str = ...): ... -def exp_restore(db_name: Any, data: Any, copy: bool = ...): ... -def restore_db(db: Any, dump_file: Any, copy: bool = ...) -> None: ... -def exp_rename(old_name: Any, new_name: Any): ... -def exp_change_admin_password(new_password: Any): ... -def exp_migrate_databases(databases: Any): ... -def exp_db_exist(db_name: Any): ... -def list_dbs(force: bool = ...): ... -def list_db_incompatible(databases: Any): ... -def exp_list(document: bool = ...): ... -def exp_list_lang(): ... -def exp_list_countries(): ... -def exp_server_version(): ... -def dispatch(method: Any, params: Any): ... +def check_db_management_enabled(method: _CallableT) -> _CallableT: ... +def check_super(passwd: str) -> Literal[True]: ... +def _initialize_db(id, db_name: str, demo: bool, lang: str, user_password: str, login: str = ..., + country_code: str | None = ..., phone: str | None = ...) -> None: ... +def _create_empty_database(name: str) -> None: ... +def exp_create_database(db_name: str, demo: bool, lang: str, user_password: str = ..., login: str = ..., + country_code: str | None = ..., phone: str | None = ...) -> Literal[True]: ... +def exp_duplicate_database(db_original_name: str, db_name: str) -> Literal[True]: ... +def _drop_conn(cr: Cursor, db_name: str) -> None: ... +def exp_drop(db_name: str) -> bool: ... +def exp_dump(db_name: str, format: str) -> str: ... +def dump_db_manifest(cr: Cursor) -> dict[str, Any]: ... +def dump_db(db_name: str, stream, backup_format: str = ...) -> IO | None: ... +def exp_restore(db_name: str, data, copy: bool = ...) -> Literal[True]: ... +def restore_db(db: str, dump_file: str, copy: bool = ...) -> None: ... +def exp_rename(old_name: str, new_name: str) -> Literal[True]: ... +def exp_change_admin_password(new_password: str) -> Literal[True]: ... +def exp_migrate_databases(databases: Iterable[str]) -> Literal[True]: ... +def exp_db_exist(db_name: str) -> bool: ... +def list_dbs(force: bool = ...) -> list[str]: ... +def list_db_incompatible(databases: Iterable[str]) -> list[str]: ... +def exp_list(document: bool = ...) -> list[str]: ... +def exp_list_lang() -> list[tuple[str, str]]: ... +def exp_list_countries() -> list[tuple[str, str]]: ... +def exp_server_version() -> str: ... +def dispatch(method: str, params): ... diff --git a/odoo-stubs/service/model.pyi b/odoo-stubs/service/model.pyi index 9278f36..9c8e35e 100644 --- a/odoo-stubs/service/model.pyi +++ b/odoo-stubs/service/model.pyi @@ -1,11 +1,14 @@ -from typing import Any, Optional +from typing import Callable, TypeVar -_logger: Any -PG_CONCURRENCY_ERRORS_TO_RETRY: Any +from ..sql_db import Cursor + +PG_CONCURRENCY_ERRORS_TO_RETRY: tuple[str, str, str] MAX_TRIES_ON_CONCURRENCY_FAILURE: int -def dispatch(method: Any, params: Any): ... -def check(f: Any): ... -def execute_cr(cr: Any, uid: Any, obj: Any, method: Any, *args: Any, **kw: Any): ... -def execute_kw(db: Any, uid: Any, obj: Any, method: Any, args: Any, kw: Optional[Any] = ...): ... -def execute(db: Any, uid: Any, obj: Any, method: Any, *args: Any, **kw: Any): ... +_CallableT = TypeVar('_CallableT', bound=Callable) + +def dispatch(method: str, params): ... +def check(f: _CallableT) -> _CallableT: ... +def execute_cr(cr: Cursor, uid: int, obj: str, method: str, *args, **kw): ... +def execute_kw(db: str, uid: int, obj: str, method: str, args, kw: dict | None = ...): ... +def execute(db: str, uid: int, obj: str, method: str, *args, **kw): ... diff --git a/odoo-stubs/service/security.pyi b/odoo-stubs/service/security.pyi index 2465c63..4432c6c 100644 --- a/odoo-stubs/service/security.pyi +++ b/odoo-stubs/service/security.pyi @@ -1,6 +1,9 @@ -from typing import Any +from typing import Literal -def login(db: Any, login: Any, password: Any): ... -def check(db: Any, uid: Any, passwd: Any): ... -def compute_session_token(session: Any, env: Any): ... -def check_session(session: Any, env: Any): ... +from ..api import Environment +from ..http import OpenERPSession + +def login(db: str, login: str, password: str) -> int | Literal[False]: ... +def check(db: str, uid: int, passwd: str) -> None: ... +def compute_session_token(session: OpenERPSession, env: Environment) -> str | Literal[False]: ... +def check_session(session: OpenERPSession, env: Environment) -> bool: ... diff --git a/odoo-stubs/service/server.pyi b/odoo-stubs/service/server.pyi index c8ce7b3..06b2b17 100644 --- a/odoo-stubs/service/server.pyi +++ b/odoo-stubs/service/server.pyi @@ -1,145 +1,158 @@ +from socket import socket as socket_ +from threading import Semaphore, Thread + +from gevent.pywsgi import WSGIServer +from itertools import chain as chain +from typing import Any, Callable, Iterable, Literal, TypeVar + import werkzeug.serving -from typing import Any, Optional +from inotify.adapters import InotifyTrees +from psutil import Process +from watchdog.observers import Observer + +from ..modules.registry import Registry +from ..sql_db import Cursor +from ..tests import runner as runner + +_WorkerT = TypeVar('_WorkerT', bound=Worker) INOTIFY_LISTEN_EVENTS: Any -_logger: Any SLEEP_INTERVAL: int -def memory_info(process: Any): ... +def memory_info(process: Process): ... def set_limit_memory_hard() -> None: ... -def empty_pipe(fd: Any) -> None: ... +def empty_pipe(fd: int) -> None: ... class LoggingBaseWSGIServerMixIn: - def handle_error(self, request: Any, client_address: Any) -> None: ... + def handle_error(self, request, client_address) -> None: ... class BaseWSGIServerNoBind(LoggingBaseWSGIServerMixIn, werkzeug.serving.BaseWSGIServer): - def __init__(self, app: Any) -> None: ... + def __init__(self, app) -> None: ... def server_activate(self) -> None: ... class RequestHandler(werkzeug.serving.WSGIRequestHandler): - timeout: int = ... def setup(self) -> None: ... class ThreadedWSGIServerReloadable(LoggingBaseWSGIServerMixIn, werkzeug.serving.ThreadedWSGIServer): - max_http_threads: Any = ... - http_threads_sem: Any = ... - daemon_threads: bool = ... - def __init__(self, host: Any, port: Any, app: Any) -> None: ... - reload_socket: bool = ... - socket: Any = ... + max_http_threads: Any + http_threads_sem: Semaphore + daemon_threads: bool + def __init__(self, host: str, port: int, app) -> None: ... + reload_socket: bool + socket: socket_ def server_bind(self) -> None: ... def server_activate(self) -> None: ... - def process_request(self, request: Any, client_address: Any) -> None: ... + def process_request(self, request, client_address) -> None: ... def _handle_request_noblock(self) -> None: ... - def shutdown_request(self, request: Any) -> None: ... + def shutdown_request(self, request) -> None: ... class FSWatcherBase: - def handle_file(self, path: Any): ... + def handle_file(self, path: str) -> Literal[True]: ... class FSWatcherWatchdog(FSWatcherBase): - observer: Any = ... + observer: Observer def __init__(self) -> None: ... - def dispatch(self, event: Any) -> None: ... + def dispatch(self, event) -> None: ... def start(self) -> None: ... def stop(self) -> None: ... class FSWatcherInotify(FSWatcherBase): - started: bool = ... - watcher: Any = ... + started: bool + watcher: InotifyTrees def __init__(self) -> None: ... def run(self) -> None: ... - thread: Any = ... + thread: Thread def start(self) -> None: ... def stop(self) -> None: ... class CommonServer: - app: Any = ... - interface: Any = ... - port: Any = ... - pid: Any = ... - def __init__(self, app: Any) -> None: ... - def close_socket(self, sock: Any) -> None: ... + app: Any + interface: str + port: int + pid: int + def __init__(self, app) -> None: ... + def close_socket(self, sock: socket_) -> None: ... class ThreadedServer(CommonServer): - main_thread_id: Any = ... - quit_signals_received: int = ... - httpd: Any = ... - limits_reached_threads: Any = ... - limit_reached_time: Any = ... - def __init__(self, app: Any) -> None: ... - def signal_handler(self, sig: Any, frame: Any) -> None: ... + main_thread_id: int | None + quit_signals_received: int + httpd: ThreadedWSGIServerReloadable | None + limits_reached_threads: set[Thread] + limit_reached_time: float | None + def __init__(self, app) -> None: ... + def signal_handler(self, sig, frame) -> None: ... def process_limit(self) -> None: ... - def cron_thread(self, number: Any) -> None: ... + def cron_thread(self, number) -> None: ... def cron_spawn(self) -> None: ... def http_thread(self): ... def http_spawn(self) -> None: ... def start(self, stop: bool = ...): ... def stop(self) -> None: ... - def run(self, preload: Optional[Any] = ..., stop: bool = ...): ... + def run(self, preload: Any | None = ..., stop: bool = ...): ... def reload(self) -> None: ... class GeventServer(CommonServer): - port: Any = ... - httpd: Any = ... - def __init__(self, app: Any) -> None: ... + port: int + httpd: WSGIServer | None + def __init__(self, app) -> None: ... def process_limits(self) -> None: ... - ppid: Any = ... + ppid: int def watchdog(self, beat: int = ...) -> None: ... - client_address: Any = ... + client_address: Any def start(self): ... def stop(self) -> None: ... - def run(self, preload: Any, stop: Any) -> None: ... + def run(self, preload, stop: bool) -> None: ... class PreforkServer(CommonServer): - address: Any = ... - population: Any = ... - timeout: Any = ... - limit_request: Any = ... - cron_timeout: Any = ... - beat: int = ... - app: Any = ... - pid: Any = ... - socket: Any = ... - workers_http: Any = ... - workers_cron: Any = ... - workers: Any = ... - generation: int = ... - queue: Any = ... - long_polling_pid: Any = ... - def __init__(self, app: Any) -> None: ... - def pipe_new(self): ... - def pipe_ping(self, pipe: Any) -> None: ... - def signal_handler(self, sig: Any, frame: Any) -> None: ... - def worker_spawn(self, klass: Any, workers_registry: Any): ... + address: Any + population: int + timeout: int + limit_request: int + cron_timeout: int + beat: int + app: Any + pid: int + socket: socket_ | None + workers_http: dict[int, WorkerHTTP] + workers_cron: dict[int, WorkerCron] + workers: dict[int, Worker] + generation: int + queue: list + long_polling_pid: int | None + def __init__(self, app) -> None: ... + def pipe_new(self) -> tuple[int, int]: ... + def pipe_ping(self, pipe: tuple[int, int]) -> None: ... + def signal_handler(self, sig: int, frame) -> None: ... + def worker_spawn(self, klass: Callable[..., _WorkerT], workers_registry: dict[int, _WorkerT]) -> _WorkerT | None: ... def long_polling_spawn(self) -> None: ... - def worker_pop(self, pid: Any) -> None: ... - def worker_kill(self, pid: Any, sig: Any) -> None: ... + def worker_pop(self, pid: int) -> None: ... + def worker_kill(self, pid: int, sig: int) -> None: ... def process_signals(self) -> None: ... def process_zombie(self) -> None: ... def process_timeout(self) -> None: ... def process_spawn(self) -> None: ... def sleep(self) -> None: ... - pipe: Any = ... + pipe: tuple[int, int] def start(self) -> None: ... def stop(self, graceful: bool = ...) -> None: ... - def run(self, preload: Any, stop: Any): ... + def run(self, preload, stop: bool): ... class Worker: - multi: Any = ... - watchdog_time: Any = ... - watchdog_pipe: Any = ... - eintr_pipe: Any = ... - watchdog_timeout: Any = ... - ppid: Any = ... - pid: Any = ... - alive: bool = ... - request_max: Any = ... - request_count: int = ... - def __init__(self, multi: Any) -> None: ... + multi: PreforkServer + watchdog_time: float + watchdog_pipe: tuple[int, int] + eintr_pipe: tuple[int, int] + watchdog_timeout: Any + ppid: int + pid: int | None + alive: bool + request_max: Any + request_count: int + def __init__(self, multi: PreforkServer) -> None: ... def setproctitle(self, title: str = ...) -> None: ... def close(self) -> None: ... - def signal_handler(self, sig: Any, frame: Any) -> None: ... - def signal_time_expired_handler(self, n: Any, stack: Any) -> None: ... + def signal_handler(self, sig: int, frame) -> None: ... + def signal_time_expired_handler(self, n, stack) -> None: ... def sleep(self) -> None: ... def check_limits(self) -> None: ... def process_work(self) -> None: ... @@ -149,27 +162,27 @@ class Worker: def _runloop(self) -> None: ... class WorkerHTTP(Worker): - sock_timeout: Any = ... - def __init__(self, multi: Any) -> None: ... - def process_request(self, client: Any, addr: Any) -> None: ... + sock_timeout: float + def __init__(self, multi: PreforkServer) -> None: ... + def process_request(self, client: socket_, addr) -> None: ... def process_work(self) -> None: ... - server: Any = ... + server: BaseWSGIServerNoBind def start(self) -> None: ... class WorkerCron(Worker): - db_index: int = ... - watchdog_timeout: Any = ... - def __init__(self, multi: Any) -> None: ... + db_index: int + watchdog_timeout: int + def __init__(self, multi: PreforkServer) -> None: ... def sleep(self) -> None: ... def _db_list(self): ... def process_work(self) -> None: ... def start(self) -> None: ... -server: Any +server: CommonServer | None def load_server_wide_modules() -> None: ... -def _reexec(updated_modules: Optional[Any] = ...) -> None: ... -def load_test_file_py(registry: Any, test_file: Any) -> None: ... -def preload_registries(dbnames: Any): ... -def start(preload: Optional[Any] = ..., stop: bool = ...): ... +def _reexec(updated_modules: Iterable[str] | None = ...) -> None: ... +def load_test_file_py(registry: Registry, test_file: str) -> None: ... +def preload_registries(dbnames: list[str] | None): ... +def start(preload: list[str] | None = ..., stop: bool = ...): ... def restart() -> None: ... diff --git a/odoo-stubs/service/wsgi_server.pyi b/odoo-stubs/service/wsgi_server.pyi index c1944bb..8cb4e31 100644 --- a/odoo-stubs/service/wsgi_server.pyi +++ b/odoo-stubs/service/wsgi_server.pyi @@ -1,17 +1,17 @@ -from typing import Any +from werkzeug.middleware.proxy_fix import ProxyFix as ProxyFix_ +from typing import Callable -_logger: Any RPC_FAULT_CODE_CLIENT_ERROR: int RPC_FAULT_CODE_APPLICATION_ERROR: int RPC_FAULT_CODE_WARNING: int RPC_FAULT_CODE_ACCESS_DENIED: int RPC_FAULT_CODE_ACCESS_ERROR: int -def xmlrpc_handle_exception_int(e: Any): ... -def xmlrpc_handle_exception_string(e: Any): ... +def xmlrpc_handle_exception_int(e: Exception) -> str: ... +def xmlrpc_handle_exception_string(e: Exception) -> str: ... def _patch_xmlrpc_marshaller() -> None: ... -def application_unproxied(environ: Any, start_response: Any): ... +def application_unproxied(environ, start_response): ... -ProxyFix: Any +ProxyFix: Callable[..., ProxyFix_] -def application(environ: Any, start_response: Any): ... +def application(environ, start_response): ...