Update stubs

This commit is contained in:
Trinh Anh Ngoc
2023-02-26 15:11:43 +07:00
parent 6a1866a03c
commit 632aa0dc1f
8 changed files with 31 additions and 30 deletions

View File

@@ -137,7 +137,6 @@ class Field(metaclass=MetaField):
def _description_string(self, env: Environment) -> str | None: ... def _description_string(self, env: Environment) -> str | None: ...
def _description_help(self, env: Environment) -> str | None: ... def _description_help(self, env: Environment) -> str | None: ...
def is_editable(self) -> bool: ... def is_editable(self) -> bool: ...
def null(self, record: BaseModel) -> bool: ...
def convert_to_column(self, value, record: BaseModel, values: Any | None = ..., validate: bool = ...): ... def convert_to_column(self, value, record: BaseModel, values: Any | None = ..., validate: bool = ...): ...
def convert_to_cache(self, value, record: BaseModel, validate: bool = ...): ... def convert_to_cache(self, value, record: BaseModel, validate: bool = ...): ...
def convert_to_record(self, value, record: BaseModel): ... def convert_to_record(self, value, record: BaseModel): ...
@@ -156,7 +155,7 @@ class Field(metaclass=MetaField):
def update_db_related(self, model: BaseModel) -> None: ... def update_db_related(self, model: BaseModel) -> None: ...
def read(self, records: BaseModel) -> None: ... def read(self, records: BaseModel) -> None: ...
def create(self, record_values: list[tuple[BaseModel, Any]]) -> None: ... def create(self, record_values: list[tuple[BaseModel, Any]]) -> None: ...
def write(self, records: _ModelT, value) -> _ModelT: ... def write(self, records: _ModelT, value) -> None: ...
def __get__(self, record: Union[BaseModel, None], owner): ... def __get__(self, record: Union[BaseModel, None], owner): ...
def mapped(self, records: BaseModel): ... def mapped(self, records: BaseModel): ...
def __set__(self, records: BaseModel, value): ... def __set__(self, records: BaseModel, value): ...
@@ -235,7 +234,7 @@ class _String(Field):
def get_trans_func(self, records: BaseModel) -> Callable: ... def get_trans_func(self, records: BaseModel) -> Callable: ...
def get_translation_dictionary(self, from_lang_value: str, to_lang_values: dict) -> dict: ... def get_translation_dictionary(self, from_lang_value: str, to_lang_values: dict) -> dict: ...
def _get_stored_translations(self, record: BaseModel) -> dict[str, str]: ... def _get_stored_translations(self, record: BaseModel) -> dict[str, str]: ...
def write(self, records: _ModelT, value) -> _ModelT: ... def write(self, records: _ModelT, value) -> None: ...
class Char(_String): class Char(_String):
type: str type: str
@@ -348,7 +347,7 @@ class Binary(Field):
def compute_value(self, records: BaseModel) -> None: ... def compute_value(self, records: BaseModel) -> None: ...
def read(self, records: BaseModel) -> None: ... def read(self, records: BaseModel) -> None: ...
def create(self, record_values: list[tuple[BaseModel, Any]]) -> None: ... def create(self, record_values: list[tuple[BaseModel, Any]]) -> None: ...
def write(self, records: _ModelT, value) -> _ModelT: ... def write(self, records: _ModelT, value) -> None: ...
class Image(Binary): class Image(Binary):
max_width: int max_width: int
@@ -405,7 +404,6 @@ class _Relational(Field):
_description_relation: str | None _description_relation: str | None
_description_context: dict _description_context: dict
def _description_domain(self, env: Environment) -> _Domain: ... def _description_domain(self, env: Environment) -> _Domain: ...
def null(self, record: BaseModel) -> BaseModel: ...
class Many2one(_Relational): class Many2one(_Relational):
type: str type: str
@@ -429,7 +427,7 @@ class Many2one(_Relational):
def convert_to_export(self, value, record: BaseModel) -> str: ... def convert_to_export(self, value, record: BaseModel) -> str: ...
def convert_to_display_name(self, value, record: BaseModel) -> str: ... def convert_to_display_name(self, value, record: BaseModel) -> str: ...
def convert_to_onchange(self, value, record: BaseModel, names): ... def convert_to_onchange(self, value, record: BaseModel, names): ...
def write(self, records: _ModelT, value) -> _ModelT: ... def write(self, records: _ModelT, value) -> None: ...
def _remove_inverses(self, records: BaseModel, value): ... def _remove_inverses(self, records: BaseModel, value): ...
def _update_inverses(self, records: BaseModel, value) -> None: ... def _update_inverses(self, records: BaseModel, value) -> None: ...
@@ -438,7 +436,6 @@ class Many2oneReference(Integer):
model_field: str | None model_field: str | None
_related_model_field: str | None _related_model_field: str | None
def convert_to_cache(self, value, record: BaseModel, validate: bool = ...): ... def convert_to_cache(self, value, record: BaseModel, validate: bool = ...): ...
def _remove_inverses(self, records: BaseModel, value) -> None: ...
def _update_inverses(self, records: BaseModel, value) -> None: ... def _update_inverses(self, records: BaseModel, value) -> None: ...
def _record_ids_per_res_model(self, records: BaseModel) -> dict[str, set]: ... def _record_ids_per_res_model(self, records: BaseModel) -> dict[str, set]: ...
@@ -475,7 +472,7 @@ class Properties(Field):
def convert_to_write(self, value, record: BaseModel): ... def convert_to_write(self, value, record: BaseModel): ...
def convert_to_onchange(self, value, record: BaseModel, names): ... def convert_to_onchange(self, value, record: BaseModel, names): ...
def read(self, records: BaseModel) -> None: ... def read(self, records: BaseModel) -> None: ...
def write(self, records: _ModelT, value) -> _ModelT: ... def write(self, records: _ModelT, value) -> None: ...
def _compute(self, records: BaseModel) -> None: ... def _compute(self, records: BaseModel) -> None: ...
def _add_default_values(self, env: Environment, values: dict[str, Any]): ... def _add_default_values(self, env: Environment, values: dict[str, Any]): ...
def _get_properties_definition(self, record: BaseModel): ... def _get_properties_definition(self, record: BaseModel): ...
@@ -532,7 +529,7 @@ class Command(enum.IntEnum):
class _RelationalMulti(_Relational): class _RelationalMulti(_Relational):
write_sequence: int write_sequence: int
def _update(self, records: BaseModel, value): ... def _update(self, records: BaseModel, value) -> None: ...
def convert_to_cache(self, value, record: BaseModel, validate: bool = ...): ... def convert_to_cache(self, value, record: BaseModel, validate: bool = ...): ...
def convert_to_record(self, value, record: BaseModel): ... def convert_to_record(self, value, record: BaseModel): ...
def convert_to_record_multi(self, values, records: BaseModel): ... def convert_to_record_multi(self, values, records: BaseModel): ...
@@ -542,8 +539,8 @@ class _RelationalMulti(_Relational):
def convert_to_display_name(self, value, record: BaseModel) -> None: ... def convert_to_display_name(self, value, record: BaseModel) -> None: ...
def get_depends(self, model: BaseModel): ... def get_depends(self, model: BaseModel): ...
def create(self, record_values: list[tuple[BaseModel, Any]]) -> None: ... def create(self, record_values: list[tuple[BaseModel, Any]]) -> None: ...
def write(self, records: BaseModel, value): ... def write(self, records: BaseModel, value) -> None: ...
def write_batch(self, records_commands_list: _CommandList, create: bool = ...): ... def write_batch(self, records_commands_list: _CommandList, create: bool = ...) -> None: ...
class One2many(_RelationalMulti): class One2many(_RelationalMulti):
type: str type: str
@@ -557,7 +554,7 @@ class One2many(_RelationalMulti):
def get_domain_list(self, records: BaseModel): ... def get_domain_list(self, records: BaseModel): ...
def __get__(self, records: BaseModel, owner) -> BaseModel: ... def __get__(self, records: BaseModel, owner) -> BaseModel: ...
def read(self, records: BaseModel): ... def read(self, records: BaseModel): ...
def write_real(self, records_commands_list: _CommandList, create: bool = ...): ... def write_real(self, records_commands_list: _CommandList, create: bool = ...) -> None: ...
def write_new(self, records_commands_list: _CommandList): ... def write_new(self, records_commands_list: _CommandList): ...
class Many2many(_RelationalMulti): class Many2many(_RelationalMulti):
@@ -575,8 +572,8 @@ class Many2many(_RelationalMulti):
@property @property
def groupable(self) -> bool: ... def groupable(self) -> bool: ...
def read(self, records: BaseModel) -> None: ... def read(self, records: BaseModel) -> None: ...
def write_real(self, records_commands_list: _CommandList, create: bool = ...): ... def write_real(self, records_commands_list: _CommandList, create: bool = ...) -> None: ...
def write_new(self, records_commands_list: _CommandList): ... def write_new(self, records_commands_list: _CommandList) -> None: ...
class Id(Field): class Id(Field):
type: str type: str

View File

@@ -198,6 +198,8 @@ class Request:
@cr.setter @cr.setter
def cr(self, value) -> None: ... def cr(self, value) -> None: ...
_cr: Cursor _cr: Cursor
@property
def best_lang(self) -> str | None: ...
def csrf_token(self, time_limit: int | None = ...) -> str: ... def csrf_token(self, time_limit: int | None = ...) -> str: ...
def validate_csrf(self, csrf: str) -> bool: ... def validate_csrf(self, csrf: str) -> bool: ...
def default_context(self) -> dict: ... def default_context(self) -> dict: ...
@@ -239,14 +241,14 @@ class Dispatcher(ABC):
def dispatch(self, endpoint, args): ... def dispatch(self, endpoint, args): ...
def post_dispatch(self, response: werkzeug.Response) -> None: ... def post_dispatch(self, response: werkzeug.Response) -> None: ...
@abstractmethod @abstractmethod
def handle_error(self, exc: Exception): ... def handle_error(self, exc: Exception) -> Callable: ...
class HttpDispatcher(Dispatcher): class HttpDispatcher(Dispatcher):
routing_type: str routing_type: str
@classmethod @classmethod
def is_compatible_with(cls, request: Request) -> Literal[True]: ... def is_compatible_with(cls, request: Request) -> Literal[True]: ...
def dispatch(self, endpoint, args): ... def dispatch(self, endpoint, args): ...
def handle_error(self, exc: Exception): ... def handle_error(self, exc: Exception) -> Callable: ...
class JsonRPCDispatcher(Dispatcher): class JsonRPCDispatcher(Dispatcher):
routing_type: str routing_type: str
@@ -255,7 +257,7 @@ class JsonRPCDispatcher(Dispatcher):
@classmethod @classmethod
def is_compatible_with(cls, request: Request) -> bool: ... def is_compatible_with(cls, request: Request) -> bool: ...
def dispatch(self, endpoint, args): ... def dispatch(self, endpoint, args): ...
def handle_error(self, exc: Exception) -> Response: ... def handle_error(self, exc: Exception) -> Callable: ...
def _response(self, result: Any | None = ..., error: Any | None = ...) -> Response: ... def _response(self, result: Any | None = ..., error: Any | None = ...) -> Response: ...
class Application: class Application:

View File

@@ -142,7 +142,6 @@ class BaseModel(metaclass=MetaModel):
def _convert_records(self, records, log: Callable = ...) -> Iterator[tuple[Any, Any, Any, dict]]: ... def _convert_records(self, records, log: Callable = ...) -> Iterator[tuple[Any, Any, Any, dict]]: ...
def _validate_fields(self, field_names: Iterable[str], excluded_names: Iterable[str] = ...) -> None: ... def _validate_fields(self, field_names: Iterable[str], excluded_names: Iterable[str] = ...) -> None: ...
def default_get(self, fields_list: list[str]) -> dict[str, Any]: ... def default_get(self, fields_list: list[str]) -> dict[str, Any]: ...
def fields_get_keys(self) -> list[str]: ...
def _rec_name_fallback(self) -> str: ... def _rec_name_fallback(self) -> str: ...
def user_has_groups(self, groups: str) -> bool: ... def user_has_groups(self, groups: str) -> bool: ...
def search_count(self, domain: _Domain, limit: int | None = ...) -> int: ... def search_count(self, domain: _Domain, limit: int | None = ...) -> int: ...
@@ -228,7 +227,6 @@ class BaseModel(metaclass=MetaModel):
def _check_m2m_recursion(self, field_name: str) -> bool: ... def _check_m2m_recursion(self, field_name: str) -> bool: ...
def _get_external_ids(self) -> dict[int, list[str]]: ... def _get_external_ids(self) -> dict[int, list[str]]: ...
def get_external_id(self) -> dict[int, str]: ... def get_external_id(self) -> dict[int, str]: ...
def get_xml_id(self) -> dict[int, str]: ...
@classmethod @classmethod
def is_transient(cls) -> bool: ... def is_transient(cls) -> bool: ...
def search_read(self, domain: _Domain | None = ..., fields: list[str] | None = ..., offset: int = ..., limit: int | None = ..., order: str | None = ..., **read_kwargs: str) -> list[dict[str, Any]]: ... def search_read(self, domain: _Domain | None = ..., fields: list[str] | None = ..., offset: int = ..., limit: int | None = ..., order: str | None = ..., **read_kwargs: str) -> list[dict[str, Any]]: ...
@@ -261,7 +259,6 @@ class BaseModel(metaclass=MetaModel):
def filtered_domain(self: _ModelT, domain: _Domain) -> _ModelT: ... def filtered_domain(self: _ModelT, domain: _Domain) -> _ModelT: ...
def sorted(self: _ModelT, key: Callable | str | None = ..., reverse: bool = ...) -> _ModelT: ... def sorted(self: _ModelT, key: Callable | str | None = ..., reverse: bool = ...) -> _ModelT: ...
def update(self, values: dict[str, Any]) -> None: ... def update(self, values: dict[str, Any]) -> None: ...
def flush(self, fnames: Collection[str] | None = ..., records: BaseModel | None = ...) -> None: ...
def flush_model(self, fnames: Iterable[str] | None = ...) -> None: ... def flush_model(self, fnames: Iterable[str] | None = ...) -> None: ...
def flush_recordset(self, fnames: Iterable[str] | None = ...) -> None: ... def flush_recordset(self, fnames: Iterable[str] | None = ...) -> None: ...
def _flush(self, fnames: Iterable[str] | None = ...) -> None: ... def _flush(self, fnames: Iterable[str] | None = ...) -> None: ...
@@ -292,14 +289,11 @@ class BaseModel(metaclass=MetaModel):
@property @property
def _cache(self) -> RecordCache: ... def _cache(self) -> RecordCache: ...
def _in_cache_without(self: _ModelT, field: Field, limit: int = ...) -> _ModelT: ... def _in_cache_without(self: _ModelT, field: Field, limit: int = ...) -> _ModelT: ...
def refresh(self) -> None: ...
def invalidate_cache(self, fnames: Collection[str] | None = ..., ids: Iterable[int] | None = ...) -> None: ...
def invalidate_model(self, fnames: Iterable[str] | None = ..., flush: bool = ...) -> None: ... def invalidate_model(self, fnames: Iterable[str] | None = ..., flush: bool = ...) -> None: ...
def invalidate_recordset(self, fnames: Iterable[str] | None = ..., flush: bool = ...) -> None: ... def invalidate_recordset(self, fnames: Iterable[str] | None = ..., flush: bool = ...) -> None: ...
def _invalidate_cache(self, fnames: Iterable[str] | None = ..., ids: Iterable[int] | None = ...) -> None: ... def _invalidate_cache(self, fnames: Iterable[str] | None = ..., ids: Iterable[int] | None = ...) -> None: ...
def modified(self, fnames: Collection[str], create: bool = ..., before: bool = ...) -> None: ... def modified(self, fnames: Collection[str], create: bool = ..., before: bool = ...) -> None: ...
def _modified_triggers(self: _ModelT, tree: dict[Field | None, Any], create: bool = ...) -> Iterator[tuple[Field, _ModelT, bool]]: ... def _modified_triggers(self: _ModelT, tree: dict[Field | None, Any], create: bool = ...) -> Iterator[tuple[Field, _ModelT, bool]]: ...
def recompute(self, fnames: Collection[str] | None = ..., records: Union[BaseModel, None] = ...) -> None: ...
def _recompute_model(self, fnames: Iterable[str] | None = ...) -> None: ... def _recompute_model(self, fnames: Iterable[str] | None = ...) -> None: ...
def _recompute_recordset(self, fnames: Iterable[str] | None = ...) -> None: ... def _recompute_recordset(self, fnames: Iterable[str] | None = ...) -> None: ...
def _recompute_field(self, field: Field, ids: Iterable[int] | None = ...) -> None: ... def _recompute_field(self, field: Field, ids: Iterable[int] | None = ...) -> None: ...

View File

@@ -2,7 +2,7 @@ import threading
from collections import defaultdict, deque from collections import defaultdict, deque
from collections.abc import Mapping from collections.abc import Mapping
from threading import RLock from threading import RLock
from typing import Any, Callable, ClassVar, Iterable, Iterator from typing import Any, Callable, ClassVar, Collection, Iterable, Iterator
from .graph import Node from .graph import Node
from ..models import BaseModel from ..models import BaseModel
@@ -22,6 +22,7 @@ class Registry(Mapping[str, type[BaseModel]]):
models: dict[str, type[BaseModel]] models: dict[str, type[BaseModel]]
_sql_constraints: set _sql_constraints: set
_init: bool _init: bool
_database_translated_fields: Collection[str]
_assertion_report: OdooTestResult _assertion_report: OdooTestResult
_fields_by_model: Any _fields_by_model: Any
_ordinary_tables: set[str] | None _ordinary_tables: set[str] | None

View File

@@ -1,10 +1,16 @@
import logging.handlers import logging.handlers
import warnings import warnings
from logging import Logger, LogRecord from logging import Logger, LogRecord
from typing import TextIO from typing import IO, TextIO
def log(logger: Logger, level: int, prefix: str, msg, depth: int | None = ...) -> None: ... def log(logger: Logger, level: int, prefix: str, msg, depth: int | None = ...) -> None: ...
class WatchedFileHandler(logging.handlers.WatchedFileHandler):
errors: None
_builtin_open: None
def __init__(self, filename: str) -> None: ...
def _open(self) -> IO: ...
class PostgreSQLHandler(logging.Handler): class PostgreSQLHandler(logging.Handler):
def emit(self, record: LogRecord) -> None: ... def emit(self, record: LogRecord) -> None: ...

