Update stubs

This commit is contained in:
Trinh Anh Ngoc
2020-05-30 23:02:11 +07:00
parent fbc30ca845
commit f0899a7c8d
9 changed files with 591 additions and 35 deletions

View File

@@ -3,24 +3,42 @@ from typing import Any, Optional
from .sql_db import Cursor from .sql_db import Cursor
__all__: Any
_logger: Any
WRAPPED_ATTRS: Any
INHERITED_ATTRS: Any
class Params: class Params:
args: Any = ... args: Any = ...
kwargs: Any = ... kwargs: Any = ...
def __init__(self, args: Any, kwargs: Any) -> None: ... def __init__(self, args: Any, kwargs: Any) -> None: ...
def __str__(self): ...
class Meta(type): class Meta(type):
def __new__(meta: Any, name: Any, bases: Any, attrs: Any): ... def __new__(meta: Any, name: Any, bases: Any, attrs: Any): ...
def attrsetter(attr: Any, value: Any): ...
def propagate(method1: Any, method2: Any): ...
def constrains(*args: Any): ... def constrains(*args: Any): ...
def onchange(*args: Any): ... def onchange(*args: Any): ...
def depends(*args: Any): ... def depends(*args: Any): ...
def returns(model: Any, downgrade: Optional[Any] = ..., upgrade: Optional[Any] = ...): ... def returns(model: Any, downgrade: Optional[Any] = ..., upgrade: Optional[Any] = ...): ...
def downgrade(method: Any, value: Any, self: Any, args: Any, kwargs: Any): ...
def aggregate(method: Any, value: Any, self: Any): ...
def split_context(method: Any, args: Any, kwargs: Any): ...
def model(method: Any): ... def model(method: Any): ...
def model_create_multi(method: Any): ...
def multi(method: Any): ... def multi(method: Any): ...
def one(method: Any): ... def one(method: Any): ...
def model_cr(method: Any): ... def model_cr(method: Any): ...
def model_cr_context(method: Any): ... def model_cr_context(method: Any): ...
_create_logger: Any
def _model_create_single(create: Any, self: Any, arg: Any): ...
def model_create_single(method: Any): ...
def _model_create_multi(create: Any, self: Any, arg: Any): ...
def model_create_multi(method: Any): ...
def cr(method: Any): ... def cr(method: Any): ...
def cr_context(method: Any): ... def cr_context(method: Any): ...
def cr_uid(method: Any): ... def cr_uid(method: Any): ...
@@ -31,14 +49,21 @@ def cr_uid_ids(method: Any): ...
def cr_uid_ids_context(method: Any): ... def cr_uid_ids_context(method: Any): ...
def cr_uid_records(method: Any): ... def cr_uid_records(method: Any): ...
def cr_uid_records_context(method: Any): ... def cr_uid_records_context(method: Any): ...
def v7(method_v7: Any): ...
def v8(method_v8: Any): ...
def noguess(method: Any): ... def noguess(method: Any): ...
def guess(method: Any): ... def guess(method: Any): ...
def expected(decorator: Any, func: Any): ...
def _call_kw_model(method: Any, self: Any, args: Any, kwargs: Any): ...
def _call_kw_model_create(method: Any, self: Any, args: Any, kwargs: Any): ...
def _call_kw_multi(method: Any, self: Any, args: Any, kwargs: Any): ...
def call_kw(model: Any, name: Any, args: Any, kwargs: Any): ... def call_kw(model: Any, name: Any, args: Any, kwargs: Any): ...
class Environment(Mapping): class Environment(Mapping):
cr: Cursor = ... cr: Cursor = ...
uid: int = ... uid: int = ...
context: dict = ... context: dict = ...
_local: Any = ...
@property @property
def envs(cls) -> Environments: ... def envs(cls) -> Environments: ...
@classmethod @classmethod
@@ -47,23 +72,26 @@ class Environment(Mapping):
def reset(cls) -> None: ... def reset(cls) -> None: ...
registry: Any = ... registry: Any = ...
cache: Any = ... cache: Any = ...
_cache_key: Any = ...
_protected: Any = ...
dirty: Any = ... dirty: Any = ...
all: Any = ... all: Any = ...
def __new__(cls, cr: Any, uid: Any, context: Any) -> Environment: ... def __new__(cls, cr: Any, uid: Any, context: Any) -> Environment: ...
def __contains__(self, model_name: Any): ... def __contains__(self, model_name: Any): ...
def __getitem__(self, model_name: Any): ... def __getitem__(self, model_name: Any): ...
def __iter__(self): ... def __iter__(self) -> Any: ...
def __len__(self): ... def __len__(self): ...
def __eq__(self, other: Any): ... def __eq__(self, other: Any) -> Any: ...
def __ne__(self, other: Any): ... def __ne__(self, other: Any) -> Any: ...
def __hash__(self): ... def __hash__(self) -> Any: ...
def __call__(self, cr: Optional[Any] = ..., user: Optional[Any] = ..., context: Optional[Any] = ...) -> Environment: ... def __call__(self, cr: Optional[Any] = ..., user: Optional[Any] = ..., context: Optional[Any] = ...): ...
def ref(self, xml_id: Any, raise_if_not_found: bool = ...): ... def ref(self, xml_id: Any, raise_if_not_found: bool = ...): ...
@property @property
def user(self): def user(self):
return self['res.users'] return self['res.users']
@property @property
def lang(self) -> str: ... def lang(self) -> str: ...
def _do_in_mode(self, mode: Any) -> None: ...
def do_in_draft(self): ... def do_in_draft(self): ...
@property @property
def in_draft(self): ... def in_draft(self): ...
@@ -93,10 +121,11 @@ class Environments:
recompute: bool = ... recompute: bool = ...
def __init__(self) -> None: ... def __init__(self) -> None: ...
def add(self, env: Any) -> None: ... def add(self, env: Any) -> None: ...
def __iter__(self): ... def __iter__(self) -> Any: ...
class Cache: class Cache:
def __init__(self) -> None: ... _data: Any = ...
def __init__(self): ...
def contains(self, record: Any, field: Any): ... def contains(self, record: Any, field: Any): ...
def get(self, record: Any, field: Any): ... def get(self, record: Any, field: Any): ...
def set(self, record: Any, field: Any, value: Any) -> None: ... def set(self, record: Any, field: Any, value: Any) -> None: ...
@@ -115,5 +144,6 @@ class Cache:
def check(self, env: Any) -> None: ... def check(self, env: Any) -> None: ...
class SpecialValue: class SpecialValue:
__slots__: Any = ...
get: Any = ... get: Any = ...
def __init__(self, getter: Any) -> None: ... def __init__(self, getter: Any) -> None: ...

41
odoo-stubs/exceptions.pyi Normal file
View File

@@ -0,0 +1,41 @@
from typing import Any, Optional
_logger: Any
class except_orm(Exception):
name: Any = ...
value: Any = ...
args: Any = ...
def __init__(self, name: Any, value: Optional[Any] = ...) -> None: ...
class UserError(except_orm):
def __init__(self, msg: Any) -> None: ...
Warning = UserError
class RedirectWarning(Exception):
@property
def name(self): ...
class AccessDenied(Exception):
__cause__: Any = ...
traceback: Any = ...
def __init__(self, message: str = ...) -> None: ...
class AccessError(except_orm):
def __init__(self, msg: Any) -> None: ...
class CacheMiss(except_orm, KeyError):
def __init__(self, record: Any, field: Any) -> None: ...
class MissingError(except_orm):
def __init__(self, msg: Any) -> None: ...
class ValidationError(except_orm):
def __init__(self, msg: Any) -> None: ...
class DeferredException(Exception):
message: Any = ...
traceback: Any = ...
def __init__(self, msg: Any, tb: Any) -> None: ...
class QWebException(Exception): ...

View File

@@ -7,6 +7,8 @@ DATE_LENGTH: Any
DATETIME_LENGTH: Any DATETIME_LENGTH: Any
EMPTY_DICT: Any EMPTY_DICT: Any
RENAMED_ATTRS: Any RENAMED_ATTRS: Any
_logger: Any
_schema: Any
Default: Any Default: Any
def copy_cache(records: Any, env: Any) -> None: ... def copy_cache(records: Any, env: Any) -> None: ...
@@ -18,6 +20,8 @@ class MetaField(type):
def __new__(meta: Any, name: Any, bases: Any, attrs: Any): ... def __new__(meta: Any, name: Any, bases: Any, attrs: Any): ...
def __init__(cls, name: Any, bases: Any, attrs: Any) -> None: ... def __init__(cls, name: Any, bases: Any, attrs: Any) -> None: ...
_global_seq: Any
class Field(MetaField('DummyField', (object,), {})): class Field(MetaField('DummyField', (object,), {})):
type: Any = ... type: Any = ...
relational: bool = ... relational: bool = ...
@@ -25,22 +29,76 @@ class Field(MetaField('DummyField', (object,), {})):
column_type: Any = ... column_type: Any = ...
column_format: str = ... column_format: str = ...
column_cast_from: Any = ... column_cast_from: Any = ...
_slots: Any = ...
_sequence: Any = ...
args: Any = ... args: Any = ...
_setup_done: Any = ...
def __init__(self, string: Any = ..., **kwargs: Any) -> None: ... def __init__(self, string: Any = ..., **kwargs: Any) -> None: ...
def new(self, **kwargs: Any): ... def new(self, **kwargs: Any): ...
def __getattr__(self, name: Any): ... def __getattr__(self, name: Any): ...
_attrs: Any = ...
def __setattr__(self, name: Any, value: Any) -> None: ... def __setattr__(self, name: Any, value: Any) -> None: ...
def set_all_attrs(self, attrs: Any) -> None: ... def set_all_attrs(self, attrs: Any) -> None: ...
def __delattr__(self, name: Any) -> None: ... def __delattr__(self, name: Any) -> None: ...
def __str__(self): ...
def __repr__(self): ...
def setup_base(self, model: Any, name: Any) -> None: ... def setup_base(self, model: Any, name: Any) -> None: ...
def _can_setup_from(self, field: Any): ...
def _get_attrs(self, model: Any, name: Any): ...
prefetch: bool = ...
string: Any = ...
default: Any = ...
def _setup_attrs(self, model: Any, name: Any): ...
def setup_full(self, model: Any) -> None: ... def setup_full(self, model: Any) -> None: ...
def _setup_regular_base(self, model: Any) -> None: ...
depends: Any = ...
def _setup_regular_full(self, model: Any): ...
related: Any = ...
related_field: Any = ...
compute: Any = ...
inverse: Any = ...
search: Any = ...
states: Any = ...
required: bool = ...
def _setup_related_full(self, model: Any) -> None: ...
def traverse_related(self, record: Any): ... def traverse_related(self, record: Any): ...
def _compute_related(self, records: Any) -> None: ...
def _inverse_related(self, records: Any) -> None: ...
def _search_related(self, records: Any, operator: Any, value: Any): ...
_related_comodel_name: Any = ...
_related_string: Any = ...
_related_help: Any = ...
_related_groups: Any = ...
_related_group_operator: Any = ...
_related_context_dependent: Any = ...
@property @property
def base_field(self): ... def base_field(self): ...
def _default_company_dependent(self, model: Any): ...
def _compute_company_dependent(self, records: Any) -> None: ...
def _inverse_company_dependent(self, records: Any) -> None: ...
def _search_company_dependent(self, records: Any, operator: Any, value: Any): ...
def resolve_deps(self, model: Any, path0: Any = ..., seen: Any = ...): ... def resolve_deps(self, model: Any, path0: Any = ..., seen: Any = ...): ...
recursive: bool = ... recursive: bool = ...
def setup_triggers(self, model: Any) -> None: ... def setup_triggers(self, model: Any) -> None: ...
def get_description(self, env: Any): ... def get_description(self, env: Any): ...
_description_store: Any = ...
_description_manual: Any = ...
_description_depends: Any = ...
_description_related: Any = ...
_description_company_dependent: Any = ...
_description_readonly: Any = ...
_description_required: Any = ...
_description_states: Any = ...
_description_groups: Any = ...
_description_change_default: Any = ...
_description_deprecated: Any = ...
_description_group_operator: Any = ...
@property
def _description_searchable(self): ...
@property
def _description_sortable(self): ...
def _description_string(self, env: Any): ...
def _description_help(self, env: Any): ...
def null(self, record: Any): ... def null(self, record: Any): ...
def convert_to_column(self, value: Any, record: Any, values: Optional[Any] = ..., validate: bool = ...): ... def convert_to_column(self, value: Any, record: Any, values: Optional[Any] = ..., validate: bool = ...): ...
def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ... def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ...
@@ -59,6 +117,7 @@ class Field(MetaField('DummyField', (object,), {})):
def write(self, records: Any, value: Any): ... def write(self, records: Any, value: Any): ...
# def __get__(self, record: Any, owner: Any): ... # def __get__(self, record: Any, owner: Any): ...
def __set__(self, record: Any, value: Any) -> None: ... def __set__(self, record: Any, value: Any) -> None: ...
def _compute_value(self, records: Any) -> None: ...
def compute_value(self, records: Any) -> None: ... def compute_value(self, records: Any) -> None: ...
def determine_value(self, record: Any) -> None: ... def determine_value(self, record: Any) -> None: ...
def determine_draft_value(self, record: Any): ... def determine_draft_value(self, record: Any): ...
@@ -76,19 +135,24 @@ class Boolean(Field):
class Integer(Field): class Integer(Field):
type: str = ... type: str = ...
column_type: Any = ... column_type: Any = ...
_slots: Any = ...
def convert_to_column(self, value: Any, record: Any, values: Optional[Any] = ..., validate: bool = ...): ... def convert_to_column(self, value: Any, record: Any, values: Optional[Any] = ..., validate: bool = ...): ...
def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ... def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ...
def convert_to_read(self, value: Any, record: Any, use_name_get: bool = ...): ... def convert_to_read(self, value: Any, record: Any, use_name_get: bool = ...): ...
def _update(self, records: Any, value: Any) -> None: ...
def convert_to_export(self, value: Any, record: Any): ... def convert_to_export(self, value: Any, record: Any): ...
class Float(Field): class Float(Field):
type: str = ... type: str = ...
column_cast_from: Any = ... column_cast_from: Any = ...
_slots: Any = ...
def __init__(self, string: Any = ..., digits: Any = ..., **kwargs: Any) -> None: ... def __init__(self, string: Any = ..., digits: Any = ..., **kwargs: Any) -> None: ...
@property @property
def column_type(self): ... def column_type(self): ...
@property @property
def digits(self): ... def digits(self): ...
_related__digits: Any = ...
_description_digits: Any = ...
def convert_to_column(self, value: Any, record: Any, values: Optional[Any] = ..., validate: bool = ...): ... def convert_to_column(self, value: Any, record: Any, values: Optional[Any] = ..., validate: bool = ...): ...
def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ... def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ...
def convert_to_export(self, value: Any, record: Any): ... def convert_to_export(self, value: Any, record: Any): ...
@@ -97,14 +161,25 @@ class Monetary(Field):
type: str = ... type: str = ...
column_type: Any = ... column_type: Any = ...
column_cast_from: Any = ... column_cast_from: Any = ...
_slots: Any = ...
def __init__(self, string: Any = ..., currency_field: Any = ..., **kwargs: Any) -> None: ... def __init__(self, string: Any = ..., currency_field: Any = ..., **kwargs: Any) -> None: ...
_description_currency_field: Any = ...
currency_field: str = ...
def _setup_currency_field(self, model: Any) -> None: ...
def _setup_regular_full(self, model: Any) -> None: ...
def _setup_related_full(self, model: Any) -> None: ...
def convert_to_column(self, value: Any, record: Any, values: Optional[Any] = ..., validate: bool = ...): ... def convert_to_column(self, value: Any, record: Any, values: Optional[Any] = ..., validate: bool = ...): ...
def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ... def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ...
def convert_to_read(self, value: Any, record: Any, use_name_get: bool = ...): ... def convert_to_read(self, value: Any, record: Any, use_name_get: bool = ...): ...
def convert_to_write(self, value: Any, record: Any): ... def convert_to_write(self, value: Any, record: Any): ...
class _String(Field): class _String(Field):
_slots: Any = ...
def __init__(self, string: Any = ..., **kwargs: Any) -> None: ... def __init__(self, string: Any = ..., **kwargs: Any) -> None: ...
prefetch: Any = ...
def _setup_attrs(self, model: Any, name: Any) -> None: ...
_related_translate: Any = ...
def _description_translate(self, env: Any): ...
def get_trans_terms(self, value: Any): ... def get_trans_terms(self, value: Any): ...
def get_trans_func(self, records: Any): ... def get_trans_func(self, records: Any): ...
def check_trans_value(self, value: Any): ... def check_trans_value(self, value: Any): ...
@@ -112,9 +187,15 @@ class _String(Field):
class Char(_String): class Char(_String):
type: str = ... type: str = ...
column_cast_from: Any = ... column_cast_from: Any = ...
_slots: Any = ...
@property @property
def column_type(self): ... def column_type(self): ...
def update_db_column(self, model: Any, column: Any) -> None: ... def update_db_column(self, model: Any, column: Any) -> None: ...
_related_size: Any = ...
_related_trim: Any = ...
_description_size: Any = ...
_description_trim: Any = ...
def _setup_regular_base(self, model: Any) -> None: ...
def convert_to_column(self, value: Any, record: Any, values: Optional[Any] = ..., validate: bool = ...): ... def convert_to_column(self, value: Any, record: Any, values: Optional[Any] = ..., validate: bool = ...): ...
def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ... def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ...
@@ -127,6 +208,20 @@ class Text(_String):
class Html(_String): class Html(_String):
type: str = ... type: str = ...
column_type: Any = ... column_type: Any = ...
_slots: Any = ...
def _get_attrs(self, model: Any, name: Any): ...
_related_sanitize: Any = ...
_related_sanitize_tags: Any = ...
_related_sanitize_attributes: Any = ...
_related_sanitize_style: Any = ...
_related_strip_style: Any = ...
_related_strip_classes: Any = ...
_description_sanitize: Any = ...
_description_sanitize_tags: Any = ...
_description_sanitize_attributes: Any = ...
_description_sanitize_style: Any = ...
_description_strip_style: Any = ...
_description_strip_classes: Any = ...
def convert_to_column(self, value: Any, record: Any, values: Optional[Any] = ..., validate: bool = ...): ... def convert_to_column(self, value: Any, record: Any, values: Optional[Any] = ..., validate: bool = ...): ...
def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ... def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ...
@@ -175,8 +270,10 @@ class Datetime(Field):
class Binary(Field): class Binary(Field):
type: str = ... type: str = ...
_slots: Any = ...
@property @property
def column_type(self): ... def column_type(self): ...
_description_attachment: Any = ...
def convert_to_column(self, value: Any, record: Any, values: Optional[Any] = ..., validate: bool = ...): ... def convert_to_column(self, value: Any, record: Any, values: Optional[Any] = ..., validate: bool = ...): ...
def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ... def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ...
def read(self, records: Any) -> None: ... def read(self, records: Any) -> None: ...
@@ -185,9 +282,15 @@ class Binary(Field):
class Selection(Field): class Selection(Field):
type: str = ... type: str = ...
_slots: Any = ...
def __init__(self, selection: Any = ..., string: Any = ..., **kwargs: Any) -> None: ... def __init__(self, selection: Any = ..., string: Any = ..., **kwargs: Any) -> None: ...
@property @property
def column_type(self): ... def column_type(self): ...
def _setup_regular_base(self, model: Any) -> None: ...
selection: Any = ...
def _setup_related_full(self, model: Any): ...
def _setup_attrs(self, model: Any, name: Any) -> None: ...
def _description_selection(self, env: Any): ...
def get_values(self, env: Any): ... def get_values(self, env: Any): ...
def convert_to_column(self, value: Any, record: Any, values: Optional[Any] = ..., validate: bool = ...): ... def convert_to_column(self, value: Any, record: Any, values: Optional[Any] = ..., validate: bool = ...): ...
def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ... def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ...
@@ -206,16 +309,29 @@ class Reference(Selection):
class _Relational(Field): class _Relational(Field):
relational: bool = ... relational: bool = ...
_slots: Any = ...
comodel_name: str = ...
def _setup_regular_base(self, model: Any) -> None: ...
@property
def _related_domain(self): ...
_related_context: Any = ...
_description_relation: Any = ...
_description_context: Any = ...
def _description_domain(self, env: Any): ...
def null(self, record: Any): ... def null(self, record: Any): ...
class Many2one(_Relational): class Many2one(_Relational):
type: str = ... type: str = ...
column_type: Any = ... column_type: Any = ...
_slots: Any = ...
def __init__(self, comodel_name: Any = ..., string: Any = ..., **kwargs: Any) -> None: ... def __init__(self, comodel_name: Any = ..., string: Any = ..., **kwargs: Any) -> None: ...
delegate: Any = ...
def _setup_attrs(self, model: Any, name: Any) -> None: ...
ondelete: Any = ... ondelete: Any = ...
def update_db(self, model: Any, columns: Any): ... def update_db(self, model: Any, columns: Any): ...
def update_db_column(self, model: Any, column: Any) -> None: ... def update_db_column(self, model: Any, column: Any) -> None: ...
def update_db_foreign_key(self, model: Any, column: Any) -> None: ... def update_db_foreign_key(self, model: Any, column: Any) -> None: ...
def _update(self, records: Any, value: Any) -> None: ...
def convert_to_column(self, value: Any, record: Any, values: Optional[Any] = ..., validate: bool = ...): ... def convert_to_column(self, value: Any, record: Any, values: Optional[Any] = ..., validate: bool = ...): ...
def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ... def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ...
def convert_to_record(self, value: Any, record: Any): ... def convert_to_record(self, value: Any, record: Any): ...
@@ -226,6 +342,7 @@ class Many2one(_Relational):
def convert_to_onchange(self, value: Any, record: Any, names: Any): ... def convert_to_onchange(self, value: Any, record: Any, names: Any): ...
class _RelationalMultiUpdate: class _RelationalMultiUpdate:
__slots__: Any = ...
record: Any = ... record: Any = ...
field: Any = ... field: Any = ...
value: Any = ... value: Any = ...
@@ -233,6 +350,8 @@ class _RelationalMultiUpdate:
def __call__(self): ... def __call__(self): ...
class _RelationalMulti(_Relational): class _RelationalMulti(_Relational):
_slots: Any = ...
def _update(self, records: Any, value: Any) -> None: ...
def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ... def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ...
def convert_to_record(self, value: Any, record: Any): ... def convert_to_record(self, value: Any, record: Any): ...
def convert_to_read(self, value: Any, record: Any, use_name_get: bool = ...): ... def convert_to_read(self, value: Any, record: Any, use_name_get: bool = ...): ...
@@ -240,10 +359,15 @@ class _RelationalMulti(_Relational):
def convert_to_onchange(self, value: Any, record: Any, names: Any): ... def convert_to_onchange(self, value: Any, record: Any, names: Any): ...
def convert_to_export(self, value: Any, record: Any): ... def convert_to_export(self, value: Any, record: Any): ...
def convert_to_display_name(self, value: Any, record: Any) -> None: ... def convert_to_display_name(self, value: Any, record: Any) -> None: ...
def _compute_related(self, records: Any): ...
def _setup_regular_full(self, model: Any) -> None: ...
class One2many(_RelationalMulti): class One2many(_RelationalMulti):
type: str = ... type: str = ...
_slots: Any = ...
def __init__(self, comodel_name: Any = ..., inverse_name: Any = ..., string: Any = ..., **kwargs: Any) -> None: ... def __init__(self, comodel_name: Any = ..., inverse_name: Any = ..., string: Any = ..., **kwargs: Any) -> None: ...
def _setup_regular_full(self, model: Any) -> None: ...
_description_relation_field: Any = ...
def convert_to_onchange(self, value: Any, record: Any, names: Any): ... def convert_to_onchange(self, value: Any, record: Any, names: Any): ...
def update_db(self, model: Any, columns: Any) -> None: ... def update_db(self, model: Any, columns: Any) -> None: ...
def read(self, records: Any): ... def read(self, records: Any): ...
@@ -252,7 +376,13 @@ class One2many(_RelationalMulti):
class Many2many(_RelationalMulti): class Many2many(_RelationalMulti):
type: str = ... type: str = ...
_slots: Any = ...
def __init__(self, comodel_name: Any = ..., relation: Any = ..., column1: Any = ..., column2: Any = ..., string: Any = ..., **kwargs: Any) -> None: ... def __init__(self, comodel_name: Any = ..., relation: Any = ..., column1: Any = ..., column2: Any = ..., string: Any = ..., **kwargs: Any) -> None: ...
relation: Any = ...
column1: Any = ...
column2: Any = ...
def _setup_regular_base(self, model: Any) -> None: ...
def _setup_regular_full(self, model: Any) -> None: ...
def update_db(self, model: Any, columns: Any): ... def update_db(self, model: Any, columns: Any): ...
def update_db_foreign_keys(self, model: Any) -> None: ... def update_db_foreign_keys(self, model: Any) -> None: ...
def read(self, records: Any) -> None: ... def read(self, records: Any) -> None: ...
@@ -262,6 +392,7 @@ class Many2many(_RelationalMulti):
class Id(Field): class Id(Field):
type: str = ... type: str = ...
column_type: Any = ... column_type: Any = ...
_slots: Any = ...
def update_db(self, model: Any, columns: Any) -> None: ... def update_db(self, model: Any, columns: Any) -> None: ...
def __get__(self, record: Any, owner: Any): ... def __get__(self, record: Any, owner: Any): ...
def __set__(self, record: Any, value: Any) -> None: ... def __set__(self, record: Any, value: Any) -> None: ...

