diff --git a/odoo-stubs/osv/expression.pyi b/odoo-stubs/osv/expression.pyi index 7203e6f..5ca5db9 100644 --- a/odoo-stubs/osv/expression.pyi +++ b/odoo-stubs/osv/expression.pyi @@ -1,44 +1,49 @@ -from ..models import MAGIC_COLUMNS as MAGIC_COLUMNS from functools import partial as partial -from odoo.tools.misc import get_lang as get_lang -from typing import Any, Optional +from typing import Any, Callable + +from .query import Query +from ..models import BaseModel, MAGIC_COLUMNS as MAGIC_COLUMNS +from ..sql_db import Cursor +from ..tools.misc import get_lang as get_lang + +_Domain = list NOT_OPERATOR: str OR_OPERATOR: str AND_OPERATOR: str -DOMAIN_OPERATORS: Any -TERM_OPERATORS: Any -NEGATIVE_TERM_OPERATORS: Any -DOMAIN_OPERATORS_NEGATION: Any -TERM_OPERATORS_NEGATION: Any -TRUE_LEAF: Any -FALSE_LEAF: Any -TRUE_DOMAIN: Any -FALSE_DOMAIN: Any -_logger: Any +DOMAIN_OPERATORS: tuple[str, ...] +TERM_OPERATORS: tuple[str, ...] +NEGATIVE_TERM_OPERATORS: tuple[str, ...] +DOMAIN_OPERATORS_NEGATION: dict[str, str] +TERM_OPERATORS_NEGATION: dict[str, str] +TRUE_LEAF: tuple +FALSE_LEAF: tuple +TRUE_DOMAIN: list[tuple] +FALSE_DOMAIN: list[tuple] -def normalize_domain(domain: Any): ... -def is_false(model: Any, domain: Any): ... -def combine(operator: Any, unit: Any, zero: Any, domains: Any): ... -def AND(domains: Any): ... -def OR(domains: Any): ... -def distribute_not(domain: Any): ... -def _quote(to_quote: Any): ... -def normalize_leaf(element: Any): ... -def is_operator(element: Any): ... -def is_leaf(element: Any, internal: bool = ...): ... -def is_boolean(element: Any): ... -def check_leaf(element: Any, internal: bool = ...) -> None: ... -def get_unaccent_wrapper(cr: Any): ... +def normalize_domain(domain: _Domain) -> _Domain: ... +def is_false(model, domain: _Domain) -> bool: ... +def combine(operator: str, unit, zero, domains: list[_Domain]) -> _Domain: ... +def AND(domains: list[_Domain]) -> _Domain: ... +def OR(domains: list[_Domain]) -> _Domain: ... +def distribute_not(domain: _Domain) -> _Domain: ... +def _quote(to_quote: str) -> str: ... +def normalize_leaf(element): ... +def is_operator(element) -> bool: ... +def is_leaf(element, internal: bool = ...) -> bool: ... +def is_boolean(element) -> bool: ... +def check_leaf(element, internal: bool = ...) -> None: ... +def get_unaccent_wrapper(cr: Cursor) -> Callable[[Any], str]: ... class expression: - _unaccent: Any = ... - root_model: Any = ... - root_alias: Any = ... - expression: Any = ... - query: Any = ... - def __init__(self, domain: Any, model: Any, alias: Optional[Any] = ..., query: Optional[Any] = ...) -> None: ... - def get_tables(self): ... + _unaccent: Callable[[Any], str] + root_model: BaseModel + root_alias: str | None + expression: _Domain + query: Query | None + result: tuple[str, list] + def __init__(self, domain: _Domain, model: BaseModel, alias: str | None = ..., query: Query | None = ...) -> None: ... + def get_tables(self) -> tuple[str, ...]: ... def parse(self): ... - def __leaf_to_sql(self, leaf: Any, model: Any, alias: Any): ... - def to_sql(self): ... + def __leaf_to_sql(self, leaf, model: BaseModel, alias: str) -> tuple[str, list]: ... + def to_sql(self) -> tuple[str, list]: ... diff --git a/odoo-stubs/osv/query.pyi b/odoo-stubs/osv/query.pyi index 1bed7cc..a732945 100644 --- a/odoo-stubs/osv/query.pyi +++ b/odoo-stubs/osv/query.pyi @@ -1,36 +1,41 @@ -from typing import Any, Optional +from re import Pattern +from typing import Iterable, Iterator -IDENT_RE: Any +from ..sql_db import Cursor -def _from_table(table: Any, alias: Any): ... -def _generate_table_alias(src_table_alias: Any, link: Any): ... +IDENT_RE: Pattern + +def _from_table(table: str, alias: str) -> str: ... +def _generate_table_alias(src_table_alias: str, link: str) -> str: ... class Query: - _cr: Any = ... - _tables: Any = ... - _joins: Any = ... - _where_clauses: Any = ... - _where_params: Any = ... - order: Any = ... - limit: Any = ... - offset: Any = ... - def __init__(self, cr: Any, alias: Any, table: Optional[Any] = ...) -> None: ... - def add_table(self, alias: Any, table: Optional[Any] = ...) -> None: ... - def add_where(self, where_clause: Any, where_params: Any = ...) -> None: ... - def join(self, lhs_alias: Any, lhs_column: Any, rhs_table: Any, rhs_column: Any, link: Any, extra: Optional[Any] = ..., extra_params: Any = ...): ... - def left_join(self, lhs_alias: Any, lhs_column: Any, rhs_table: Any, rhs_column: Any, link: Any, extra: Optional[Any] = ..., extra_params: Any = ...): ... - def _join(self, kind: Any, lhs_alias: Any, lhs_column: Any, rhs_table: Any, rhs_column: Any, link: Any, extra: Optional[Any] = ..., extra_params: Any = ...): ... - def select(self, *args: Any): ... - def get_sql(self): ... - def _result(self): ... - def __str__(self): ... - def __bool__(self): ... - def __len__(self): ... - def __iter__(self) -> Any: ... + _cr: Cursor + _tables: dict[str, str] + _joins: dict[str, tuple] + _where_clauses: list[str] + _where_params: list + order: str | None + limit: int | None + offset: int | None + def __init__(self, cr: Cursor, alias: str, table: str | None = ...) -> None: ... + def add_table(self, alias: str, table: str | None = ...) -> None: ... + def add_where(self, where_clause: str, where_params: Iterable = ...) -> None: ... + def join(self, lhs_alias: str, lhs_column: str, rhs_table: str, rhs_column: str, link: str, extra: str | None = ..., extra_params: tuple = ...) -> str: ... + def left_join(self, lhs_alias: str, lhs_column: str, rhs_table: str, rhs_column: str, link: str, extra: str | None = ..., extra_params: tuple = ...) -> str: ... + def _join(self, kind: str, lhs_alias: str, lhs_column: str, rhs_table: str, rhs_column: str, link: str, extra: str | None = ..., extra_params: tuple = ...) -> str: ... + def select(self, *args) -> tuple[str, list]: ... + def subselect(self, *args) -> tuple[str, list]: ... + def get_sql(self) -> tuple[str, str, list]: ... @property - def tables(self): ... + def _result(self) -> list: ... + def __str__(self) -> str: ... + def __bool__(self) -> bool: ... + def __len__(self) -> int: ... + def __iter__(self) -> Iterator: ... @property - def where_clause(self): ... + def tables(self) -> tuple[str, ...]: ... @property - def where_clause_params(self): ... - def add_join(self, connection: Any, implicit: bool = ..., outer: bool = ..., extra: Optional[Any] = ..., extra_params: Any = ...): ... + def where_clause(self) -> tuple[str, ...]: ... + @property + def where_clause_params(self) -> tuple: ... + def add_join(self, connection, implicit: bool = ..., outer: bool = ..., extra: str | None = ..., extra_params: tuple = ...) -> tuple[str, str]: ...