mirror of
https://github.com/odoo-ide/odoo-stubs.git
synced 2025-05-08 16:52:26 +03:00
Update stubs
This commit is contained in:
@@ -316,7 +316,7 @@ class BaseModel(metaclass=MetaModel):
|
||||
def _has_onchange(self, field: Field, other_fields: Container[Field]) -> bool: ...
|
||||
def _onchange_spec(self, view_info: dict | None = ...) -> dict: ...
|
||||
def _onchange_eval(self, field_name: str, onchange: str, result: dict) -> None: ...
|
||||
def onchange(self, values: dict[str, Any], field_name: str | list[str] | bool, field_onchange: dict[str, str]): ...
|
||||
def onchange(self, values: dict[str, Any], field_name: str | list[str] | bool, field_onchange: dict[str, str]) -> dict: ...
|
||||
def _get_placeholder_filename(self, field: str) -> str | bool: ...
|
||||
def _populate_factories(self) -> list[tuple[str, Iterator]]: ...
|
||||
@property
|
||||
|
||||
@@ -1,41 +1,54 @@
|
||||
import collections
|
||||
import logging
|
||||
import unittest
|
||||
from typing import Any
|
||||
from re import Pattern
|
||||
|
||||
from itertools import count
|
||||
from typing import Any, Callable, Generator, Generic, Iterator, Literal, Mapping, Match, TypeVar
|
||||
from xmlrpc import client as xmlrpclib
|
||||
|
||||
import requests
|
||||
from lxml.etree import _Element
|
||||
from websocket import WebSocket
|
||||
|
||||
from ..api import Environment
|
||||
from ..http import OpenERPSession
|
||||
from ..models import BaseModel
|
||||
from ..modules.registry import Registry
|
||||
from ..sql_db import BaseCursor, Cursor
|
||||
from ..tools import profiler
|
||||
from ..tools._vendor.sessions import Session
|
||||
from ..tools.profiler import Profiler
|
||||
|
||||
_logger: Any
|
||||
ADDONS_PATH: Any
|
||||
_T = TypeVar('_T')
|
||||
_CallableT = TypeVar('_CallableT', bound=Callable)
|
||||
_ModelT = TypeVar('_ModelT', bound=BaseModel)
|
||||
_FormT = TypeVar('_FormT', bound=Form)
|
||||
|
||||
ADDONS_PATH: str
|
||||
HOST: str
|
||||
ADMIN_USER_ID: Any
|
||||
ADMIN_USER_ID: int
|
||||
|
||||
def get_db_name(): ...
|
||||
def get_db_name() -> str: ...
|
||||
|
||||
standalone_tests: Any
|
||||
standalone_tests: collections.defaultdict[str, list]
|
||||
|
||||
def standalone(*tags): ...
|
||||
def standalone(*tags: str) -> Callable[[_CallableT], _CallableT]: ...
|
||||
|
||||
DB: Any
|
||||
DB: str
|
||||
|
||||
def new_test_user(env, login: str = ..., groups: str = ..., context: Any | None = ..., **kwargs): ...
|
||||
def new_test_user(env: Environment, login: str = ..., groups: str = ..., context: dict | None = ..., **kwargs) -> 'odoo.model.res_users': ...
|
||||
|
||||
class RecordCapturer:
|
||||
_model: Any
|
||||
_domain: Any
|
||||
def __init__(self, model, domain) -> None: ...
|
||||
_before: Any
|
||||
_after: Any
|
||||
def __enter__(self): ...
|
||||
_model: BaseModel
|
||||
_domain: list
|
||||
def __init__(self, model: BaseModel, domain: list) -> None: ...
|
||||
_before: BaseModel | None
|
||||
_after: BaseModel | None
|
||||
def __enter__(self: _T) -> _T: ...
|
||||
def __exit__(self, exc_type, exc_value, exc_traceback) -> None: ...
|
||||
@property
|
||||
def records(self): ...
|
||||
def records(self) -> BaseModel: ...
|
||||
|
||||
class OdooSuite(unittest.suite.TestSuite):
|
||||
def __init__(self, *args, **kwargs) -> None: ...
|
||||
@@ -47,10 +60,14 @@ class OdooSuite(unittest.suite.TestSuite):
|
||||
class MetaCase(type):
|
||||
def __init__(cls, name, bases, attrs) -> None: ...
|
||||
|
||||
def _normalize_arch_for_assert(arch_string, parser_method: str = ...): ...
|
||||
def _normalize_arch_for_assert(arch_string: str, parser_method: str = ...) -> str: ...
|
||||
|
||||
class BaseCase(unittest.TestCase, metaclass=MetaCase):
|
||||
_class_cleanups: Any
|
||||
_class_cleanups: list
|
||||
tearDown_exceptions: list
|
||||
registry: Registry
|
||||
env: Environment
|
||||
cr: Cursor
|
||||
@classmethod
|
||||
def addClassCleanup(cls, function, *args, **kwargs) -> None: ...
|
||||
@classmethod
|
||||
@@ -62,27 +79,26 @@ class BaseCase(unittest.TestCase, metaclass=MetaCase):
|
||||
def cursor(self) -> Cursor: ...
|
||||
@property
|
||||
def uid(self) -> int: ...
|
||||
env: Environment
|
||||
@uid.setter
|
||||
def uid(self, user) -> None: ...
|
||||
def ref(self, xid): ...
|
||||
def browse_ref(self, xid): ...
|
||||
def ref(self, xid: str) -> int: ...
|
||||
def browse_ref(self, xid: str) -> BaseModel | None: ...
|
||||
def patch(self, obj, key, val) -> None: ...
|
||||
def with_user(self, login) -> None: ...
|
||||
def _assertRaises(self, exception, *, msg: Any | None = ...) -> None: ...
|
||||
def assertRaises(self, exception, func: Any | None = ..., *args, **kwargs): ...
|
||||
def assertQueries(self, expected, flush: bool = ...): ...
|
||||
def assertQueryCount(self, default: int = ..., flush: bool = ..., **counters): ...
|
||||
def assertRecordValues(self, records, expected_values): ...
|
||||
def assertItemsEqual(self, a, b, msg: Any | None = ...) -> None: ...
|
||||
def assertTreesEqual(self, n1, n2, msg: Any | None = ...) -> None: ...
|
||||
def _assertXMLEqual(self, original, expected, parser: str = ...) -> None: ...
|
||||
def assertXMLEqual(self, original, expected): ...
|
||||
def assertHTMLEqual(self, original, expected): ...
|
||||
profile_session: Any
|
||||
def profile(self, **kwargs): ...
|
||||
def with_user(self, login: str) -> None: ...
|
||||
def _assertRaises(self, exception, *, msg: Any | None = ...) -> Generator[Any, None, None]: ...
|
||||
def assertRaises(self, exception, func: Any | None = ..., *args, **kwargs) -> Generator[Any, None, None] | None: ...
|
||||
def assertQueries(self, expected, flush: bool = ...) -> Generator[list, None, None]: ...
|
||||
def assertQueryCount(self, default: int = ..., flush: bool = ..., **counters) -> Generator[None, None, None]: ...
|
||||
def assertRecordValues(self, records: BaseModel, expected_values: list[dict[str, Any]]) -> None: ...
|
||||
def assertItemsEqual(self, a, b, msg: str | None = ...) -> None: ...
|
||||
def assertTreesEqual(self, n1, n2, msg: str | None = ...) -> None: ...
|
||||
def _assertXMLEqual(self, original: str, expected: str, parser: str = ...) -> None: ...
|
||||
def assertXMLEqual(self, original: str, expected: str) -> None: ...
|
||||
def assertHTMLEqual(self, original: str, expected: str) -> None: ...
|
||||
profile_session: str
|
||||
def profile(self, **kwargs) -> Profiler: ...
|
||||
|
||||
savepoint_seq: Any
|
||||
savepoint_seq: count[int]
|
||||
|
||||
class TransactionCase(BaseCase):
|
||||
registry: Registry
|
||||
@@ -90,7 +106,7 @@ class TransactionCase(BaseCase):
|
||||
cr: Cursor
|
||||
@classmethod
|
||||
def setUpClass(cls) -> None: ...
|
||||
_savepoint_id: Any
|
||||
_savepoint_id: int
|
||||
def setUp(self): ...
|
||||
|
||||
class SavepointCase(TransactionCase):
|
||||
@@ -98,9 +114,6 @@ class SavepointCase(TransactionCase):
|
||||
def __init_subclass__(cls) -> None: ...
|
||||
|
||||
class SingleTransactionCase(BaseCase):
|
||||
registry: Registry
|
||||
env: Environment
|
||||
cr: Cursor
|
||||
@classmethod
|
||||
def __init_subclass__(cls) -> None: ...
|
||||
@classmethod
|
||||
@@ -110,56 +123,55 @@ class SingleTransactionCase(BaseCase):
|
||||
class ChromeBrowserException(Exception): ...
|
||||
|
||||
class ChromeBrowser:
|
||||
_logger: Any
|
||||
test_class: Any
|
||||
devtools_port: Any
|
||||
test_class: str
|
||||
devtools_port: int | None
|
||||
ws_url: str
|
||||
ws: Any
|
||||
ws: WebSocket | None
|
||||
request_id: int
|
||||
user_data_dir: Any
|
||||
chrome_pid: Any
|
||||
screenshots_dir: Any
|
||||
screencasts_dir: Any
|
||||
screencast_frames: Any
|
||||
window_size: Any
|
||||
user_data_dir: str
|
||||
chrome_pid: int | None
|
||||
screenshots_dir: str
|
||||
screencasts_dir: str | None
|
||||
screencast_frames: list
|
||||
window_size: str
|
||||
sigxcpu_handler: Any
|
||||
def __init__(self, logger, window_size, test_class) -> None: ...
|
||||
def __init__(self, logger: logging.Logger, window_size: str, test_class: str) -> None: ...
|
||||
def signal_handler(self, sig, frame) -> None: ...
|
||||
def stop(self) -> None: ...
|
||||
@property
|
||||
def executable(self): ...
|
||||
def _spawn_chrome(self, cmd): ...
|
||||
def executable(self) -> str | None: ...
|
||||
def _spawn_chrome(self, cmd: list[str]) -> int | None: ...
|
||||
def _chrome_start(self) -> None: ...
|
||||
def _find_websocket(self) -> None: ...
|
||||
def _json_command(self, command, timeout: int = ..., get_key: Any | None = ...): ...
|
||||
def _json_command(self, command: str, timeout: int = ..., get_key: Any | None = ...): ...
|
||||
def _open_websocket(self) -> None: ...
|
||||
def _websocket_send(self, method, params: Any | None = ...): ...
|
||||
def _get_message(self, raise_log_error: bool = ...): ...
|
||||
_TO_LEVEL: Any
|
||||
def _websocket_wait_id(self, awaited_id, timeout: int = ...): ...
|
||||
def _websocket_wait_event(self, method, params: Any | None = ..., timeout: int = ...): ...
|
||||
def take_screenshot(self, prefix: str = ..., suffix: Any | None = ...) -> None: ...
|
||||
def _websocket_send(self, method: str, params: Any | None = ...) -> int | None: ...
|
||||
def _get_message(self, raise_log_error: bool = ...) -> dict: ...
|
||||
_TO_LEVEL: dict[str, int]
|
||||
def _websocket_wait_id(self, awaited_id: int, timeout: int = ...) -> dict: ...
|
||||
def _websocket_wait_event(self, method: str, params: dict | None = ..., timeout: int = ...) -> dict | None: ...
|
||||
def take_screenshot(self, prefix: str = ..., suffix: str | None = ...) -> None: ...
|
||||
def _save_screencast(self, prefix: str = ...) -> None: ...
|
||||
screencasts_frames_dir: Any
|
||||
screencasts_frames_dir: str
|
||||
def start_screencast(self) -> None: ...
|
||||
def set_cookie(self, name, value, path, domain): ...
|
||||
def delete_cookie(self, name, **kwargs): ...
|
||||
def _wait_ready(self, ready_code, timeout: int = ...): ...
|
||||
def _wait_code_ok(self, code, timeout): ...
|
||||
def navigate_to(self, url, wait_stop: bool = ...) -> None: ...
|
||||
def set_cookie(self, name: str, value, path, domain) -> dict: ...
|
||||
def delete_cookie(self, name: str, **kwargs) -> dict: ...
|
||||
def _wait_ready(self, ready_code, timeout: int = ...) -> bool: ...
|
||||
def _wait_code_ok(self, code, timeout: float) -> Literal[True] | None: ...
|
||||
def navigate_to(self, url: str, wait_stop: bool = ...) -> None: ...
|
||||
def clear(self) -> None: ...
|
||||
def _from_remoteobject(self, arg): ...
|
||||
def _from_remoteobject(self, arg: Mapping): ...
|
||||
LINE_PATTERN: str
|
||||
def _format_stack(self, logrecord) -> None: ...
|
||||
def console_formatter(self, args): ...
|
||||
def _format_stack(self, logrecord: Mapping) -> None: ...
|
||||
def console_formatter(self, args: list) -> Callable[[Match[str]], str]: ...
|
||||
|
||||
class Opener(requests.Session):
|
||||
cr: Any
|
||||
cr: BaseCursor
|
||||
def __init__(self, cr: BaseCursor) -> None: ...
|
||||
def request(self, *args, **kwargs): ...
|
||||
|
||||
class Transport(xmlrpclib.Transport):
|
||||
cr: Any
|
||||
cr: BaseCursor
|
||||
def __init__(self, cr: BaseCursor) -> None: ...
|
||||
def request(self, *args, **kwargs): ...
|
||||
|
||||
@@ -179,102 +191,110 @@ class HttpCase(TransactionCase):
|
||||
def start_browser(cls) -> None: ...
|
||||
@classmethod
|
||||
def terminate_browser(cls) -> None: ...
|
||||
def url_open(self, url, data: Any | None = ..., files: Any | None = ..., timeout: int = ..., headers: Any | None = ..., allow_redirects: bool = ..., head: bool = ...): ...
|
||||
def _wait_remaining_requests(self, timeout: int = ...): ...
|
||||
def url_open(self, url: str, data: Any | None = ..., files: Mapping | None = ..., timeout: int = ...,
|
||||
headers: Mapping | None = ..., allow_redirects: bool = ..., head: bool = ...) -> requests.Response: ...
|
||||
def _wait_remaining_requests(self, timeout: int = ...) -> None: ...
|
||||
def logout(self, keep_db: bool = ...) -> None: ...
|
||||
session: OpenERPSession
|
||||
def authenticate(self, user, password): ...
|
||||
def browser_js(self, url_path, code, ready: str = ..., login: Any | None = ..., timeout: int = ..., **kw) -> None: ...
|
||||
def authenticate(self, user, password) -> Session: ...
|
||||
def browser_js(self, url_path: str, code: str, ready: str = ..., login: str | None = ..., timeout: int = ..., **kw) -> None: ...
|
||||
@classmethod
|
||||
def base_url(cls): ...
|
||||
def start_tour(self, url_path, tour_name, step_delay: Any | None = ..., **kwargs): ...
|
||||
def base_url(cls) -> str: ...
|
||||
def start_tour(self, url_path: str, tour_name: str, step_delay: float | None = ..., **kwargs) -> None: ...
|
||||
def profile(self, **kwargs) -> profiler.Nested: ...
|
||||
|
||||
class HttpSavepointCase(HttpCase):
|
||||
@classmethod
|
||||
def __init_subclass__(cls) -> None: ...
|
||||
|
||||
def users(*logins): ...
|
||||
def warmup(func, *args, **kwargs) -> None: ...
|
||||
def can_import(module): ...
|
||||
def users(*logins: str) -> Callable[[_CallableT], _CallableT]: ...
|
||||
def warmup(func: _CallableT, *args, **kwargs) -> _CallableT: ...
|
||||
def can_import(module: str) -> bool: ...
|
||||
|
||||
ref_re: Any
|
||||
ref_re: Pattern
|
||||
|
||||
class Form:
|
||||
def __init__(self, recordp, view: Any | None = ...) -> None: ...
|
||||
def _o2m_set_edition_view(self, descr, node, level) -> None: ...
|
||||
def __str__(self): ...
|
||||
def _process_fvg(self, model, fvg, level: int = ...) -> None: ...
|
||||
def _init_from_defaults(self, model) -> None: ...
|
||||
def _init_from_values(self, values) -> None: ...
|
||||
def __getattr__(self, field): ...
|
||||
def _get_modifier(self, field, modifier, default: bool = ..., modmap: Any | None = ..., vals: Any | None = ...): ...
|
||||
_OPS: Any
|
||||
def _get_context(self, field): ...
|
||||
def __setattr__(self, field, value) -> None: ...
|
||||
def __enter__(self) -> Form: ...
|
||||
class Form(Generic[_ModelT]):
|
||||
_env: Environment
|
||||
_model: _ModelT
|
||||
_view: dict
|
||||
_values: dict
|
||||
_changed: set
|
||||
def __init__(self, recordp: _ModelT, view: _ModelT | str | None = ...) -> None: ...
|
||||
def _o2m_set_edition_view(self, descr: dict, node: _Element, level: int) -> None: ...
|
||||
def __str__(self) -> str: ...
|
||||
def _process_fvg(self, model: BaseModel, fvg: dict, level: int = ...) -> None: ...
|
||||
def _init_from_defaults(self, model: BaseModel) -> None: ...
|
||||
def _init_from_values(self, values: BaseModel) -> None: ...
|
||||
def __getattr__(self, field: str): ...
|
||||
def _get_modifier(self, field: str, modifier: str, *, default: Any = ..., view: Any = ..., modmap: Any | None = ...,
|
||||
vals: Any | None = ...): ...
|
||||
_OPS: dict[str, Callable[..., bool]]
|
||||
def _get_context(self, field: str): ...
|
||||
def __setattr__(self, field: str, value) -> None: ...
|
||||
def __enter__(self: _FormT) -> _FormT: ...
|
||||
def __exit__(self, etype, _evalue, _etb) -> None: ...
|
||||
def save(self): ...
|
||||
def _values_to_save(self, all_fields: bool = ...): ...
|
||||
def _values_to_save_(self, record_values, fields, view, changed, all_fields: bool = ..., modifiers_values: Any | None = ..., parent_link: Any | None = ...): ...
|
||||
def _perform_onchange(self, fields): ...
|
||||
def _onchange_values(self): ...
|
||||
def _onchange_values_(self, fields, record): ...
|
||||
def _cleanup_onchange(self, descr, value, current): ...
|
||||
def save(self) -> _ModelT: ...
|
||||
def _values_to_save(self, all_fields: bool = ...) -> dict: ...
|
||||
def _values_to_save_(self, record_values: dict, fields: dict, view: Any, changed: set, all_fields: bool = ...,
|
||||
modifiers_values: dict | None = ..., parent_link: Any | None = ...) -> dict: ...
|
||||
def _perform_onchange(self, fields: list[str]) -> dict: ...
|
||||
def _onchange_values(self) -> dict: ...
|
||||
def _onchange_values_(self, fields, record: dict) -> dict: ...
|
||||
def _cleanup_onchange(self, descr: dict, value, current): ...
|
||||
|
||||
class O2MForm(Form):
|
||||
def __init__(self, proxy, index: Any | None = ...) -> None: ...
|
||||
def _get_modifier(self, field, modifier, default: bool = ..., modmap: Any | None = ..., vals: Any | None = ...): ...
|
||||
def _onchange_values(self): ...
|
||||
_proxy: O2MProxy
|
||||
_index: int | None
|
||||
def __init__(self, proxy: O2MProxy, index: int | None = ...) -> None: ...
|
||||
def _get_modifier(self, field: str, modifier: str, *, default: Any = ..., view: Any = ..., modmap: Any | None = ...,
|
||||
vals: Any | None = ...): ...
|
||||
def _onchange_values(self) -> dict: ...
|
||||
def save(self) -> None: ...
|
||||
def _values_to_save(self, all_fields: bool = ...): ...
|
||||
def _values_to_save(self, all_fields: bool = ...) -> UpdateDict: ...
|
||||
|
||||
class UpdateDict(dict):
|
||||
_changed: Any
|
||||
_changed: set
|
||||
def __init__(self, *args, **kwargs) -> None: ...
|
||||
def changed_items(self): ...
|
||||
def changed_items(self) -> Iterator[tuple[Any, Any]]: ...
|
||||
def update(self, *args, **kw) -> None: ...
|
||||
|
||||
class X2MProxy:
|
||||
_parent: Any
|
||||
_field: Any
|
||||
_parent: Form
|
||||
_field: str
|
||||
def _assert_editable(self) -> None: ...
|
||||
|
||||
class O2MProxy(X2MProxy):
|
||||
_parent: Any
|
||||
_field: Any
|
||||
_records: Any
|
||||
def __init__(self, parent, field) -> None: ...
|
||||
def __len__(self): ...
|
||||
_records: list[dict]
|
||||
def __init__(self, parent: Form, field: str) -> None: ...
|
||||
def __len__(self) -> int: ...
|
||||
@property
|
||||
def _model(self): ...
|
||||
def _model(self) -> BaseModel: ...
|
||||
@property
|
||||
def _descr(self): ...
|
||||
def _command_index(self, for_record): ...
|
||||
def new(self): ...
|
||||
def edit(self, index): ...
|
||||
def remove(self, index) -> None: ...
|
||||
def _descr(self) -> dict: ...
|
||||
def _command_index(self, for_record: int) -> int: ...
|
||||
def new(self) -> O2MForm: ...
|
||||
def edit(self, index: int): ...
|
||||
def remove(self, index: int) -> None: ...
|
||||
|
||||
class M2MProxy(X2MProxy, collections.Sequence):
|
||||
_parent: Any
|
||||
_field: Any
|
||||
def __init__(self, parent, field) -> None: ...
|
||||
def __getitem__(self, it): ...
|
||||
def __len__(self): ...
|
||||
def __iter__(self): ...
|
||||
def __contains__(self, record): ...
|
||||
def add(self, record) -> None: ...
|
||||
def _get_ids(self): ...
|
||||
def remove(self, id: Any | None = ..., index: Any | None = ...) -> None: ...
|
||||
def __init__(self, parent: Form, field: str) -> None: ...
|
||||
def __getitem__(self, it) -> BaseModel: ...
|
||||
def __len__(self) -> int: ...
|
||||
def __iter__(self) -> Iterator[BaseModel]: ...
|
||||
def __contains__(self, record: BaseModel) -> bool: ...
|
||||
def add(self, record: BaseModel) -> None: ...
|
||||
def _get_ids(self) -> list[int]: ...
|
||||
def remove(self, id: int | None = ..., index: int | None = ...) -> None: ...
|
||||
def clear(self) -> None: ...
|
||||
|
||||
def record_to_values(fields, record): ...
|
||||
def _cleanup_from_default(type_, value): ...
|
||||
def record_to_values(fields: dict, record: BaseModel) -> dict: ...
|
||||
def _cleanup_from_default(type_: str, value): ...
|
||||
def _get_node(view, f, *arg): ...
|
||||
def tagged(*tags): ...
|
||||
def tagged(*tags: str) -> Callable[[_CallableT], _CallableT]: ...
|
||||
|
||||
class TagsSelector:
|
||||
filter_spec_re: Any
|
||||
exclude: Any
|
||||
include: Any
|
||||
def __init__(self, spec) -> None: ...
|
||||
def check(self, test): ...
|
||||
filter_spec_re: Pattern
|
||||
exclude: set
|
||||
include: set
|
||||
def __init__(self, spec: str) -> None: ...
|
||||
def check(self, test) -> bool: ...
|
||||
|
||||
0
odoo-stubs/tools/_vendor/__init__.pyi
Normal file
0
odoo-stubs/tools/_vendor/__init__.pyi
Normal file
53
odoo-stubs/tools/_vendor/sessions.pyi
Normal file
53
odoo-stubs/tools/_vendor/sessions.pyi
Normal file
@@ -0,0 +1,53 @@
|
||||
from re import Pattern
|
||||
from typing import Any, Generic, TypeVar
|
||||
|
||||
from werkzeug.datastructures import CallbackDict
|
||||
|
||||
_ModificationTrackingDictT = TypeVar('_ModificationTrackingDictT', bound=ModificationTrackingDict)
|
||||
_SessionT = TypeVar('_SessionT', bound=Session)
|
||||
|
||||
_sha1_re: Pattern
|
||||
|
||||
def generate_key(salt: Any = ...) -> str: ...
|
||||
|
||||
class ModificationTrackingDict(CallbackDict):
|
||||
__slots__ = ('modified',)
|
||||
modified: bool
|
||||
def __init__(self, *args, **kwargs): ...
|
||||
def copy(self: _ModificationTrackingDictT) -> _ModificationTrackingDictT: ...
|
||||
def __copy__(self: _ModificationTrackingDictT) -> _ModificationTrackingDictT: ...
|
||||
|
||||
class Session(ModificationTrackingDict):
|
||||
__slots__ = ('modified', 'sid', 'new')
|
||||
sid: str
|
||||
new: bool
|
||||
def __init__(self, data, sid, new: bool = ...): ...
|
||||
def __repr__(self) -> str: ...
|
||||
@property
|
||||
def should_save(self) -> bool: ...
|
||||
|
||||
class SessionStore(Generic[_SessionT]):
|
||||
session_class: type[_SessionT]
|
||||
def __init__(self, session_class: type[_SessionT] | None = ...): ...
|
||||
def is_valid_key(self, key) -> bool: ...
|
||||
def generate_key(self, salt: Any = ...) -> str: ...
|
||||
def new(self) -> _SessionT: ...
|
||||
def save(self, session: _SessionT) -> None: ...
|
||||
def save_if_modified(self, session: _SessionT) -> None: ...
|
||||
def delete(self, session: _SessionT) -> None: ...
|
||||
def get(self, sid: str) -> _SessionT: ...
|
||||
|
||||
_fs_transaction_suffix: str
|
||||
|
||||
class FilesystemSessionStore(SessionStore[_SessionT]):
|
||||
path: str | None
|
||||
filename_template: str
|
||||
renew_missing: bool
|
||||
mode: int
|
||||
def __init__(self, path: str | None = ..., filename_template: str = ..., session_class: type[_SessionT] | None = ...,
|
||||
renew_missing: bool = ..., mode: int = ...) -> None: ...
|
||||
def get_session_filename(self, sid: str) -> str: ...
|
||||
def save(self, session: _SessionT) -> None: ...
|
||||
def delete(self, session: _SessionT) -> None: ...
|
||||
def get(self, sid: str) -> _SessionT: ...
|
||||
def list(self) -> list[str]: ...
|
||||
23
odoo-stubs/tools/_vendor/useragents.pyi
Normal file
23
odoo-stubs/tools/_vendor/useragents.pyi
Normal file
@@ -0,0 +1,23 @@
|
||||
from re import Pattern
|
||||
|
||||
class UserAgentParser(object):
|
||||
platforms: list[tuple[str, Pattern]]
|
||||
browsers: list[tuple[str, Pattern]]
|
||||
_browser_version_re: str
|
||||
_language_re: Pattern
|
||||
def __init__(self) -> None: ...
|
||||
def __call__(self, user_agent: str) -> tuple[str | None, str | None, str | None, str | None]: ...
|
||||
|
||||
class UserAgent(object):
|
||||
_parser: UserAgentParser
|
||||
string: str
|
||||
platform: str | None
|
||||
browser: str | None
|
||||
version: str | None
|
||||
language: str | None
|
||||
def __init__(self, environ_or_string: dict | str): ...
|
||||
def to_header(self) -> str: ...
|
||||
def __str__(self) -> str: ...
|
||||
def __nonzero__(self) -> bool: ...
|
||||
__bool__ = __nonzero__
|
||||
def __repr__(self) -> str: ...
|
||||
@@ -123,6 +123,6 @@ class Profiler:
|
||||
class Nested(Generic[_T]):
|
||||
profiler: Profiler
|
||||
context_manager: ContextManager[_T]
|
||||
def __init__(self, profiler: Profiler, context_manager: ContextManager) -> None: ...
|
||||
def __init__(self, profiler: Profiler, context_manager: ContextManager[_T]) -> None: ...
|
||||
def __enter__(self) -> _T: ...
|
||||
def __exit__(self, exc_type, exc_value, traceback): ...
|
||||
|
||||
Reference in New Issue
Block a user