View File

@@ -9,6 +9,7 @@ from .sql_db import Cursor
rpc_request: Any rpc_request: Any
rpc_response: Any rpc_response: Any
STATIC_CACHE: Any STATIC_CACHE: Any
_request_stack: Any
request: '__Request' request: '__Request'
def replace_request_password(args: Any): ... def replace_request_password(args: Any): ...
@@ -26,6 +27,11 @@ class WebRequest:
endpoint: Any = ... endpoint: Any = ...
endpoint_arguments: Any = ... endpoint_arguments: Any = ...
auth_method: Any = ... auth_method: Any = ...
_cr: Cursor = ...
_uid: int = ...
_context: Any = ...
_env: Environment = ...
_failed: Any = ...
def __init__(self, httprequest: Any) -> None: ... def __init__(self, httprequest: Any) -> None: ...
@property @property
def cr(self) -> Cursor: ... def cr(self) -> Cursor: ...
@@ -39,7 +45,6 @@ class WebRequest:
def context(self, val: Any) -> None: ... def context(self, val: Any) -> None: ...
@property @property
def env(self) -> Environment: ... def env(self) -> Environment: ...
context: Any = ...
@property @property
def lang(self): ... def lang(self): ...
@property @property
@@ -47,6 +52,8 @@ class WebRequest:
def __enter__(self): ... def __enter__(self): ...
def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any) -> None: ... def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any) -> None: ...
def set_handler(self, endpoint: Any, arguments: Any, auth: Any) -> None: ... def set_handler(self, endpoint: Any, arguments: Any, auth: Any) -> None: ...
def _handle_exception(self, exception: Any) -> None: ...
def _call_function(self, *args: Any, **kwargs: Any): ...
@property @property
def debug(self): ... def debug(self): ...
def registry_cr(self) -> None: ... def registry_cr(self) -> None: ...
@@ -60,19 +67,24 @@ class WebRequest:
def route(route: Optional[Any] = ..., **kw: Any): ... def route(route: Optional[Any] = ..., **kw: Any): ...
class JsonRequest(WebRequest): class JsonRequest(WebRequest):
_request_type: str = ...
jsonp_handler: Any = ... jsonp_handler: Any = ...
params: Any = ... params: Any = ...
jsonp: Any = ... jsonp: Any = ...
jsonrequest: Any = ... jsonrequest: Any = ...
context: Any = ... context: Any = ...
def __init__(self, *args: Any) -> None: ... def __init__(self, *args: Any): ...
def _json_response(self, result: Optional[Any] = ..., error: Optional[Any] = ...): ...
def _handle_exception(self, exception: Any): ...
def dispatch(self): ... def dispatch(self): ...
def serialize_exception(e: Any): ... def serialize_exception(e: Any): ...
class HttpRequest(WebRequest): class HttpRequest(WebRequest):
_request_type: str = ...
params: Any = ... params: Any = ...
def __init__(self, *args: Any) -> None: ... def __init__(self, *args: Any) -> None: ...
def _handle_exception(self, exception: Any): ...
def dispatch(self): ... def dispatch(self): ...
def make_response(self, data: Any, headers: Optional[Any] = ..., cookies: Optional[Any] = ...): ... def make_response(self, data: Any, headers: Optional[Any] = ..., cookies: Optional[Any] = ...): ...
def render(self, template: Any, qcontext: Optional[Any] = ..., lazy: bool = ..., **kw: Any): ... def render(self, template: Any, qcontext: Optional[Any] = ..., lazy: bool = ..., **kw: Any): ...
@@ -88,7 +100,7 @@ controllers_per_module: Any
class ControllerType(type): class ControllerType(type):
def __init__(cls, name: Any, bases: Any, attrs: Any) -> None: ... def __init__(cls, name: Any, bases: Any, attrs: Any) -> None: ...
Controller: Any = ... Controller: Any
class EndPoint: class EndPoint:
method: Any = ... method: Any = ...
@@ -119,8 +131,10 @@ class OpenERPSession(Session):
def authenticate(self, db: Any, login: Optional[Any] = ..., password: Optional[Any] = ..., uid: Optional[Any] = ...): ... def authenticate(self, db: Any, login: Optional[Any] = ..., password: Optional[Any] = ..., uid: Optional[Any] = ...): ...
def check_security(self) -> None: ... def check_security(self) -> None: ...
def logout(self, keep_db: bool = ...) -> None: ... def logout(self, keep_db: bool = ...) -> None: ...
def _default_values(self) -> None: ...
context: Any = ... context: Any = ...
def get_context(self): ... def get_context(self): ...
def _fix_lang(self, context: Any) -> None: ...
def save_action(self, action: Any): ... def save_action(self, action: Any): ...
def get_action(self, key: Any): ... def get_action(self, key: Any): ...
def save_request_data(self) -> None: ... def save_request_data(self) -> None: ...
@@ -146,6 +160,7 @@ class DisableCacheMiddleware:
def __call__(self, environ: Any, start_response: Any): ... def __call__(self, environ: Any, start_response: Any): ...
class Root: class Root:
_loaded: bool = ...
def __init__(self) -> None: ... def __init__(self) -> None: ...
def session_store(self): ... def session_store(self): ...
def nodb_routing_map(self): ... def nodb_routing_map(self): ...

