From 1897f1372cbc8bd3f3c520388c88f9413ad091f4 Mon Sep 17 00:00:00 2001 From: collerek Date: Thu, 22 Oct 2020 14:08:10 +0200 Subject: [PATCH] refactor getting aliased column names --- .coverage | Bin 53248 -> 53248 bytes ormar/models/modelproxy.py | 45 +++++++++++++++++++++++++------------ 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/.coverage b/.coverage index 0adcea0b240d514ef5be6d5eb340ae010424570d..a5c0d9f8600790e0c9b3a198fa799cd7b76e1475 100644 GIT binary patch delta 112 zcmV-$0FVEGpaX!Q1F%3Z2Q)e`H##*lvqvw#Pyqy!2Y@^upACWydJSt0T@5D<2Mp;9 zs|=M4e++UAL<}hm6AT2i5fGvavj&Wt0VEUF delta 110 zcmV-!0FnQIpaX!Q1F%3Z2QoS}Haavovqvw#Pyq&$2Y@^up$&u$d<|_4Ukxb@2@LBD ztqhk8fedsEMhq(q6$}Qm5fG#cvjmKr0U{tC1OW*`9`;2h@9Y2e`~Cg5|LynvG5n$5 Qe(&|aJ>Qsjv%`%&LU_t64gdfE diff --git a/ormar/models/modelproxy.py b/ormar/models/modelproxy.py index a58422d..760232d 100644 --- a/ormar/models/modelproxy.py +++ b/ormar/models/modelproxy.py @@ -170,7 +170,31 @@ class ModelTableProxy: return other @staticmethod - def own_table_columns( # noqa: CCR001 + def _get_not_nested_columns_from_fields( + model: Type["Model"], + fields: List, + column_names: List[str], + use_alias: bool = False, + ) -> List[str]: + fields = [model.get_column_alias(k) if not use_alias else k for k in fields] + columns = [name for name in fields if "__" not in name and name in column_names] + return columns + + @staticmethod + def _get_nested_columns_from_fields( + model: Type["Model"], fields: List, use_alias: bool = False, + ) -> List[str]: + model_name = f"{model.get_name()}__" + columns = [ + name[(name.find(model_name) + len(model_name)) :] # noqa: E203 + for name in fields + if f"{model.get_name()}__" in name + ] + columns = [model.get_column_alias(k) if not use_alias else k for k in columns] + return columns + + @staticmethod + def own_table_columns( model: Type["Model"], fields: List, nested: bool = False, @@ -184,20 +208,13 @@ class ModelTableProxy: return column_names if not nested: - fields = [model.get_column_alias(k) if not use_alias else k for k in fields] - columns = [ - name for name in fields if "__" not in name and name in column_names - ] + columns = ModelTableProxy._get_not_nested_columns_from_fields( + model, fields, column_names, use_alias + ) else: - model_name = f"{model.get_name()}__" - columns = [ - name[(name.find(model_name) + len(model_name)) :] # noqa: E203 - for name in fields - if f"{model.get_name()}__" in name - ] - columns = [ - model.get_column_alias(k) if not use_alias else k for k in columns - ] + columns = ModelTableProxy._get_nested_columns_from_fields( + model, fields, use_alias + ) # if the model is in select and no columns in fields, all implied if not columns: