diff --git a/odoo-stubs/fields.pyi b/odoo-stubs/fields.pyi index 35a0406..df62623 100644 --- a/odoo-stubs/fields.pyi +++ b/odoo-stubs/fields.pyi @@ -1,6 +1,6 @@ import datetime import enum -from typing import Any, Callable, Container, Collection, Iterator, Sequence, TypeVar, Union +from typing import Any, Callable, Container, Collection, Iterable, Iterator, Sequence, TypeVar, Union import psycopg2 from markupsafe import Markup @@ -237,7 +237,6 @@ class _String(Field): class Char(_String): type: str - column_cast_from: tuple[str] size: int | None trim: bool def _setup_attrs(self, model_class: type[BaseModel], name: str) -> None: ... @@ -253,15 +252,14 @@ class Char(_String): class Text(_String): type: str - column_type: tuple[str, str] - column_cast_from: tuple[str] + @property + def column_type(self) -> tuple[str, str]: ... def convert_to_cache(self, value, record, validate: bool = ...) -> str | None: ... class Html(_String): type: str - column_type: tuple[str, str] - column_cast_from: tuple[str] sanitize: bool + sanitize_overridable: bool sanitize_tags: bool sanitize_attributes: bool sanitize_style: bool @@ -269,6 +267,8 @@ class Html(_String): strip_style: bool strip_classes: bool def _get_attrs(self, model_class: type[BaseModel], name: str) -> dict[str, Any]: ... + @property + def column_type(self) -> tuple[str, str]: ... _related_sanitize: bool _related_sanitize_tags: bool _related_sanitize_attributes: bool @@ -283,6 +283,7 @@ class Html(_String): _description_strip_classes: bool def convert_to_column(self, value, record: BaseModel, values: Any | None = ..., validate: bool = ...) -> Markup | None: ... def convert_to_cache(self, value, record: BaseModel, validate: bool = ...) -> Markup | None: ... + def _convert(self, value, record: BaseModel, validate: bool) -> Markup | None: ... def convert_to_record(self, value, record: BaseModel) -> Markup | None: ... def convert_to_read(self, value, record: BaseModel, use_name_get: bool = ...) -> Markup | None: ... def get_trans_terms(self, value) -> list: ... @@ -290,7 +291,6 @@ class Html(_String): class Date(Field): type: str column_type: tuple[str, str] - column_cast_from: tuple[str] start_of = date_utils.start_of end_of = date_utils.end_of add = date_utils.add @@ -310,7 +310,6 @@ class Date(Field): class Datetime(Field): type: str column_type: tuple[str, str] - column_cast_from: tuple[str] start_of = date_utils.start_of end_of = date_utils.end_of add = date_utils.add @@ -440,6 +439,70 @@ class Many2oneReference(Integer): def _update_inverses(self, records: BaseModel, value) -> None: ... def _record_ids_per_res_model(self, records: BaseModel) -> dict[str, set]: ... +class Json(Field): + type: str + column_type: tuple[str, str] + def convert_to_record(self, value, record: BaseModel): ... + def convert_to_cache(self, value, record: BaseModel, validate: bool = ...): ... + def convert_to_column(self, value, record: BaseModel, values: Any | None = ..., validate: bool = ...): ... + +class Properties(Field): + type: str + column_type: tuple[str, str] + copy: bool + prefetch: bool + write_sequence: int + store: bool + readonly: bool + precompute: bool + definition: str | None + definition_record: str | None + definition_record_field: str | None + _description_definition_record: str | None + _description_definition_record_field: str | None + ALLOWED_TYPES: tuple[str, ...] + _depends: tuple[str, ...] + compute: Callable + def _setup_attrs(self, model_class: type[BaseModel], name: str) -> None: ... + def convert_to_column(self, value, record: BaseModel, values: Any | None = ..., validate: bool = ...): ... + def convert_to_cache(self, value, record: BaseModel, validate: bool = ...): ... + def convert_to_record(self, value, record: BaseModel): ... + def convert_to_read(self, value, record: BaseModel, use_name_get: bool = ...): ... + def convert_to_write(self, value, record: BaseModel): ... + def convert_to_onchange(self, value, record: BaseModel, names): ... + def read(self, records: BaseModel) -> None: ... + def write(self, records: _ModelT, value) -> _ModelT: ... + def _compute(self, records: BaseModel) -> None: ... + def _add_default_values(self, env: Environment, values: dict[str, Any]): ... + def _get_properties_definition(self, record: BaseModel): ... + @classmethod + def _add_display_name(cls, values_list: list[dict], env: Environment, value_keys: tuple[str] = ...) -> None: ... + @classmethod + def _remove_display_name(cls, values_list: list[dict], value_key: str = ...) -> None: ... + @classmethod + def _add_missing_names(cls, values_list: list[dict]) -> None: ... + @classmethod + def _parse_json_types(cls, values_list: list[dict], env: Environment) -> None: ... + @classmethod + def _list_to_dict(cls, values_list: list[dict]) -> dict: ... + @classmethod + def _dict_to_list(cls, values_dict: dict, properties_definition: Sequence[dict]) -> Sequence[dict]: ... + +class PropertiesDefinition(Field): + type: str + column_type: tuple[str, str] + copy: bool + readonly: bool + prefetch: bool + REQUIRED_KEYS: tuple[str, ...] + ALLOWED_KEYS: tuple[str, ...] + def convert_to_column(self, value, record: BaseModel, values: Any | None = ..., validate: bool = ...): ... + def convert_to_cache(self, value, record: BaseModel, validate: bool = ...): ... + def convert_to_record(self, value, record: BaseModel): ... + def convert_to_read(self, value, record: BaseModel, use_name_get: bool = ...): ... + @classmethod + def _validate_properties_definition(cls, properties_definition: Sequence[dict], env): ... + class Command(enum.IntEnum): CREATE: int UPDATE: int @@ -482,7 +545,6 @@ class One2many(_RelationalMulti): type: str inverse_name: str | None auto_join: bool - limit: int | None copy: bool def __init__(self, comodel_name: str = ..., inverse_name: str = ..., string: str = ..., **kwargs) -> None: ... def setup_nonrelated(self, model: BaseModel) -> None: ... @@ -501,7 +563,6 @@ class Many2many(_RelationalMulti): column1: str | None column2: str | None auto_join: bool - limit: int | None ondelete: str def __init__(self, comodel_name: str =..., relation: str = ..., column1: str = ..., column2: str = ..., string: str = ..., **kwargs) -> None: ... def setup_nonrelated(self, model: BaseModel) -> None: ... @@ -524,6 +585,20 @@ class Id(Field): def __get__(self, record: BaseModel, owner): ... def __set__(self, record: BaseModel, value) -> None: ... -def prefetch_many2one_ids(record: BaseModel, field: Field) -> Iterator: ... -def prefetch_x2many_ids(record: BaseModel, field: Field) -> Iterator: ... +class PrefetchMany2one: + __slots__ = 'record', 'field' + record: BaseModel + field: Field + def __init__(self, record: BaseModel, field: Field) -> None: ... + def __iter__(self) -> Iterator[int]: ... + def __reversed__(self) -> Iterator[int]: ... + +class PrefetchX2many: + __slots__ = 'record', 'field' + record: BaseModel + field: Field + def __init__(self, record: BaseModel, field: Field) -> None: ... + def __iter__(self) -> Iterator[int]: ... + def __reversed__(self) -> Iterator[int]: ... + def apply_required(model: BaseModel, field_name: str) -> None: ...