diff --git a/odoo-stubs/__init__.pyi b/odoo-stubs/__init__.pyi index bc1e04c..ef69cad 100644 --- a/odoo-stubs/__init__.pyi +++ b/odoo-stubs/__init__.pyi @@ -1,18 +1,13 @@ from . import addons as addons, api as api, cli as cli, conf as conf, fields as fields, http as http, loglevels as loglevels, models as models, netsvc as netsvc, osv as osv, release as release, service as service, sql_db as sql_db, tools as tools from odoo.tools.translate import _ as _ -from typing import Any, Optional +from typing import Any __path__: Any evented: bool -def gevent_wait_callback(conn: Any, timeout: Optional[Any] = ...) -> None: ... +def gevent_wait_callback(conn, timeout: Any | None = ...) -> None: ... multi_process: bool -_babelCoreParseLocale: Any - -def _babelCoreParseLocale_unitag(identifier: Any, sep: str = ...): ... -def _decompress(data: Any): ... - SUPERUSER_ID: int -def registry(database_name: Optional[Any] = ...): ... +def registry(database_name: Any | None = ...): ... diff --git a/odoo-stubs/api.pyi b/odoo-stubs/api.pyi index c833058..97b6243 100644 --- a/odoo-stubs/api.pyi +++ b/odoo-stubs/api.pyi @@ -31,13 +31,6 @@ def multi(method: Any): ... def one(method: Any): ... def model_cr(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_context(method: Any): ... def cr_uid(method: Any): ... @@ -53,9 +46,6 @@ def v8(method_v8: Any): ... def noguess(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): ... class Environment(Mapping): @@ -100,7 +90,7 @@ class Environment(Mapping): def clear(self) -> None: ... def clear_upon_failure(self) -> None: ... def protected(self, field: Any): ... - def protecting(self, what: Any, records: Optional[Any] = ...) -> None: ... + def protecting(self, fields: Any, records: Any) -> None: ... def field_todo(self, field: Any): ... def check_todo(self, field: Any, record: Any): ... def add_todo(self, field: Any, records: Any) -> None: ... diff --git a/odoo-stubs/cli/deploy.pyi b/odoo-stubs/cli/deploy.pyi index 60145e7..1a12354 100644 --- a/odoo-stubs/cli/deploy.pyi +++ b/odoo-stubs/cli/deploy.pyi @@ -1,10 +1,11 @@ from . import Command -from typing import Any +from typing import Any, Optional class Deploy(Command): session: Any = ... def __init__(self) -> None: ... def deploy_module(self, module_path: Any, url: Any, login: Any, password: Any, db: str = ..., force: bool = ...): ... - def login_upload_module(self, module_file: Any, url: Any, login: Any, password: Any, db: Any, force: bool = ...): ... + def upload_module(self, server: Any, module_file: Any, force: bool = ..., csrf_token: Optional[Any] = ...): ... + def authenticate(self, server: Any, login: Any, password: Any, db: str = ...): ... def zip_module(self, path: Any): ... def run(self, cmdargs: Any) -> None: ... diff --git a/odoo-stubs/exceptions.pyi b/odoo-stubs/exceptions.pyi index 979e56e..505245f 100644 --- a/odoo-stubs/exceptions.pyi +++ b/odoo-stubs/exceptions.pyi @@ -17,16 +17,12 @@ class RedirectWarning(Exception): def name(self): ... class AccessDenied(Exception): - __cause__: Any = ... traceback: Any = ... - def __init__(self, message: str = ...) -> None: ... + def __init__(self) -> 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: ... diff --git a/odoo-stubs/fields.pyi b/odoo-stubs/fields.pyi index 3574334..e94f61a 100644 --- a/odoo-stubs/fields.pyi +++ b/odoo-stubs/fields.pyi @@ -3,8 +3,6 @@ import datetime from dateutil.relativedelta import relativedelta as relativedelta from typing import Any, Optional -from odoo.tools import date_utils - DATE_LENGTH: Any DATETIME_LENGTH: Any EMPTY_DICT: Any @@ -70,9 +68,9 @@ class Field(MetaField('DummyField', (object,), {})): _related_comodel_name: Any = ... _related_string: Any = ... _related_help: Any = ... + _related_readonly: Any = ... _related_groups: Any = ... _related_group_operator: Any = ... - _related_context_dependent: Any = ... @property def base_field(self): ... def _default_company_dependent(self, model: Any): ... @@ -94,7 +92,6 @@ class Field(MetaField('DummyField', (object,), {})): _description_groups: Any = ... _description_change_default: Any = ... _description_deprecated: Any = ... - _description_group_operator: Any = ... @property def _description_searchable(self): ... @property @@ -102,7 +99,7 @@ class Field(MetaField('DummyField', (object,), {})): def _description_string(self, env: Any): ... def _description_help(self, env: 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] = ...): ... def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ... def convert_to_record(self, value: Any, record: Any): ... def convert_to_read(self, value: Any, record: Any, use_name_get: bool = ...): ... @@ -115,8 +112,7 @@ class Field(MetaField('DummyField', (object,), {})): def update_db_notnull(self, model: Any, column: Any) -> None: ... def update_db_index(self, model: Any, column: Any) -> None: ... def read(self, records: Any): ... - def create(self, record_values: Any) -> None: ... - def write(self, records: Any, value: Any): ... + def write(self, records: Any, value: Any, create: bool = ...): ... # def __get__(self, record: Any, owner: Any): ... def __set__(self, record: Any, value: Any) -> None: ... def _compute_value(self, records: Any) -> None: ... @@ -130,7 +126,7 @@ class Field(MetaField('DummyField', (object,), {})): class Boolean(Field): type: str = ... column_type: 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] = ...): ... def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ... def convert_to_export(self, value: Any, record: Any): ... @@ -138,7 +134,8 @@ class Integer(Field): type: str = ... column_type: Any = ... _slots: Any = ... - def convert_to_column(self, value: Any, record: Any, values: Optional[Any] = ..., validate: bool = ...): ... + _description_group_operator: Any = ... + def convert_to_column(self, value: Any, record: Any, values: Optional[Any] = ...): ... 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 _update(self, records: Any, value: Any) -> None: ... @@ -155,7 +152,8 @@ class Float(Field): def digits(self): ... _related__digits: Any = ... _description_digits: Any = ... - def convert_to_column(self, value: Any, record: Any, values: Optional[Any] = ..., validate: bool = ...): ... + _description_group_operator: Any = ... + def convert_to_column(self, value: Any, record: Any, values: Optional[Any] = ...): ... def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ... def convert_to_export(self, value: Any, record: Any): ... @@ -165,12 +163,12 @@ class Monetary(Field): column_cast_from: Any = ... _slots: Any = ... def __init__(self, string: Any = ..., currency_field: Any = ..., **kwargs: Any) -> None: ... + _related_currency_field: Any = ... _description_currency_field: Any = ... + _description_group_operator: 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] = ...): ... 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_write(self, value: Any, record: Any): ... @@ -194,11 +192,9 @@ class Char(_String): def column_type(self): ... 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] = ...): ... def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ... class Text(_String): @@ -224,26 +220,22 @@ class Html(_String): _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] = ...): ... def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ... class Date(Field): type: str = ... column_type: Any = ... column_cast_from: Any = ... - start_of = date_utils.start_of - end_of = date_utils.end_of - add: date_utils.add - subtract: date_utils.subtract @staticmethod def today(*args: Any) -> datetime.date: ... @staticmethod def context_today(record: Any, timestamp: Optional[Any] = ...) -> datetime.date: ... @staticmethod - def to_date(value: Any) -> datetime.date: ... - from_string = to_date + def from_string(value: Any) -> datetime.date: ... @staticmethod def to_string(value: Any): ... + def convert_to_column(self, value: Any, record: Any, values: Optional[Any] = ...): ... def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ... def convert_to_export(self, value: Any, record: Any): ... @@ -251,21 +243,15 @@ class Datetime(Field): type: str = ... column_type: Any = ... column_cast_from: Any = ... - start_of = date_utils.start_of - end_of = date_utils.end_of - add = date_utils.add - subtract: date_utils.subtract @staticmethod def now(*args: Any) -> datetime.datetime: ... @staticmethod - def today(*args: Any) -> datetime.datetime: ... - @staticmethod def context_timestamp(record: Any, timestamp: Any) -> datetime.datetime: ... @staticmethod - def to_datetime(value: Any) -> datetime.datetime: ... - from_string = to_datetime + def from_string(value: Any) -> datetime.datetime: ... @staticmethod def to_string(value: Any) -> str: ... + def convert_to_column(self, value: Any, record: Any, values: Optional[Any] = ...): ... def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ... def convert_to_export(self, value: Any, record: Any): ... def convert_to_display_name(self, value: Any, record: Any): ... @@ -276,12 +262,12 @@ class Binary(Field): _slots: Any = ... @property def column_type(self): ... + def _get_attrs(self, model: Any, name: Any): ... _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] = ...): ... def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ... def read(self, records: Any) -> None: ... - def create(self, record_values: Any) -> None: ... - def write(self, records: Any, value: Any) -> None: ... + def write(self, records: Any, value: Any, create: bool = ...) -> None: ... class Selection(Field): type: str = ... @@ -295,7 +281,6 @@ class Selection(Field): def _setup_attrs(self, model: Any, name: Any) -> None: ... def _description_selection(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_cache(self, value: Any, record: Any, validate: bool = ...): ... def convert_to_export(self, value: Any, record: Any): ... @@ -303,7 +288,6 @@ class Reference(Selection): type: str = ... @property def column_type(self): ... - 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_record(self, value: Any, record: Any): ... def convert_to_read(self, value: Any, record: Any, use_name_get: bool = ...): ... @@ -335,7 +319,7 @@ class Many2one(_Relational): def update_db_column(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] = ...): ... def convert_to_cache(self, value: Any, record: Any, validate: bool = ...): ... def convert_to_record(self, value: Any, record: Any): ... def convert_to_read(self, value: Any, record: Any, use_name_get: bool = ...): ... @@ -374,8 +358,7 @@ class One2many(_RelationalMulti): def convert_to_onchange(self, value: Any, record: Any, names: Any): ... def update_db(self, model: Any, columns: Any) -> None: ... def read(self, records: Any): ... - def create(self, record_values: Any) -> None: ... - def write(self, records: Any, value: Any) -> None: ... + def write(self, records: Any, value: Any, create: bool = ...) -> None: ... class Many2many(_RelationalMulti): type: str = ... @@ -389,8 +372,7 @@ class Many2many(_RelationalMulti): def update_db(self, model: Any, columns: Any): ... def update_db_foreign_keys(self, model: Any) -> None: ... def read(self, records: Any) -> None: ... - def create(self, record_values: Any) -> None: ... - def write(self, records: Any, value: Any) -> None: ... + def write(self, records: Any, value: Any, create: bool = ...) -> None: ... class Id(Field): type: str = ... diff --git a/odoo-stubs/http.pyi b/odoo-stubs/http.pyi index 18f5dc0..923033a 100644 --- a/odoo-stubs/http.pyi +++ b/odoo-stubs/http.pyi @@ -94,6 +94,7 @@ class HttpRequest(WebRequest): def render(self, template: Any, qcontext: Optional[Any] = ..., lazy: bool = ..., **kw: Any): ... def not_found(self, description: Optional[Any] = ...): ... +addons_module: Any addons_manifest: Any controllers_per_module: Any @@ -181,6 +182,7 @@ def send_file(filepath_or_fp: Any, mimetype: Optional[Any] = ..., as_attachment: def content_disposition(filename: Any): ... class CommonController(Controller): + def jsonrpc(self, service: Any, method: Any, args: Any): ... def gen_session_id(self): ... root: Any diff --git a/odoo-stubs/models.pyi b/odoo-stubs/models.pyi index 416640c..21262c3 100644 --- a/odoo-stubs/models.pyi +++ b/odoo-stubs/models.pyi @@ -12,7 +12,7 @@ _unlink: Any regex_order: Any regex_object_name: Any regex_pg_name: Any -regex_field_agg: Any +onchange_v7: Any AUTOINIT_RECALCULATE_STORED_FIELDS: int def check_object_name(name: Any): ... @@ -43,7 +43,6 @@ IdType: Any PREFETCH_MAX: int LOG_ACCESS_COLUMNS: Any MAGIC_COLUMNS: Any -VALID_AGGREGATE_FUNCTIONS: Any class BaseModel(MetaModel('DummyModel', (object,), {'_register': False})): _auto: bool = ... @@ -63,6 +62,7 @@ class BaseModel(MetaModel('DummyModel', (object,), {'_register': False})): _order: str _parent_name: str = ... _parent_store: bool = ... + _parent_order: bool = ... _date_name: str = ... _fold_name: str = ... _needaction: bool = ... @@ -106,7 +106,7 @@ class BaseModel(MetaModel('DummyModel', (object,), {'_register': False})): 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 = ...): ... + def _export_rows(self, fields, batch_invalidate: bool = ...): ... __export_rows: Any = ... def export_data(self, fields_to_export: Any, raw_data: bool = ...): ... def load(self, fields: Any, data: Any): ... @@ -122,7 +122,6 @@ class BaseModel(MetaModel('DummyModel', (object,), {'_register': False})): 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): ... @@ -155,6 +154,7 @@ class BaseModel(MetaModel('DummyModel', (object,), {'_register': False})): 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_selection_field_value(self, field, value) -> None: ... def _check_removed_columns(self, log: bool = ...) -> None: ... def _init_column(self, column_name: Any) -> None: ... def _table_has_rows(self): ... @@ -177,20 +177,14 @@ class BaseModel(MetaModel('DummyModel', (object,), {'_register': False})): def _read_from_database(self, field_names: Any, inherited_field_names: Any = ...): ... def get_metadata(self): ... def _check_concurrency(self) -> None: ... + def _check_record_rules_result_count(self, result_ids, operation) -> None: ... def check_access_rights(self, operation: Any, raise_exception: bool = ...): ... def check_access_rule(self, operation: Any) -> None: ... - def _filter_access_rules(self, operation: Any): ... def unlink(self): ... def write(self, vals: Any): ... def _write(self, vals: Any): ... def create(self, vals_list: Any) -> BaseModel: ... 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: ... @@ -261,6 +255,7 @@ class BaseModel(MetaModel('DummyModel', (object,), {'_register': False})): def __or__(self, other: Any) -> BaseModel: ... def union(self, *args: Any) -> BaseModel: ... def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other): ... def __lt__(self, other: Any) -> bool: ... def __le__(self, other: Any) -> bool: ... def __gt__(self, other: Any) -> bool: ... @@ -320,4 +315,3 @@ def _get_translated_field_name(model: Any, field_name: Any): ... PGERROR_TO_OE: Any def _normalize_ids(arg: Any, atoms: Any = ...): ... -def lazy_name_get(self): ... diff --git a/odoo-stubs/modules/graph.pyi b/odoo-stubs/modules/graph.pyi index 20a9621..f4526da 100644 --- a/odoo-stubs/modules/graph.pyi +++ b/odoo-stubs/modules/graph.pyi @@ -25,6 +25,3 @@ class Node: def __iter__(self) -> Any: ... def __str__(self): ... def _pprint(self, depth: int = ...): ... - def should_have_demo(self): ... - @property - def parents(self): ... diff --git a/odoo-stubs/modules/loading.pyi b/odoo-stubs/modules/loading.pyi index 2b63c45..3f3fdd0 100644 --- a/odoo-stubs/modules/loading.pyi +++ b/odoo-stubs/modules/loading.pyi @@ -3,9 +3,6 @@ from typing import Any, Optional _logger: Any _test_logger: Any -def load_data(cr: Any, idref: Any, mode: Any, kind: Any, package: Any, report: Any): ... -def load_demo(cr: Any, package: Any, idref: Any, mode: Any, report: Optional[Any] = ...): ... -def force_demo(cr: Any) -> None: ... def load_module_graph(cr: Any, graph: Any, status: Optional[Any] = ..., perform_checks: bool = ..., skip_modules: Optional[Any] = ..., report: Optional[Any] = ..., models_to_check: Optional[Any] = ...): ... def _check_module_names(cr: Any, module_names: Any) -> None: ... def load_marked_modules(cr: Any, graph: Any, states: Any, force: Any, progressdict: Any, report: Any, loaded_modules: Any, perform_checks: Any, models_to_check: Optional[Any] = ...): ... diff --git a/odoo-stubs/modules/module.pyi b/odoo-stubs/modules/module.pyi index 0e4d589..77988b8 100644 --- a/odoo-stubs/modules/module.pyi +++ b/odoo-stubs/modules/module.pyi @@ -33,7 +33,6 @@ def get_modules(): ... def get_modules_with_version(): ... def adapt_version(version: Any): ... def get_test_modules(module: Any): ... -def _get_tests_modules(path: Any, module: Any): ... class TestStream: logger: Any = ... @@ -44,5 +43,10 @@ class TestStream: current_test: Any -def run_unit_tests(module_name: Any, dbname: Any, position: str = ...): ... +def runs_at(test: Any, hook: Any, default: Any): ... + +runs_at_install: Any +runs_post_install: Any + +def run_unit_tests(module_name: Any, dbname: Any, position: Any = ...): ... def unwrap_suite(test: Any) -> None: ... diff --git a/odoo-stubs/modules/registry.pyi b/odoo-stubs/modules/registry.pyi index 87ae725..c57ff46 100644 --- a/odoo-stubs/modules/registry.pyi +++ b/odoo-stubs/modules/registry.pyi @@ -15,16 +15,16 @@ class Registry(Mapping): models: Any = ... _sql_error: Any = ... _init: bool = ... + _init_parent: Any = ... _assertion_report: Any = ... _fields_by_model: Any = ... _post_init_queue: Any = ... + _notnull_errors: Any = ... _init_modules: Any = ... updated_modules: Any = ... - loaded_xmlids: Any = ... db_name: Any = ... _db: Any = ... test_cr: Any = ... - test_lock: Any = ... loaded: bool = ... ready: bool = ... registry_sequence: Any = ... @@ -43,6 +43,7 @@ class Registry(Mapping): def __call__(self, model_name: Any): ... def __setitem__(self, model_name: Any, model: Any) -> None: ... def field_sequence(self): ... + def do_parent_store(self, cr: Any) -> None: ... def descendants(self, model_names: Any, *kinds: Any): ... def load(self, cr: Any, module: Any): ... _m2m: Any = ... @@ -59,7 +60,7 @@ class Registry(Mapping): def reset_changes(self) -> None: ... def manage_changes(self) -> None: ... def in_test_mode(self): ... - def enter_test_mode(self, cr: Any) -> None: ... + def enter_test_mode(self) -> None: ... def leave_test_mode(self) -> None: ... def cursor(self): ... diff --git a/odoo-stubs/netsvc.pyi b/odoo-stubs/netsvc.pyi index c73e3c6..8684f89 100644 --- a/odoo-stubs/netsvc.pyi +++ b/odoo-stubs/netsvc.pyi @@ -24,13 +24,6 @@ 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): ... diff --git a/odoo-stubs/service/db.pyi b/odoo-stubs/service/db.pyi index eff2a14..c75f85d 100644 --- a/odoo-stubs/service/db.pyi +++ b/odoo-stubs/service/db.pyi @@ -7,9 +7,9 @@ class DatabaseExists(Warning): ... def check_db_management_enabled(method: Any): ... def check_super(passwd: Any): ... -def _initialize_db(id: Any, db_name: Any, demo: Any, lang: Any, user_password: Any, login: str = ..., country_code: Optional[Any] = ..., phone: Optional[Any] = ...) -> None: ... +def _initialize_db(id: Any, db_name: Any, demo: Any, lang: Any, user_password: Any, login: str = ..., country_code: Optional[Any] = ...) -> None: ... def _create_empty_database(name: Any) -> None: ... -def exp_create_database(db_name: Any, demo: Any, lang: Any, user_password: str = ..., login: str = ..., country_code: Optional[Any] = ..., phone: Optional[Any] = ...): ... +def exp_create_database(db_name: Any, demo: Any, lang: Any, user_password: str = ..., login: str = ..., country_code: Optional[Any] = ...): ... def exp_duplicate_database(db_original_name: Any, db_name: Any): ... def _drop_conn(cr: Any, db_name: Any) -> None: ... def exp_drop(db_name: Any): ... diff --git a/odoo-stubs/service/server.pyi b/odoo-stubs/service/server.pyi index 7a04eca..398b90c 100644 --- a/odoo-stubs/service/server.pyi +++ b/odoo-stubs/service/server.pyi @@ -6,7 +6,6 @@ _logger: Any SLEEP_INTERVAL: int def memory_info(process: Any): ... -def set_limit_memory_hard() -> None: ... def empty_pipe(fd: Any) -> None: ... class LoggingBaseWSGIServerMixIn: @@ -17,19 +16,16 @@ class BaseWSGIServerNoBind(LoggingBaseWSGIServerMixIn, werkzeug.serving.BaseWSGI def server_activate(self) -> None: ... class RequestHandler(werkzeug.serving.WSGIRequestHandler): - timeout: int = ... def setup(self) -> None: ... class ThreadedWSGIServerReloadable(LoggingBaseWSGIServerMixIn, werkzeug.serving.ThreadedWSGIServer): max_http_threads: Any = ... http_threads_sem: Any = ... - daemon_threads: bool = ... def __init__(self, host: Any, port: Any, app: Any) -> None: ... reload_socket: bool = ... socket: Any = ... def server_bind(self) -> None: ... def server_activate(self) -> None: ... - def process_request(self, request: Any, client_address: Any) -> None: ... def _handle_request_noblock(self) -> None: ... def shutdown_request(self, request: Any) -> None: ... @@ -64,11 +60,8 @@ class ThreadedServer(CommonServer): main_thread_id: Any = ... quit_signals_received: int = ... httpd: Any = ... - limits_reached_threads: Any = ... - limit_reached_time: Any = ... def __init__(self, app: Any) -> None: ... def signal_handler(self, sig: Any, frame: Any) -> None: ... - def process_limit(self) -> None: ... def cron_thread(self, number: Any) -> None: ... def cron_spawn(self) -> None: ... def http_thread(self): ... @@ -148,6 +141,8 @@ class Worker: def _runloop(self) -> None: ... class WorkerHTTP(Worker): + sock_timeout: Any = ... + def __init__(self, multi: Any) -> None: ... def process_request(self, client: Any, addr: Any) -> None: ... def process_work(self) -> None: ... server: Any = ... @@ -166,6 +161,7 @@ server: Any def load_server_wide_modules() -> None: ... def _reexec(updated_modules: Optional[Any] = ...) -> None: ... +def load_test_file_yml(registry: Any, test_file: Any) -> None: ... def load_test_file_py(registry: Any, test_file: Any) -> None: ... def preload_registries(dbnames: Any): ... def start(preload: Optional[Any] = ..., stop: bool = ...): ... diff --git a/odoo-stubs/service/wsgi_server.pyi b/odoo-stubs/service/wsgi_server.pyi index c1944bb..400f9b0 100644 --- a/odoo-stubs/service/wsgi_server.pyi +++ b/odoo-stubs/service/wsgi_server.pyi @@ -10,6 +10,7 @@ RPC_FAULT_CODE_ACCESS_ERROR: int def xmlrpc_handle_exception_int(e: Any): ... def xmlrpc_handle_exception_string(e: Any): ... def _patch_xmlrpc_marshaller() -> None: ... +def wsgi_xmlrpc(environ: Any, start_response: Any): ... def application_unproxied(environ: Any, start_response: Any): ... ProxyFix: Any diff --git a/odoo-stubs/sql_db.pyi b/odoo-stubs/sql_db.pyi index ebaa51f..0ca9530 100644 --- a/odoo-stubs/sql_db.pyi +++ b/odoo-stubs/sql_db.pyi @@ -2,6 +2,7 @@ import psycopg2.extensions from typing import Any, Optional _logger: Any +types_mapping: Any def unbuffer(symb: Any, cr: Any): ... def undecimalize(symb: Any, cr: Any): ... @@ -52,20 +53,16 @@ class Cursor: @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: ... +class TestCursor(Cursor): + _lock: Any + def __init__(self, *args, **kwargs) -> None: ... + def acquire(self) -> None: ... + def release(self) -> None: ... + def force_close(self) -> 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 = ... @@ -98,6 +95,7 @@ class Connection: __pool: Any = ... def __init__(self, pool: Any, dbname: Any, dsn: Any) -> None: ... def cursor(self, serialized: bool = ...): ... + def test_cursor(self, serialized: bool = ...): ... serialized_cursor: Any = ... def __bool__(self) -> None: ... __nonzero__: Any = ... diff --git a/odoo-stubs/tests/common.pyi b/odoo-stubs/tests/common.pyi index 485b8ce..9bec2e8 100644 --- a/odoo-stubs/tests/common.pyi +++ b/odoo-stubs/tests/common.pyi @@ -1,4 +1,3 @@ -import collections import unittest from typing import Any, Optional @@ -18,18 +17,13 @@ DB: Any def at_install(flag: Any): ... def post_install(flag: Any): ... -def new_test_user(env: Any, login: str = ..., groups: str = ..., context: Optional[Any] = ..., **kwargs: Any): ... class TreeCase(unittest.TestCase): def __init__(self, methodName: str = ...) -> None: ... def assertTreesEqual(self, n1: Any, n2: Any, msg: Optional[Any] = ...) -> None: ... -class MetaCase(type): - def __init__(cls, name: Any, bases: Any, attrs: Any) -> None: ... - class BaseCase(TreeCase): longMessage: bool = ... - warm: bool = ... registry: Registry = ... cr: Cursor = ... env: Environment = ... @@ -42,8 +36,6 @@ class BaseCase(TreeCase): def browse_ref(self, xid: Any): ... def _assertRaises(self, exception: Any) -> None: ... def assertRaises(self, exception: Any, func: Optional[Any] = ..., *args: Any, **kwargs: Any): ... - def assertQueryCount(self, default: int = ..., **counters: Any): ... - def assertRecordValues(self, records: Any, expected_values: Any): ... def shortDescription(self): ... def assertItemsEqual(self, a: Any, b: Any, msg: Optional[Any] = ...) -> None: ... @@ -65,143 +57,22 @@ class SavepointCase(SingleTransactionCase): def setUp(self) -> None: ... def tearDown(self) -> None: ... -class ChromeBrowser: - _logger: Any = ... - devtools_port: Any = ... - ws_url: str = ... - ws: Any = ... - request_id: int = ... - user_data_dir: Any = ... - chrome_pid: Any = ... - screencast_frames: Any = ... - sigxcpu_handler: Any = ... - def __init__(self, logger: Any) -> None: ... - def signal_handler(self, sig: Any, frame: Any) -> None: ... - def stop(self) -> None: ... - @property - def executable(self): ... - def _spawn_chrome(self, cmd: Any): ... - def _chrome_start(self) -> None: ... - def _find_websocket(self) -> None: ... - def _json_command(self, command: Any, timeout: int = ...): ... - def _open_websocket(self) -> None: ... - def _websocket_send(self, method: Any, params: Optional[Any] = ...): ... - def _websocket_wait_id(self, awaited_id: Any, timeout: int = ...): ... - def _websocket_wait_event(self, method: Any, params: Optional[Any] = ..., timeout: int = ...): ... - def _get_shotname(self, prefix: Any, ext: Any): ... - def take_screenshot(self, prefix: str = ...) -> None: ... - def _save_screencast(self, prefix: str = ...) -> None: ... - def start_screencast(self) -> None: ... - def set_cookie(self, name: Any, value: Any, path: Any, domain: Any): ... - def delete_cookie(self, name: Any, **kwargs: Any): ... - def _wait_ready(self, ready_code: Any, timeout: int = ...): ... - def _wait_code_ok(self, code: Any, timeout: Any): ... - def navigate_to(self, url: Any, wait_stop: bool = ...) -> None: ... - def clear(self) -> None: ... - class HttpCase(TransactionCase): registry_test_mode: bool = ... - browser: Any = ... xmlrpc_url: Any = ... xmlrpc_common: Any = ... xmlrpc_db: Any = ... xmlrpc_object: Any = ... - _logger: Any = ... def __init__(self, methodName: str = ...) -> None: ... - @classmethod - def start_browser(cls, logger: Any) -> None: ... - @classmethod - def tearDownClass(cls) -> None: ... session: Any = ... session_id: Any = ... opener: Any = ... def setUp(self) -> None: ... def url_open(self, url: Any, data: Optional[Any] = ..., timeout: int = ...): ... - def _wait_remaining_requests(self) -> None: ... def authenticate(self, user: Any, password: Any) -> None: ... - def browser_js(self, url_path: Any, code: Any, ready: str = ..., login: Optional[Any] = ..., timeout: int = ..., **kw: Any) -> None: ... - phantom_js: Any = ... + def phantom_poll(self, phantom: Any, timeout: Any): ... + def phantom_run(self, cmd: Any, timeout: Any) -> None: ... + def _wait_remaining_requests(self) -> None: ... + def phantom_js(self, url_path: Any, code: Any, ready: str = ..., login: Optional[Any] = ..., timeout: int = ..., **kw: Any) -> None: ... -def users(*logins: Any): ... -def warmup(func: Any, *args: Any, **kwargs: Any) -> None: ... def can_import(module: Any): ... - -ref_re: Any - -class Form: - def __init__(self, recordp: Any, view: Optional[Any] = ...) -> None: ... - def _o2m_set_edition_view(self, descr: Any, node: Any, level: Any) -> None: ... - def __str__(self): ... - def _process_fvg(self, model: Any, fvg: Any, level: int = ...) -> None: ... - def _init_from_defaults(self, model: Any): ... - def _init_from_values(self, values: Any) -> None: ... - def __getattr__(self, field: Any): ... - def _get_modifier(self, field: Any, modifier: Any, default: bool = ..., modmap: Optional[Any] = ..., vals: Optional[Any] = ...): ... - _OPS: Any = ... - def _get_context(self, field: Any): ... - def __setattr__(self, field: Any, value: Any) -> None: ... - def __enter__(self): ... - def __exit__(self, etype: Any, _evalue: Any, _etb: Any) -> None: ... - def save(self): ... - def _values_to_save(self, all_fields: bool = ...): ... - def _perform_onchange(self, fields: Any) -> None: ... - def _onchange_values(self): ... - def _cleanup_onchange(self, descr: Any, value: Any, current: Any): ... - -class O2MForm(Form): - def __init__(self, proxy: Any, index: Optional[Any] = ...) -> None: ... - def _get_modifier(self, field: Any, modifier: Any, default: bool = ..., modmap: Optional[Any] = ..., vals: Optional[Any] = ...): ... - def _onchange_values(self): ... - def save(self) -> None: ... - def _values_to_save(self, all_fields: bool = ...): ... - -class UpdateDict(dict): - _changed: Any = ... - def __init__(self, *args: Any, **kwargs: Any) -> None: ... - def changed_items(self): ... - def update(self, *args: Any, **kw: Any) -> None: ... - -class X2MProxy: - _parent: Any = ... - _field: Any = ... - def _assert_editable(self) -> None: ... - -class O2MProxy(X2MProxy): - _parent: Any = ... - _field: Any = ... - _records: Any = ... - def __init__(self, parent: Any, field: Any) -> None: ... - def __len__(self): ... - @property - def _model(self): ... - @property - def _descr(self): ... - def _command_index(self, for_record: Any): ... - def new(self): ... - def edit(self, index: Any): ... - def remove(self, index: Any) -> None: ... - -class M2MProxy(X2MProxy, collections.Sequence): - _parent: Any = ... - _field: Any = ... - def __init__(self, parent: Any, field: Any) -> None: ... - def __getitem__(self, it: Any): ... - def __len__(self): ... - def __iter__(self) -> Any: ... - def __contains__(self, record: Any): ... - def add(self, record: Any) -> None: ... - def _get_ids(self): ... - def remove(self, id: Optional[Any] = ..., index: Optional[Any] = ...) -> None: ... - def clear(self) -> None: ... - -def record_to_values(fields: Any, record: Any): ... -def _cleanup_from_default(type_: Any, value: Any): ... -def _get_node(view: Any, f: Any, *arg: Any): ... -def tagged(*tags: Any): ... - -class TagsSelector: - filter_spec_re: Any = ... - exclude: Any = ... - include: Any = ... - def __init__(self, spec: Any) -> None: ... - def check(self, test: Any): ... diff --git a/odoo-stubs/tools/__init__.pyi b/odoo-stubs/tools/__init__.pyi index 0ad15d8..233a05d 100644 --- a/odoo-stubs/tools/__init__.pyi +++ b/odoo-stubs/tools/__init__.pyi @@ -2,13 +2,13 @@ from .misc import * from .convert import * from .translate import * from .image import * +from .yaml_import import * from .sql import * from .float_utils import * from .mail import * from .func import * from .debugger import * from .xml_utils import * -from .date_utils import * from . import appdirs as appdirs, pdf as pdf, pycompat as pycompat, win32 as win32 from .config import config as config from .graph import graph as graph diff --git a/odoo-stubs/tools/appdirs.pyi b/odoo-stubs/tools/appdirs.pyi index 840bd31..db604e2 100644 --- a/odoo-stubs/tools/appdirs.pyi +++ b/odoo-stubs/tools/appdirs.pyi @@ -33,6 +33,3 @@ class AppDirs: def _get_win_folder_from_registry(csidl_name: Any): ... def _get_win_folder_with_pywin32(csidl_name: Any): ... def _get_win_folder_with_ctypes(csidl_name: Any): ... -_get_win_folder = _get_win_folder_with_pywin32 -_get_win_folder = _get_win_folder_with_ctypes -_get_win_folder = _get_win_folder_from_registry diff --git a/odoo-stubs/tools/config.pyi b/odoo-stubs/tools/config.pyi index 571b6f2..fcc7d3b 100644 --- a/odoo-stubs/tools/config.pyi +++ b/odoo-stubs/tools/config.pyi @@ -26,7 +26,6 @@ class configmanager: def _parse_config(self, args: Optional[Any] = ...) -> None: ... def _is_addons_path(self, path: Any): ... def _check_addons_path(self, option: Any, opt: Any, value: Any, parser: Any) -> None: ... - def _test_enable_callback(self, option: Any, opt: Any, value: Any, parser: Any) -> None: ... def load(self) -> None: ... def save(self) -> None: ... def get(self, key: Any, default: Optional[Any] = ...): ... diff --git a/odoo-stubs/tools/convert.pyi b/odoo-stubs/tools/convert.pyi index 9bf2bca..50ad4e8 100644 --- a/odoo-stubs/tools/convert.pyi +++ b/odoo-stubs/tools/convert.pyi @@ -27,13 +27,12 @@ class xml_import: def isnoupdate(self, data_node: Optional[Any] = ...): ... def get_context(self, data_node: Any, node: Any, eval_dict: Any): ... def get_uid(self, data_node: Any, node: Any): ... - def make_xml_id(self, xml_id: Any): ... def _test_xml_id(self, xml_id: Any) -> None: ... def _tag_delete(self, rec: Any, data_node: Optional[Any] = ..., mode: Optional[Any] = ...) -> None: ... def _tag_report(self, rec: Any, data_node: Optional[Any] = ..., mode: Optional[Any] = ...): ... def _tag_function(self, rec: Any, data_node: Optional[Any] = ..., mode: Optional[Any] = ...) -> None: ... def _tag_act_window(self, rec: Any, data_node: Optional[Any] = ..., mode: Optional[Any] = ...) -> None: ... - def _tag_menuitem(self, rec: Any, data_node: Optional[Any] = ..., mode: Optional[Any] = ...) -> None: ... + def _tag_menuitem(self, rec: Any, data_node: Optional[Any] = ..., mode: Optional[Any] = ...): ... def _assert_equals(self, f1: Any, f2: Any, prec: int = ...): ... def _tag_assert(self, rec: Any, data_node: Optional[Any] = ..., mode: Optional[Any] = ...) -> None: ... def _tag_record(self, rec: Any, data_node: Optional[Any] = ..., mode: Optional[Any] = ...): ... diff --git a/odoo-stubs/tools/float_utils.pyi b/odoo-stubs/tools/float_utils.pyi index d98f6cc..add5476 100644 --- a/odoo-stubs/tools/float_utils.pyi +++ b/odoo-stubs/tools/float_utils.pyi @@ -1,8 +1,6 @@ from typing import Any, Optional def round(f: Any): ... -round = round - def _float_check_precision(precision_digits: Optional[Any] = ..., precision_rounding: Optional[Any] = ...): ... def float_round(value: Any, precision_digits: Optional[Any] = ..., precision_rounding: Optional[Any] = ..., rounding_method: str = ...): ... def float_is_zero(value: Any, precision_digits: Optional[Any] = ..., precision_rounding: Optional[Any] = ...): ... diff --git a/odoo-stubs/tools/func.pyi b/odoo-stubs/tools/func.pyi index 254edce..d4f3f09 100644 --- a/odoo-stubs/tools/func.pyi +++ b/odoo-stubs/tools/func.pyi @@ -1,8 +1,5 @@ -from json import JSONEncoder as JSONEncoder from typing import Any -__all__: Any - class lazy_property: fget: Any = ... def __init__(self, fget: Any) -> None: ... @@ -17,100 +14,8 @@ class lazy_classproperty(lazy_property): def conditional(condition: Any, decorator: Any): ... def synchronized(lock_attr: str = ...): ... -def frame_codeinfo(fframe: Any, back: int = ...): ... -def compose(a: Any, b: Any): ... class _ClassProperty(property): def __get__(self, cls: Any, owner: Any): ... def classproperty(func: Any): ... - -class lazy: - __slots__: Any = ... - def __init__(self, func: Any, *args: Any, **kwargs: Any) -> None: ... - @property - def _value(self): ... - def __getattr__(self, name: Any): ... - def __setattr__(self, name: Any, value: Any): ... - def __delattr__(self, name: Any): ... - def __repr__(self): ... - def __str__(self): ... - def __bytes__(self): ... - def __format__(self, format_spec: Any): ... - def __lt__(self, other: Any) -> Any: ... - def __le__(self, other: Any) -> Any: ... - def __eq__(self, other: Any) -> Any: ... - def __ne__(self, other: Any) -> Any: ... - def __gt__(self, other: Any) -> Any: ... - def __ge__(self, other: Any) -> Any: ... - def __hash__(self) -> Any: ... - def __bool__(self): ... - def __call__(self, *args: Any, **kwargs: Any): ... - def __len__(self): ... - def __getitem__(self, key: Any): ... - def __missing__(self, key: Any): ... - def __setitem__(self, key: Any, value: Any) -> None: ... - def __delitem__(self, key: Any) -> None: ... - def __iter__(self) -> Any: ... - def __reversed__(self): ... - def __contains__(self, key: Any): ... - def __add__(self, other: Any): ... - def __sub__(self, other: Any): ... - def __mul__(self, other: Any): ... - def __matmul__(self, other: Any): ... - def __truediv__(self, other: Any): ... - def __floordiv__(self, other: Any): ... - def __mod__(self, other: Any): ... - def __divmod__(self, other: Any): ... - def __pow__(self, other: Any): ... - def __lshift__(self, other: Any): ... - def __rshift__(self, other: Any): ... - def __and__(self, other: Any): ... - def __xor__(self, other: Any): ... - def __or__(self, other: Any): ... - def __radd__(self, other: Any): ... - def __rsub__(self, other: Any): ... - def __rmul__(self, other: Any): ... - def __rmatmul__(self, other: Any): ... - def __rtruediv__(self, other: Any): ... - def __rfloordiv__(self, other: Any): ... - def __rmod__(self, other: Any): ... - def __rdivmod__(self, other: Any): ... - def __rpow__(self, other: Any): ... - def __rlshift__(self, other: Any): ... - def __rrshift__(self, other: Any): ... - def __rand__(self, other: Any): ... - def __rxor__(self, other: Any): ... - def __ror__(self, other: Any): ... - def __iadd__(self, other: Any): ... - def __isub__(self, other: Any): ... - def __imul__(self, other: Any): ... - def __imatmul__(self, other: Any): ... - def __itruediv__(self, other: Any): ... - def __ifloordiv__(self, other: Any): ... - def __imod__(self, other: Any): ... - def __ipow__(self, other: Any): ... - def __ilshift__(self, other: Any): ... - def __irshift__(self, other: Any): ... - def __iand__(self, other: Any): ... - def __ixor__(self, other: Any): ... - def __ior__(self, other: Any): ... - def __neg__(self): ... - def __pos__(self): ... - def __abs__(self): ... - def __invert__(self): ... - def __complex__(self): ... - def __int__(self): ... - def __float__(self): ... - def __index__(self): ... - def __round__(self): ... - def __trunc__(self): ... - def __floor__(self): ... - def __ceil__(self): ... - def __enter__(self): ... - def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any): ... - def __await__(self): ... - def __aiter__(self): ... - def __anext__(self): ... - def __aenter__(self): ... - def __aexit__(self, exc_type: Any, exc_value: Any, traceback: Any): ... diff --git a/odoo-stubs/tools/image.pyi b/odoo-stubs/tools/image.pyi index b88dea3..0b516a9 100644 --- a/odoo-stubs/tools/image.pyi +++ b/odoo-stubs/tools/image.pyi @@ -1,15 +1,12 @@ from typing import Any, Optional -FILETYPE_BASE64_MAGICWORD: Any - -def image_resize_image(base64_source: Any, size: Any = ..., encoding: str = ..., filetype: Optional[Any] = ..., avoid_if_small: bool = ..., upper_limit: bool = ...): ... -def image_resize_and_sharpen(image: Any, size: Any, preserve_aspect_ratio: bool = ..., factor: float = ..., upper_limit: bool = ...): ... +def image_resize_image(base64_source: Any, size: Any = ..., encoding: str = ..., filetype: Optional[Any] = ..., avoid_if_small: bool = ...): ... +def image_resize_and_sharpen(image: Any, size: Any, preserve_aspect_ratio: bool = ..., factor: float = ...): ... def image_save_for_web(image: Any, fp: Optional[Any] = ..., format: Optional[Any] = ...): ... def image_resize_image_big(base64_source: Any, size: Any = ..., encoding: str = ..., filetype: Optional[Any] = ..., avoid_if_small: bool = ...): ... def image_resize_image_medium(base64_source: Any, size: Any = ..., encoding: str = ..., filetype: Optional[Any] = ..., avoid_if_small: bool = ...): ... def image_resize_image_small(base64_source: Any, size: Any = ..., encoding: str = ..., filetype: Optional[Any] = ..., avoid_if_small: bool = ...): ... def crop_image(data: Any, type: str = ..., ratio: bool = ..., size: Optional[Any] = ..., image_format: Optional[Any] = ...): ... def image_colorize(original: Any, randomize: bool = ..., color: Any = ...): ... -def image_get_resized_images(base64_source: Any, return_big: bool = ..., return_medium: bool = ..., return_small: bool = ..., big_name: str = ..., medium_name: str = ..., small_name: str = ..., avoid_resize_big: bool = ..., avoid_resize_medium: bool = ..., avoid_resize_small: bool = ..., sizes: Any = ...): ... -def image_resize_images(vals: Any, big_name: str = ..., medium_name: str = ..., small_name: str = ..., sizes: Any = ...) -> None: ... -def image_data_uri(base64_source: Any): ... +def image_get_resized_images(base64_source: Any, return_big: bool = ..., return_medium: bool = ..., return_small: bool = ..., big_name: str = ..., medium_name: str = ..., small_name: str = ..., avoid_resize_big: bool = ..., avoid_resize_medium: bool = ..., avoid_resize_small: bool = ...): ... +def image_resize_images(vals: Any, big_name: str = ..., medium_name: str = ..., small_name: str = ...) -> None: ... diff --git a/odoo-stubs/tools/lru.pyi b/odoo-stubs/tools/lru.pyi index cadd222..2c474bb 100644 --- a/odoo-stubs/tools/lru.pyi +++ b/odoo-stubs/tools/lru.pyi @@ -1,7 +1,5 @@ from typing import Any, Optional -__all__: Any - class LRUNode: __slots__: Any = ... prev: Any = ... diff --git a/odoo-stubs/tools/mail.pyi b/odoo-stubs/tools/mail.pyi index 989ab15..ca28a89 100644 --- a/odoo-stubs/tools/mail.pyi +++ b/odoo-stubs/tools/mail.pyi @@ -16,7 +16,6 @@ class _Cleaner(clean.Cleaner): def tag_quote(self, el: Any): ... def strip_class(self, el: Any) -> None: ... def parse_style(self, el: Any) -> None: ... - def allow_element(self, el: Any): ... def html_sanitize(src: Any, silent: bool = ..., sanitize_tags: bool = ..., sanitize_attributes: bool = ..., sanitize_style: bool = ..., strip_style: bool = ..., strip_classes: bool = ...): ... def html_keep_url(text: Any): ... @@ -26,6 +25,7 @@ def append_content_to_html(html: Any, content: Any, plaintext: bool = ..., prese email_re: Any single_email_re: Any +command_re: Any reference_re: Any discussion_re: Any mail_header_msgid_re: Any @@ -35,7 +35,7 @@ def generate_tracking_message_id(res_id: Any): ... def email_send(email_from: Any, email_to: Any, subject: Any, body: Any, email_cc: Optional[Any] = ..., email_bcc: Optional[Any] = ..., reply_to: bool = ..., attachments: Optional[Any] = ..., message_id: Optional[Any] = ..., references: Optional[Any] = ..., openobject_id: bool = ..., debug: bool = ..., subtype: str = ..., headers: Optional[Any] = ..., smtp_server: Optional[Any] = ..., smtp_port: Optional[Any] = ..., ssl: bool = ..., smtp_user: Optional[Any] = ..., smtp_password: Optional[Any] = ..., cr: Optional[Any] = ..., uid: Optional[Any] = ...): ... def email_split(text: Any): ... def email_split_and_format(text: Any): ... -def email_escape_char(email_address: Any): ... def email_references(references: Any): ... def decode_smtp_header(smtp_header: Any): ... def decode_message_header(message: Any, header: Any, separator: str = ...): ... +def formataddr(pair: Any, charset: str = ...): ... diff --git a/odoo-stubs/tools/mimetypes.pyi b/odoo-stubs/tools/mimetypes.pyi index 040b181..a1b01d8 100644 --- a/odoo-stubs/tools/mimetypes.pyi +++ b/odoo-stubs/tools/mimetypes.pyi @@ -1,26 +1,8 @@ from collections import namedtuple from typing import Any -__all__: Any -_logger: Any -_ooxml_dirs: Any - -def _check_ooxml(data: Any): ... - -_mime_validator: Any - -def _check_open_container_format(data: Any): ... - -_xls_pattern: Any -_ppt_pattern: Any - -def _check_olecf(data: Any): ... -def _check_svg(data: Any): ... - _Entry = namedtuple('_Entry', ['mimetype', 'signatures', 'discriminants']) -_mime_mappings: Any def guess_mimetype(bin_data: Any, default: str = ...): ... guess_mimetype: Any -ms: Any diff --git a/odoo-stubs/tools/misc.pyi b/odoo-stubs/tools/misc.pyi index ff1a203..8bce0ca 100644 --- a/odoo-stubs/tools/misc.pyi +++ b/odoo-stubs/tools/misc.pyi @@ -59,7 +59,6 @@ def get_and_group_by_field(cr: Any, uid: Any, obj: Any, ids: Any, field: Any, co def get_and_group_by_company(cr: Any, uid: Any, obj: Any, ids: Any, context: Optional[Any] = ...): ... def resolve_attr(obj: Any, attr: Any): ... def attrgetter(*items: Any): ... -def remove_accents(input_str: Any): ... class unquote(str): def __repr__(self): ... @@ -97,9 +96,8 @@ class ConstantMapping(Mapping): def __iter__(self) -> Any: ... def __getitem__(self, item: Any): ... -def dumpstacks(sig: Optional[Any] = ..., frame: Optional[Any] = ..., thread_idents: Optional[Any] = ...) -> None: ... +def dumpstacks(sig: Optional[Any] = ..., frame: Optional[Any] = ...) -> None: ... def freehash(arg: Any): ... -def clean_context(context: Any): ... class frozendict(dict): def __delitem__(self, key: Any) -> None: ... @@ -120,19 +118,6 @@ class Collector(Mapping): def __iter__(self) -> Any: ... def __len__(self): ... -class StackMap(MutableMapping): - __slots__: Any = ... - _maps: Any = ... - def __init__(self, m: Optional[Any] = ...) -> None: ... - def __getitem__(self, key: Any): ... - def __setitem__(self, key: Any, val: Any) -> None: ... - def __delitem__(self, key: Any) -> None: ... - def __iter__(self) -> Any: ... - def __len__(self): ... - def __str__(self): ... - def pushmap(self, m: Optional[Any] = ...) -> None: ... - def popmap(self): ... - class OrderedSet(MutableSet): __slots__: Any = ... _map: Any = ... @@ -146,7 +131,6 @@ class OrderedSet(MutableSet): class LastOrderedSet(OrderedSet): def add(self, elem: Any) -> None: ... -def groupby(iterable: Any, key: Optional[Any] = ...): ... def unique(it: Any) -> None: ... class Reverse: @@ -176,9 +160,12 @@ def _pickle_load(stream: Any, encoding: str = ..., errors: bool = ...): ... pickle: Any +def wrap_values(d: Any): ... + +_missing: Any +_cache: Any + def wrap_module(module: Any, attr_list: Any): ... -class DotDict(dict): - def __getattr__(self, attrib: Any): ... - -def traverse_containers(val: Any, type_: Any) -> None: ... +mods: Any +attribs: Any diff --git a/odoo-stubs/tools/osutil.pyi b/odoo-stubs/tools/osutil.pyi index f01cd0a..2623f5c 100644 --- a/odoo-stubs/tools/osutil.pyi +++ b/odoo-stubs/tools/osutil.pyi @@ -1,12 +1,13 @@ import ctypes +import os +from odoo.release import nt_service_name as nt_service_name from typing import Any, Optional def listdir(dir: Any, recursive: bool = ...): ... def walksymlinks(top: Any, topdown: bool = ..., onerror: Optional[Any] = ...) -> None: ... def tempdir() -> None: ... def zip_dir(path: Any, stream: Any, include_dir: bool = ..., fnct_sort: Optional[Any] = ...) -> None: ... - -getppid: Any +getppid = os.getppid is_running_as_nt_service: Any _TH32CS_SNAPPROCESS: int diff --git a/odoo-stubs/tools/pycompat.pyi b/odoo-stubs/tools/pycompat.pyi index 4a5830f..8fccf0b 100644 --- a/odoo-stubs/tools/pycompat.pyi +++ b/odoo-stubs/tools/pycompat.pyi @@ -4,27 +4,24 @@ from typing import Any, Optional PY2: Any _Writer = namedtuple('_Writer', 'writerow writerows') -unichr = unichr -text_type = unicode +unichr = chr +text_type = str string_types: Any def to_native(source: Any, encoding: str = ..., falsy_empty: bool = ...): ... integer_types: Any - -def implements_to_string(cls): ... -def implements_iterator(cls): ... -def csv_reader(stream: Any, **params: Any) -> None: ... -def csv_writer(stream: Any, **params: Any): ... -unichr = chr -text_type = str imap = map izip = zip ifilter = filter +def implements_to_string(cls): ... +def implements_iterator(cls): ... def reraise(tp: Any, value: Any, tb: Optional[Any] = ...) -> None: ... _reader: Any _writer: Any +def csv_reader(stream: Any, **params: Any): ... +def csv_writer(stream: Any, **params: Any): ... def to_text(source: Any): ... diff --git a/odoo-stubs/tools/safe_eval.pyi b/odoo-stubs/tools/safe_eval.pyi index 6d0c36c..00f36f6 100644 --- a/odoo-stubs/tools/safe_eval.pyi +++ b/odoo-stubs/tools/safe_eval.pyi @@ -1,24 +1,7 @@ from typing import Any, Optional unsafe_eval = eval -__all__: Any -_ALLOWED_MODULES: Any -_UNSAFE_ATTRIBUTES: Any -_POSSIBLE_OPCODES_P3: Any -_CONST_OPCODES: Any -_EXPR_OPCODES: Any -_SAFE_OPCODES: Any -_logger: Any -def _get_opcodes(codeobj: Any): ... -def assert_no_dunder_name(code_obj: Any, expr: Any) -> None: ... -def assert_valid_codeobj(allowed_codes: Any, code_obj: Any, expr: Any) -> None: ... def test_expr(expr: Any, allowed_codes: Any, mode: str = ...): ... def const_eval(expr: Any): ... -def expr_eval(expr: Any): ... -def _import(name: Any, globals: Optional[Any] = ..., locals: Optional[Any] = ..., fromlist: Optional[Any] = ..., level: int = ...): ... - -_BUILTINS: Any - def safe_eval(expr: Any, globals_dict: Optional[Any] = ..., locals_dict: Optional[Any] = ..., mode: str = ..., nocopy: bool = ..., locals_builtins: bool = ...): ... -def test_python_expr(expr: Any, mode: str = ...): ... diff --git a/odoo-stubs/tools/sql.pyi b/odoo-stubs/tools/sql.pyi index 68bf9cb..30fd2c5 100644 --- a/odoo-stubs/tools/sql.pyi +++ b/odoo-stubs/tools/sql.pyi @@ -12,9 +12,9 @@ def column_exists(cr: Any, tablename: Any, columnname: Any): ... def create_column(cr: Any, tablename: Any, columnname: Any, columntype: Any, comment: Optional[Any] = ...) -> None: ... def rename_column(cr: Any, tablename: Any, columnname1: Any, columnname2: Any) -> None: ... def convert_column(cr: Any, tablename: Any, columnname: Any, columntype: Any) -> None: ... -def set_not_null(cr: Any, tablename: Any, columnname: Any) -> None: ... +def set_not_null(cr: Any, tablename: Any, columnname: Any): ... def drop_not_null(cr: Any, tablename: Any, columnname: Any) -> None: ... -def constraint_definition(cr: Any, tablename: Any, constraintname: Any): ... +def constraint_definition(cr: Any, constraintname: Any): ... def add_constraint(cr: Any, tablename: Any, constraintname: Any, definition: Any) -> None: ... def drop_constraint(cr: Any, tablename: Any, constraintname: Any) -> None: ... def add_foreign_key(cr: Any, tablename1: Any, columnname1: Any, tablename2: Any, columnname2: Any, ondelete: Any): ... diff --git a/odoo-stubs/tools/view_validation.pyi b/odoo-stubs/tools/view_validation.pyi index efaf2d5..90ac2c7 100644 --- a/odoo-stubs/tools/view_validation.pyi +++ b/odoo-stubs/tools/view_validation.pyi @@ -16,14 +16,3 @@ def valid_att_in_label(arch: Any): ... def valid_att_in_form(arch: Any): ... def valid_type_in_colspan(arch: Any): ... def valid_type_in_col(arch: Any): ... -def valid_alternative_image_text(arch: Any): ... -def valid_simili_button(arch: Any): ... -def valid_simili_dropdown(arch: Any): ... -def valid_simili_progressbar(arch: Any): ... -def valid_dialog(arch: Any): ... -def valid_simili_tabpanel(arch: Any): ... -def valid_simili_tab(arch: Any): ... -def valid_simili_tablist(arch: Any): ... -def valid_focusable_button(arch: Any): ... -def valid_prohibited_none_role(arch: Any): ... -def valid_alerts(arch: Any): ... diff --git a/odoo-stubs/tools/yaml_import.pyi b/odoo-stubs/tools/yaml_import.pyi new file mode 100644 index 0000000..171e601 --- /dev/null +++ b/odoo-stubs/tools/yaml_import.pyi @@ -0,0 +1,85 @@ +from . import assertion_report as assertion_report, pycompat as pycompat, yaml_tag as yaml_tag +from .config import config as config +from .misc import DEFAULT_SERVER_DATETIME_FORMAT as DEFAULT_SERVER_DATETIME_FORMAT, DEFAULT_SERVER_DATE_FORMAT as DEFAULT_SERVER_DATE_FORMAT, file_open as file_open +from .safe_eval import safe_eval as safe_eval +from odoo import SUPERUSER_ID as SUPERUSER_ID +from typing import Any, Optional + +unsafe_eval = eval +_logger: Any + +class YamlImportException(Exception): ... +class YamlImportAbortion(Exception): ... + +def _is_yaml_mapping(node: Any, tag_constructor: Any): ... +def is_comment(node: Any): ... +def is_assert(node: Any): ... +def is_record(node: Any): ... +def is_python(node: Any): ... +def is_menuitem(node: Any): ... +def is_function(node: Any): ... +def is_report(node: Any): ... +def is_act_window(node: Any): ... +def is_delete(node: Any): ... +def is_context(node: Any): ... +def is_url(node: Any): ... +def is_eval(node: Any): ... +def is_ref(node: Any): ... +def is_string(node: Any): ... + +class RecordDictWrapper(dict): + record: Any = ... + def __init__(self, record: Any) -> None: ... + def __getitem__(self, key: Any): ... + +class YamlInterpreter: + cr: Any = ... + module: Any = ... + id_map: Any = ... + mode: Any = ... + filename: Any = ... + assertion_report: Any = ... + noupdate: Any = ... + loglevel: Any = ... + uid: Any = ... + context: Any = ... + eval_context: Any = ... + env: Any = ... + sudo_env: Any = ... + def __init__(self, cr: Any, module: Any, id_map: Any, mode: Any, filename: Any, report: Optional[Any] = ..., noupdate: bool = ..., loglevel: Any = ...) -> None: ... + def _log(self, *args: Any, **kwargs: Any) -> None: ... + def validate_xml_id(self, xml_id: Any) -> None: ... + def get_id(self, xml_id: Any): ... + def get_record(self, xml_id: Any): ... + def get_context(self, node: Any, eval_dict: Any): ... + def isnoupdate(self, node: Any): ... + def _get_first_result(self, results: Any, default: bool = ...): ... + def process_comment(self, node: Any): ... + def _log_assert_failure(self, msg: Any, *args: Any) -> None: ... + def _get_assertion_id(self, assertion: Any): ... + def process_assert(self, node: Any) -> None: ... + def _coerce_bool(self, value: Any, default: bool = ...): ... + def create_osv_memory_record(self, record: Any, fields: Any): ... + def process_record(self, node: Any) -> None: ... + _dict: Any = ... + def _create_record(self, model: Any, fields: Any, view_info: Optional[Any] = ..., parent: Any = ..., default: bool = ..., context: Optional[Any] = ...): ... + def process_ref(self, node: Any, field: Optional[Any] = ...): ... + def process_eval(self, node: Any): ... + def _eval_field(self, model: Any, field_name: Any, expression: Any, view_info: bool = ..., parent: Any = ..., default: bool = ..., context: Optional[Any] = ...): ... + def process_context(self, node: Any) -> None: ... + def process_python(self, node: Any) -> None: ... + def _eval_params(self, model: Any, params: Any): ... + def process_function(self, node: Any): ... + def _set_group_values(self, node: Any, values: Any) -> None: ... + def process_menuitem(self, node: Any) -> None: ... + def process_act_window(self, node: Any) -> None: ... + def process_delete(self, node: Any) -> None: ... + def process_url(self, node: Any) -> None: ... + def process_report(self, node: Any) -> None: ... + def process_none(self) -> None: ... + def process(self, yaml_string: Any) -> None: ... + def _process_node(self, node: Any) -> None: ... + def _log_node(self, node: Any, is_preceded_by_comment: Any): ... + +def yaml_import(cr: Any, module: Any, yamlfile: Any, kind: Any, idref: Optional[Any] = ..., mode: str = ..., noupdate: bool = ..., report: Optional[Any] = ...) -> None: ... +convert_yaml_import = yaml_import diff --git a/odoo-stubs/tools/yaml_tag.pyi b/odoo-stubs/tools/yaml_tag.pyi new file mode 100644 index 0000000..cd22d51 --- /dev/null +++ b/odoo-stubs/tools/yaml_tag.pyi @@ -0,0 +1,80 @@ +from typing import Any, Optional + +class YamlTag: + def __init__(self, **kwargs: Any) -> None: ... + def __getitem__(self, key: Any): ... + def __getattr__(self, attr: Any) -> None: ... + def __repr__(self): ... + +class Assert(YamlTag): + model: Any = ... + id: Any = ... + severity: Any = ... + string: Any = ... + def __init__(self, model: Any, id: Optional[Any] = ..., severity: Any = ..., string: str = ..., **kwargs: Any) -> None: ... + +class Record(YamlTag): + model: Any = ... + id: Any = ... + view: Any = ... + def __init__(self, model: Any, id: Any, use: str = ..., view: bool = ..., **kwargs: Any) -> None: ... + def __str__(self): ... + +class Python(YamlTag): + model: Any = ... + severity: Any = ... + name: Any = ... + def __init__(self, model: Any, severity: Any = ..., name: str = ..., **kwargs: Any) -> None: ... + def __str__(self): ... + +class Menuitem(YamlTag): + id: Any = ... + name: Any = ... + def __init__(self, id: Any, name: Any, **kwargs: Any) -> None: ... + +class ActWindow(YamlTag): + def __init__(self, **kwargs: Any) -> None: ... + +class Function(YamlTag): + model: Any = ... + name: Any = ... + def __init__(self, model: Any, name: Any, **kwargs: Any) -> None: ... + +class Report(YamlTag): + model: Any = ... + name: Any = ... + string: Any = ... + def __init__(self, model: Any, name: Any, string: Any, **kwargs: Any) -> None: ... + +class Delete(YamlTag): + def __init__(self, **kwargs: Any) -> None: ... + +class Context(YamlTag): + def __init__(self, **kwargs: Any) -> None: ... + +class Url(YamlTag): + def __init__(self, **kwargs: Any) -> None: ... + +class Eval(YamlTag): + expression: Any = ... + def __init__(self, expression: Any) -> None: ... + def __str__(self): ... + +class Ref(YamlTag): + expr: Any = ... + def __init__(self, expr: str = ..., *args: Any, **kwargs: Any) -> None: ... + def __str__(self): ... + +def assert_constructor(loader: Any, node: Any): ... +def record_constructor(loader: Any, node: Any): ... +def python_constructor(loader: Any, node: Any): ... +def menuitem_constructor(loader: Any, node: Any): ... +def act_window_constructor(loader: Any, node: Any): ... +def function_constructor(loader: Any, node: Any): ... +def report_constructor(loader: Any, node: Any): ... +def delete_constructor(loader: Any, node: Any): ... +def context_constructor(loader: Any, node: Any): ... +def url_constructor(loader: Any, node: Any): ... +def eval_constructor(loader: Any, node: Any): ... +def ref_constructor(loader: Any, tag_suffix: Any, node: Any): ... +def add_constructors() -> None: ...