Update stubs

This commit is contained in:
Trinh Anh Ngoc
2024-09-09 23:04:00 +07:00
parent f40acb942c
commit 9ccd5280cb
11 changed files with 59 additions and 18 deletions

View File

@@ -27,7 +27,15 @@ _T = TypeVar("_T")
_ModelT = TypeVar("_ModelT", bound=BaseModel) _ModelT = TypeVar("_ModelT", bound=BaseModel)
_CallableT = TypeVar("_CallableT", bound=Callable) _CallableT = TypeVar("_CallableT", bound=Callable)
INHERITED_ATTRS: tuple[str, ...] class NewId:
origin: int | None
ref: Any
def __init__(self, origin: int | None = ..., ref: Any | None = ...) -> None: ...
def __bool__(self) -> bool: ...
def __eq__(self, other) -> bool: ...
def __hash__(self) -> int: ...
def __repr__(self) -> str: ...
def __str__(self) -> str: ...
class Params: class Params:
args: tuple args: tuple

View File

@@ -42,7 +42,7 @@ class MetaField(type):
def __init__(cls: type[Field], name, bases, attrs) -> None: ... def __init__(cls: type[Field], name, bases, attrs) -> None: ...
class Field(Generic[_FieldValueT], metaclass=MetaField): class Field(Generic[_FieldValueT], metaclass=MetaField):
type: str | None type: str
relational: bool relational: bool
translate: bool translate: bool
column_type: tuple[str, str] | None column_type: tuple[str, str] | None
@@ -52,7 +52,7 @@ class Field(Generic[_FieldValueT], metaclass=MetaField):
inherited: bool inherited: bool
inherited_field: Field | None inherited_field: Field | None
name: str name: str
model_name: str model_name: str | None
comodel_name: str | None comodel_name: str | None
store: bool store: bool
index: str | bool | None index: str | bool | None

View File

@@ -254,6 +254,8 @@ class Request:
def cr(self, value) -> None: ... def cr(self, value) -> None: ...
@property @property
def best_lang(self) -> str | None: ... def best_lang(self) -> str | None: ...
@property
def cookies(self) -> dict: ...
def csrf_token(self, time_limit: int | None = ...) -> str: ... def csrf_token(self, time_limit: int | None = ...) -> str: ...
def validate_csrf(self, csrf: str) -> bool: ... def validate_csrf(self, csrf: str) -> bool: ...
def default_context(self) -> dict: ... def default_context(self) -> dict: ...

View File