15
odoo-stubs/loglevels.pyi Normal file
View File

@@ -0,0 +1,15 @@
from typing import Any
LOG_NOTSET: str
LOG_DEBUG: str
LOG_INFO: str
LOG_WARNING: str
LOG_ERROR: str
LOG_CRITICAL: str
def get_encodings(hint_encoding: str = ...) -> None: ...
text_type: Any
def ustr(value: Any, hint_encoding: str = ..., errors: str = ...): ...
def exception_to_unicode(e: Any): ...

View File

@@ -1,13 +1,11 @@
from collections import MutableMapping from collections import MutableMapping
from typing import Any, Optional, List, Union, Sequence, Tuple, Dict, Generator from typing import Any, Optional, List, Dict, Generator
from . import api, fields from . import api, fields
from .api import Environment from .api import Environment
from .modules.registry import Registry from .modules.registry import Registry
from .sql_db import Cursor from .sql_db import Cursor
SearchDomain = List[Union[str, Sequence[str]]]
RecordValue = Dict[str, Any]
regex_order: Any regex_order: Any
regex_object_name: Any regex_object_name: Any
@@ -27,7 +25,10 @@ def fix_import_export_id_paths(fieldname: Any): ...
class MetaModel(api.Meta): class MetaModel(api.Meta):
module_to_models: Any = ... module_to_models: Any = ...
_register: bool = ...
_module: Any = ...
def __init__(self, name: Any, bases: Any, attrs: Any) -> None: ... def __init__(self, name: Any, bases: Any, attrs: Any) -> None: ...
def _get_addon_name(self, full_name: Any): ...
class NewId: class NewId:
ref: Any = ... ref: Any = ...
@@ -42,17 +43,32 @@ MAGIC_COLUMNS: Any
VALID_AGGREGATE_FUNCTIONS: Any VALID_AGGREGATE_FUNCTIONS: Any
class BaseModel(MetaModel('DummyModel', (object,), {'_register': False})): class BaseModel(MetaModel('DummyModel', (object,), {'_register': False})):
_auto: bool = ...
_register: bool = ...
_abstract: bool = ...
_transient: bool = ...
_name: str _name: str
_description: str _description: str
_sql_constraints: List _custom: bool = ...
_inherit: List[str] _inherit: List[str]
_inherits: Dict[str, str] _inherits: Dict[str, str]
_constraints: Any = ...
_table: Any = ...
_sequence: Any = ...
_sql_constraints: list
_rec_name: str _rec_name: str
_order: str _order: str
_parent_name: str = ...
_parent_store: bool = ...
_date_name: str = ...
_fold_name: str = ...
_needaction: bool = ...
_translate: bool = ...
_depends: Any = ...
_transient_check_count: int = ...
_transient_max_count: Any = ...
_transient_max_hours: Any = ...
_fields: Dict[str, fields.Field] _fields: Dict[str, fields.Field]
_context: Dict
_cr: Cursor
_uid: int
env: Environment = ... env: Environment = ...
pool: Registry pool: Registry
id = fields.Id() id = fields.Id()
@@ -63,65 +79,173 @@ class BaseModel(MetaModel('DummyModel', (object,), {'_register': False})):
write_date = fields.Datetime() write_date = fields.Datetime()
CONCURRENCY_CHECK_FIELD: str = ... CONCURRENCY_CHECK_FIELD: str = ...
def view_init(self, fields_list: Any) -> None: ... def view_init(self, fields_list: Any) -> None: ...
def _reflect(self) -> None: ...
def _add_field(self, name: Any, field: Any) -> None: ...
def _pop_field(self, name: Any): ...
def _add_magic_fields(self) -> None: ...
def compute_concurrency_field(self) -> None: ... def compute_concurrency_field(self) -> None: ...
def compute_concurrency_field_with_access(self) -> None: ... def compute_concurrency_field_with_access(self) -> None: ...
@classmethod
def _build_model(cls, pool: Any, cr: Any): ...
@classmethod
def _build_model_check_base(model_class: Any, cls: Any) -> None: ...
@classmethod
def _build_model_check_parent(model_class: Any, cls: Any, parent_class: Any) -> None: ...
@classmethod
def _build_model_attributes(cls, pool: Any) -> None: ...
@classmethod
def _init_constraints_onchanges(cls) -> None: ...
@property
def _constraint_methods(self): ...
@property
def _onchange_methods(self): ...
def __new__(cls) -> BaseModel: ... def __new__(cls) -> BaseModel: ...
def __init__(self, pool: Any, cr: Any) -> None: ... def __init__(self, pool: Any, cr: Any) -> None: ...
def _is_an_ordinary_table(self): ...
def __ensure_xml_id(self, skip: bool = ...): ...
def _export_rows(self, fields: Any, *, _is_toplevel_call: bool = ...): ...
__export_rows: Any = ...
def export_data(self, fields_to_export: Any, raw_data: bool = ...): ... def export_data(self, fields_to_export: Any, raw_data: bool = ...): ...
def load(self, fields: Any, data: Any): ... def load(self, fields: Any, data: Any): ...
def default_get(self, fields_list: List[str]) -> Dict[str, Any]: ... def _add_fake_fields(self, fields: Any): ...
def _extract_records(self, fields_: Any, data: Any, log: Any = ...): ...
def _convert_records(self, records: Any, log: Any = ...) -> None: ...
def _validate_fields(self, field_names: Any) -> None: ...
def default_get(self, fields_list: Any): ...
def fields_get_keys(self): ... def fields_get_keys(self): ...
def _rec_name_fallback(self): ...
def view_header_get(self, view_id: Optional[Any] = ..., view_type: str = ...): ... def view_header_get(self, view_id: Optional[Any] = ..., view_type: str = ...): ...
def user_has_groups(self, groups: Any): ... def user_has_groups(self, groups: Any): ...
def _get_default_form_view(self): ...
def _get_default_search_view(self): ...
def _get_default_tree_view(self): ...
def _get_default_activity_view(self): ...
def _get_default_pivot_view(self): ...
def _get_default_kanban_view(self): ...
def _get_default_graph_view(self): ...
def _get_default_calendar_view(self): ...
def load_views(self, views: Any, options: Optional[Any] = ...): ... def load_views(self, views: Any, options: Optional[Any] = ...): ...
def _fields_view_get(self, view_id: Optional[Any] = ..., view_type: str = ..., toolbar: bool = ..., submenu: bool = ...): ...
def fields_view_get(self, view_id: Optional[Any] = ..., view_type: str = ..., toolbar: bool = ..., submenu: bool = ...): ... def fields_view_get(self, view_id: Optional[Any] = ..., view_type: str = ..., toolbar: bool = ..., submenu: bool = ...): ...
def get_formview_id(self, access_uid: Optional[Any] = ...): ... def get_formview_id(self, access_uid: Optional[Any] = ...): ...
def get_formview_action(self, access_uid: Optional[Any] = ...): ... def get_formview_action(self, access_uid: Optional[Any] = ...): ...
def get_access_action(self, access_uid: Optional[Any] = ...): ... def get_access_action(self, access_uid: Optional[Any] = ...): ...
def search_count(self, args: Any) -> int: ... def search_count(self, args: Any): ...
def search(self, args: SearchDomain, offset: int = ..., limit: Optional[int] = ..., order: Optional[str] = ..., count: bool = ...) -> BaseModel: ... def search(self, args: Any, offset: int = ..., limit: Optional[Any] = ..., order: Optional[Any] = ..., count: bool = ...): ...
def name_get(self) -> List[Tuple[int, str]]: ... def _compute_display_name(self) -> None: ...
def name_get(self): ...
def name_create(self, name: Any): ... def name_create(self, name: Any): ...
def name_search(self, name: str = ..., args: Optional[Any] = ..., operator: str = ..., limit: int = ...): ... def name_search(self, name: str = ..., args: Optional[Any] = ..., operator: str = ..., limit: int = ...): ...
def _name_search(self, name: str = ..., args: Optional[Any] = ..., operator: str = ..., limit: int = ..., name_get_uid: Optional[Any] = ...): ...
def _add_missing_default_values(self, values: Any): ...
@classmethod @classmethod
def clear_caches(cls) -> None: ... def clear_caches(cls) -> None: ...
def _read_group_fill_results(self, domain: Any, groupby: Any, remaining_groupbys: Any, aggregated_fields: Any, count_field: Any, read_group_result: Any, read_group_order: Optional[Any] = ...): ...
def _read_group_fill_temporal(self, data: Any, groupby: Any, aggregated_fields: Any, annotated_groupbys: Any, interval: Any = ...): ...
def _read_group_prepare(self, orderby: Any, aggregated_fields: Any, annotated_groupbys: Any, query: Any): ...
def _read_group_process_groupby(self, gb: Any, query: Any): ...
def _read_group_prepare_data(self, key: Any, value: Any, groupby_dict: Any): ...
def _read_group_format_result(self, data: Any, annotated_groupbys: Any, groupby: Any, domain: Any): ...
def read_group(self, domain: Any, fields: Any, groupby: Any, offset: int = ..., limit: Optional[Any] = ..., orderby: bool = ..., lazy: bool = ...) -> List[Dict]: ... def read_group(self, domain: Any, fields: Any, groupby: Any, offset: int = ..., limit: Optional[Any] = ..., orderby: bool = ..., lazy: bool = ...) -> List[Dict]: ...
def _read_group_raw(self, domain: Any, fields: Any, groupby: Any, offset: int = ..., limit: Optional[Any] = ..., orderby: bool = ..., lazy: bool = ...): ...
def _read_group_resolve_many2one_fields(self, data: Any, fields: Any) -> None: ...
def _inherits_join_add(self, current_model: Any, parent_model_name: Any, query: Any): ...
def _inherits_join_calc(self, alias: Any, fname: Any, query: Any, implicit: bool = ..., outer: bool = ...): ...
def _parent_store_compute(self): ...
def _check_removed_columns(self, log: bool = ...) -> None: ...
def _init_column(self, column_name: Any) -> None: ...
def _table_has_rows(self): ...
def _auto_init(self) -> None: ...
def init(self) -> None: ... def init(self) -> None: ...
def _create_parent_columns(self) -> None: ...
def _add_sql_constraints(self) -> None: ...
def _execute_sql(self) -> None: ...
def _add_inherited_fields(self) -> None: ...
def _inherits_check(self) -> None: ...
def _prepare_setup(self) -> None: ...
def _setup_base(self): ...
def _setup_fields(self) -> None: ...
def _setup_complete(self) -> None: ...
def fields_get(self, allfields: Optional[Any] = ..., attributes: Optional[Any] = ...): ... def fields_get(self, allfields: Optional[Any] = ..., attributes: Optional[Any] = ...): ...
def get_empty_list_help(self, help: Any): ... def get_empty_list_help(self, help: Any): ...
def check_field_access_rights(self, operation: Any, fields: Any): ... def check_field_access_rights(self, operation: Any, fields: Any): ...
def read(self, fields: Optional[List[str]] = ..., load: str = ...) -> List[Dict[str, Any]]: ... def read(self, fields: Optional[Any] = ..., load: str = ...): ...
def _prefetch_field(self, field: Any) -> None: ...
def _read_from_database(self, field_names: Any, inherited_field_names: Any = ...): ...
def get_metadata(self): ... def get_metadata(self): ...
def _check_concurrency(self) -> None: ...
def check_access_rights(self, operation: Any, raise_exception: bool = ...): ... def check_access_rights(self, operation: Any, raise_exception: bool = ...): ...
def check_access_rule(self, operation: Any) -> None: ... def check_access_rule(self, operation: Any) -> None: ...
def _filter_access_rules(self, operation: Any): ...
def unlink(self): ... def unlink(self): ...
def write(self, vals: RecordValue): ... def write(self, vals: Any): ...
def create(self, vals_list: Union[RecordValue, List[RecordValue]]) -> BaseModel: ... def _write(self, vals: Any): ...
def create(self, vals_list: Any): ...
def _create(self, data_list: Any): ...
def _parent_store_create(self) -> None: ...
def _parent_store_update_prepare(self, vals: Any): ...
def _parent_store_update(self) -> None: ...
def _load_records_write(self, values: Any) -> None: ...
def _load_records_create(self, values: Any): ...
def _load_records(self, data_list: Any, update: bool = ...): ...
def _where_calc(self, domain: Any, active_test: bool = ...): ...
def _check_qorder(self, word: Any): ...
def _apply_ir_rules(self, query: Any, mode: str = ...) -> None: ...
def _generate_translated_field(self, table_alias: Any, field: Any, query: Any): ...
def _generate_m2o_order_by(self, alias: Any, order_field: Any, query: Any, reverse_direction: Any, seen: Any): ...
def _generate_order_by_inner(self, alias: Any, order_spec: Any, query: Any, reverse_direction: bool = ..., seen: Optional[Any] = ...): ...
def _generate_order_by(self, order_spec: Any, query: Any): ...
def _search(self, args: Any, offset: int = ..., limit: Optional[Any] = ..., order: Optional[Any] = ..., count: bool = ..., access_rights_uid: Optional[Any] = ...): ...
def copy_data(self, default: Optional[Any] = ...): ... def copy_data(self, default: Optional[Any] = ...): ...
def copy_translations(old: Any, new: Any, excluded: Any = ...): ... def copy_translations(old: Any, new: Any, excluded: Any = ...): ...
def copy(self, default: Optional[Any] = ...) -> BaseModel: ... def copy(self, default: Optional[Any] = ...): ...
def exists(self) -> BaseModel: ... def exists(self): ...
def get_external_id(self) -> Dict[int, str]: ... def _check_recursion(self, parent: Optional[Any] = ...): ...
def _check_m2m_recursion(self, field_name: Any): ...
def _get_external_ids(self): ...
def get_external_id(self): ...
get_xml_id: Any = ... get_xml_id: Any = ...
_get_xml_ids: Any = ...
@classmethod @classmethod
def is_transient(cls): ... def is_transient(cls): ...
def _transient_clean_rows_older_than(self, seconds: Any) -> None: ...
def _transient_clean_old_rows(self, max_count: Any) -> None: ...
def _transient_vacuum(self, force: bool = ...): ...
def resolve_2many_commands(self, field_name: Any, commands: Any, fields: Optional[Any] = ...): ... def resolve_2many_commands(self, field_name: Any, commands: Any, fields: Optional[Any] = ...): ...
resolve_o2m_commands_to_record_dicts: Any = ... resolve_o2m_commands_to_record_dicts: Any = ...
def search_read(self, domain: Optional[Any] = ..., fields: Optional[Any] = ..., offset: int = ..., limit: Optional[Any] = ..., order: Optional[Any] = ...): ... def search_read(self, domain: Optional[Any] = ..., fields: Optional[Any] = ..., offset: int = ..., limit: Optional[Any] = ..., order: Optional[Any] = ...): ...
def toggle_active(self) -> None: ... def toggle_active(self) -> None: ...
def browse(self, arg: Optional[Any] = ..., prefetch: Optional[Any] = ...) -> BaseModel: ... def _register_hook(self) -> None: ...
@classmethod
def _patch_method(cls, name: Any, method: Any) -> None: ...
@classmethod
def _revert_method(cls, name: Any) -> None: ...
@classmethod
def _browse(cls, ids: Any, env: Any, prefetch: Optional[Any] = ..., add_prefetch: bool = ...): ...
def browse(self, arg: Optional[Any] = ..., prefetch: Optional[Any] = ...): ...
@property @property
def ids(self) -> List[int]: ... def ids(self) -> List[int]: ...
_cr: Cursor
_uid: int
_context: Dict
def ensure_one(self): ... def ensure_one(self): ...
def with_env(self, env: Any) -> BaseModel: ... def with_env(self, env: Any) -> BaseModel: ...
def sudo(self, user: Any = ...) -> BaseModel: ... def sudo(self, user: Any = ...) -> BaseModel: ...
def with_context(self, *args: Any, **kwargs: Any) -> BaseModel: ... def with_context(self, *args: Any, **kwargs: Any) -> BaseModel: ...
def with_prefetch(self, prefetch: Optional[Any] = ...) -> BaseModel: ... def with_prefetch(self, prefetch: Optional[Any] = ...) -> BaseModel: ...
def _convert_to_cache(self, values: Any, update: bool = ..., validate: bool = ...): ...
def _convert_to_record(self, values: Any): ...
def _convert_to_write(self, values: Any): ...
def _mapped_func(self, func: Any): ...
def mapped(self, func: Any): ... def mapped(self, func: Any): ...
def _mapped_cache(self, name_seq: Any): ...
def filtered(self, func: Any) -> BaseModel: ... def filtered(self, func: Any) -> BaseModel: ...
def sorted(self, key: Optional[Any] = ..., reverse: bool = ...) -> BaseModel: ... def sorted(self, key: Optional[Any] = ..., reverse: bool = ...) -> BaseModel: ...
def update(self, values: RecordValue) -> None: ... def update(self, values: Any) -> None: ...
def new(self, values: RecordValue = ..., ref: Optional[Any] = ...) -> BaseModel: ... def new(self, values: Any = ..., ref: Optional[Any] = ...) -> BaseModel: ...
def _is_dirty(self): ...
def _get_dirty(self): ...
def _set_dirty(self, field_name: Any) -> None: ...
def __bool__(self) -> bool: ... def __bool__(self) -> bool: ...
__nonzero__: Any = ... __nonzero__: Any = ...
def __len__(self) -> int: ... def __len__(self) -> int: ...
@@ -139,22 +263,33 @@ class BaseModel(MetaModel('DummyModel', (object,), {'_register': False})):
def __gt__(self, other: Any) -> bool: ... def __gt__(self, other: Any) -> bool: ...
def __ge__(self, other: Any) -> bool: ... def __ge__(self, other: Any) -> bool: ...
def __int__(self): ... def __int__(self): ...
def __hash__(self): ... def __str__(self): ...
def __repr__(self): ...
def __hash__(self) -> Any: ...
def __getitem__(self, key: Any): ... def __getitem__(self, key: Any): ...
def __setitem__(self, key: Any, value: Any): ... def __setitem__(self, key: Any, value: Any): ...
def _cache(self): ...
def _in_cache_without(self, field: Any, limit: Any = ...): ...
def refresh(self) -> None: ... def refresh(self) -> None: ...
def invalidate_cache(self, fnames: Optional[Any] = ..., ids: Optional[Any] = ...): ... def invalidate_cache(self, fnames: Optional[Any] = ..., ids: Optional[Any] = ...): ...
def modified(self, fnames: Any) -> None: ... def modified(self, fnames: Any) -> None: ...
def _recompute_check(self, field: Any): ...
def _recompute_todo(self, field: Any) -> None: ...
def _recompute_done(self, field: Any) -> None: ...
def recompute(self) -> None: ... def recompute(self) -> None: ...
def _has_onchange(self, field: Any, other_fields: Any): ...
def _onchange_spec(self, view_info: Optional[Any] = ...): ...
def _onchange_eval(self, field_name: Any, onchange: Any, result: Any) -> None: ...
def onchange(self, values: Any, field_name: Any, field_onchange: Any): ... def onchange(self, values: Any, field_name: Any, field_onchange: Any): ...
class RecordCache(MutableMapping): class RecordCache(MutableMapping):
_record: Any = ...
def __init__(self, record: Any) -> None: ... def __init__(self, record: Any) -> None: ...
def __contains__(self, name: Any): ... def __contains__(self, name: Any): ...
def __getitem__(self, name: Any): ... def __getitem__(self, name: Any): ...
def __setitem__(self, name: Any, value: Any) -> None: ... def __setitem__(self, name: Any, value: Any) -> None: ...
def __delitem__(self, name: Any) -> None: ... def __delitem__(self, name: Any) -> None: ...
def __iter__(self) -> None: ... def __iter__(self) -> Any: ...
def __len__(self): ... def __len__(self): ...
def has_value(self, name: Any): ... def has_value(self, name: Any): ...
def get_value(self, name: Any, default: Optional[Any] = ...): ... def get_value(self, name: Any, default: Optional[Any] = ...): ...
@@ -162,13 +297,24 @@ class RecordCache(MutableMapping):
def set_failed(self, names: Any, exception: Any) -> None: ... def set_failed(self, names: Any, exception: Any) -> None: ...
AbstractModel = BaseModel AbstractModel = BaseModel
class Model(AbstractModel): ... class Model(AbstractModel):
class TransientModel(Model): ... _auto: bool = ...
_register: bool = ...
_abstract: bool = ...
_transient: bool = ...
class TransientModel(Model):
_auto: bool = ...
_register: bool = ...
_abstract: bool = ...
_transient: bool = ...
def itemgetter_tuple(items: Any): ... def itemgetter_tuple(items: Any): ...
def convert_pgerror_not_null(model: Any, fields: Any, info: Any, e: Any): ... def convert_pgerror_not_null(model: Any, fields: Any, info: Any, e: Any): ...
def convert_pgerror_unique(model: Any, fields: Any, info: Any, e: Any): ... def convert_pgerror_unique(model: Any, fields: Any, info: Any, e: Any): ...
def _get_translated_field_name(model: Any, field_name: Any): ...
PGERROR_TO_OE: Any PGERROR_TO_OE: Any
def _normalize_ids(arg: Any, atoms: Any = ...): ...
def lazy_name_get(self): ... def lazy_name_get(self): ...

