diff --git a/odoo-stubs/models.pyi b/odoo-stubs/models.pyi index c23a4c5..2aac8cd 100644 --- a/odoo-stubs/models.pyi +++ b/odoo-stubs/models.pyi @@ -1,11 +1,13 @@ from collections.abc import MutableMapping -from typing import Any, Generator, List +from typing import Any, Generator, List, TypeVar from . import api, fields from .api import Environment from .modules.registry import Registry from .sql_db import Cursor +_M = TypeVar('_M') + _logger: Any _schema: Any _unlink: Any @@ -116,7 +118,7 @@ class BaseModel(metaclass=MetaModel): def _ondelete_methods(self): ... @property def _onchange_methods(self): ... - def __new__(cls) -> BaseModel: ... + def __new__(cls) -> None: ... def __init__(self, pool, cr) -> None: ... def _is_an_ordinary_table(self): ... def __ensure_xml_id(self, skip: bool = ...): ... @@ -147,7 +149,7 @@ class BaseModel(metaclass=MetaModel): def get_formview_action(self, access_uid: Any | None = ...): ... def get_access_action(self, access_uid: Any | None = ...): ... def search_count(self, args) -> int: ... - def search(self, args, offset: int = ..., limit: Any | None = ..., order: Any | None = ..., count: bool = ...) -> BaseModel: ... + def search(self: _M, args, offset: int = ..., limit: Any | None = ..., order: Any | None = ..., count: bool = ...) -> _M: ... def _compute_display_name(self) -> None: ... def name_get(self): ... def name_create(self, name): ... @@ -201,8 +203,8 @@ class BaseModel(metaclass=MetaModel): def unlink(self): ... def write(self, vals): ... def _write(self, vals): ... - def create(self, vals_list) -> BaseModel: ... - def _create(self, data_list) -> BaseModel: ... + def create(self: _M, vals_list) -> _M: ... + def _create(self: _M, data_list) -> _M: ... def _compute_field_value(self, field) -> None: ... def _parent_store_create(self) -> None: ... def _parent_store_update_prepare(self, vals): ... @@ -218,11 +220,11 @@ class BaseModel(metaclass=MetaModel): def _generate_order_by_inner(self, alias, order_spec, query, reverse_direction: bool = ..., seen: Any | None = ...): ... def _generate_order_by(self, order_spec, query): ... def _flush_search(self, domain, fields: Any | None = ..., order: Any | None = ..., seen: Any | None = ...) -> None: ... - def _search(self, args, offset: int = ..., limit: Any | None = ..., order: Any | None = ..., count: bool = ..., access_rights_uid: Any | None = ...) -> BaseModel: ... + def _search(self: _M, args, offset: int = ..., limit: Any | None = ..., order: Any | None = ..., count: bool = ..., access_rights_uid: Any | None = ...) -> _M: ... def copy_data(self, default: Any | None = ...): ... def copy_translations(old, new, excluded=...): ... - def copy(self, default: Any | None = ...) -> BaseModel: ... - def exists(self) -> BaseModel: ... + def copy(self: _M, default: Any | None = ...) -> _M: ... + def exists(self: _M) -> _M: ... def _check_recursion(self, parent: Any | None = ...): ... def _check_m2m_recursion(self, field_name): ... def _get_external_ids(self): ... @@ -242,45 +244,45 @@ class BaseModel(metaclass=MetaModel): @classmethod def _revert_method(cls, name) -> None: ... @classmethod - def _browse(cls, env, ids, prefetch_ids) -> BaseModel: ... - def browse(self, ids: Any | None = ...) -> BaseModel: ... + def _browse(cls, env, ids, prefetch_ids): ... + def browse(self: _M, ids: Any | None = ...) -> _M: ... @property def ids(self) -> list[int]: ... _cr: Cursor _uid: int _context: dict - def ensure_one(self) -> BaseModel: ... - def with_env(self, env) -> BaseModel: ... - def sudo(self, flag: bool = ...) -> BaseModel: ... - def with_user(self, user) -> BaseModel: ... - def with_company(self, company) -> BaseModel: ... - def with_context(self, *args, **kwargs) -> BaseModel: ... - def with_prefetch(self, prefetch_ids: Any | None = ...) -> BaseModel: ... + def ensure_one(self: _M) -> _M: ... + def with_env(self: _M, env) -> _M: ... + def sudo(self: _M, flag: bool = ...) -> _M: ... + def with_user(self: _M, user) -> _M: ... + def with_company(self: _M, company) -> _M: ... + def with_context(self: _M, *args, **kwargs) -> _M: ... + def with_prefetch(self: _M, prefetch_ids: Any | None = ...) -> _M: ... def _update_cache(self, values, validate: bool = ...): ... def _convert_to_record(self, values): ... def _convert_to_write(self, values): ... def _mapped_func(self, func): ... def mapped(self, func): ... def _mapped_cache(self, name_seq): ... - def filtered(self, func) -> BaseModel: ... - def filtered_domain(self, domain) -> BaseModel: ... - def sorted(self, key: Any | None = ..., reverse: bool = ...) -> BaseModel: ... + def filtered(self: _M, func) -> _M: ... + def filtered_domain(self: _M, domain) -> _M: ... + def sorted(self: _M, key: Any | None = ..., reverse: bool = ...) -> _M: ... def update(self, values) -> None: ... def flush(self, fnames: Any | None = ..., records: Any | None = ...) -> None: ... - def new(self, values=..., origin: Any | None = ..., ref: Any | None = ...) -> BaseModel: ... + def new(self: _M, values=..., origin: Any | None = ..., ref: Any | None = ...) -> _M: ... @property - def _origin(self) -> BaseModel: ... + def _origin(self: _M) -> _M: ... def __bool__(self) -> bool: ... __nonzero__: Any def __len__(self) -> int: ... - def __iter__(self) -> Generator[BaseModel]: ... + def __iter__(self: _M) -> Generator[_M]: ... def __contains__(self, item) -> bool: ... - def __add__(self, other) -> BaseModel: ... - def concat(self, *args) -> BaseModel: ... - def __sub__(self, other) -> BaseModel: ... - def __and__(self, other) -> BaseModel: ... - def __or__(self, other) -> BaseModel: ... - def union(self, *args) -> BaseModel: ... + def __add__(self: _M, other) -> _M: ... + def concat(self: _M, *args) -> _M: ... + def __sub__(self: _M, other) -> _M: ... + def __and__(self: _M, other) -> _M: ... + def __or__(self: _M, other) -> _M: ... + def union(self: _M, *args) -> _M: ... def __eq__(self, other) -> bool: ... def __lt__(self, other) -> bool: ... def __le__(self, other) -> bool: ...