Skip to content

Commit b6cd23f

Browse files
committed
rm for loops
1 parent ace1d7a commit b6cd23f

File tree

3 files changed

+52
-111
lines changed

3 files changed

+52
-111
lines changed

qiita_db/meta_util.py

Lines changed: 13 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -255,37 +255,21 @@ def sizeof_fmt(value, position):
255255
time = datetime.now().strftime('%m-%d-%y %H:%M:%S')
256256

257257
portal = qiita_config.portal
258-
keys = [
259-
'number_studies', 'number_of_samples', 'num_users', 'lat_longs',
260-
'num_studies_ebi', 'num_samples_ebi', 'number_samples_ebi_prep',
261-
'img', 'time']
262-
263-
for k in keys:
258+
vals = [
259+
('number_studies', number_studies, r_client.hmset),
260+
('number_of_samples', number_of_samples, r_client.hmset),
261+
('num_users', num_users, r_client.set),
262+
('lat_longs', lat_longs, r_client.set),
263+
('num_studies_ebi', num_studies_ebi, r_client.set),
264+
('num_samples_ebi', num_samples_ebi, r_client.set),
265+
('number_samples_ebi_prep', number_samples_ebi_prep, r_client.set),
266+
('img', img, r_client.set),
267+
('time', time, r_client.set)]
268+
for k, v, f in vals:
264269
redis_key = '%s:stats:%s' % (portal, k)
265-
# important to "flush" variable to avoid errors
270+
# important to "flush" variables to avoid errors
266271
r_client.delete(redis_key)
267-
268-
# storing dicts
269-
if k == 'number_studies':
270-
r_client.hmset(redis_key, number_studies)
271-
elif k == 'number_of_samples':
272-
r_client.hmset(redis_key, number_of_samples)
273-
# single values
274-
elif k == 'num_users':
275-
r_client.set(redis_key, num_users)
276-
elif k == 'num_studies_ebi':
277-
r_client.set(redis_key, num_studies_ebi)
278-
elif k == 'num_samples_ebi':
279-
r_client.set(redis_key, num_samples_ebi)
280-
elif k == 'number_samples_ebi_prep':
281-
r_client.set(redis_key, number_samples_ebi_prep)
282-
elif k == 'img':
283-
r_client.set(redis_key, img)
284-
elif k == 'time':
285-
r_client.set(redis_key, time)
286-
# storing tuples
287-
elif k == 'lat_longs':
288-
r_client.set(redis_key, lat_longs)
272+
f(redis_key, v)
289273

290274
return missing_files
291275

qiita_db/test/test_meta_util.py

Lines changed: 16 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -184,44 +184,24 @@ def test_get_lat_longs_EMP_portal(self):
184184
def test_update_redis_stats(self):
185185
qdb.meta_util.update_redis_stats()
186186

187-
# checking values from redis
188187
portal = qiita_config.portal
189-
keys = [
190-
'number_studies', 'number_of_samples', 'num_users', 'lat_longs',
191-
'num_studies_ebi', 'num_samples_ebi', 'number_samples_ebi_prep',
192-
'img']
193-
194-
for k in keys:
188+
vals = [
189+
('number_studies', {'sanbox': '2', 'public': '0',
190+
'private': '1'}, r_client.hgetall),
191+
('number_of_samples', {'sanbox': '1', 'public': '0',
192+
'private': '27'}, r_client.hgetall),
193+
('num_users', '4', r_client.get),
194+
('lat_longs', EXP_LAT_LONG, r_client.get),
195+
('num_studies_ebi', '3', r_client.get),
196+
('num_samples_ebi', '27', r_client.get),
197+
('number_samples_ebi_prep', '54', r_client.get)
198+
# not testing img/time for simplicity
199+
# ('img', r_client.get),
200+
# ('time', r_client.get)
201+
]
202+
for k, exp, f in vals:
195203
redis_key = '%s:stats:%s' % (portal, k)
196-
# retrieving dicts
197-
if k == 'number_studies':
198-
data = r_client.hgetall(redis_key)
199-
self.assertEqual(data, {'sanbox': '2', 'public': '0',
200-
'private': '1'})
201-
elif k == 'number_of_samples':
202-
data = r_client.hgetall(redis_key)
203-
self.assertEqual(data, {'sanbox': '1', 'public': '0',
204-
'private': '27'})
205-
# single values
206-
elif k == 'num_users':
207-
data = r_client.get(redis_key)
208-
self.assertEqual(data, '4')
209-
elif k == 'num_studies_ebi':
210-
data = r_client.get(redis_key)
211-
self.assertEqual(data, '3')
212-
elif k == 'num_samples_ebi':
213-
data = r_client.get(redis_key)
214-
self.assertEqual(data, '27')
215-
elif k == 'number_samples_ebi_prep':
216-
data = r_client.get(redis_key)
217-
self.assertEqual(data, '54')
218-
elif k in ['img', 'time']:
219-
# not testing image or time!
220-
pass
221-
# storing tuples
222-
elif k == 'lat_longs':
223-
data = r_client.get(redis_key)
224-
self.assertEqual(data, EXP_LAT_LONG)
204+
self.assertEqual(f(redis_key), exp)
225205