45
odoo-stubs/netsvc.pyi Normal file
View File

@@ -0,0 +1,45 @@
import logging.handlers
from typing import Any, Optional
_logger: Any
def log(logger: Any, level: Any, prefix: Any, msg: Any, depth: Optional[Any] = ...) -> None: ...
class PostgreSQLHandler(logging.Handler):
def emit(self, record: Any) -> None: ...
BLACK: Any
RED: Any
GREEN: Any
YELLOW: Any
BLUE: Any
MAGENTA: Any
CYAN: Any
WHITE: Any
_NOTHING: Any
DEFAULT: Any
RESET_SEQ: str
COLOR_SEQ: str
BOLD_SEQ: str
COLOR_PATTERN: Any
LEVEL_COLOR_MAPPING: Any
class PerfFilter(logging.Filter):
def format_perf(self, query_count: Any, query_time: Any, remaining_time: Any): ...
def filter(self, record: Any): ...
class ColoredPerfFilter(PerfFilter):
def format_perf(self, query_count: Any, query_time: Any, remaining_time: Any): ...
class DBFormatter(logging.Formatter):
def format(self, record: Any): ...
class ColoredFormatter(DBFormatter):
def format(self, record: Any): ...
_logger_init: bool
def init_logger(): ...
DEFAULT_LOG_CONFIGURATION: Any
PSEUDOCONFIG_MAPPER: Any

22
odoo-stubs/release.pyi Normal file
View File

@@ -0,0 +1,22 @@
from typing import Any
RELEASE_LEVELS: Any
ALPHA: Any
BETA: Any
RELEASE_CANDIDATE: Any
FINAL: Any
RELEASE_LEVELS_DISPLAY: Any
version_info: Any
version: Any
series: Any
serie: Any
major_version: Any
product_name: str
description: str
long_desc: str
classifiers: str
url: str
author: str
author_email: str
license: str
nt_service_name: Any

111
odoo-stubs/sql_db.pyi Normal file
View File

@@ -0,0 +1,111 @@
import psycopg2.extensions
from typing import Any, Optional
_logger: Any
def unbuffer(symb: Any, cr: Any): ...
def undecimalize(symb: Any, cr: Any): ...
def adapt_string(adapted: Any): ...
re_from: Any
re_into: Any
sql_counter: int
class Cursor:
IN_MAX: int = ...
def check(f: Any): ...
sql_from_log: Any = ...
sql_into_log: Any = ...
sql_log: Any = ...
sql_log_count: int = ...
_closed: bool = ...
__pool: Any = ...
dbname: Any = ...
_serialized: Any = ...
_cnx: Any = ...
_obj: Any = ...
__caller: Any = ...
__closer: bool = ...
_default_log_exceptions: bool = ...
cache: Any = ...
_event_handlers: Any = ...
def __init__(self, pool: Any, dbname: Any, dsn: Any, serialized: bool = ...) -> None: ...
def __build_dict(self, row: Any): ...
def dictfetchone(self): ...
def dictfetchmany(self, size: Any): ...
def dictfetchall(self): ...
def __del__(self) -> None: ...
def execute(self, query: Any, params: Optional[Any] = ..., log_exceptions: Optional[Any] = ...): ...
def split_for_in_conditions(self, ids: Any, size: Optional[Any] = ...): ...
def print_log(self): ...
def close(self): ...
def _close(self, leak: bool = ...) -> None: ...
def autocommit(self, on: Any) -> None: ...
def after(self, event: Any, func: Any) -> None: ...
def _pop_event_handlers(self): ...
def commit(self): ...
def rollback(self): ...
def __enter__(self): ...
def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any) -> None: ...
def savepoint(self) -> None: ...
def __getattr__(self, name: Any): ...
@property
def closed(self): ...
class TestCursor:
_savepoint_seq: Any = ...
_closed: bool = ...
_cursor: Any = ...
_lock: Any = ...
_savepoint: Any = ...
def __init__(self, cursor: Any, lock: Any) -> None: ...
def close(self) -> None: ...
def autocommit(self, on: Any) -> None: ...
def commit(self) -> None: ...
def rollback(self) -> None: ...
def __enter__(self): ...
def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any) -> None: ...
def __getattr__(self, name: Any): ...
class LazyCursor:
_dbname: Any = ...
_cursor: Any = ...
_depth: int = ...
def __init__(self, dbname: Optional[Any] = ...) -> None: ...
@property
def dbname(self): ...
def __getattr__(self, name: Any): ...
def __enter__(self): ...
def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any) -> None: ...
class PsycoConnection(psycopg2.extensions.connection): ...
class ConnectionPool:
def locked(fun: Any): ...
_connections: Any = ...
_maxconn: Any = ...
_lock: Any = ...
def __init__(self, maxconn: int = ...) -> None: ...
def __repr__(self): ...
def _debug(self, msg: Any, *args: Any) -> None: ...
def borrow(self, connection_info: Any): ...
def give_back(self, connection: Any, keep_in_pool: bool = ...) -> None: ...
def close_all(self, dsn: Optional[Any] = ...) -> None: ...
class Connection:
dbname: Any = ...
dsn: Any = ...
__pool: Any = ...
def __init__(self, pool: Any, dbname: Any, dsn: Any) -> None: ...
def cursor(self, serialized: bool = ...): ...
serialized_cursor: Any = ...
def __bool__(self) -> None: ...
__nonzero__: Any = ...
def connection_info_for(db_or_uri: Any): ...
_Pool: Any
def db_connect(to: Any, allow_uri: bool = ...): ...
def close_db(db_name: Any) -> None: ...
def close_all() -> None: ...