Skip to content

Commit 7d7b9c4

Browse files
committed
refs #323, code style refactor
1 parent c78a340 commit 7d7b9c4

File tree

1 file changed

+22
-24
lines changed

1 file changed

+22
-24
lines changed

gino/loader.py

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,26 @@ def __getattr__(self, item):
5151
_none = object()
5252

5353

54+
def _get_column(model, column_or_name) -> Column:
55+
if isinstance(column_or_name, str):
56+
return getattr(model, column_or_name)
57+
58+
if isinstance(column_or_name, Column):
59+
if column_or_name in model:
60+
return column_or_name
61+
raise AttributeError('Column {} does not belong to model {}'.format(
62+
column_or_name, model))
63+
64+
raise TypeError('Unknown column {} with type {}'.
65+
format(column_or_name, type(column_or_name)))
66+
67+
5468
class ModelLoader(Loader):
55-
def __init__(self, model, *column_names, **extras):
69+
def __init__(self, model, *columns, **extras):
5670
self.model = model
5771
self._distinct = None
58-
if column_names:
59-
self.columns = self._column_loader(model, column_names)
72+
if columns:
73+
self.columns = [_get_column(model, name) for name in columns]
6074
else:
6175
self.columns = model
6276
self.extras = dict((key, self.get(value))
@@ -121,30 +135,14 @@ def get_from(self):
121135
getattr(subloader, 'on_clause', None))
122136
return rv
123137

124-
def load(self, *column_names, **extras):
125-
if column_names:
126-
self.columns = self._column_loader(self.model, column_names)
138+
def load(self, *columns, **extras):
139+
if columns:
140+
self.columns = [_get_column(self.model, name) for name in columns]
127141

128142
self.extras.update((key, self.get(value))
129143
for key, value in extras.items())
130144
return self
131145

132-
@classmethod
133-
def _column_loader(cls, model, column_names):
134-
def column_formatter(column_name):
135-
if isinstance(column_name, str):
136-
return getattr(model, column_name)
137-
elif isinstance(column_name, Column):
138-
if column_name not in model:
139-
raise AttributeError('Column {} does not belong '
140-
'to this model'.format(column_name))
141-
return column_name
142-
else:
143-
raise TypeError('Unknown column name {} type {}'.
144-
format(column_name, type(column_name)))
145-
146-
return [column_formatter(column_name) for column_name in column_names]
147-
148146
def on(self, on_clause):
149147
self.on_clause = on_clause
150148
return self
@@ -163,8 +161,8 @@ def none_as_none(self, enabled=True):
163161

164162

165163
class AliasLoader(ModelLoader):
166-
def __init__(self, alias, *column_names, **extras):
167-
super().__init__(alias, *column_names, **extras)
164+
def __init__(self, alias, *columns, **extras):
165+
super().__init__(alias, *columns, **extras)
168166

169167

170168
class ColumnLoader(Loader):

0 commit comments

Comments
 (0)