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