Update stubs

This commit is contained in:
Trinh Anh Ngoc
2022-10-16 12:02:34 +07:00
parent 37ee4ce7e8
commit e0f5c762e0
2 changed files with 46 additions and 49 deletions

View File

@@ -139,7 +139,7 @@ class Cache:
def get_dirty_records(self, model: _ModelT, field: Field) -> _ModelT: ... def get_dirty_records(self, model: _ModelT, field: Field) -> _ModelT: ...
def has_dirty_fields(self, records: BaseModel, fields: Iterable[Field] | None = ...) -> bool: ... def has_dirty_fields(self, records: BaseModel, fields: Iterable[Field] | None = ...) -> bool: ...
def clear_dirty_field(self, field: Field) -> Collection[int]: ... def clear_dirty_field(self, field: Field) -> Collection[int]: ...
def invalidate(self, spec: list[tuple[Field, tuple | None]] | None = ...) -> None: ... def invalidate(self, spec: list[tuple[Field, Iterable | None]] | None = ...) -> None: ...
def clear(self) -> None: ... def clear(self) -> None: ...
def check(self, env: Environment) -> None: ... def check(self, env: Environment) -> None: ...

View File

@@ -3,7 +3,6 @@ from re import Pattern
from typing import Any, Callable, Collection, Container, Iterable, Iterator, MutableMapping, Sequence, TypeVar, Union from typing import Any, Callable, Collection, Container, Iterable, Iterator, MutableMapping, Sequence, TypeVar, Union
import psycopg2 import psycopg2
from lxml.etree import _Element
from . import api, fields from . import api, fields
from .api import Environment from .api import Environment
@@ -21,6 +20,8 @@ regex_object_name: Pattern[str]
regex_pg_name: Pattern[str] regex_pg_name: Pattern[str]
regex_field_agg: Pattern[str] regex_field_agg: Pattern[str]
AUTOINIT_RECALCULATE_STORED_FIELDS: int AUTOINIT_RECALCULATE_STORED_FIELDS: int
INSERT_BATCH_SIZE: int
SQL_DEFAULT: psycopg2.extensions.AsIs
def check_object_name(name: str) -> bool: ... def check_object_name(name: str) -> bool: ...
def raise_on_invalid_object_name(name: str) -> None: ... def raise_on_invalid_object_name(name: str) -> None: ...
@@ -29,9 +30,8 @@ def check_pg_name(name: str) -> None: ...
regex_private: Pattern[str] regex_private: Pattern[str]
def check_method_name(name: str) -> None: ... def check_method_name(name: str) -> None: ...
def same_name(f, g) -> bool: ...
def fix_import_export_id_paths(fieldname: str) -> list[str]: ... def fix_import_export_id_paths(fieldname: str) -> list[str]: ...
def trigger_tree_merge(node1: dict, node2: dict) -> None: ... def merge_trigger_trees(trees: list, select: Callable[[Any], bool] = ...) -> dict: ...
class MetaModel(api.Meta): class MetaModel(api.Meta):
module_to_models: defaultdict[str, list[type[BaseModel]]] module_to_models: defaultdict[str, list[type[BaseModel]]]
@@ -50,6 +50,14 @@ class NewId:
def __str__(self) -> str: ... def __str__(self) -> str: ...
def origin_ids(ids: Iterable) -> Iterator[int]: ... def origin_ids(ids: Iterable) -> Iterator[int]: ...
class OriginIds:
__slots__ = ['ids']
ids: Sequence[int]
def __init__(self, ids: Sequence[int]) -> None: ...
def __iter__(self) -> Iterator[int]: ...
def __reversed__(self) -> Iterator[int]: ...
def expand_ids(id0: _T, ids: Iterable) -> Iterator[_T]: ... def expand_ids(id0: _T, ids: Iterable) -> Iterator[_T]: ...
IdType: tuple[type[int], type[str], type[NewId]] IdType: tuple[type[int], type[str], type[NewId]]
@@ -75,16 +83,14 @@ class BaseModel(metaclass=MetaModel):
_inherits: dict[str, str] _inherits: dict[str, str]
_table: str _table: str
_table_query: str | None _table_query: str | None
_sequence: str | None
_sql_constraints: list[tuple[str, str, str]] _sql_constraints: list[tuple[str, str, str]]
_rec_name: str | None _rec_name: str | None
_rec_names_search: Sequence[str] | None
_order: str _order: str
_parent_name: str _parent_name: str
_parent_store: bool _parent_store: bool
_active_name: str | None _active_name: str | None
_date_name: str
_fold_name: str _fold_name: str
_needaction: bool
_translate: bool _translate: bool
_check_company_auto: bool _check_company_auto: bool
_depends: dict[str, Iterable[str]] _depends: dict[str, Iterable[str]]
@@ -109,7 +115,6 @@ class BaseModel(metaclass=MetaModel):
write_uid = fields.Many2one('res.users', string='Last Updated by') write_uid = fields.Many2one('res.users', string='Last Updated by')
write_date = fields.Datetime(string='Last Updated on') write_date = fields.Datetime(string='Last Updated on')
CONCURRENCY_CHECK_FIELD: str CONCURRENCY_CHECK_FIELD: str
def view_init(self, fields_list: list[str]) -> None: ...
def _valid_field_parameter(self, field: Field, name: str) -> bool: ... def _valid_field_parameter(self, field: Field, name: str) -> bool: ...
def _add_field(self, name: str, field: Field) -> None: ... def _add_field(self, name: str, field: Field) -> None: ...
def _pop_field(self, name: str) -> Field: ... def _pop_field(self, name: str) -> Field: ...
@@ -130,12 +135,9 @@ class BaseModel(metaclass=MetaModel):
def _ondelete_methods(self) -> list: ... def _ondelete_methods(self) -> list: ...
@property @property
def _onchange_methods(self) -> dict[str, list]: ... def _onchange_methods(self) -> dict[str, list]: ...
def __new__(cls) -> None: ...
def __init__(self, pool: Registry, cr: Cursor) -> None: ...
def _is_an_ordinary_table(self) -> bool: ... def _is_an_ordinary_table(self) -> bool: ...
def __ensure_xml_id(self: _ModelT, skip: bool = ...) -> Iterator[tuple[_ModelT, str | None]]: ... def __ensure_xml_id(self: _ModelT, skip: bool = ...) -> Iterator[tuple[_ModelT, str | None]]: ...
def _export_rows(self, fields: list[list[str]], *, _is_toplevel_call: bool = ...) -> list[list]: ... def _export_rows(self, fields: list[list[str]], *, _is_toplevel_call: bool = ...) -> list[list]: ...
__export_rows = _export_rows
def export_data(self, fields_to_export: list[str]) -> dict[str, list[list]]: ... def export_data(self, fields_to_export: list[str]) -> dict[str, list[list]]: ...
def load(self, fields: list[str], data: list[list[str]]) -> dict[str, Any]: ... def load(self, fields: list[str], data: list[list[str]]) -> dict[str, Any]: ...
def _add_fake_fields(self, fields: dict[str | None, Field]) -> dict[str | None, Field]: ... def _add_fake_fields(self, fields: dict[str | None, Field]) -> dict[str | None, Field]: ...
@@ -145,23 +147,9 @@ class BaseModel(metaclass=MetaModel):
def default_get(self, fields_list: list[str]) -> dict[str, Any]: ... def default_get(self, fields_list: list[str]) -> dict[str, Any]: ...
def fields_get_keys(self) -> list[str]: ... def fields_get_keys(self) -> list[str]: ...
def _rec_name_fallback(self) -> str: ... def _rec_name_fallback(self) -> str: ...
def view_header_get(self, view_id: Any | None = ..., view_type: str = ...): ...
def user_has_groups(self, groups: str) -> bool: ... def user_has_groups(self, groups: str) -> bool: ...
def _get_default_form_view(self) -> _Element: ... def search_count(self, domain: _Domain, limit: int | None = ...) -> int: ...
def _get_default_search_view(self) -> _Element: ... def search(self: _ModelT, domain: _Domain, offset: int = ..., limit: int | None = ..., order: str | None = ..., count: bool = ...) -> _ModelT | int: ...
def _get_default_tree_view(self) -> _Element: ...
def _get_default_pivot_view(self) -> _Element: ...
def _get_default_kanban_view(self) -> _Element: ...
def _get_default_graph_view(self) -> _Element: ...
def _get_default_calendar_view(self) -> _Element: ...
def load_views(self, views: list, options: dict | None = ...) -> dict[str, Any]: ...
def _fields_view_get(self, view_id: int | None = ..., view_type: str = ..., toolbar: bool = ..., submenu: bool = ...) -> dict[str, Any]: ...
def fields_view_get(self, view_id: int | None = ..., view_type: str = ..., toolbar: bool = ..., submenu: bool = ...) -> dict[str, Any]: ...
def get_formview_id(self, access_uid: int | None = ...): ...
def get_formview_action(self, access_uid: int | None = ...) -> dict[str, Any]: ...
def get_access_action(self, access_uid: int | None = ...) -> dict[str, Any]: ...
def search_count(self, args: _Domain) -> int: ...
def search(self: _ModelT, args: _Domain, offset: int = ..., limit: int | None = ..., order: str | None = ..., count: bool = ...) -> _ModelT | int: ...
def _compute_display_name(self) -> None: ... def _compute_display_name(self) -> None: ...
def name_get(self) -> list[tuple[int, str]]: ... def name_get(self) -> list[tuple[int, str]]: ...
def name_create(self, name: str) -> tuple[int, str]: ... def name_create(self, name: str) -> tuple[int, str]: ...
@@ -177,8 +165,9 @@ class BaseModel(metaclass=MetaModel):
def _read_group_process_groupby(self, gb: str, query: Query) -> dict[str, Any]: ... def _read_group_process_groupby(self, gb: str, query: Query) -> dict[str, Any]: ...
def _read_group_prepare_data(self, key, value, groupby_dict: dict[str, dict[str, Any]]) -> Any: ... def _read_group_prepare_data(self, key, value, groupby_dict: dict[str, dict[str, Any]]) -> Any: ...
def _read_group_format_result(self, data: dict, annotated_groupbys: list[dict], groupby: list, domain: _Domain) -> dict: ... def _read_group_format_result(self, data: dict, annotated_groupbys: list[dict], groupby: list, domain: _Domain) -> dict: ...
def read_group(self, domain: _Domain, fields: list[str], groupby: list[str], offset: int = ..., limit: int | None = ..., orderby: str | None = ..., lazy: bool = ...) -> list[dict[str, Any]]: ... def _read_group(self, domain: _Domain, fields: list[str], groupby: str | list[str], offset: int = ..., limit: int | None = ..., orderby: str | None = ..., lazy: bool = ...) -> list[dict[str, Any]]: ...
def _read_group_raw(self, domain: _Domain, fields: list[str], groupby: list[str], offset: int = ..., limit: int | None = ..., orderby: str | None = ..., lazy: bool = ...) -> list[dict[str, Any]]: ... def read_group(self, domain: _Domain, fields: list[str], groupby: str | list[str], offset: int = ..., limit: int | None = ..., orderby: str | None = ..., lazy: bool = ...) -> list[dict[str, Any]]: ...
def _read_group_raw(self, domain: _Domain, fields: list[str], groupby: str | list[str], offset: int = ..., limit: int | None = ..., orderby: str | None = ..., lazy: bool = ...) -> list[dict[str, Any]]: ...
def _read_group_resolve_many2x_fields(self, data: list[dict[str, Any]], fields: list[dict[str, Any]]) -> None: ... def _read_group_resolve_many2x_fields(self, data: list[dict[str, Any]], fields: list[dict[str, Any]]) -> None: ...
def _inherits_join_add(self, current_model: BaseModel, parent_model_name: str, query: Query) -> str: ... def _inherits_join_add(self, current_model: BaseModel, parent_model_name: str, query: Query) -> str: ...
def _inherits_join_calc(self, alias: str, fname: str, query: Query) -> str: ... def _inherits_join_calc(self, alias: str, fname: str, query: Query) -> str: ...
@@ -188,9 +177,8 @@ class BaseModel(metaclass=MetaModel):
def _table_has_rows(self) -> int: ... def _table_has_rows(self) -> int: ...
def _auto_init(self): ... def _auto_init(self): ...
def init(self) -> None: ... def init(self) -> None: ...
def _create_parent_columns(self) -> None: ... def _check_parent_path(self) -> None: ...
def _add_sql_constraints(self) -> None: ... def _add_sql_constraints(self) -> None: ...
def _execute_sql(self) -> None: ...
def _add_inherited_fields(self) -> None: ... def _add_inherited_fields(self) -> None: ...
def _inherits_check(self) -> None: ... def _inherits_check(self) -> None: ...
def _prepare_setup(self) -> None: ... def _prepare_setup(self) -> None: ...
@@ -198,15 +186,16 @@ class BaseModel(metaclass=MetaModel):
def _setup_fields(self) -> None: ... def _setup_fields(self) -> None: ...
def _setup_complete(self) -> None: ... def _setup_complete(self) -> None: ...
def fields_get(self, allfields: list[str] | None = ..., attributes: list[str] | None = ...) -> dict[str, dict[str, Any]]: ... def fields_get(self, allfields: list[str] | None = ..., attributes: list[str] | None = ...) -> dict[str, dict[str, Any]]: ...
def get_empty_list_help(self, help: str) -> str: ...
def check_field_access_rights(self, operation: str, fields: Collection[str]): ... def check_field_access_rights(self, operation: str, fields: Collection[str]): ...
def read(self, fields: Collection[str] | None = ..., load: str = ...) -> list[dict[str, Any]]: ... def read(self, fields: Collection[str] | None = ..., load: str = ...) -> list[dict[str, Any]]: ...
def update_field_translations(self, field_name: str, translations: dict[str, Any]) -> bool: ...
def _update_field_translations(self, field_name: str, translations: dict[str, Any], digest: Callable | None = ...) ->bool: ...
def get_field_translations(self, field_name: str, langs: list[str] | None = ...) -> tuple[list[dict[str, Any]], dict[str, Any]]: ...
def _read_format(self, fnames: Collection[str], load: str = ...) -> list[dict[str, Any]]: ... def _read_format(self, fnames: Collection[str], load: str = ...) -> list[dict[str, Any]]: ...
def _fetch_field(self, field: Field) -> None: ... def _fetch_field(self, field: Field) -> None: ...
def _read(self, fields: Collection[str]): ... def _read(self, field_names: Collection[str]): ...
def get_metadata(self) -> list[dict[str, Any]]: ... def get_metadata(self) -> list[dict[str, Any]]: ...
def get_base_url(self) -> str: ... def get_base_url(self) -> str: ...
def _check_concurrency(self) -> None: ...
def _check_company(self, fnames: Collection[str] | None = ...) -> None: ... def _check_company(self, fnames: Collection[str] | None = ...) -> None: ...
def check_access_rights(self, operation: str, raise_exception: bool = ...) -> bool: ... def check_access_rights(self, operation: str, raise_exception: bool = ...) -> bool: ...
def check_access_rule(self, operation: str) -> None: ... def check_access_rule(self, operation: str) -> None: ...
@@ -214,8 +203,10 @@ class BaseModel(metaclass=MetaModel):
def _filter_access_rules_python(self, operation: str) -> _ModelT: ... def _filter_access_rules_python(self, operation: str) -> _ModelT: ...
def unlink(self): ... def unlink(self): ...
def write(self, vals: dict[str, Any]): ... def write(self, vals: dict[str, Any]): ...
def _write(self, vals: dict[str, Any]): ... def _write(self, vals: dict[str, Any]) -> None: ...
def create(self: _ModelT, vals_list: list[dict[str, Any]] | dict[str, Any]) -> _ModelT: ... def create(self: _ModelT, vals_list: list[dict[str, Any]] | dict[str, Any]) -> _ModelT: ...
def _prepare_create_values(self, vals_list: list[dict[str, Any]]) -> list[dict[str, Any]]: ...
def _add_precomputed_values(self, vals_list: list[dict[str, Any]]) -> None: ...
def _create(self: _ModelT, data_list: list[dict[str, Any]]) -> _ModelT: ... def _create(self: _ModelT, data_list: list[dict[str, Any]]) -> _ModelT: ...
def _compute_field_value(self, field: Field) -> None: ... def _compute_field_value(self, field: Field) -> None: ...
def _parent_store_create(self) -> None: ... def _parent_store_create(self) -> None: ...
@@ -227,22 +218,20 @@ class BaseModel(metaclass=MetaModel):
def _where_calc(self, domain: _Domain, active_test: bool = ...) -> Query: ... def _where_calc(self, domain: _Domain, active_test: bool = ...) -> Query: ...
def _check_qorder(self, word: str) -> bool: ... def _check_qorder(self, word: str) -> bool: ...
def _apply_ir_rules(self, query: Query, mode: str = ...) -> None: ... def _apply_ir_rules(self, query: Query, mode: str = ...) -> None: ...
def _generate_translated_field(self, table_alias: str, field: str, query: Query) -> str: ...
def _generate_m2o_order_by(self, alias: str, order_field: str, query: Query, reverse_direction: bool, seen: set | None) -> list[str]: ... def _generate_m2o_order_by(self, alias: str, order_field: str, query: Query, reverse_direction: bool, seen: set | None) -> list[str]: ...
def _generate_order_by_inner(self, alias: str, order_spec: str, query: Query, reverse_direction: bool = ..., seen: set | None = ...) -> list[str]: ... def _generate_order_by_inner(self, alias: str, order_spec: str, query: Query, reverse_direction: bool = ..., seen: set | None = ...) -> list[str]: ...
def _generate_order_by(self, order_spec: str | None, query: Query) -> str: ... def _generate_order_by(self, order_spec: str | None, query: Query) -> str: ...
def _flush_search(self, domain: _Domain, fields: Sequence[str] | None = ..., order: str | None = ..., seen: set | None = ...) -> None: ... def _flush_search(self, domain: _Domain, fields: Sequence[str] | None = ..., order: str | None = ..., seen: set | None = ...) -> None: ...
def _search(self: _ModelT, args: _Domain, offset: int = ..., limit: int | None = ..., order: str | None = ..., count: bool = ..., access_rights_uid: int | None = ...) -> Query | int: ... def _search(self: _ModelT, domain: _Domain, offset: int = ..., limit: int | None = ..., order: str | None = ..., count: bool = ..., access_rights_uid: int | None = ...) -> Query | int: ...
def copy_data(self, default: dict[str, Any] | None = ...) -> list[dict[str, Any]]: ... def copy_data(self, default: dict[str, Any] | None = ...) -> list[dict[str, Any]]: ...
def copy_translations(old: _ModelT, new: _ModelT, excluded: Container[str] = ...): ... def copy_translations(self: _ModelT, new: _ModelT, excluded: Container[str] = ...) -> None: ...
def copy(self: _ModelT, default: dict[str, Any] | None = ...) -> _ModelT: ... def copy(self: _ModelT, default: dict[str, Any] | None = ...) -> _ModelT: ...
def exists(self: _ModelT) -> _ModelT: ... def exists(self: _ModelT) -> _ModelT: ...
def _check_recursion(self, parent: str | None = ...) -> bool: ... def _check_recursion(self, parent: str | None = ...) -> bool: ...
def _check_m2m_recursion(self, field_name: str) -> bool: ... def _check_m2m_recursion(self, field_name: str) -> bool: ...
def _get_external_ids(self) -> dict[id, list[str]]: ... def _get_external_ids(self) -> dict[int, list[str]]: ...
def get_external_id(self) -> dict[id, str]: ... def get_external_id(self) -> dict[int, str]: ...
get_xml_id = get_external_id def get_xml_id(self) -> dict[int, str]: ...
_get_xml_ids = _get_external_ids
@classmethod @classmethod
def is_transient(cls) -> bool: ... def is_transient(cls) -> bool: ...
def search_read(self, domain: _Domain | None = ..., fields: list[str] | None = ..., offset: int = ..., limit: int | None = ..., order: str | None = ..., **read_kwargs: str) -> list[dict[str, Any]]: ... def search_read(self, domain: _Domain | None = ..., fields: list[str] | None = ..., offset: int = ..., limit: int | None = ..., order: str | None = ..., **read_kwargs: str) -> list[dict[str, Any]]: ...
@@ -255,8 +244,7 @@ class BaseModel(metaclass=MetaModel):
def _patch_method(cls, name: str, method) -> None: ... def _patch_method(cls, name: str, method) -> None: ...
@classmethod @classmethod
def _revert_method(cls, name: str) -> None: ... def _revert_method(cls, name: str) -> None: ...
@classmethod def __init__(self, env: Environment, ids: tuple, prefetch_ids: Iterable[int]) -> None: ...
def _browse(cls: type[_ModelT], env: Environment, ids: tuple, prefetch_ids: Iterable[int]) -> _ModelT: ...
def browse(self: _ModelT, ids: int | NewId | Iterable[int | NewId] | None = ...) -> _ModelT: ... def browse(self: _ModelT, ids: int | NewId | Iterable[int | NewId] | None = ...) -> _ModelT: ...
@property @property
def ids(self) -> list[int]: ... def ids(self) -> list[int]: ...
@@ -275,18 +263,21 @@ class BaseModel(metaclass=MetaModel):
def _convert_to_write(self, values: dict[str, Any]) -> dict[str, Any]: ... def _convert_to_write(self, values: dict[str, Any]) -> dict[str, Any]: ...
def _mapped_func(self, func: Callable): ... def _mapped_func(self, func: Callable): ...
def mapped(self, func: Callable | str): ... def mapped(self, func: Callable | str): ...
def _mapped_cache(self, name_seq: str): ...
def filtered(self: _ModelT, func: Callable | str) -> _ModelT: ... def filtered(self: _ModelT, func: Callable | str) -> _ModelT: ...
def filtered_domain(self: _ModelT, domain: _Domain) -> _ModelT: ... def filtered_domain(self: _ModelT, domain: _Domain) -> _ModelT: ...
def sorted(self: _ModelT, key: Callable | str | None = ..., reverse: bool = ...) -> _ModelT: ... def sorted(self: _ModelT, key: Callable | str | None = ..., reverse: bool = ...) -> _ModelT: ...
def update(self, values: dict[str, Any]) -> None: ... def update(self, values: dict[str, Any]) -> None: ...
def flush(self, fnames: Collection[str] | None = ..., records: BaseModel | None = ...) -> None: ... def flush(self, fnames: Collection[str] | None = ..., records: BaseModel | None = ...) -> None: ...
def new(self: _ModelT, values=..., origin: _ModelT | None = ..., ref: Any | None = ...) -> _ModelT: ... def flush_model(self, fnames: Iterable[str] | None = ...) -> None: ...
def flush_recordset(self, fnames: Iterable[str] | None = ...) -> None: ...
def _flush(self, fnames: Iterable[str] | None = ...) -> None: ...
def new(self: _ModelT, values: dict[str, Any] | None = ..., origin: _ModelT | None = ..., ref: Any | None = ...) -> _ModelT: ...
@property @property
def _origin(self: _ModelT) -> _ModelT: ... def _origin(self: _ModelT) -> _ModelT: ...
def __bool__(self) -> bool: ... def __bool__(self) -> bool: ...
def __len__(self) -> int: ... def __len__(self) -> int: ...
def __iter__(self: _ModelT) -> Iterator[_ModelT]: ... def __iter__(self: _ModelT) -> Iterator[_ModelT]: ...
def __reversed__(self) -> Iterator[_ModelT]: ...
def __contains__(self: _ModelT, item: _ModelT | str) -> bool: ... def __contains__(self: _ModelT, item: _ModelT | str) -> bool: ...
def __add__(self: _ModelT, other: _ModelT) -> _ModelT: ... def __add__(self: _ModelT, other: _ModelT) -> _ModelT: ...
def concat(self: _ModelT, *args: _ModelT) -> _ModelT: ... def concat(self: _ModelT, *args: _ModelT) -> _ModelT: ...
@@ -308,13 +299,19 @@ class BaseModel(metaclass=MetaModel):
def _cache(self) -> RecordCache: ... def _cache(self) -> RecordCache: ...
def _in_cache_without(self: _ModelT, field: Field, limit: int = ...) -> _ModelT: ... def _in_cache_without(self: _ModelT, field: Field, limit: int = ...) -> _ModelT: ...
def refresh(self) -> None: ... def refresh(self) -> None: ...
def invalidate_cache(self, fnames: Collection[str] | None = ..., ids: Any | None = ...): ... def invalidate_cache(self, fnames: Collection[str] | None = ..., ids: Iterable[int] | None = ...) -> None: ...
def invalidate_model(self, fnames: Iterable[str] | None = ..., flush: bool = ...) -> None: ...
def invalidate_recordset(self, fnames: Iterable[str] | None = ..., flush: bool = ...) -> None: ...
def _invalidate_cache(self, fnames: Iterable[str] | None = ..., ids: Iterable[int] | None = ...) -> None: ...
def modified(self, fnames: Collection[str], create: bool = ..., before: bool = ...) -> None: ... def modified(self, fnames: Collection[str], create: bool = ..., before: bool = ...) -> None: ...
def _modified_triggers(self: _ModelT, tree: dict[Field | None, Any], create: bool = ...) -> Iterator[tuple[Field, _ModelT, bool]]: ... def _modified_triggers(self: _ModelT, tree: dict[Field | None, Any], create: bool = ...) -> Iterator[tuple[Field, _ModelT, bool]]: ...
def recompute(self, fnames: Collection[str] | None = ..., records: Union[BaseModel, None] = ...) -> None: ... def recompute(self, fnames: Collection[str] | None = ..., records: Union[BaseModel, None] = ...) -> None: ...
def _dependent_fields(self, field: Field) -> Iterator[Field]: ... def _recompute_model(self, fnames: Iterable[str] | None = ...) -> None: ...
def _recompute_recordset(self, fnames: Iterable[str] | None = ...) -> None: ...
def _recompute_field(self, field: Field, ids: Iterable[int] | None = ...) -> None: ...
@classmethod
def _dependent_fields(cls, field: Field) -> Iterator[Field]: ...
def _has_onchange(self, field: Field, other_fields: Container[Field]) -> bool: ... 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_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]) -> dict: ... 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 _get_placeholder_filename(self, field: str) -> str | bool: ...