226206

227207
EXP_LAT_LONG = (

qiita_pet/handlers/stats.py

Lines changed: 23 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -14,54 +14,29 @@
1414
class StatsHandler(BaseHandler):
1515
@execute_as_transaction
1616
def _get_stats(self, callback):
17-
# initializing values
18-
number_studies, number_of_samples, num_users, time = '', '', '', ''
19-
lat_longs, num_studies_ebi, num_samples_ebi, img = '', '', '', ''
20-
number_samples_ebi_prep = ''
21-
17+
stats = {}
2218
# checking values from redis
2319
portal = qiita_config.portal
24-
keys = [
25-
'number_studies', 'number_of_samples', 'num_users', 'lat_longs',
26-
'num_studies_ebi', 'num_samples_ebi', 'number_samples_ebi_prep',
27-
'img', 'time']
28-
29-
for k in keys:
20+
vals = [
21+
('number_studies', r_client.hgetall),
22+
('number_of_samples', r_client.hgetall),
23+
('num_users', r_client.get),
24+
('lat_longs', r_client.get),
25+
('num_studies_ebi', r_client.get),
26+
('num_samples_ebi', r_client.get),
27+
('number_samples_ebi_prep', r_client.get),
28+
('img', r_client.get),
29+
('time', r_client.get)]
30+
for k, f in vals:
3031
redis_key = '%s:stats:%s' % (portal, k)
31-
# retrieving dicts
32-
if k == 'number_studies':
33-
number_studies = r_client.hgetall(redis_key)
34-
elif k == 'number_of_samples':
35-
number_of_samples = r_client.hgetall(redis_key)
36-
# single values
37-
elif k == 'num_users':
38-
num_users = r_client.get(redis_key)
39-
elif k == 'num_studies_ebi':
40-
num_studies_ebi = r_client.get(redis_key)
41-
elif k == 'num_samples_ebi':
42-
num_samples_ebi = r_client.get(redis_key)
43-
elif k == 'num_samples_ebi':
44-
num_samples_ebi = r_client.get(redis_key)
45-
elif k == 'number_samples_ebi_prep':
46-
number_samples_ebi_prep = r_client.get(redis_key)
47-
elif k == 'img':
48-
img = r_client.get(redis_key)
49-
elif k == 'time':
50-
time = r_client.get(redis_key)
51-
# storing tuples and single values
52-
elif k == 'lat_longs':
53-
lat_longs = eval(r_client.get(redis_key))
32+
stats[k] = f(redis_key)
5433

55-
callback([number_studies, number_of_samples, num_users, lat_longs,
56-
num_studies_ebi, num_samples_ebi, number_samples_ebi_prep,
57-
img, time])
34+
callback(stats)
5835

5936
@coroutine
6037
@execute_as_transaction
6138
def get(self):
62-
number_studies, number_of_samples, num_users, lat_longs, \
63-
num_studies_ebi, num_samples_ebi, number_samples_ebi_prep, \
64-
img, time = yield Task(self._get_stats)
39+
stats = yield Task(self._get_stats)
6540

6641
# Pull a random public study from the database
6742
public_studies = Study.get_by_status('public')
@@ -77,12 +52,14 @@ def get(self):
7752
random_study_id = study.id
7853

7954
self.render('stats.html',
80-
number_studies=number_studies,
81-
number_of_samples=number_of_samples, num_users=num_users,
82-
lat_longs=lat_longs, num_studies_ebi=num_studies_ebi,
83-
num_samples_ebi=num_samples_ebi,
84-
number_samples_ebi_prep=number_samples_ebi_prep,
85-
img=img, time=time,
55+
number_studies=stats['number_studies'],
56+
number_of_samples=stats['number_of_samples'],
57+
num_users=stats['num_users'],
58+
lat_longs=eval(stats['lat_longs']),
59+
num_studies_ebi=stats['num_studies_ebi'],
60+
num_samples_ebi=stats['num_samples_ebi'],
61+
number_samples_ebi_prep=stats['number_samples_ebi_prep'],
62+
img=stats['img'], time=stats['time'],
8663
random_study_info=random_study_info,
8764
random_study_title=random_study_title,
8865
random_study_id=random_study_id)

0 commit comments

Comments
 (0)