Skip to content

Commit 1ed2f9b

Browse files
author
amvanbaren
committed
reduce complexity of get_all_extensions.py
1 parent e09e3e0 commit 1ed2f9b

File tree

1 file changed

+27
-19
lines changed

1 file changed

+27
-19
lines changed

reports/get_all_extensions.py

Lines changed: 27 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
url = API_ENDPOINT + 'api/-/search?size=100'
1616

17-
def get_all_extensions():
17+
def retrieve_extensions():
1818
extensions = []
1919
done = False
2020
offset = 0
@@ -31,35 +31,43 @@ def get_all_extensions():
3131
except Exception as e:
3232
print("%s: %s" % (datetime.now(), e))
3333
done = True
34-
34+
35+
return extensions
36+
37+
def get_extension(extension):
38+
extension_url = API_ENDPOINT + 'api/%s/%s' % (extension['namespace'], extension['name'])
39+
retry_count = 5
40+
while retry_count > 0:
41+
try:
42+
response = requests.get(extension_url)
43+
if response.status_code == 200:
44+
return response.json()
45+
else:
46+
raise Exception('%s: HTTP %s Error retrieving %s' % (datetime.now(), response.status_code,extension['url']))
47+
except Exception as e:
48+
print("%s: %s" % (datetime.now(), e))
49+
retry_count -= 1
50+
time.sleep(2)
51+
52+
return None
53+
54+
def get_all_extensions():
3555
count = 1
3656
all_extensions = []
57+
extensions = retrieve_extensions()
3758
print("\n\nStarting: %s" % datetime.now())
3859
for extension in extensions:
39-
namespace_url = API_ENDPOINT + 'api/%s/%s' % (extension['namespace'], extension['name'])
40-
retry_count = 5
41-
while retry_count > 0:
42-
try:
43-
response = requests.get(namespace_url)
44-
if response.status_code == 200:
45-
break
46-
else:
47-
raise Exception('%s: HTTP %s Error retrieving %s' % (datetime.now(), response.status_code,extension['url']))
48-
except Exception as e:
49-
print("%s: %s" % (datetime.now(), e))
50-
retry_count -= 1
51-
time.sleep(2)
52-
if retry_count == 0:
60+
results = get_extension(extension)
61+
if results is None:
5362
print('Error retrieving %s' % extension['url'])
5463
else:
55-
results = response.json()
5664
all_extensions.append(results)
5765
if int(count/100) == count/100:
5866
print('Processed %s of %s.' % (count, len(extensions)))
5967
count += 1
6068
print("\n\nFinished %s API Calls: %s" % (count, datetime.now()))
6169

62-
return(all_extensions)
70+
return all_extensions
6371

6472
def get_all_by_license():
6573
extensions_by_license = {}
@@ -75,7 +83,7 @@ def get_all_by_license():
7583
print('Processed %s of %s.' % (count, len(all_extensions)))
7684
count += 1
7785

78-
return(dict(sorted(extensions_by_license.items())))
86+
return dict(sorted(extensions_by_license.items()))
7987

8088
def write_json_file(extensions):
8189
f = open(JSON_FILENAME, 'w')

0 commit comments

Comments
 (0)