diff --git a/odoo-stubs/models.pyi b/odoo-stubs/models.pyi index 83bd88e..3d47957 100644 --- a/odoo-stubs/models.pyi +++ b/odoo-stubs/models.pyi @@ -6,7 +6,7 @@ from .api import Environment from .modules.registry import Registry from .sql_db import Cursor -_M = TypeVar('_M') +_ModelT = TypeVar('_ModelT', bound=BaseModel) _logger: Any _schema: Any @@ -137,7 +137,7 @@ class BaseModel: def get_formview_action(self): ... def get_access_action(self): ... def search_count(self, args) -> int: ... - def search(self: _M, args, offset: int = ..., limit: Any | None = ..., order: Any | None = ..., count: bool = ...) -> _M: ... + def search(self: _ModelT, args, offset: int = ..., limit: Any | None = ..., order: Any | None = ..., count: bool = ...) -> _ModelT: ... def _compute_display_name(self) -> None: ... def name_get(self): ... def name_create(self, name): ... @@ -200,7 +200,7 @@ class BaseModel: def unlink(self): ... def write(self, vals): ... def _write(self, vals): ... - def create(self: _M, vals) -> _M: ... + def create(self: _ModelT, vals) -> _ModelT: ... def _create(self, vals): ... def _where_calc(self, domain, active_test: bool = ...): ... def _check_qorder(self, word): ... @@ -212,8 +212,8 @@ class BaseModel: def _search(self, args, offset: int = ..., limit: Any | None = ..., order: Any | None = ..., count: bool = ..., access_rights_uid: Any | None = ...): ... def copy_data(self, default: Any | None = ...): ... def copy_translations(old, new): ... - def copy(self: _M, default: Any | None = ...) -> _M: ... - def exists(self: _M) -> _M: ... + def copy(self: _ModelT, default: Any | None = ...) -> _ModelT: ... + def exists(self: _ModelT) -> _ModelT: ... def _check_recursion(self, parent: Any | None = ...): ... def _check_m2m_recursion(self, field_name): ... def _get_external_ids(self): ... @@ -237,40 +237,40 @@ class BaseModel: def _revert_method(cls, name) -> None: ... @classmethod def _browse(cls, ids, env, prefetch: Any | None = ...): ... - def browse(self: _M, arg: Any | None = ..., prefetch: Any | None = ...) -> _M: ... + def browse(self: _ModelT, arg: Any | None = ..., prefetch: Any | None = ...) -> _ModelT: ... @property def ids(self) -> List[str]: ... _cr: Cursor _uid: int _context: dict - def ensure_one(self: _M) -> _M: ... - def with_env(self: _M, env) -> _M: ... - def sudo(self: _M, user=...) -> _M: ... - def with_context(self: _M, *args, **kwargs) -> _M: ... - def with_prefetch(self: _M, prefetch: Any | None = ...) -> _M: ... + def ensure_one(self: _ModelT) -> _ModelT: ... + def with_env(self: _ModelT, env) -> _ModelT: ... + def sudo(self: _ModelT, user=...) -> _ModelT: ... + def with_context(self: _ModelT, *args, **kwargs) -> _ModelT: ... + def with_prefetch(self: _ModelT, prefetch: Any | None = ...) -> _ModelT: ... def _convert_to_cache(self, values, update: bool = ..., 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: _M, func) -> _M: ... - def sorted(self: _M, key: Any | None = ..., reverse: bool = ...) -> _M: ... + def filtered(self: _ModelT, func) -> _ModelT: ... + def sorted(self: _ModelT, key: Any | None = ..., reverse: bool = ...) -> _ModelT: ... def update(self, values) -> None: ... - def new(self: _M, values=...) -> _M: ... + def new(self: _ModelT, values=...) -> _ModelT: ... def _is_dirty(self): ... def _get_dirty(self): ... def _set_dirty(self, field_name) -> None: ... def __nonzero__(self): ... def __len__(self) -> int: ... - def __iter__(self: _M) -> Generator[_M]: ... + def __iter__(self: _ModelT) -> Generator[_ModelT]: ... def __contains__(self, item) -> bool: ... - 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 __add__(self: _ModelT, other) -> _ModelT: ... + def concat(self: _ModelT, *args) -> _ModelT: ... + def __sub__(self: _ModelT, other) -> _ModelT: ... + def __and__(self: _ModelT, other) -> _ModelT: ... + def __or__(self: _ModelT, other) -> _ModelT: ... + def union(self: _ModelT, *args) -> _ModelT: ... def __eq__(self, other) -> bool: ... def __ne__(self, other) -> bool: ... def __lt__(self, other) -> bool: ...