optimize __getattribute__ access
This commit is contained in:
@ -75,7 +75,7 @@ class UndefinedType: # pragma no cover
|
||||
|
||||
Undefined = UndefinedType()
|
||||
|
||||
__version__ = "0.10.1"
|
||||
__version__ = "0.10.2"
|
||||
__all__ = [
|
||||
"Integer",
|
||||
"BigInteger",
|
||||
|
||||
@ -267,9 +267,13 @@ class NewBaseModel(pydantic.BaseModel, ModelTableProxy, metaclass=ModelMetaclass
|
||||
if item == "pk":
|
||||
return object.__getattribute__(self, "__dict__").get(self.Meta.pkname, None)
|
||||
if item in object.__getattribute__(self, "extract_related_names")():
|
||||
return self._extract_related_model_instead_of_field(item)
|
||||
return object.__getattribute__(
|
||||
self, "_extract_related_model_instead_of_field"
|
||||
)(item)
|
||||
if item in object.__getattribute__(self, "extract_through_names")():
|
||||
return self._extract_related_model_instead_of_field(item)
|
||||
return object.__getattribute__(
|
||||
self, "_extract_related_model_instead_of_field"
|
||||
)(item)
|
||||
if item in object.__getattribute__(self, "Meta").property_fields:
|
||||
value = object.__getattribute__(self, item)
|
||||
return value() if callable(value) else value
|
||||
|
||||
@ -14,6 +14,7 @@ quick_access_set = {
|
||||
"__json_encoder__",
|
||||
"__post_root_validators__",
|
||||
"__pre_root_validators__",
|
||||
"__private_attributes__",
|
||||
"__same__",
|
||||
"_calculate_keys",
|
||||
"_choices_fields",
|
||||
@ -26,8 +27,10 @@ quick_access_set = {
|
||||
"_extract_related_model_instead_of_field",
|
||||
"_get_related_not_excluded_fields",
|
||||
"_get_value",
|
||||
"_init_private_attributes",
|
||||
"_is_conversion_to_json_needed",
|
||||
"_iter",
|
||||
"_iterate_related_models",
|
||||
"_orm",
|
||||
"_orm_id",
|
||||
"_orm_saved",
|
||||
@ -40,8 +43,10 @@ quick_access_set = {
|
||||
"delete",
|
||||
"dict",
|
||||
"extract_related_names",
|
||||
"extract_related_fields",
|
||||
"extract_through_names",
|
||||
"update_from_dict",
|
||||
"get_child",
|
||||
"get_column_alias",
|
||||
"get_column_name_from_alias",
|
||||
"get_filtered_names_to_extract",
|
||||
@ -52,9 +57,11 @@ quick_access_set = {
|
||||
"json",
|
||||
"keys",
|
||||
"load",
|
||||
"load_all",
|
||||
"pk_column",
|
||||
"pk_type",
|
||||
"populate_default_values",
|
||||
"prepare_model_to_save",
|
||||
"remove",
|
||||
"resolve_relation_field",
|
||||
"resolve_relation_name",
|
||||
@ -62,6 +69,7 @@ quick_access_set = {
|
||||
"save_related",
|
||||
"saved",
|
||||
"set_save_status",
|
||||
"signals",
|
||||
"translate_aliases_to_columns",
|
||||
"translate_columns_to_aliases",
|
||||
"update",
|
||||
|
||||
Reference in New Issue
Block a user