View File

@@ -34,6 +34,8 @@ class RequestHandler(werkzeug.serving.WSGIRequestHandler):
def setup(self) -> None: ... def setup(self) -> None: ...
protocol_version: str protocol_version: str
def make_environ(self) -> dict[str, Any]: ... def make_environ(self) -> dict[str, Any]: ...
close_connection: bool
def send_header(self, keyword, value) -> None: ...
class ThreadedWSGIServerReloadable(LoggingBaseWSGIServerMixIn, werkzeug.serving.ThreadedWSGIServer): class ThreadedWSGIServerReloadable(LoggingBaseWSGIServerMixIn, werkzeug.serving.ThreadedWSGIServer):
max_http_threads: Any max_http_threads: Any

View File

@@ -19,6 +19,7 @@ real_time: Callable
re_from: Pattern re_from: Pattern
re_into: Pattern re_into: Pattern
sql_counter: int sql_counter: int
MAX_IDLE_TIMEOUT: int
class Savepoint: class Savepoint:
name: str name: str
@@ -68,7 +69,7 @@ class Cursor(BaseCursor):
__caller: tuple[str, int | str] | Literal[False] __caller: tuple[str, int | str] | Literal[False]
cache: dict cache: dict
_now: datetime | None _now: datetime | None
def __init__(self, pool: ConnectionPool, dbname: str, dsn: dict, **kwargs) -> None: ... def __init__(self, pool: ConnectionPool, dbname: str, dsn: dict) -> None: ...
def __build_dict(self, row: Sequence) -> dict[str, Any]: ... def __build_dict(self, row: Sequence) -> dict[str, Any]: ...
def dictfetchone(self) -> dict[str, Any] | None: ... def dictfetchone(self) -> dict[str, Any] | None: ...
def dictfetchmany(self, size) -> list[dict[str, Any]]: ... def dictfetchmany(self, size) -> list[dict[str, Any]]: ...
@@ -81,7 +82,6 @@ class Cursor(BaseCursor):
def _enable_logging(self) -> Generator[None, None, None]: ... def _enable_logging(self) -> Generator[None, None, None]: ...
def close(self): ... def close(self): ...
def _close(self, leak: bool = ...) -> None: ... def _close(self, leak: bool = ...) -> None: ...
def autocommit(self, on: bool) -> None: ...
def commit(self): ... def commit(self): ...
def rollback(self): ... def rollback(self): ...
def __getattr__(self, name: str): ... def __getattr__(self, name: str): ...
@@ -99,7 +99,6 @@ class TestCursor(BaseCursor):
def __init__(self, cursor: Cursor, lock: RLock) -> None: ... def __init__(self, cursor: Cursor, lock: RLock) -> None: ...
def execute(self, *args, **kwargs): ... def execute(self, *args, **kwargs): ...
def close(self) -> None: ... def close(self) -> None: ...
def autocommit(self, on: bool) -> None: ...
def commit(self) -> None: ... def commit(self) -> None: ...
def rollback(self) -> None: ... def rollback(self) -> None: ...
def __getattr__(self, name: str): ... def __getattr__(self, name: str): ...
@@ -123,8 +122,7 @@ class Connection:
dsn: dict dsn: dict
__pool: ConnectionPool __pool: ConnectionPool
def __init__(self, pool: ConnectionPool, dbname: str, dsn: dict) -> None: ... def __init__(self, pool: ConnectionPool, dbname: str, dsn: dict) -> None: ...
def cursor(self, **kwargs) -> Cursor: ... def cursor(self) -> Cursor: ...
def serialized_cursor(self, **kwargs) -> Cursor: ...
def __bool__(self) -> NoReturn: ... def __bool__(self) -> NoReturn: ...
def connection_info_for(db_or_uri: str) -> tuple[str, dict]: ... def connection_info_for(db_or_uri: str) -> tuple[str, dict]: ...

View File

@@ -18,6 +18,7 @@ PdfFileWriter = BrandedFileWriter
def merge_pdf(pdf_data: Iterable[bytes]) -> bytes: ... def merge_pdf(pdf_data: Iterable[bytes]) -> bytes: ...
def rotate_pdf(pdf: bytes) -> bytes: ... def rotate_pdf(pdf: bytes) -> bytes: ...
def to_pdf_stream(attachment: 'odoo.model.ir_attachment') -> BytesIO: ...
def add_banner(pdf_stream: str | BinaryIO, text: str | None = ..., logo: bool = ..., thickness: float = ...) -> BytesIO: ... def add_banner(pdf_stream: str | BinaryIO, text: str | None = ..., logo: bool = ..., thickness: float = ...) -> BytesIO: ...
class OdooPdfFileReader(PdfFileReader): class OdooPdfFileReader(PdfFileReader):