Skip to content

Commit e507d1c

Browse files
committed
Merge pull request #27 from BertrandBordage/master
Simplifications
2 parents feddad4 + cb34a60 commit e507d1c

File tree

3 files changed

+12
-34
lines changed

3 files changed

+12
-34
lines changed

django_pandas/io.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,13 @@
33

44

55
def to_fields(qs, fieldnames):
6-
fields = []
76
for fieldname in fieldnames:
87
model = qs.model
98
for fieldname_part in fieldname.split('__'):
109
field = model._meta.get_field(fieldname_part)
1110
if field.get_internal_type() == 'ForeignKey':
1211
model = field.rel.to
13-
fields.append(field)
14-
return fields
12+
yield field
1513

1614

1715
def read_frame(qs, fieldnames=(), index_col=None, coerce_float=False,

django_pandas/managers.py

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -125,22 +125,17 @@ def to_timeseries(self, fieldnames=(), verbose=True,
125125
defined in the ``__unicode__`` or ``__str__``
126126
methods of the related class definition
127127
"""
128-
if index is None:
129-
raise AssertionError('You must supply an index field')
130-
if storage not in ('wide', 'long'):
131-
raise AssertionError('storage must be wide or long')
128+
assert index is not None, 'You must supply an index field'
129+
assert storage in ('wide', 'long'), 'storage must be wide or long'
132130
if rs_kwargs is None:
133131
rs_kwargs = {}
134132

135133
if storage == 'wide':
136134
df = self.to_dataframe(fieldnames, verbose=verbose, index=index)
137135
else:
138136
df = self.to_dataframe(fieldnames, verbose=verbose)
139-
if values is None:
140-
raise AssertionError('You must specify a values field')
141-
142-
if pivot_columns is None:
143-
raise AssertionError('You must specify pivot_columns')
137+
assert values is not None, 'You must specify a values field'
138+
assert pivot_columns is not None, 'You must specify pivot_columns'
144139

145140
if isinstance(pivot_columns, (tuple, list)):
146141
df['combined_keys'] = ''
@@ -190,11 +185,8 @@ def to_dataframe(self, fieldnames=(), verbose=True, index=None,
190185
191186
"""
192187

193-
df = read_frame(self, fieldnames=fieldnames, verbose=verbose,
194-
index_col=index,
195-
coerce_float=coerce_float)
196-
197-
return df
188+
return read_frame(self, fieldnames=fieldnames, verbose=verbose,
189+
index_col=index, coerce_float=coerce_float)
198190

199191

200192
class DataFrameManager(PassThroughManager):

django_pandas/utils.py

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -36,41 +36,29 @@ def inner(pk_list):
3636
for pk in pk_list]
3737
out_dict = cache.get_many(frozenset(cache_keys))
3838
try:
39-
out_list = [None if k is None else out_dict[k]
40-
for k in cache_keys]
39+
return [None if k is None else out_dict[k] for k in cache_keys]
4140
except KeyError:
4241
out_dict = {
4342
base_cache_key % obj.pk: force_text(obj)
4443
for obj in model.objects.filter(pk__in={pk for pk in pk_list
4544
if not isnan(pk)})}
4645
cache.set_many(out_dict)
47-
out_list = list(map(out_dict.get, cache_keys))
48-
return out_list
46+
return list(map(out_dict.get, cache_keys))
4947

5048
return inner
5149

5250

5351
def build_update_functions(fieldnames, fields):
54-
update_functions = []
55-
5652
for fieldname, field in zip(fieldnames, fields):
5753
if field.choices:
5854
choices = {k: force_text(v)
5955
for k, v in field.flatchoices}
60-
update_functions.append((fieldname,
61-
replace_from_choices(choices)))
56+
yield fieldname, replace_from_choices(choices)
6257

6358
elif field.get_internal_type() == 'ForeignKey':
64-
update_functions.append((fieldname, replace_pk(field.rel.to)))
65-
66-
return update_functions
59+
yield fieldname, replace_pk(field.rel.to)
6760

6861

6962
def update_with_verbose(df, fieldnames, fields):
70-
update_functions = build_update_functions(fieldnames, fields)
71-
72-
if not update_functions:
73-
return
74-
75-
for fieldname, function in update_functions:
63+
for fieldname, function in build_update_functions(fieldnames, fields):
7664
df[fieldname] = function(df[fieldname])

0 commit comments

Comments
 (0)