@@ -19,7 +19,7 @@ from odoo.addons.base.models.res_company import Company
from odoo.addons.base.models.res_users import Users from odoo.addons.base.models.res_users import Users
from . import api, fields from . import api, fields
from .api import Environment from .api import Environment, NewId
from .fields import Field from .fields import Field
from .modules.registry import Registry, TriggerTree from .modules.registry import Registry, TriggerTree
from .sql_db import Cursor from .sql_db import Cursor
@@ -52,6 +52,7 @@ def check_property_field_value_name(property_name) -> None: ...
def fix_import_export_id_paths(fieldname: str) -> list[str]: ... def fix_import_export_id_paths(fieldname: str) -> list[str]: ...
def to_company_ids(companies): ... def to_company_ids(companies): ...
def check_company_domain_parent_of(self, companies) -> list: ... def check_company_domain_parent_of(self, companies) -> list: ...
def check_companies_domain_parent_of(self, companies) -> list: ...
class MetaModel(api.Meta): class MetaModel(api.Meta):
module_to_models: defaultdict[str, list[type[BaseModel]]] module_to_models: defaultdict[str, list[type[BaseModel]]]
@@ -60,14 +61,6 @@ class MetaModel(api.Meta):
self: type[BaseModel], name: str, bases: tuple, attrs: dict self: type[BaseModel], name: str, bases: tuple, attrs: dict
) -> None: ... ) -> None: ...
class NewId:
origin: int | None
ref: Any
def __init__(self, origin: int | None = ..., ref: Any | None = ...) -> None: ...
def __bool__(self) -> bool: ...
def __eq__(self, other) -> bool: ...
def __hash__(self) -> int: ...
def origin_ids(ids: Iterable) -> Iterator[int]: ... def origin_ids(ids: Iterable) -> Iterator[int]: ...
class OriginIds: class OriginIds:
@@ -78,7 +71,6 @@ class OriginIds:
def expand_ids(id0: _T, ids: Iterable) -> Iterator[_T]: ... def expand_ids(id0: _T, ids: Iterable) -> Iterator[_T]: ...
IdType: tuple[type[int], type[NewId]]
PREFETCH_MAX: int PREFETCH_MAX: int
LOG_ACCESS_COLUMNS: list[str] LOG_ACCESS_COLUMNS: list[str]
MAGIC_COLUMNS: list[str] MAGIC_COLUMNS: list[str]
@@ -199,6 +191,7 @@ class BaseModel(metaclass=MetaModel):
order: str | None = ..., order: str | None = ...,
) -> _ModelT: ... ) -> _ModelT: ...
def _compute_display_name(self) -> None: ... def _compute_display_name(self) -> None: ...
def _search_display_name(self, operator, value): ...
def name_create(self, name: str) -> tuple[int, str]: ... def name_create(self, name: str) -> tuple[int, str]: ...
def name_search( def name_search(
self, self,
@@ -267,6 +260,9 @@ class BaseModel(metaclass=MetaModel):
def _read_group_format_result_properties( def _read_group_format_result_properties(
self, rows_dict: Iterable[dict], group: str self, rows_dict: Iterable[dict], group: str
) -> None: ... ) -> None: ...
def _read_group_get_annotated_groupby(
self, groupby: str | list[str], lazy: bool
): ...
def read_group( def read_group(
self, self,
domain: list, domain: list,

View File

@@ -1,3 +1,4 @@
from re import Pattern
from types import ModuleType from types import ModuleType
from typing import Any, Literal from typing import Any, Literal
@@ -5,6 +6,7 @@ from odoo.addons.base.models.ir_module import Module
MANIFEST_NAMES: tuple[str, ...] MANIFEST_NAMES: tuple[str, ...]
README: list[str] README: list[str]
TYPED_FIELD_DEFINITION_RE: Pattern
class UpgradeHook: class UpgradeHook:
def find_spec( def find_spec(

View File

@@ -2,11 +2,13 @@ from functools import wraps as wraps
from typing import IO, Any, Callable, Iterable, Literal, TypeVar from typing import IO, Any, Callable, Iterable, Literal, TypeVar
from ..sql_db import Cursor from ..sql_db import Cursor
from ..tools import SQL
_CallableT = TypeVar("_CallableT", bound=Callable) _CallableT = TypeVar("_CallableT", bound=Callable)
class DatabaseExists(Warning): ... class DatabaseExists(Warning): ...
def database_identifier(cr: Cursor, name: str) -> SQL: ...
def check_db_management_enabled(method: _CallableT) -> _CallableT: ... def check_db_management_enabled(method: _CallableT) -> _CallableT: ...
def check_super(passwd: str) -> Literal[True]: ... def check_super(passwd: str) -> Literal[True]: ...
def exp_create_database( def exp_create_database(

View File

@@ -3,11 +3,14 @@ from concurrent.futures import Future
from contextlib import contextmanager from contextlib import contextmanager
from itertools import count from itertools import count
from subprocess import Popen from subprocess import Popen
from typing import Any, Callable, Generator, Mapping, Match, TypeVar from typing import Any, Callable, Generator, Iterable, Mapping, Match, TypeVar
from xmlrpc import client as xmlrpclib from xmlrpc import client as xmlrpclib
import requests import requests
from freezegun.api import _freeze_time
from odoo.addons.base.models.res_currency import Currency
from odoo.addons.base.models.res_users import Users from odoo.addons.base.models.res_users import Users
from urllib3.util import Url
from websocket import WebSocket from websocket import WebSocket
from ..api import Environment from ..api import Environment
@@ -100,7 +103,11 @@ class BaseCase(case.TestCase, metaclass=MetaCase):
self, default: int = ..., flush: bool = ..., **counters self, default: int = ..., flush: bool = ..., **counters
) -> Generator[None, None, None]: ... ) -> Generator[None, None, None]: ...
def assertRecordValues( def assertRecordValues(
self, records: BaseModel, expected_values: list[dict[str, Any]] self,
records: BaseModel,
expected_values: list[dict[str, Any]],
*,
field_names: Iterable[str] | None = ...
) -> None: ... ) -> None: ...
def assertItemsEqual(self, a, b, msg: str | None = ...) -> None: ... def assertItemsEqual(self, a, b, msg: str | None = ...) -> None: ...
def assertTreesEqual(self, n1, n2, msg: str | None = ...) -> None: ... def assertTreesEqual(self, n1, n2, msg: str | None = ...) -> None: ...
@@ -114,6 +121,13 @@ class Like:
regex: str regex: str
def __init__(self, pattern) -> None: ... def __init__(self, pattern) -> None: ...
class Approx:
value: float
cmp: Callable
def __init__(self, value: float, rounding: int | float | Currency) -> None: ...
def __repr__(self) -> str: ...
def __eq__(self, other: object) -> bool | NotImplemented: ...
savepoint_seq: count[int] savepoint_seq: count[int]
class TransactionCase(BaseCase): class TransactionCase(BaseCase):
@@ -121,6 +135,7 @@ class TransactionCase(BaseCase):
env: Environment env: Environment
cr: Cursor cr: Cursor
muted_registry_logger: mute_logger muted_registry_logger: mute_logger
freeze_time: Any
@classmethod @classmethod
def setUpClass(cls) -> None: ... def setUpClass(cls) -> None: ...
def setUp(self) -> None: ... def setUp(self) -> None: ...
@@ -207,6 +222,10 @@ class HttpCase(TransactionCase):
xmlrpc_object: xmlrpclib.ServerProxy xmlrpc_object: xmlrpclib.ServerProxy
opener: Opener opener: Opener
def setUp(self) -> None: ... def setUp(self) -> None: ...
def parse_http_location(self, location: str) -> Url: ...
def assertURLEqual(
self, test_url: str, truth_url: str, message: str | None = ...
) -> None: ...
def url_open( def url_open(
self, self,
url: str, url: str,
@@ -249,3 +268,11 @@ def users(*logins: str) -> Callable[[_CallableT], _CallableT]: ...
def warmup(func: _CallableT, *args, **kwargs) -> _CallableT: ... def warmup(func: _CallableT, *args, **kwargs) -> _CallableT: ...
def can_import(module: str) -> bool: ... def can_import(module: str) -> bool: ...
def tagged(*tags: str) -> Callable[[_CallableT], _CallableT]: ... def tagged(*tags: str) -> Callable[[_CallableT], _CallableT]: ...
class freeze_time:
freezer: _freeze_time | None
time_to_freeze: Any
def __init__(self, time_to_freeze) -> None: ...
def __call__(self, func): ...
def __enter__(self): ...
def __exit__(self, *args) -> None: ...

View File

@@ -22,6 +22,7 @@ from .js_transpiler import ODOO_MODULE_RE as ODOO_MODULE_RE
from .js_transpiler import URL_RE as URL_RE from .js_transpiler import URL_RE as URL_RE
from .js_transpiler import is_odoo_module as is_odoo_module from .js_transpiler import is_odoo_module as is_odoo_module
from .js_transpiler import transpile_javascript as transpile_javascript from .js_transpiler import transpile_javascript as transpile_javascript
from .json import json_default as json_default
from .mail import * from .mail import *
from .misc import * from .misc import *
from .parse_version import parse_version as parse_version from .parse_version import parse_version as parse_version

View File

@@ -46,9 +46,9 @@ def average_dominant_color(
) -> tuple[Any, Any]: ... ) -> tuple[Any, Any]: ...
def image_fix_orientation(image: Image) -> Image: ... def image_fix_orientation(image: Image) -> Image: ...
def binary_to_image(source: bytes) -> Image: ... def binary_to_image(source: bytes) -> Image: ...
def base64_to_image(base64_source: bytes) -> Image: ... def base64_to_image(base64_source: str | bytes) -> Image: ...
def image_apply_opt(image: Image, output_format: str | None, **params) -> bytes: ... def image_apply_opt(image: Image, output_format: str, **params) -> bytes: ...
def image_to_base64(image: Image, output_format: str | None, **params) -> bytes: ... def image_to_base64(image: Image, output_format: str, **params) -> bytes: ...
def get_webp_size(source: bytes) -> tuple[float, float] | None: ... def get_webp_size(source: bytes) -> tuple[float, float] | None: ...
def is_image_size_above(base64_source_1: bytes, base64_source_2: bytes) -> bool: ... def is_image_size_above(base64_source_1: bytes, base64_source_2: bytes) -> bool: ...
def image_guess_size_from_field_name(field_name: str) -> tuple[int, int]: ... def image_guess_size_from_field_name(field_name: str) -> tuple[int, int]: ...

View File

@@ -10,3 +10,5 @@ class JSON:
def dumps(self, *args, **kwargs) -> _ScriptSafe: ... def dumps(self, *args, **kwargs) -> _ScriptSafe: ...
scriptsafe: JSON scriptsafe: JSON
def json_default(obj): ...

View File

@@ -24,6 +24,7 @@ TRANSLATED_ATTRS: dict[str, Any]
def translate_attrib_value(node: _Element) -> bool: ... def translate_attrib_value(node: _Element) -> bool: ...
avoid_pattern: Pattern avoid_pattern: Pattern
space_pattern: Pattern
def translate_xml_node( def translate_xml_node(
node: _Element, node: _Element,