LysandreJik commited on
Commit
38e70c4
0 Parent(s):

Initial commit

Browse files
README.md ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ # Static Space
2
+
3
+ Heavily WIP.
app.py ADDED
@@ -0,0 +1,109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from datetime import datetime, timedelta
2
+ import json
3
+ from http.server import SimpleHTTPRequestHandler, ThreadingHTTPServer
4
+ from urllib.parse import parse_qs, urlparse
5
+
6
+ from huggingface_hub import list_datasets
7
+ from datasets import load_dataset
8
+ import numpy as np
9
+
10
+
11
+ def running_mean(x, N, total_length=-1):
12
+ cumsum = np.cumsum(np.insert(x, 0, 0))
13
+ to_pad = max(total_length - len(cumsum), 0)
14
+ return np.pad(cumsum[N:] - cumsum[:-N], (to_pad, 0)) / float(N)
15
+
16
+
17
+ class RequestHandler(SimpleHTTPRequestHandler):
18
+ def do_GET(self):
19
+ print(self.path)
20
+ if self.path == "/":
21
+ self.path = "index.html"
22
+
23
+ return SimpleHTTPRequestHandler.do_GET(self)
24
+
25
+ if self.path.startswith("/initialize"):
26
+ metrics_datasets = [d.id.split('/')[1] for d in list_datasets(author='open-source-metrics', use_auth_token=True)]
27
+ pip_installs_datasets = [d.split('-')[0] for d in metrics_datasets if 'pip' in d]
28
+
29
+ self.send_response(200)
30
+ self.send_header("Content-Type", "application/json")
31
+ self.end_headers()
32
+
33
+ self.wfile.write(json.dumps(pip_installs_datasets).encode("utf-8"))
34
+
35
+ return SimpleHTTPRequestHandler
36
+
37
+ if self.path.startswith("/retrievePipInstalls"):
38
+ url = urlparse(self.path)
39
+ query = parse_qs(url.query)
40
+ library_names = query.get("input", None)[0]
41
+ library_names = library_names.split(',')
42
+
43
+ returned_values = {}
44
+ for library_name in library_names:
45
+ dataset = load_dataset(f"open-source-metrics/{library_name}-pip-installs", use_auth_token=True)['train']
46
+ for i in dataset:
47
+ if i['day'] in returned_values:
48
+ returned_values[i['day']][library_name] = i['num_downloads']
49
+ else:
50
+ returned_values[i['day']] = {library_name: i['num_downloads']}
51
+
52
+ for library_name in library_names:
53
+ for i in returned_values.keys():
54
+ if library_name not in returned_values[i]:
55
+ returned_values[i][library_name] = 0
56
+
57
+ output = {l: [k[l] for k in returned_values.values()][::-1] for l in library_names}
58
+ output['day'] = list(returned_values.keys())[::-1]
59
+
60
+ self.send_response(200)
61
+ self.send_header("Content-Type", "application/json")
62
+ self.end_headers()
63
+
64
+ self.wfile.write(json.dumps(output).encode("utf-8"))
65
+
66
+ return SimpleHTTPRequestHandler
67
+
68
+ if self.path.startswith("/retrieveStars"):
69
+ url = urlparse(self.path)
70
+ query = parse_qs(url.query)
71
+ library_names = query.get("input", None)[0]
72
+ library_names = library_names.split(',')
73
+
74
+ returned_values = {}
75
+ dataset_dict = load_dataset(f"open-source-metrics/stars", use_auth_token=True, revision='90cb31b2db73c8c4291bcf317d831595e4fb2a91').sort('dates')
76
+
77
+ for library_name in library_names:
78
+ dataset = dataset_dict[library_name]
79
+ n = 0
80
+ for i in dataset:
81
+ n += 1
82
+ if i['dates'] in returned_values:
83
+ returned_values[i['dates']][library_name] = n
84
+ else:
85
+ returned_values[i['dates']] = {library_name: n}
86
+
87
+ for library_name in library_names:
88
+ for i in returned_values.keys():
89
+ if library_name not in returned_values[i]:
90
+ returned_values[i][library_name] = None
91
+
92
+ output = {l: [k[l] for k in returned_values.values()][::-1] for l in library_names}
93
+ output['day'] = list(returned_values.keys())[::-1]
94
+
95
+ self.send_response(200)
96
+ self.send_header("Content-Type", "application/json")
97
+ self.end_headers()
98
+
99
+ self.wfile.write(json.dumps(output).encode("utf-8"))
100
+
101
+ return SimpleHTTPRequestHandler
102
+
103
+ return SimpleHTTPRequestHandler.do_GET(self)
104
+
105
+
106
+ server = ThreadingHTTPServer(("", 7860), RequestHandler)
107
+
108
+ print("Running on port 7860")
109
+ server.serve_forever()
index.html ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>OSS Metrics</title>
5
+ <link rel="stylesheet" href="style.css" />
6
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.9.1/chart.min.js"></script>
7
+ <script src="https://cdn.jsdelivr.net/npm/chartjs-adapter-date-fns/dist/chartjs-adapter-date-fns.bundle.min.js"></script>
8
+ <script type="module" src="index.js"></script>
9
+ </head>
10
+
11
+ <body>
12
+ <div id="loading"></div>
13
+ <div class="graphs">
14
+ <div id="library-selector"></div>
15
+ <div id="graph-selector"></div>
16
+ </div>
17
+ <canvas id="pip-graph"></canvas>
18
+ <canvas id="star-graph"></canvas>
19
+ </body>
20
+ </html>
index.js ADDED
@@ -0,0 +1,195 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ if (document.location.search.includes('dark-theme=true')) {
2
+ document.body.classList.add('dark-theme');
3
+ }
4
+
5
+ const load = () => {
6
+ const l0 = document.createElement('div')
7
+ const l1 = document.createElement('div')
8
+ const l2 = document.createElement('div')
9
+ l0.classList.add('lds-ripple')
10
+
11
+ l0.appendChild(l1)
12
+ l0.appendChild(l2)
13
+ return l0
14
+ }
15
+
16
+ let charts = [];
17
+
18
+ const createButton = (title, libraries, methods) => {
19
+ const button = document.createElement('button')
20
+ button.textContent = title;
21
+ button.onclick = async () => {
22
+ document.getElementById('pip-graph').innerHTML = ''
23
+ document.getElementById('star-graph').innerHTML = ''
24
+ const e = load()
25
+ document.body.appendChild(e)
26
+ const selectedLibraries = libraries.filter(e => document.querySelector(`#${e}Checkbox`).checked);
27
+ if (charts.length !== 0) {
28
+ for (const chart of charts) {
29
+ chart.destroy()
30
+ }
31
+ }
32
+ for (const method of methods()) {
33
+ charts.push(await method(selectedLibraries))
34
+ }
35
+ document.body.removeChild(e)
36
+ };
37
+
38
+ return button;
39
+ }
40
+
41
+ const initialize = async () => {
42
+ const inferResponse = await fetch(`initialize`);
43
+ const inferJson = await inferResponse.json();
44
+ const graphsDiv = document.getElementsByClassName('graphs')[0];
45
+ const librarySelector = document.getElementById('library-selector');
46
+ const graphSelector = document.getElementById('graph-selector');
47
+
48
+ const introSpan = document.createElement("h3")
49
+ introSpan.textContent = "Select libraries to display"
50
+ librarySelector.appendChild(introSpan);
51
+
52
+ const graphSpan = document.createElement("h3")
53
+ graphSpan.textContent = "Select graphs to display"
54
+ graphSelector.appendChild(graphSpan);
55
+
56
+ for (const element of inferJson) {
57
+ const div = document.createElement('div');
58
+ const checkBox = document.createElement('input');
59
+ checkBox.type = 'checkbox'
60
+ checkBox.id = `${element}Checkbox`;
61
+
62
+ const checkBoxLabel = document.createElement('label');
63
+ checkBoxLabel.textContent = element.charAt(0).toUpperCase() + element.slice(1)
64
+
65
+ checkBoxLabel.appendChild(checkBox)
66
+ div.appendChild(checkBoxLabel)
67
+
68
+ librarySelector.appendChild(div)
69
+ }
70
+
71
+ for (const element of ['pip', 'stars']) {
72
+ const div = document.createElement('div');
73
+ const checkBox = document.createElement('input');
74
+ checkBox.type = 'checkbox'
75
+ checkBox.id = `${element}CheckboxGraph`;
76
+
77
+ const checkBoxLabel = document.createElement('label');
78
+ checkBoxLabel.textContent = element.charAt(0).toUpperCase() + element.slice(1)
79
+
80
+ checkBoxLabel.appendChild(checkBox)
81
+ div.appendChild(checkBoxLabel)
82
+
83
+ graphSelector.appendChild(div)
84
+ }
85
+
86
+ const fetchButton = createButton('Fetch', inferJson, () => {
87
+ const graphNames = ['pip', 'stars'].filter(e => document.querySelector(`#${e}CheckboxGraph`).checked);
88
+ const graphs = []
89
+
90
+ if (graphNames.includes('pip'))
91
+ graphs.push(retrievePipInstalls)
92
+
93
+ if (graphNames.includes('stars'))
94
+ graphs.push(retrieveStars)
95
+
96
+ return graphs
97
+ })
98
+ graphsDiv.appendChild(fetchButton);
99
+ };
100
+
101
+ const retrievePipInstalls = async (libraryNames) => {
102
+ const inferResponse = await fetch(`retrievePipInstalls?input=${libraryNames}`);
103
+ const inferJson = await inferResponse.json();
104
+ const colors = ['Lilac', 'Red', 'Blue', 'Orange', 'Green']
105
+
106
+ console.log(inferJson)
107
+ const labels = Array.from(inferJson['day']).map(e => new Date(e))
108
+ const datasets = [];
109
+ for (const element in inferJson) {
110
+ if (element === 'day')
111
+ continue
112
+
113
+ const color = colors.pop()
114
+ datasets.push({
115
+ label: element,
116
+ data: inferJson[element],
117
+ backgroundColor: color,
118
+ borderColor: color,
119
+ tension: 0.01,
120
+ pointRadius: 1,
121
+ borderWidth: 2,
122
+ fill: false
123
+ })
124
+ }
125
+
126
+ const ctx = document.getElementById('pip-graph');
127
+
128
+ const myChart = new Chart(ctx, {
129
+ type: 'line',
130
+ data: {labels, datasets},
131
+ options: {
132
+ scales: {
133
+ y: {
134
+ beginAtZero: true
135
+ },
136
+ x: {
137
+ type: 'time',
138
+ }
139
+ },
140
+ }
141
+ });
142
+ return myChart;
143
+ };
144
+
145
+ const retrieveStars = async (libraryNames) => {
146
+ const inferResponse = await fetch(`retrieveStars?input=${libraryNames}`);
147
+ const inferJson = await inferResponse.json();
148
+ const colors = ['Lilac', 'Red', 'Blue', 'Orange', 'Green']
149
+
150
+ const labels = Array.from(inferJson['day']).map(e => new Date(e))
151
+ const datasets = [];
152
+ for (const element in inferJson) {
153
+ if (element === 'day')
154
+ continue
155
+
156
+ const color = colors.pop()
157
+ datasets.push({
158
+ label: element,
159
+ data: inferJson[element],
160
+ backgroundColor: color,
161
+ borderColor: color,
162
+ tension: 0.01,
163
+ pointRadius: 1,
164
+ borderWidth: 2,
165
+ fill: false
166
+ })
167
+ }
168
+
169
+ const ctx = document.getElementById('star-graph');
170
+
171
+ const myChart = new Chart(ctx, {
172
+ type: 'line',
173
+ data: {labels, datasets},
174
+ options: {
175
+ scales: {
176
+ y: {
177
+ beginAtZero: true
178
+ },
179
+ x: {
180
+ type: 'time',
181
+ }
182
+ },
183
+ }
184
+ });
185
+ return myChart;
186
+ };
187
+
188
+ (
189
+ async () => {
190
+ const e = load()
191
+ document.body.appendChild(e)
192
+ await initialize()
193
+ document.body.removeChild(e)
194
+ }
195
+ )();
python-app/__init__.py ADDED
File without changes
python-app/bootstrap_dataset.py ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Script to bootstrap a dataset
2
+ # Bootstraping a dataset requires first running an SQL script in BigQuery and downloading the json.
3
+ # A dataset will then be created on the Hub with the initial data. This script will go step-by-step over the creation.
4
+
5
+ import os
6
+ import sys
7
+ from pathlib import Path
8
+ from datasets import Dataset
9
+ from huggingface_hub import dataset_info
10
+
11
+ # Define the library name you'd like to work on.
12
+ from huggingface_hub.utils import RepositoryNotFoundError
13
+
14
+ library_name = input("Library name: ")
15
+ current_dir = Path(__file__).parent
16
+
17
+ if f"{library_name}.csv" not in os.listdir(current_dir / 'csv_files'):
18
+ query = Path(current_dir / 'query.sql').read_text().replace("<PROJECT_NAME>", library_name)
19
+
20
+ print("Open the following link: https://console.cloud.google.com/bigquery?project=huggingface-ml\n")
21
+ print(f"Run the following query:\n\n{query}\n\n")
22
+ print("Press paste the results here (Ctrl+D once pasted): ")
23
+ csv_values = sys.stdin.read()
24
+
25
+ Path(current_dir / f'csv_files/{library_name}.csv').write_text(csv_values)
26
+
27
+ try:
28
+ dataset_info(f'open-source-metrics/{library_name}-pip-installs')
29
+ dataset_exists = True
30
+ except RepositoryNotFoundError:
31
+ dataset_exists = False
32
+
33
+ dataset = Dataset.from_csv(str(current_dir / f'csv_files/{library_name}.csv'), delimiter='\t')
34
+ dataset.push_to_hub(f'open-source-metrics/{library_name}-pip-installs', private=True)
35
+ print("Dataset is pushed to Hub.")
python-app/csv_files/accelerate.csv ADDED
@@ -0,0 +1,551 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ num_downloads day
2
+ 2977 2022-08-04
3
+ 5776 2022-08-03
4
+ 6482 2022-08-02
5
+ 7032 2022-08-01
6
+ 2740 2022-07-31
7
+ 2806 2022-07-30
8
+ 5266 2022-07-29
9
+ 6563 2022-07-28
10
+ 7116 2022-07-27
11
+ 6171 2022-07-26
12
+ 5593 2022-07-25
13
+ 2367 2022-07-24
14
+ 2845 2022-07-23
15
+ 4827 2022-07-22
16
+ 4592 2022-07-21
17
+ 6426 2022-07-20
18
+ 6025 2022-07-19
19
+ 5396 2022-07-18
20
+ 2382 2022-07-17
21
+ 2621 2022-07-16
22
+ 4585 2022-07-15
23
+ 4767 2022-07-14
24
+ 5019 2022-07-13
25
+ 4820 2022-07-12
26
+ 4380 2022-07-11
27
+ 2524 2022-07-10
28
+ 1994 2022-07-09
29
+ 3965 2022-07-08
30
+ 4574 2022-07-07
31
+ 4858 2022-07-06
32
+ 4776 2022-07-05
33
+ 4247 2022-07-04
34
+ 2364 2022-07-03
35
+ 2346 2022-07-02
36
+ 4103 2022-07-01
37
+ 3996 2022-06-30
38
+ 4695 2022-06-29
39
+ 4589 2022-06-28
40
+ 3535 2022-06-27
41
+ 1767 2022-06-26
42
+ 1688 2022-06-25
43
+ 4172 2022-06-24
44
+ 4635 2022-06-23
45
+ 5875 2022-06-22
46
+ 5718 2022-06-21
47
+ 6329 2022-06-20
48
+ 2688 2022-06-19
49
+ 1666 2022-06-18
50
+ 4699 2022-06-17
51
+ 6213 2022-06-16
52
+ 8502 2022-06-15
53
+ 7990 2022-06-14
54
+ 3535 2022-06-13
55
+ 1942 2022-06-12
56
+ 1910 2022-06-11
57
+ 5876 2022-06-10
58
+ 50350 2022-06-09
59
+ 128595 2022-06-08
60
+ 118820 2022-06-07
61
+ 141203 2022-06-06
62
+ 64954 2022-06-05
63
+ 52214 2022-06-04
64
+ 110328 2022-06-03
65
+ 135085 2022-06-02
66
+ 133033 2022-06-01
67
+ 114765 2022-05-31
68
+ 122160 2022-05-30
69
+ 59371 2022-05-29
70
+ 40077 2022-05-28
71
+ 118274 2022-05-27
72
+ 127187 2022-05-26
73
+ 114667 2022-05-25
74
+ 122195 2022-05-24
75
+ 119326 2022-05-23
76
+ 55754 2022-05-22
77
+ 51722 2022-05-21
78
+ 102868 2022-05-20
79
+ 112920 2022-05-19
80
+ 125109 2022-05-18
81
+ 148303 2022-05-17
82
+ 123646 2022-05-16
83
+ 50973 2022-05-15
84
+ 46412 2022-05-14
85
+ 108788 2022-05-13
86
+ 103185 2022-05-12
87
+ 87916 2022-05-11
88
+ 103824 2022-05-10
89
+ 100828 2022-05-09
90
+ 53566 2022-05-08
91
+ 46025 2022-05-07
92
+ 97082 2022-05-06
93
+ 77584 2022-05-05
94
+ 45115 2022-05-04
95
+ 47383 2022-05-03
96
+ 25484 2022-05-02
97
+ 5294 2022-05-01
98
+ 9181 2022-04-30
99
+ 35788 2022-04-29
100
+ 57945 2022-04-28
101
+ 43685 2022-04-27
102
+ 41473 2022-04-26
103
+ 13296 2022-04-25
104
+ 4912 2022-04-24
105
+ 5683 2022-04-23
106
+ 42065 2022-04-22
107
+ 39436 2022-04-21
108
+ 45902 2022-04-20
109
+ 50250 2022-04-19
110
+ 23591 2022-04-18
111
+ 5393 2022-04-17
112
+ 6426 2022-04-16
113
+ 16808 2022-04-15
114
+ 48095 2022-04-14
115
+ 60327 2022-04-13
116
+ 54665 2022-04-12
117
+ 58960 2022-04-11
118
+ 20868 2022-04-10
119
+ 9121 2022-04-09
120
+ 37047 2022-04-08
121
+ 44590 2022-04-07
122
+ 37546 2022-04-06
123
+ 30982 2022-04-05
124
+ 30108 2022-04-04
125
+ 8115 2022-04-03
126
+ 3725 2022-04-02
127
+ 21086 2022-04-01
128
+ 35002 2022-03-31
129
+ 27995 2022-03-30
130
+ 35775 2022-03-29
131
+ 25358 2022-03-28
132
+ 8459 2022-03-27
133
+ 2964 2022-03-26
134
+ 24816 2022-03-25
135
+ 24763 2022-03-24
136
+ 30070 2022-03-23
137
+ 27543 2022-03-22
138
+ 28741 2022-03-21
139
+ 10235 2022-03-20
140
+ 4184 2022-03-19
141
+ 20527 2022-03-18
142
+ 28456 2022-03-17
143
+ 29212 2022-03-16
144
+ 32121 2022-03-15
145
+ 24536 2022-03-14
146
+ 7335 2022-03-13
147
+ 2271 2022-03-12
148
+ 12766 2022-03-11
149
+ 24069 2022-03-10
150
+ 24371 2022-03-09
151
+ 28714 2022-03-08
152
+ 27274 2022-03-07
153
+ 7887 2022-03-06
154
+ 5042 2022-03-05
155
+ 18820 2022-03-04
156
+ 25659 2022-03-03
157
+ 26154 2022-03-02
158
+ 27176 2022-03-01
159
+ 32733 2022-02-28
160
+ 9650 2022-02-27
161
+ 5363 2022-02-26
162
+ 24967 2022-02-25
163
+ 31510 2022-02-24
164
+ 28476 2022-02-23
165
+ 30122 2022-02-22
166
+ 26144 2022-02-21
167
+ 8501 2022-02-20
168
+ 3161 2022-02-19
169
+ 18983 2022-02-18
170
+ 14394 2022-02-17
171
+ 5796 2022-02-16
172
+ 2553 2022-02-15
173
+ 2931 2022-02-14
174
+ 1713 2022-02-13
175
+ 848 2022-02-12
176
+ 1910 2022-02-11
177
+ 2191 2022-02-10
178
+ 2184 2022-02-09
179
+ 2020 2022-02-08
180
+ 1778 2022-02-07
181
+ 1585 2022-02-06
182
+ 1124 2022-02-05
183
+ 1728 2022-02-04
184
+ 1857 2022-02-03
185
+ 2280 2022-02-02
186
+ 1851 2022-02-01
187
+ 2071 2022-01-31
188
+ 1544 2022-01-30
189
+ 894 2022-01-29
190
+ 1458 2022-01-28
191
+ 2011 2022-01-27
192
+ 1652 2022-01-26
193
+ 1744 2022-01-25
194
+ 1510 2022-01-24
195
+ 1155 2022-01-23
196
+ 1082 2022-01-22
197
+ 1744 2022-01-21
198
+ 1661 2022-01-20
199
+ 1959 2022-01-19
200
+ 1986 2022-01-18
201
+ 1842 2022-01-17
202
+ 1073 2022-01-16
203
+ 971 2022-01-15
204
+ 1311 2022-01-14
205
+ 1675 2022-01-13
206
+ 1474 2022-01-12
207
+ 1767 2022-01-11
208
+ 1799 2022-01-10
209
+ 1272 2022-01-09
210
+ 1272 2022-01-08
211
+ 1915 2022-01-07
212
+ 1534 2022-01-06
213
+ 1839 2022-01-05
214
+ 1846 2022-01-04
215
+ 1383 2022-01-03
216
+ 758 2022-01-02
217
+ 540 2022-01-01
218
+ 689 2021-12-31
219
+ 952 2021-12-30
220
+ 1161 2021-12-29
221
+ 1051 2021-12-28
222
+ 1113 2021-12-27
223
+ 805 2021-12-26
224
+ 617 2021-12-25
225
+ 760 2021-12-24
226
+ 1365 2021-12-23
227
+ 1262 2021-12-22
228
+ 1539 2021-12-21
229
+ 1315 2021-12-20
230
+ 887 2021-12-19
231
+ 750 2021-12-18
232
+ 1060 2021-12-17
233
+ 1779 2021-12-16
234
+ 1669 2021-12-15
235
+ 1616 2021-12-14
236
+ 1777 2021-12-13
237
+ 1504 2021-12-12
238
+ 1093 2021-12-11
239
+ 1312 2021-12-10
240
+ 2431 2021-12-09
241
+ 2034 2021-12-08
242
+ 1830 2021-12-07
243
+ 2211 2021-12-06
244
+ 1358 2021-12-05
245
+ 1014 2021-12-04
246
+ 1796 2021-12-03
247
+ 1636 2021-12-02
248
+ 1856 2021-12-01
249
+ 2475 2021-11-30
250
+ 2149 2021-11-29
251
+ 804 2021-11-28
252
+ 1045 2021-11-27
253
+ 1604 2021-11-26
254
+ 2320 2021-11-25
255
+ 2829 2021-11-24
256
+ 2398 2021-11-23
257
+ 2171 2021-11-22
258
+ 1004 2021-11-21
259
+ 1447 2021-11-20
260
+ 2280 2021-11-19
261
+ 3213 2021-11-18
262
+ 2560 2021-11-17
263
+ 3430 2021-11-16
264
+ 2323 2021-11-15
265
+ 1401 2021-11-14
266
+ 2088 2021-11-13
267
+ 3097 2021-11-12
268
+ 2295 2021-11-11
269
+ 2743 2021-11-10
270
+ 2743 2021-11-09
271
+ 2031 2021-11-08
272
+ 1062 2021-11-07
273
+ 1241 2021-11-06
274
+ 2230 2021-11-05
275
+ 2175 2021-11-04
276
+ 2391 2021-11-03
277
+ 2647 2021-11-02
278
+ 1716 2021-11-01
279
+ 1133 2021-10-31
280
+ 1381 2021-10-30
281
+ 2366 2021-10-29
282
+ 2548 2021-10-28
283
+ 2402 2021-10-27
284
+ 2636 2021-10-26
285
+ 2841 2021-10-25
286
+ 1398 2021-10-24
287
+ 1298 2021-10-23
288
+ 3068 2021-10-22
289
+ 3842 2021-10-21
290
+ 3144 2021-10-20
291
+ 2871 2021-10-19
292
+ 2590 2021-10-18
293
+ 2113 2021-10-17
294
+ 1190 2021-10-16
295
+ 2061 2021-10-15
296
+ 2240 2021-10-14
297
+ 2776 2021-10-13
298
+ 2876 2021-10-12
299
+ 2272 2021-10-11
300
+ 1856 2021-10-10
301
+ 1775 2021-10-09
302
+ 2496 2021-10-08
303
+ 2296 2021-10-07
304
+ 1828 2021-10-06
305
+ 1964 2021-10-05
306
+ 1311 2021-10-04
307
+ 1150 2021-10-03
308
+ 1621 2021-10-02
309
+ 1870 2021-10-01
310
+ 1893 2021-09-30
311
+ 1830 2021-09-29
312
+ 2549 2021-09-28
313
+ 1783 2021-09-27
314
+ 804 2021-09-26
315
+ 1170 2021-09-25
316
+ 2028 2021-09-24
317
+ 1958 2021-09-23
318
+ 1572 2021-09-22
319
+ 980 2021-09-21
320
+ 997 2021-09-20
321
+ 445 2021-09-19
322
+ 706 2021-09-18
323
+ 1872 2021-09-17
324
+ 1682 2021-09-16
325
+ 2140 2021-09-15
326
+ 1950 2021-09-14
327
+ 1504 2021-09-13
328
+ 349 2021-09-12
329
+ 617 2021-09-11
330
+ 1335 2021-09-10
331
+ 1385 2021-09-09
332
+ 1389 2021-09-08
333
+ 973 2021-09-07
334
+ 888 2021-09-06
335
+ 338 2021-09-05
336
+ 530 2021-09-04
337
+ 1575 2021-09-03
338
+ 1379 2021-09-02
339
+ 1209 2021-09-01
340
+ 1615 2021-08-31
341
+ 1269 2021-08-30
342
+ 433 2021-08-29
343
+ 834 2021-08-28
344
+ 1453 2021-08-27
345
+ 1275 2021-08-26
346
+ 1260 2021-08-25
347
+ 1425 2021-08-24
348
+ 1087 2021-08-23
349
+ 253 2021-08-22
350
+ 722 2021-08-21
351
+ 1463 2021-08-20
352
+ 1516 2021-08-19
353
+ 1565 2021-08-18
354
+ 1472 2021-08-17
355
+ 1448 2021-08-16
356
+ 647 2021-08-15
357
+ 409 2021-08-14
358
+ 1207 2021-08-13
359
+ 1402 2021-08-12
360
+ 1428 2021-08-11
361
+ 1205 2021-08-10
362
+ 779 2021-08-09
363
+ 306 2021-08-08
364
+ 338 2021-08-07
365
+ 1225 2021-08-06
366
+ 1882 2021-08-05
367
+ 1313 2021-08-04
368
+ 1100 2021-08-03
369
+ 538 2021-08-02
370
+ 379 2021-08-01
371
+ 442 2021-07-31
372
+ 894 2021-07-30
373
+ 1143 2021-07-29
374
+ 436 2021-07-28
375
+ 461 2021-07-27
376
+ 531 2021-07-26
377
+ 361 2021-07-25
378
+ 410 2021-07-24
379
+ 505 2021-07-23
380
+ 670 2021-07-22
381
+ 548 2021-07-21
382
+ 579 2021-07-20
383
+ 490 2021-07-19
384
+ 434 2021-07-18
385
+ 335 2021-07-17
386
+ 425 2021-07-16
387
+ 469 2021-07-15
388
+ 343 2021-07-14
389
+ 505 2021-07-13
390
+ 506 2021-07-12
391
+ 302 2021-07-11
392
+ 335 2021-07-10
393
+ 732 2021-07-09
394
+ 501 2021-07-08
395
+ 609 2021-07-07
396
+ 539 2021-07-06
397
+ 465 2021-07-05
398
+ 496 2021-07-04
399
+ 444 2021-07-03
400
+ 413 2021-07-02
401
+ 532 2021-07-01
402
+ 460 2021-06-30
403
+ 547 2021-06-29
404
+ 586 2021-06-28
405
+ 369 2021-06-27
406
+ 615 2021-06-26
407
+ 491 2021-06-25
408
+ 520 2021-06-24
409
+ 533 2021-06-23
410
+ 775 2021-06-22
411
+ 540 2021-06-21
412
+ 333 2021-06-20
413
+ 254 2021-06-19
414
+ 415 2021-06-18
415
+ 571 2021-06-17
416
+ 342 2021-06-16
417
+ 344 2021-06-15
418
+ 326 2021-06-14
419
+ 285 2021-06-13
420
+ 290 2021-06-12
421
+ 278 2021-06-11
422
+ 387 2021-06-10
423
+ 357 2021-06-09
424
+ 376 2021-06-08
425
+ 386 2021-06-07
426
+ 255 2021-06-06
427
+ 261 2021-06-05
428
+ 340 2021-06-04
429
+ 341 2021-06-03
430
+ 292 2021-06-02
431
+ 348 2021-06-01
432
+ 381 2021-05-31
433
+ 274 2021-05-30
434
+ 293 2021-05-29
435
+ 341 2021-05-28
436
+ 419 2021-05-27
437
+ 386 2021-05-26
438
+ 348 2021-05-25
439
+ 295 2021-05-24
440
+ 222 2021-05-23
441
+ 168 2021-05-22
442
+ 1368 2021-05-21
443
+ 1459 2021-05-20
444
+ 1249 2021-05-19
445
+ 1147 2021-05-18
446
+ 933 2021-05-17
447
+ 767 2021-05-16
448
+ 716 2021-05-15
449
+ 627 2021-05-14
450
+ 599 2021-05-13
451
+ 677 2021-05-12
452
+ 625 2021-05-11
453
+ 588 2021-05-10
454
+ 440 2021-05-09
455
+ 368 2021-05-08
456
+ 455 2021-05-07
457
+ 503 2021-05-06
458
+ 431 2021-05-05
459
+ 399 2021-05-04
460
+ 409 2021-05-03
461
+ 295 2021-05-02
462
+ 339 2021-05-01
463
+ 323 2021-04-30
464
+ 342 2021-04-29
465
+ 167 2021-04-28
466
+ 196 2021-04-27
467
+ 237 2021-04-26
468
+ 155 2021-04-25
469
+ 117 2021-04-24
470
+ 144 2021-04-23
471
+ 151 2021-04-22
472
+ 166 2021-04-21
473
+ 230 2021-04-20
474
+ 202 2021-04-19
475
+ 81 2021-04-18
476
+ 89 2021-04-17
477
+ 128 2021-04-16
478
+ 164 2021-04-15
479
+ 52 2021-04-14
480
+ 38 2021-04-13
481
+ 47 2021-04-12
482
+ 44 2021-04-11
483
+ 33 2021-04-10
484
+ 49 2021-04-09
485
+ 58 2021-04-08
486
+ 41 2021-04-07
487
+ 37 2021-04-06
488
+ 41 2021-04-05
489
+ 18 2021-04-04
490
+ 24 2021-04-03
491
+ 36 2021-04-02
492
+ 24 2021-04-01
493
+ 54 2021-03-31
494
+ 41 2021-03-30
495
+ 32 2021-03-29
496
+ 34 2021-03-28
497
+ 33 2021-03-27
498
+ 46 2021-03-26
499
+ 47 2021-03-25
500
+ 65 2021-03-24
501
+ 56 2021-03-23
502
+ 50 2021-03-22
503
+ 30 2021-03-21
504
+ 40 2021-03-20
505
+ 41 2021-03-19
506
+ 46 2021-03-18
507
+ 29 2021-03-17
508
+ 61 2021-03-16
509
+ 27 2021-03-15
510
+ 14 2021-03-14
511
+ 26 2021-03-13
512
+ 39 2021-03-12
513
+ 33 2021-03-11
514
+ 23 2021-03-10
515
+ 52 2021-03-09
516
+ 49 2021-03-08
517
+ 43 2021-03-07
518
+ 100 2021-03-06
519
+ 96 2021-03-05
520
+ 21 2021-03-04
521
+ 14 2021-03-03
522
+ 9 2021-03-02
523
+ 11 2021-03-01
524
+ 9 2021-02-28
525
+ 4 2021-02-27
526
+ 10 2021-02-26
527
+ 11 2021-02-25
528
+ 13 2021-02-24
529
+ 7 2021-02-23
530
+ 14 2021-02-22
531
+ 6 2021-02-21
532
+ 5 2021-02-20
533
+ 18 2021-02-19
534
+ 7 2021-02-18
535
+ 10 2021-02-17
536
+ 13 2021-02-16
537
+ 7 2021-02-15
538
+ 9 2021-02-14
539
+ 7 2021-02-13
540
+ 7 2021-02-12
541
+ 9 2021-02-11
542
+ 7 2021-02-10
543
+ 8 2021-02-09
544
+ 3 2021-02-08
545
+ 14 2021-02-07
546
+ 5 2021-02-06
547
+ 10 2021-02-05
548
+ 14 2021-02-04
549
+ 12 2021-02-03
550
+ 20 2021-02-02
551
+ 11 2021-02-01
python-app/csv_files/datasets.csv ADDED
@@ -0,0 +1,551 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ num_downloads day
2
+ 21125 2022-08-04
3
+ 41804 2022-08-03
4
+ 41561 2022-08-02
5
+ 43563 2022-08-01
6
+ 24054 2022-07-31
7
+ 23804 2022-07-30
8
+ 47106 2022-07-29
9
+ 43712 2022-07-28
10
+ 46518 2022-07-27
11
+ 48133 2022-07-26
12
+ 46398 2022-07-25
13
+ 34344 2022-07-24
14
+ 28816 2022-07-23
15
+ 44057 2022-07-22
16
+ 66381 2022-07-21
17
+ 45408 2022-07-20
18
+ 46972 2022-07-19
19
+ 37726 2022-07-18
20
+ 24687 2022-07-17
21
+ 24576 2022-07-16
22
+ 43406 2022-07-15
23
+ 38242 2022-07-14
24
+ 35658 2022-07-13
25
+ 34205 2022-07-12
26
+ 35716 2022-07-11
27
+ 22274 2022-07-10
28
+ 23916 2022-07-09
29
+ 44773 2022-07-08
30
+ 38301 2022-07-07
31
+ 45126 2022-07-06
32
+ 37620 2022-07-05
33
+ 27025 2022-07-04
34
+ 23088 2022-07-03
35
+ 16716 2022-07-02
36
+ 47527 2022-07-01
37
+ 34799 2022-06-30
38
+ 35877 2022-06-29
39
+ 36659 2022-06-28
40
+ 32885 2022-06-27
41
+ 19018 2022-06-26
42
+ 21669 2022-06-25
43
+ 44491 2022-06-24
44
+ 35883 2022-06-23
45
+ 34444 2022-06-22
46
+ 33157 2022-06-21
47
+ 31270 2022-06-20
48
+ 20285 2022-06-19
49
+ 18942 2022-06-18
50
+ 35509 2022-06-17
51
+ 34888 2022-06-16
52
+ 37455 2022-06-15
53
+ 37721 2022-06-14
54
+ 36206 2022-06-13
55
+ 23383 2022-06-12
56
+ 26803 2022-06-11
57
+ 51402 2022-06-10
58
+ 36819 2022-06-09
59
+ 36694 2022-06-08
60
+ 35462 2022-06-07
61
+ 32573 2022-06-06
62
+ 21805 2022-06-05
63
+ 21907 2022-06-04
64
+ 35359 2022-06-03
65
+ 36991 2022-06-02
66
+ 35612 2022-06-01
67
+ 32633 2022-05-31
68
+ 28580 2022-05-30
69
+ 21630 2022-05-29
70
+ 23190 2022-05-28
71
+ 41038 2022-05-27
72
+ 53578 2022-05-26
73
+ 38604 2022-05-25
74
+ 41654 2022-05-24
75
+ 35401 2022-05-23
76
+ 19036 2022-05-22
77
+ 17678 2022-05-21
78
+ 37038 2022-05-20
79
+ 33408 2022-05-19
80
+ 36201 2022-05-18
81
+ 34250 2022-05-17
82
+ 31422 2022-05-16
83
+ 19382 2022-05-15
84
+ 19925 2022-05-14
85
+ 35571 2022-05-13
86
+ 33715 2022-05-12
87
+ 34479 2022-05-11
88
+ 53093 2022-05-10
89
+ 42337 2022-05-09
90
+ 18145 2022-05-08
91
+ 18195 2022-05-07
92
+ 29596 2022-05-06
93
+ 31573 2022-05-05
94
+ 32107 2022-05-04
95
+ 32436 2022-05-03
96
+ 27857 2022-05-02
97
+ 16879 2022-05-01
98
+ 18220 2022-04-30
99
+ 30475 2022-04-29
100
+ 32988 2022-04-28
101
+ 32303 2022-04-27
102
+ 35443 2022-04-26
103
+ 35204 2022-04-25
104
+ 18733 2022-04-24
105
+ 16995 2022-04-23
106
+ 28982 2022-04-22
107
+ 29398 2022-04-21
108
+ 31764 2022-04-20
109
+ 31426 2022-04-19
110
+ 28114 2022-04-18
111
+ 16008 2022-04-17
112
+ 17448 2022-04-16
113
+ 25670 2022-04-15
114
+ 57535 2022-04-14
115
+ 60042 2022-04-13
116
+ 34869 2022-04-12
117
+ 29951 2022-04-11
118
+ 20387 2022-04-10
119
+ 13912 2022-04-09
120
+ 36956 2022-04-08
121
+ 48617 2022-04-07
122
+ 43724 2022-04-06
123
+ 28888 2022-04-05
124
+ 30521 2022-04-04
125
+ 16825 2022-04-03
126
+ 14161 2022-04-02
127
+ 28102 2022-04-01
128
+ 35855 2022-03-31
129
+ 58397 2022-03-30
130
+ 41682 2022-03-29
131
+ 33187 2022-03-28
132
+ 19043 2022-03-27
133
+ 15826 2022-03-26
134
+ 44371 2022-03-25
135
+ 42433 2022-03-24
136
+ 37594 2022-03-23
137
+ 39167 2022-03-22
138
+ 28817 2022-03-21
139
+ 16302 2022-03-20
140
+ 16953 2022-03-19
141
+ 118664 2022-03-18
142
+ 119247 2022-03-17
143
+ 117771 2022-03-16
144
+ 63445 2022-03-15
145
+ 32950 2022-03-14
146
+ 14668 2022-03-13
147
+ 14981 2022-03-12
148
+ 30715 2022-03-11
149
+ 31652 2022-03-10
150
+ 28351 2022-03-09
151
+ 27665 2022-03-08
152
+ 24129 2022-03-07
153
+ 11821 2022-03-06
154
+ 11758 2022-03-05
155
+ 23870 2022-03-04
156
+ 24726 2022-03-03
157
+ 28605 2022-03-02
158
+ 25509 2022-03-01
159
+ 23412 2022-02-28
160
+ 12744 2022-02-27
161
+ 12632 2022-02-26
162
+ 23605 2022-02-25
163
+ 26608 2022-02-24
164
+ 27561 2022-02-23
165
+ 27156 2022-02-22
166
+ 24928 2022-02-21
167
+ 13091 2022-02-20
168
+ 13710 2022-02-19
169
+ 23044 2022-02-18
170
+ 24816 2022-02-17
171
+ 24390 2022-02-16
172
+ 27429 2022-02-15
173
+ 24878 2022-02-14
174
+ 12107 2022-02-13
175
+ 12444 2022-02-12
176
+ 23097 2022-02-11
177
+ 25499 2022-02-10
178
+ 30547 2022-02-09
179
+ 32984 2022-02-08
180
+ 22724 2022-02-07
181
+ 12108 2022-02-06
182
+ 11445 2022-02-05
183
+ 22677 2022-02-04
184
+ 23948 2022-02-03
185
+ 22489 2022-02-02
186
+ 22845 2022-02-01
187
+ 21089 2022-01-31
188
+ 11242 2022-01-30
189
+ 11913 2022-01-29
190
+ 19765 2022-01-28
191
+ 20808 2022-01-27
192
+ 19158 2022-01-26
193
+ 20911 2022-01-25
194
+ 21590 2022-01-24
195
+ 10295 2022-01-23
196
+ 10748 2022-01-22
197
+ 19413 2022-01-21
198
+ 24279 2022-01-20
199
+ 24545 2022-01-19
200
+ 20183 2022-01-18
201
+ 18169 2022-01-17
202
+ 10705 2022-01-16
203
+ 11208 2022-01-15
204
+ 19037 2022-01-14
205
+ 22732 2022-01-13
206
+ 22382 2022-01-12
207
+ 21955 2022-01-11
208
+ 20436 2022-01-10
209
+ 10050 2022-01-09
210
+ 9853 2022-01-08
211
+ 21360 2022-01-07
212
+ 19490 2022-01-06
213
+ 20702 2022-01-05
214
+ 19001 2022-01-04
215
+ 15272 2022-01-03
216
+ 7873 2022-01-02
217
+ 6708 2022-01-01
218
+ 9171 2021-12-31
219
+ 14668 2021-12-30
220
+ 15949 2021-12-29
221
+ 13539 2021-12-28
222
+ 13837 2021-12-27
223
+ 8319 2021-12-26
224
+ 7221 2021-12-25
225
+ 11723 2021-12-24
226
+ 17528 2021-12-23
227
+ 17365 2021-12-22
228
+ 18225 2021-12-21
229
+ 20167 2021-12-20
230
+ 8440 2021-12-19
231
+ 8521 2021-12-18
232
+ 16635 2021-12-17
233
+ 19525 2021-12-16
234
+ 25509 2021-12-15
235
+ 18440 2021-12-14
236
+ 19470 2021-12-13
237
+ 9822 2021-12-12
238
+ 9355 2021-12-11
239
+ 18138 2021-12-10
240
+ 20994 2021-12-09
241
+ 22500 2021-12-08
242
+ 21706 2021-12-07
243
+ 25826 2021-12-06
244
+ 11782 2021-12-05
245
+ 11182 2021-12-04
246
+ 24456 2021-12-03
247
+ 23639 2021-12-02
248
+ 22299 2021-12-01
249
+ 21826 2021-11-30
250
+ 21452 2021-11-29
251
+ 12876 2021-11-28
252
+ 9074 2021-11-27
253
+ 16870 2021-11-26
254
+ 18881 2021-11-25
255
+ 19164 2021-11-24
256
+ 22096 2021-11-23
257
+ 19000 2021-11-22
258
+ 9335 2021-11-21
259
+ 10249 2021-11-20
260
+ 17941 2021-11-19
261
+ 20369 2021-11-18
262
+ 19243 2021-11-17
263
+ 21066 2021-11-16
264
+ 20295 2021-11-15
265
+ 11046 2021-11-14
266
+ 13979 2021-11-13
267
+ 21895 2021-11-12
268
+ 19614 2021-11-11
269
+ 19576 2021-11-10
270
+ 19147 2021-11-09
271
+ 17105 2021-11-08
272
+ 9095 2021-11-07
273
+ 9490 2021-11-06
274
+ 19014 2021-11-05
275
+ 18910 2021-11-04
276
+ 24062 2021-11-03
277
+ 29077 2021-11-02
278
+ 16353 2021-11-01
279
+ 10606 2021-10-31
280
+ 14452 2021-10-30
281
+ 18838 2021-10-29
282
+ 18609 2021-10-28
283
+ 18762 2021-10-27
284
+ 18764 2021-10-26
285
+ 21908 2021-10-25
286
+ 8271 2021-10-24
287
+ 8071 2021-10-23
288
+ 21336 2021-10-22
289
+ 21419 2021-10-21
290
+ 24397 2021-10-20
291
+ 20697 2021-10-19
292
+ 15032 2021-10-18
293
+ 9678 2021-10-17
294
+ 8432 2021-10-16
295
+ 13499 2021-10-15
296
+ 16226 2021-10-14
297
+ 20079 2021-10-13
298
+ 15411 2021-10-12
299
+ 12981 2021-10-11
300
+ 14276 2021-10-10
301
+ 10563 2021-10-09
302
+ 15967 2021-10-08
303
+ 16257 2021-10-07
304
+ 15136 2021-10-06
305
+ 18830 2021-10-05
306
+ 14401 2021-10-04
307
+ 14812 2021-10-03
308
+ 14051 2021-10-02
309
+ 14250 2021-10-01
310
+ 12169 2021-09-30
311
+ 13713 2021-09-29
312
+ 14816 2021-09-28
313
+ 26008 2021-09-27
314
+ 29448 2021-09-26
315
+ 25602 2021-09-25
316
+ 14330 2021-09-24
317
+ 28304 2021-09-23
318
+ 21690 2021-09-22
319
+ 16732 2021-09-21
320
+ 17275 2021-09-20
321
+ 12494 2021-09-19
322
+ 7818 2021-09-18
323
+ 15398 2021-09-17
324
+ 17335 2021-09-16
325
+ 15133 2021-09-15
326
+ 15184 2021-09-14
327
+ 12283 2021-09-13
328
+ 7675 2021-09-12
329
+ 6049 2021-09-11
330
+ 10972 2021-09-10
331
+ 12498 2021-09-09
332
+ 11388 2021-09-08
333
+ 9800 2021-09-07
334
+ 8112 2021-09-06
335
+ 9051 2021-09-05
336
+ 4637 2021-09-04
337
+ 10333 2021-09-03
338
+ 12816 2021-09-02
339
+ 13066 2021-09-01
340
+ 12548 2021-08-31
341
+ 14263 2021-08-30
342
+ 9465 2021-08-29
343
+ 7543 2021-08-28
344
+ 11692 2021-08-27
345
+ 12274 2021-08-26
346
+ 15385 2021-08-25
347
+ 13336 2021-08-24
348
+ 10004 2021-08-23
349
+ 7005 2021-08-22
350
+ 8548 2021-08-21
351
+ 16768 2021-08-20
352
+ 14089 2021-08-19
353
+ 19066 2021-08-18
354
+ 23082 2021-08-17
355
+ 19089 2021-08-16
356
+ 14069 2021-08-15
357
+ 12037 2021-08-14
358
+ 15785 2021-08-13
359
+ 15203 2021-08-12
360
+ 17904 2021-08-11
361
+ 16836 2021-08-10
362
+ 21936 2021-08-09
363
+ 25039 2021-08-08
364
+ 13413 2021-08-07
365
+ 13626 2021-08-06
366
+ 13136 2021-08-05
367
+ 16420 2021-08-04
368
+ 12719 2021-08-03
369
+ 8838 2021-08-02
370
+ 8102 2021-08-01
371
+ 6074 2021-07-31
372
+ 10721 2021-07-30
373
+ 11460 2021-07-29
374
+ 12253 2021-07-28
375
+ 13145 2021-07-27
376
+ 11079 2021-07-26
377
+ 5498 2021-07-25
378
+ 4864 2021-07-24
379
+ 8294 2021-07-23
380
+ 10154 2021-07-22
381
+ 9509 2021-07-21
382
+ 8762 2021-07-20
383
+ 10966 2021-07-19
384
+ 5916 2021-07-18
385
+ 9174 2021-07-17
386
+ 10093 2021-07-16
387
+ 12319 2021-07-15
388
+ 10356 2021-07-14
389
+ 9443 2021-07-13
390
+ 8538 2021-07-12
391
+ 4361 2021-07-11
392
+ 3893 2021-07-10
393
+ 9167 2021-07-09
394
+ 9752 2021-07-08
395
+ 9117 2021-07-07
396
+ 12485 2021-07-06
397
+ 12669 2021-07-05
398
+ 5473 2021-07-04
399
+ 5559 2021-07-03
400
+ 7256 2021-07-02
401
+ 7830 2021-07-01
402
+ 13607 2021-06-30
403
+ 14093 2021-06-29
404
+ 11946 2021-06-28
405
+ 4986 2021-06-27
406
+ 3367 2021-06-26
407
+ 9204 2021-06-25
408
+ 8029 2021-06-24
409
+ 10025 2021-06-23
410
+ 9858 2021-06-22
411
+ 7134 2021-06-21
412
+ 3396 2021-06-20
413
+ 3486 2021-06-19
414
+ 6935 2021-06-18
415
+ 8645 2021-06-17
416
+ 11427 2021-06-16
417
+ 9542 2021-06-15
418
+ 6466 2021-06-14
419
+ 3681 2021-06-13
420
+ 3887 2021-06-12
421
+ 10175 2021-06-11
422
+ 8675 2021-06-10
423
+ 8709 2021-06-09
424
+ 12074 2021-06-08
425
+ 6589 2021-06-07
426
+ 2646 2021-06-06
427
+ 3459 2021-06-05
428
+ 7401 2021-06-04
429
+ 7372 2021-06-03
430
+ 6780 2021-06-02
431
+ 5931 2021-06-01
432
+ 5166 2021-05-31
433
+ 2876 2021-05-30
434
+ 3213 2021-05-29
435
+ 5718 2021-05-28
436
+ 6430 2021-05-27
437
+ 6752 2021-05-26
438
+ 6657 2021-05-25
439
+ 6481 2021-05-24
440
+ 2662 2021-05-23
441
+ 2778 2021-05-22
442
+ 5293 2021-05-21
443
+ 5874 2021-05-20
444
+ 6911 2021-05-19
445
+ 6249 2021-05-18
446
+ 5707 2021-05-17
447
+ 2957 2021-05-16
448
+ 3103 2021-05-15
449
+ 5392 2021-05-14
450
+ 5418 2021-05-13
451
+ 7186 2021-05-12
452
+ 5798 2021-05-11
453
+ 5246 2021-05-10
454
+ 2876 2021-05-09
455
+ 3049 2021-05-08
456
+ 5282 2021-05-07
457
+ 5592 2021-05-06
458
+ 6118 2021-05-05
459
+ 5187 2021-05-04
460
+ 6008 2021-05-03
461
+ 3638 2021-05-02
462
+ 3755 2021-05-01
463
+ 5298 2021-04-30
464
+ 5156 2021-04-29
465
+ 5294 2021-04-28
466
+ 5370 2021-04-27
467
+ 5279 2021-04-26
468
+ 3283 2021-04-25
469
+ 2924 2021-04-24
470
+ 5343 2021-04-23
471
+ 5818 2021-04-22
472
+ 6891 2021-04-21
473
+ 5205 2021-04-20
474
+ 4009 2021-04-19
475
+ 2237 2021-04-18
476
+ 2654 2021-04-17
477
+ 4715 2021-04-16
478
+ 4269 2021-04-15
479
+ 4855 2021-04-14
480
+ 5318 2021-04-13
481
+ 4265 2021-04-12
482
+ 2259 2021-04-11
483
+ 2290 2021-04-10
484
+ 3848 2021-04-09
485
+ 4138 2021-04-08
486
+ 4501 2021-04-07
487
+ 3823 2021-04-06
488
+ 4113 2021-04-05
489
+ 2400 2021-04-04
490
+ 2744 2021-04-03
491
+ 2951 2021-04-02
492
+ 4466 2021-04-01
493
+ 4457 2021-03-31
494
+ 3881 2021-03-30
495
+ 3996 2021-03-29
496
+ 2160 2021-03-28
497
+ 2073 2021-03-27
498
+ 3330 2021-03-26
499
+ 4162 2021-03-25
500
+ 4138 2021-03-24
501
+ 4020 2021-03-23
502
+ 4218 2021-03-22
503
+ 2030 2021-03-21
504
+ 2019 2021-03-20
505
+ 3140 2021-03-19
506
+ 3452 2021-03-18
507
+ 3052 2021-03-17
508
+ 2985 2021-03-16
509
+ 2575 2021-03-15
510
+ 1518 2021-03-14
511
+ 1535 2021-03-13
512
+ 2895 2021-03-12
513
+ 2919 2021-03-11
514
+ 3220 2021-03-10
515
+ 3386 2021-03-09
516
+ 3014 2021-03-08
517
+ 1288 2021-03-07
518
+ 1358 2021-03-06
519
+ 2845 2021-03-05
520
+ 3190 2021-03-04
521
+ 2756 2021-03-03
522
+ 2454 2021-03-02
523
+ 2610 2021-03-01
524
+ 1457 2021-02-28
525
+ 1706 2021-02-27
526
+ 2170 2021-02-26
527
+ 2531 2021-02-25
528
+ 2304 2021-02-24
529
+ 2551 2021-02-23
530
+ 2333 2021-02-22
531
+ 1316 2021-02-21
532
+ 1475 2021-02-20
533
+ 2336 2021-02-19
534
+ 2554 2021-02-18
535
+ 2573 2021-02-17
536
+ 2755 2021-02-16
537
+ 2267 2021-02-15
538
+ 1341 2021-02-14
539
+ 1158 2021-02-13
540
+ 1675 2021-02-12
541
+ 1782 2021-02-11
542
+ 2002 2021-02-10
543
+ 1949 2021-02-09
544
+ 2049 2021-02-08
545
+ 981 2021-02-07
546
+ 1053 2021-02-06
547
+ 1550 2021-02-05
548
+ 1916 2021-02-04
549
+ 2067 2021-02-03
550
+ 2108 2021-02-02
551
+ 2469 2021-02-01
python-app/csv_files/evaluate.csv ADDED
@@ -0,0 +1,186 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ num_downloads,day
2
+ 223,2022-08-04
3
+ 1067,2022-08-03
4
+ 1157,2022-08-02
5
+ 1089,2022-08-01
6
+ 346,2022-07-31
7
+ 414,2022-07-30
8
+ 1111,2022-07-29
9
+ 812,2022-07-28
10
+ 862,2022-07-27
11
+ 724,2022-07-26
12
+ 557,2022-07-25
13
+ 183,2022-07-24
14
+ 173,2022-07-23
15
+ 496,2022-07-22
16
+ 556,2022-07-21
17
+ 400,2022-07-20
18
+ 489,2022-07-19
19
+ 416,2022-07-18
20
+ 130,2022-07-17
21
+ 134,2022-07-16
22
+ 340,2022-07-15
23
+ 286,2022-07-14
24
+ 344,2022-07-13
25
+ 317,2022-07-12
26
+ 265,2022-07-11
27
+ 146,2022-07-10
28
+ 166,2022-07-09
29
+ 443,2022-07-08
30
+ 465,2022-07-07
31
+ 433,2022-07-06
32
+ 394,2022-07-05
33
+ 212,2022-07-04
34
+ 180,2022-07-03
35
+ 136,2022-07-02
36
+ 201,2022-07-01
37
+ 463,2022-06-30
38
+ 242,2022-06-29
39
+ 282,2022-06-28
40
+ 195,2022-06-27
41
+ 100,2022-06-26
42
+ 110,2022-06-25
43
+ 230,2022-06-24
44
+ 292,2022-06-23
45
+ 246,2022-06-22
46
+ 287,2022-06-21
47
+ 167,2022-06-20
48
+ 74,2022-06-19
49
+ 132,2022-06-18
50
+ 220,2022-06-17
51
+ 310,2022-06-16
52
+ 189,2022-06-15
53
+ 183,2022-06-14
54
+ 173,2022-06-13
55
+ 84,2022-06-12
56
+ 129,2022-06-11
57
+ 175,2022-06-10
58
+ 204,2022-06-09
59
+ 341,2022-06-08
60
+ 123,2022-06-07
61
+ 115,2022-06-06
62
+ 58,2022-06-05
63
+ 59,2022-06-04
64
+ 244,2022-06-03
65
+ 135,2022-06-02
66
+ 243,2022-06-01
67
+ 214,2022-05-31
68
+ 7,2022-05-30
69
+ 19,2022-05-29
70
+ 7,2022-05-28
71
+ 29,2022-05-27
72
+ 10,2022-05-26
73
+ 20,2022-05-25
74
+ 13,2022-05-24
75
+ 23,2022-05-23
76
+ 9,2022-05-22
77
+ 13,2022-05-21
78
+ 9,2022-05-20
79
+ 12,2022-05-19
80
+ 14,2022-05-18
81
+ 27,2022-05-17
82
+ 20,2022-05-16
83
+ 6,2022-05-15
84
+ 13,2022-05-14
85
+ 12,2022-05-13
86
+ 15,2022-05-12
87
+ 21,2022-05-11
88
+ 23,2022-05-10
89
+ 14,2022-05-09
90
+ 11,2022-05-08
91
+ 13,2022-05-07
92
+ 24,2022-05-06
93
+ 23,2022-05-05
94
+ 20,2022-05-04
95
+ 17,2022-05-03
96
+ 7,2022-05-02
97
+ 10,2022-05-01
98
+ 5,2022-04-30
99
+ 15,2022-04-29
100
+ 12,2022-04-28
101
+ 17,2022-04-27
102
+ 16,2022-04-26
103
+ 13,2022-04-25
104
+ 8,2022-04-24
105
+ 13,2022-04-23
106
+ 20,2022-04-22
107
+ 11,2022-04-21
108
+ 23,2022-04-20
109
+ 14,2022-04-19
110
+ 11,2022-04-18
111
+ 11,2022-04-17
112
+ 17,2022-04-16
113
+ 14,2022-04-15
114
+ 10,2022-04-14
115
+ 10,2022-04-13
116
+ 26,2022-04-12
117
+ 18,2022-04-11
118
+ 23,2022-04-10
119
+ 4,2022-04-09
120
+ 21,2022-04-08
121
+ 16,2022-04-07
122
+ 32,2022-04-06
123
+ 26,2022-04-05
124
+ 17,2022-04-04
125
+ 11,2022-04-03
126
+ 12,2022-04-02
127
+ 28,2022-04-01
128
+ 11,2022-03-31
129
+ 15,2022-03-30
130
+ 23,2022-03-29
131
+ 30,2022-03-28
132
+ 11,2022-03-27
133
+ 16,2022-03-26
134
+ 21,2022-03-25
135
+ 39,2022-03-24
136
+ 29,2022-03-23
137
+ 39,2022-03-22
138
+ 24,2022-03-21
139
+ 15,2022-03-20
140
+ 16,2022-03-19
141
+ 10,2022-03-18
142
+ 14,2022-03-17
143
+ 13,2022-03-16
144
+ 18,2022-03-15
145
+ 18,2022-03-14
146
+ 16,2022-03-13
147
+ 13,2022-03-12
148
+ 30,2022-03-11
149
+ 31,2022-03-10
150
+ 48,2022-03-09
151
+ 31,2022-03-08
152
+ 26,2022-03-07
153
+ 37,2022-03-06
154
+ 26,2022-03-05
155
+ 44,2022-03-04
156
+ 22,2022-03-03
157
+ 18,2022-03-02
158
+ 13,2022-03-01
159
+ 12,2022-02-28
160
+ 20,2022-02-27
161
+ 11,2022-02-26
162
+ 17,2022-02-25
163
+ 23,2022-02-24
164
+ 31,2022-02-23
165
+ 14,2022-02-22
166
+ 20,2022-02-21
167
+ 38,2022-02-20
168
+ 15,2022-02-19
169
+ 18,2022-02-18
170
+ 11,2022-02-17
171
+ 4,2022-02-16
172
+ 14,2022-02-15
173
+ 11,2022-02-14
174
+ 9,2022-02-13
175
+ 5,2022-02-12
176
+ 23,2022-02-11
177
+ 22,2022-02-10
178
+ 21,2022-02-09
179
+ 7,2022-02-08
180
+ 16,2022-02-07
181
+ 14,2022-02-06
182
+ 9,2022-02-05
183
+ 11,2022-02-04
184
+ 17,2022-02-03
185
+ 6,2022-02-02
186
+ 14,2022-02-01
python-app/csv_files/optimum.csv ADDED
@@ -0,0 +1,323 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ num_downloads day
2
+ 1023 2022-08-04
3
+ 1103 2022-08-03
4
+ 951 2022-08-02
5
+ 1374 2022-08-01
6
+ 1024 2022-07-31
7
+ 1073 2022-07-30
8
+ 1192 2022-07-29
9
+ 1500 2022-07-28
10
+ 1213 2022-07-27
11
+ 1294 2022-07-26
12
+ 1573 2022-07-25
13
+ 2321 2022-07-24
14
+ 2407 2022-07-23
15
+ 2470 2022-07-22
16
+ 2857 2022-07-21
17
+ 2732 2022-07-20
18
+ 2765 2022-07-19
19
+ 2844 2022-07-18
20
+ 2376 2022-07-17
21
+ 2560 2022-07-16
22
+ 2745 2022-07-15
23
+ 2313 2022-07-14
24
+ 599 2022-07-13
25
+ 483 2022-07-12
26
+ 473 2022-07-11
27
+ 106 2022-07-10
28
+ 199 2022-07-09
29
+ 394 2022-07-08
30
+ 278 2022-07-07
31
+ 240 2022-07-06
32
+ 266 2022-07-05
33
+ 223 2022-07-04
34
+ 118 2022-07-03
35
+ 86 2022-07-02
36
+ 170 2022-07-01
37
+ 257 2022-06-30
38
+ 381 2022-06-29
39
+ 289 2022-06-28
40
+ 150 2022-06-27
41
+ 69 2022-06-26
42
+ 64 2022-06-25
43
+ 209 2022-06-24
44
+ 272 2022-06-23
45
+ 343 2022-06-22
46
+ 259 2022-06-21
47
+ 126 2022-06-20
48
+ 82 2022-06-19
49
+ 78 2022-06-18
50
+ 212 2022-06-17
51
+ 279 2022-06-16
52
+ 232 2022-06-15
53
+ 305 2022-06-14
54
+ 318 2022-06-13
55
+ 63 2022-06-12
56
+ 69 2022-06-11
57
+ 105 2022-06-10
58
+ 245 2022-06-09
59
+ 357 2022-06-08
60
+ 188 2022-06-07
61
+ 377 2022-06-06
62
+ 78 2022-06-05
63
+ 56 2022-06-04
64
+ 240 2022-06-03
65
+ 253 2022-06-02
66
+ 227 2022-06-01
67
+ 177 2022-05-31
68
+ 231 2022-05-30
69
+ 36 2022-05-29
70
+ 40 2022-05-28
71
+ 175 2022-05-27
72
+ 130 2022-05-26
73
+ 258 2022-05-25
74
+ 216 2022-05-24
75
+ 125 2022-05-23
76
+ 39 2022-05-22
77
+ 43 2022-05-21
78
+ 141 2022-05-20
79
+ 157 2022-05-19
80
+ 159 2022-05-18
81
+ 120 2022-05-17
82
+ 141 2022-05-16
83
+ 25 2022-05-15
84
+ 75 2022-05-14
85
+ 221 2022-05-13
86
+ 261 2022-05-12
87
+ 277 2022-05-11
88
+ 173 2022-05-10
89
+ 70 2022-05-09
90
+ 52 2022-05-08
91
+ 54 2022-05-07
92
+ 56 2022-05-06
93
+ 72 2022-05-05
94
+ 79 2022-05-04
95
+ 42 2022-05-03
96
+ 55 2022-05-02
97
+ 16 2022-05-01
98
+ 35 2022-04-30
99
+ 45 2022-04-29
100
+ 52 2022-04-28
101
+ 97 2022-04-27
102
+ 204 2022-04-26
103
+ 63 2022-04-25
104
+ 52 2022-04-24
105
+ 17 2022-04-23
106
+ 55 2022-04-22
107
+ 69 2022-04-21
108
+ 64 2022-04-20
109
+ 89 2022-04-19
110
+ 55 2022-04-18
111
+ 31 2022-04-17
112
+ 64 2022-04-16
113
+ 21 2022-04-15
114
+ 84 2022-04-14
115
+ 109 2022-04-13
116
+ 104 2022-04-12
117
+ 112 2022-04-11
118
+ 38 2022-04-10
119
+ 36 2022-04-09
120
+ 91 2022-04-08
121
+ 58 2022-04-07
122
+ 52 2022-04-06
123
+ 41 2022-04-05
124
+ 103 2022-04-04
125
+ 22 2022-04-03
126
+ 60 2022-04-02
127
+ 168 2022-04-01
128
+ 199 2022-03-31
129
+ 73 2022-03-30
130
+ 44 2022-03-29
131
+ 48 2022-03-28
132
+ 21 2022-03-27
133
+ 48 2022-03-26
134
+ 81 2022-03-25
135
+ 121 2022-03-24
136
+ 113 2022-03-23
137
+ 67 2022-03-22
138
+ 44 2022-03-21
139
+ 17 2022-03-20
140
+ 10 2022-03-19
141
+ 38 2022-03-18
142
+ 49 2022-03-17
143
+ 35 2022-03-16
144
+ 47 2022-03-15
145
+ 67 2022-03-14
146
+ 34 2022-03-13
147
+ 20 2022-03-12
148
+ 75 2022-03-11
149
+ 94 2022-03-10
150
+ 120 2022-03-09
151
+ 89 2022-03-08
152
+ 154 2022-03-07
153
+ 45 2022-03-06
154
+ 100 2022-03-05
155
+ 56 2022-03-04
156
+ 49 2022-03-03
157
+ 46 2022-03-02
158
+ 70 2022-03-01
159
+ 37 2022-02-28
160
+ 40 2022-02-27
161
+ 23 2022-02-26
162
+ 65 2022-02-25
163
+ 80 2022-02-24
164
+ 178 2022-02-23
165
+ 91 2022-02-22
166
+ 69 2022-02-21
167
+ 59 2022-02-20
168
+ 22 2022-02-19
169
+ 32 2022-02-18
170
+ 90 2022-02-17
171
+ 53 2022-02-16
172
+ 122 2022-02-15
173
+ 74 2022-02-14
174
+ 9 2022-02-13
175
+ 9 2022-02-12
176
+ 58 2022-02-11
177
+ 142 2022-02-10
178
+ 35 2022-02-09
179
+ 6 2022-02-08
180
+ 31 2022-02-07
181
+ 10 2022-02-06
182
+ 33 2022-02-05
183
+ 57 2022-02-04
184
+ 20 2022-02-03
185
+ 18 2022-02-02
186
+ 39 2022-02-01
187
+ 10 2022-01-31
188
+ 19 2022-01-30
189
+ 52 2022-01-29
190
+ 33 2022-01-28
191
+ 22 2022-01-27
192
+ 35 2022-01-26
193
+ 39 2022-01-25
194
+ 25 2022-01-24
195
+ 2 2022-01-23
196
+ 34 2022-01-22
197
+ 16 2022-01-21
198
+ 49 2022-01-20
199
+ 31 2022-01-19
200
+ 27 2022-01-18
201
+ 19 2022-01-17
202
+ 4 2022-01-16
203
+ 27 2022-01-15
204
+ 16 2022-01-14
205
+ 32 2022-01-13
206
+ 16 2022-01-12
207
+ 4 2022-01-11
208
+ 23 2022-01-10
209
+ 12 2022-01-09
210
+ 3 2022-01-08
211
+ 38 2022-01-07
212
+ 25 2022-01-06
213
+ 7 2022-01-05
214
+ 40 2022-01-04
215
+ 19 2022-01-03
216
+ 20 2022-01-02
217
+ 3 2022-01-01
218
+ 34 2021-12-31
219
+ 15 2021-12-30
220
+ 12 2021-12-29
221
+ 18 2021-12-28
222
+ 34 2021-12-27
223
+ 17 2021-12-26
224
+ 62 2021-12-25
225
+ 79 2021-12-24
226
+ 167 2021-12-23
227
+ 15 2021-12-22
228
+ 19 2021-12-21
229
+ 23 2021-12-20
230
+ 33 2021-12-19
231
+ 46 2021-12-18
232
+ 15 2021-12-17
233
+ 13 2021-12-16
234
+ 26 2021-12-15
235
+ 5 2021-12-14
236
+ 41 2021-12-13
237
+ 21 2021-12-12
238
+ 57 2021-12-11
239
+ 70 2021-12-10
240
+ 157 2021-12-09
241
+ 225 2021-12-08
242
+ 6 2021-12-07
243
+ 3 2021-12-06
244
+ 2 2021-12-05
245
+ 6 2021-12-04
246
+ 10 2021-12-03
247
+ 21 2021-12-02
248
+ 11 2021-12-01
249
+ 19 2021-11-30
250
+ 13 2021-11-29
251
+ 8 2021-11-28
252
+ 2 2021-11-27
253
+ 7 2021-11-26
254
+ 3 2021-11-25
255
+ 13 2021-11-24
256
+ 5 2021-11-23
257
+ 14 2021-11-22
258
+ 2 2021-11-21
259
+ 14 2021-11-20
260
+ 19 2021-11-19
261
+ 25 2021-11-18
262
+ 17 2021-11-17
263
+ 14 2021-11-16
264
+ 18 2021-11-15
265
+ 8 2021-11-14
266
+ 14 2021-11-13
267
+ 14 2021-11-12
268
+ 10 2021-11-11
269
+ 3 2021-11-10
270
+ 20 2021-11-09
271
+ 30 2021-11-08
272
+ 22 2021-11-07
273
+ 85 2021-11-06
274
+ 146 2021-11-05
275
+ 3 2021-11-04
276
+ 8 2021-11-02
277
+ 7 2021-11-01
278
+ 5 2021-10-31
279
+ 5 2021-10-30
280
+ 5 2021-10-29
281
+ 9 2021-10-28
282
+ 6 2021-10-27
283
+ 5 2021-10-26
284
+ 2 2021-10-25
285
+ 7 2021-10-24
286
+ 2 2021-10-23
287
+ 8 2021-10-22
288
+ 13 2021-10-21
289
+ 6 2021-10-20
290
+ 5 2021-10-19
291
+ 7 2021-10-18
292
+ 6 2021-10-17
293
+ 3 2021-10-16
294
+ 9 2021-10-15
295
+ 2 2021-10-14
296
+ 11 2021-10-13
297
+ 13 2021-10-12
298
+ 13 2021-10-11
299
+ 7 2021-10-09
300
+ 9 2021-10-08
301
+ 18 2021-10-07
302
+ 8 2021-10-06
303
+ 14 2021-10-05
304
+ 5 2021-10-04
305
+ 2 2021-10-03
306
+ 5 2021-10-02
307
+ 8 2021-10-01
308
+ 7 2021-09-30
309
+ 10 2021-09-29
310
+ 8 2021-09-28
311
+ 11 2021-09-27
312
+ 5 2021-09-26
313
+ 1 2021-09-25
314
+ 11 2021-09-24
315
+ 14 2021-09-23
316
+ 14 2021-09-21
317
+ 3 2021-09-20
318
+ 6 2021-09-19
319
+ 6 2021-09-18
320
+ 13 2021-09-17
321
+ 25 2021-09-16
322
+ 69 2021-09-15
323
+ 130 2021-09-14
python-app/csv_files/transformers.csv ADDED
@@ -0,0 +1,735 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ num_downloads day
2
+ 107255 2022-08-04
3
+ 205290 2022-08-03
4
+ 217066 2022-08-02
5
+ 211366 2022-08-01
6
+ 129598 2022-07-31
7
+ 124714 2022-07-30
8
+ 198770 2022-07-29
9
+ 216642 2022-07-28
10
+ 213517 2022-07-27
11
+ 215633 2022-07-26
12
+ 203735 2022-07-25
13
+ 131286 2022-07-24
14
+ 131258 2022-07-23
15
+ 192488 2022-07-22
16
+ 201928 2022-07-21
17
+ 214579 2022-07-20
18
+ 213572 2022-07-19
19
+ 177486 2022-07-18
20
+ 116232 2022-07-17
21
+ 117044 2022-07-16
22
+ 199003 2022-07-15
23
+ 196899 2022-07-14
24
+ 213756 2022-07-13
25
+ 195644 2022-07-12
26
+ 197454 2022-07-11
27
+ 123932 2022-07-10
28
+ 129268 2022-07-09
29
+ 201562 2022-07-08
30
+ 207161 2022-07-07
31
+ 208011 2022-07-06
32
+ 196527 2022-07-05
33
+ 174374 2022-07-04
34
+ 122774 2022-07-03
35
+ 124606 2022-07-02
36
+ 219834 2022-07-01
37
+ 204017 2022-06-30
38
+ 210502 2022-06-29
39
+ 208788 2022-06-28
40
+ 206853 2022-06-27
41
+ 121619 2022-06-26
42
+ 134905 2022-06-25
43
+ 206154 2022-06-24
44
+ 226281 2022-06-23
45
+ 211764 2022-06-22
46
+ 200786 2022-06-21
47
+ 188752 2022-06-20
48
+ 127060 2022-06-19
49
+ 121488 2022-06-18
50
+ 179080 2022-06-17
51
+ 195067 2022-06-16
52
+ 200449 2022-06-15
53
+ 194619 2022-06-14
54
+ 184740 2022-06-13
55
+ 119214 2022-06-12
56
+ 130504 2022-06-11
57
+ 199977 2022-06-10
58
+ 238147 2022-06-09
59
+ 316803 2022-06-08
60
+ 304055 2022-06-07
61
+ 327598 2022-06-06
62
+ 210474 2022-06-05
63
+ 230548 2022-06-04
64
+ 368470 2022-06-03
65
+ 354988 2022-06-02
66
+ 326132 2022-06-01
67
+ 296976 2022-05-31
68
+ 254941 2022-05-30
69
+ 165426 2022-05-29
70
+ 157695 2022-05-28
71
+ 290412 2022-05-27
72
+ 311944 2022-05-26
73
+ 300744 2022-05-25
74
+ 314109 2022-05-24
75
+ 295598 2022-05-23
76
+ 165179 2022-05-22
77
+ 163179 2022-05-21
78
+ 275445 2022-05-20
79
+ 307601 2022-05-19
80
+ 301864 2022-05-18
81
+ 323239 2022-05-17
82
+ 294000 2022-05-16
83
+ 167444 2022-05-15
84
+ 171006 2022-05-14
85
+ 284389 2022-05-13
86
+ 298416 2022-05-12
87
+ 282030 2022-05-11
88
+ 301896 2022-05-10
89
+ 282296 2022-05-09
90
+ 182200 2022-05-08
91
+ 158948 2022-05-07
92
+ 270102 2022-05-06
93
+ 251687 2022-05-05
94
+ 208266 2022-05-04
95
+ 214242 2022-05-03
96
+ 184118 2022-05-02
97
+ 120044 2022-05-01
98
+ 112072 2022-04-30
99
+ 203653 2022-04-29
100
+ 229979 2022-04-28
101
+ 218390 2022-04-27
102
+ 215911 2022-04-26
103
+ 173505 2022-04-25
104
+ 111353 2022-04-24
105
+ 131258 2022-04-23
106
+ 247804 2022-04-22
107
+ 229678 2022-04-21
108
+ 282719 2022-04-20
109
+ 296118 2022-04-19
110
+ 204368 2022-04-18
111
+ 108830 2022-04-17
112
+ 131259 2022-04-16
113
+ 218275 2022-04-15
114
+ 238125 2022-04-14
115
+ 276535 2022-04-13
116
+ 246108 2022-04-12
117
+ 227796 2022-04-11
118
+ 117650 2022-04-10
119
+ 103238 2022-04-09
120
+ 209226 2022-04-08
121
+ 221001 2022-04-07
122
+ 214612 2022-04-06
123
+ 201928 2022-04-05
124
+ 171124 2022-04-04
125
+ 94503 2022-04-03
126
+ 98298 2022-04-02
127
+ 165675 2022-04-01
128
+ 190909 2022-03-31
129
+ 202545 2022-03-30
130
+ 236419 2022-03-29
131
+ 209512 2022-03-28
132
+ 113808 2022-03-27
133
+ 139429 2022-03-26
134
+ 206943 2022-03-25
135
+ 220982 2022-03-24
136
+ 221147 2022-03-23
137
+ 212277 2022-03-22
138
+ 220298 2022-03-21
139
+ 137112 2022-03-20
140
+ 137036 2022-03-19
141
+ 209748 2022-03-18
142
+ 228600 2022-03-17
143
+ 237284 2022-03-16
144
+ 201043 2022-03-15
145
+ 169872 2022-03-14
146
+ 98152 2022-03-13
147
+ 99367 2022-03-12
148
+ 178537 2022-03-11
149
+ 188312 2022-03-10
150
+ 181085 2022-03-09
151
+ 195395 2022-03-08
152
+ 179674 2022-03-07
153
+ 96381 2022-03-06
154
+ 100461 2022-03-05
155
+ 220276 2022-03-04
156
+ 185908 2022-03-03
157
+ 196040 2022-03-02
158
+ 178368 2022-03-01
159
+ 181574 2022-02-28
160
+ 93522 2022-02-27
161
+ 98040 2022-02-26
162
+ 159238 2022-02-25
163
+ 173516 2022-02-24
164
+ 204436 2022-02-23
165
+ 183249 2022-02-22
166
+ 158330 2022-02-21
167
+ 95203 2022-02-20
168
+ 98443 2022-02-19
169
+ 151545 2022-02-18
170
+ 158228 2022-02-17
171
+ 189862 2022-02-16
172
+ 158558 2022-02-15
173
+ 147243 2022-02-14
174
+ 80995 2022-02-13
175
+ 90684 2022-02-12
176
+ 158924 2022-02-11
177
+ 181383 2022-02-10
178
+ 170709 2022-02-09
179
+ 143722 2022-02-08
180
+ 119816 2022-02-07
181
+ 73187 2022-02-06
182
+ 90004 2022-02-05
183
+ 130015 2022-02-04
184
+ 129092 2022-02-03
185
+ 131144 2022-02-02
186
+ 141135 2022-02-01
187
+ 123480 2022-01-31
188
+ 77480 2022-01-30
189
+ 79243 2022-01-29
190
+ 119083 2022-01-28
191
+ 125474 2022-01-27
192
+ 113454 2022-01-26
193
+ 122654 2022-01-25
194
+ 113164 2022-01-24
195
+ 67691 2022-01-23
196
+ 74298 2022-01-22
197
+ 114055 2022-01-21
198
+ 134120 2022-01-20
199
+ 139603 2022-01-19
200
+ 148695 2022-01-18
201
+ 131864 2022-01-17
202
+ 95402 2022-01-16
203
+ 93773 2022-01-15
204
+ 138228 2022-01-14
205
+ 130078 2022-01-13
206
+ 127288 2022-01-12
207
+ 142662 2022-01-11
208
+ 127281 2022-01-10
209
+ 73666 2022-01-09
210
+ 70233 2022-01-08
211
+ 116222 2022-01-07
212
+ 125620 2022-01-06
213
+ 131468 2022-01-05
214
+ 115909 2022-01-04
215
+ 92428 2022-01-03
216
+ 64220 2022-01-02
217
+ 59997 2022-01-01
218
+ 65136 2021-12-31
219
+ 80839 2021-12-30
220
+ 81121 2021-12-29
221
+ 82212 2021-12-28
222
+ 73062 2021-12-27
223
+ 57559 2021-12-26
224
+ 53874 2021-12-25
225
+ 79840 2021-12-24
226
+ 100690 2021-12-23
227
+ 104352 2021-12-22
228
+ 107650 2021-12-21
229
+ 107063 2021-12-20
230
+ 67908 2021-12-19
231
+ 63525 2021-12-18
232
+ 100905 2021-12-17
233
+ 111496 2021-12-16
234
+ 115695 2021-12-15
235
+ 113293 2021-12-14
236
+ 113013 2021-12-13
237
+ 74757 2021-12-12
238
+ 87526 2021-12-11
239
+ 131113 2021-12-10
240
+ 127039 2021-12-09
241
+ 123516 2021-12-08
242
+ 112945 2021-12-07
243
+ 117331 2021-12-06
244
+ 72257 2021-12-05
245
+ 76800 2021-12-04
246
+ 116410 2021-12-03
247
+ 125876 2021-12-02
248
+ 127440 2021-12-01
249
+ 115067 2021-11-30
250
+ 111103 2021-11-29
251
+ 61978 2021-11-28
252
+ 60069 2021-11-27
253
+ 86903 2021-11-26
254
+ 96649 2021-11-25
255
+ 113770 2021-11-24
256
+ 141305 2021-11-23
257
+ 110213 2021-11-22
258
+ 70042 2021-11-21
259
+ 67212 2021-11-20
260
+ 110711 2021-11-19
261
+ 127813 2021-11-18
262
+ 125795 2021-11-17
263
+ 135069 2021-11-16
264
+ 132406 2021-11-15
265
+ 92487 2021-11-14
266
+ 89791 2021-11-13
267
+ 127637 2021-11-12
268
+ 139104 2021-11-11
269
+ 135126 2021-11-10
270
+ 125134 2021-11-09
271
+ 123411 2021-11-08
272
+ 78968 2021-11-07
273
+ 80777 2021-11-06
274
+ 116271 2021-11-05
275
+ 123805 2021-11-04
276
+ 130523 2021-11-03
277
+ 133656 2021-11-02
278
+ 111720 2021-11-01
279
+ 75050 2021-10-31
280
+ 76333 2021-10-30
281
+ 111324 2021-10-29
282
+ 123592 2021-10-28
283
+ 126982 2021-10-27
284
+ 124740 2021-10-26
285
+ 119804 2021-10-25
286
+ 68831 2021-10-24
287
+ 68940 2021-10-23
288
+ 110937 2021-10-22
289
+ 113878 2021-10-21
290
+ 125295 2021-10-20
291
+ 125132 2021-10-19
292
+ 121174 2021-10-18
293
+ 75298 2021-10-17
294
+ 79479 2021-10-16
295
+ 98466 2021-10-15
296
+ 117785 2021-10-14
297
+ 114933 2021-10-13
298
+ 107299 2021-10-12
299
+ 95174 2021-10-11
300
+ 65872 2021-10-10
301
+ 67234 2021-10-09
302
+ 109918 2021-10-08
303
+ 117187 2021-10-07
304
+ 109105 2021-10-06
305
+ 125770 2021-10-05
306
+ 99231 2021-10-04
307
+ 74007 2021-10-03
308
+ 69282 2021-10-02
309
+ 102353 2021-10-01
310
+ 107387 2021-09-30
311
+ 115441 2021-09-29
312
+ 113767 2021-09-28
313
+ 121492 2021-09-27
314
+ 93905 2021-09-26
315
+ 80477 2021-09-25
316
+ 102768 2021-09-24
317
+ 120035 2021-09-23
318
+ 111095 2021-09-22
319
+ 101625 2021-09-21
320
+ 99513 2021-09-20
321
+ 68541 2021-09-19
322
+ 64961 2021-09-18
323
+ 102554 2021-09-17
324
+ 104635 2021-09-16
325
+ 113816 2021-09-15
326
+ 107446 2021-09-14
327
+ 104129 2021-09-13
328
+ 63768 2021-09-12
329
+ 58543 2021-09-11
330
+ 102681 2021-09-10
331
+ 91079 2021-09-09
332
+ 107219 2021-09-08
333
+ 90877 2021-09-07
334
+ 75891 2021-09-06
335
+ 64169 2021-09-05
336
+ 57432 2021-09-04
337
+ 96516 2021-09-03
338
+ 105878 2021-09-02
339
+ 108003 2021-09-01
340
+ 116404 2021-08-31
341
+ 93983 2021-08-30
342
+ 60547 2021-08-29
343
+ 64357 2021-08-28
344
+ 92147 2021-08-27
345
+ 109499 2021-08-26
346
+ 107160 2021-08-25
347
+ 105788 2021-08-24
348
+ 93778 2021-08-23
349
+ 64326 2021-08-22
350
+ 73878 2021-08-21
351
+ 113081 2021-08-20
352
+ 131492 2021-08-19
353
+ 130570 2021-08-18
354
+ 137570 2021-08-17
355
+ 121014 2021-08-16
356
+ 92555 2021-08-15
357
+ 102293 2021-08-14
358
+ 120563 2021-08-13
359
+ 122223 2021-08-12
360
+ 144551 2021-08-11
361
+ 147425 2021-08-10
362
+ 145349 2021-08-09
363
+ 107151 2021-08-08
364
+ 117936 2021-08-07
365
+ 137269 2021-08-06
366
+ 142351 2021-08-05
367
+ 144037 2021-08-04
368
+ 145048 2021-08-03
369
+ 109256 2021-08-02
370
+ 77382 2021-08-01
371
+ 82960 2021-07-31
372
+ 119220 2021-07-30
373
+ 140728 2021-07-29
374
+ 136300 2021-07-28
375
+ 126097 2021-07-27
376
+ 100121 2021-07-26
377
+ 62635 2021-07-25
378
+ 64360 2021-07-24
379
+ 107987 2021-07-23
380
+ 133081 2021-07-22
381
+ 128826 2021-07-21
382
+ 153307 2021-07-20
383
+ 104171 2021-07-19
384
+ 64573 2021-07-18
385
+ 70743 2021-07-17
386
+ 98087 2021-07-16
387
+ 111814 2021-07-15
388
+ 102017 2021-07-14
389
+ 95427 2021-07-13
390
+ 90637 2021-07-12
391
+ 68633 2021-07-11
392
+ 55832 2021-07-10
393
+ 111979 2021-07-09
394
+ 107453 2021-07-08
395
+ 102457 2021-07-07
396
+ 106857 2021-07-06
397
+ 97516 2021-07-05
398
+ 73565 2021-07-04
399
+ 75832 2021-07-03
400
+ 118935 2021-07-02
401
+ 106825 2021-07-01
402
+ 118298 2021-06-30
403
+ 137336 2021-06-29
404
+ 104389 2021-06-28
405
+ 64352 2021-06-27
406
+ 64114 2021-06-26
407
+ 108306 2021-06-25
408
+ 106531 2021-06-24
409
+ 118209 2021-06-23
410
+ 102904 2021-06-22
411
+ 99389 2021-06-21
412
+ 65897 2021-06-20
413
+ 50180 2021-06-19
414
+ 87407 2021-06-18
415
+ 102573 2021-06-17
416
+ 110240 2021-06-16
417
+ 111198 2021-06-15
418
+ 84762 2021-06-14
419
+ 67824 2021-06-13
420
+ 64980 2021-06-12
421
+ 110598 2021-06-11
422
+ 117539 2021-06-10
423
+ 126930 2021-06-09
424
+ 123215 2021-06-08
425
+ 122755 2021-06-07
426
+ 98896 2021-06-06
427
+ 87873 2021-06-05
428
+ 107105 2021-06-04
429
+ 108218 2021-06-03
430
+ 107898 2021-06-02
431
+ 88813 2021-06-01
432
+ 66865 2021-05-31
433
+ 50966 2021-05-30
434
+ 49140 2021-05-29
435
+ 75372 2021-05-28
436
+ 85165 2021-05-27
437
+ 100061 2021-05-26
438
+ 108932 2021-05-25
439
+ 92868 2021-05-24
440
+ 72222 2021-05-23
441
+ 62032 2021-05-22
442
+ 98841 2021-05-21
443
+ 97841 2021-05-20
444
+ 109728 2021-05-19
445
+ 98610 2021-05-18
446
+ 84599 2021-05-17
447
+ 65833 2021-05-16
448
+ 59675 2021-05-15
449
+ 83687 2021-05-14
450
+ 86444 2021-05-13
451
+ 99004 2021-05-12
452
+ 92519 2021-05-11
453
+ 74177 2021-05-10
454
+ 51425 2021-05-09
455
+ 49809 2021-05-08
456
+ 100772 2021-05-07
457
+ 100736 2021-05-06
458
+ 101982 2021-05-05
459
+ 101622 2021-05-04
460
+ 70608 2021-05-03
461
+ 46647 2021-05-02
462
+ 50621 2021-05-01
463
+ 72369 2021-04-30
464
+ 76803 2021-04-29
465
+ 84357 2021-04-28
466
+ 73036 2021-04-27
467
+ 69021 2021-04-26
468
+ 46116 2021-04-25
469
+ 43974 2021-04-24
470
+ 74623 2021-04-23
471
+ 78630 2021-04-22
472
+ 80760 2021-04-21
473
+ 76748 2021-04-20
474
+ 67476 2021-04-19
475
+ 35893 2021-04-18
476
+ 39547 2021-04-17
477
+ 107185 2021-04-16
478
+ 131197 2021-04-15
479
+ 86781 2021-04-14
480
+ 77540 2021-04-13
481
+ 74990 2021-04-12
482
+ 38981 2021-04-11
483
+ 35237 2021-04-10
484
+ 59526 2021-04-09
485
+ 66299 2021-04-08
486
+ 69367 2021-04-07
487
+ 75063 2021-04-06
488
+ 54914 2021-04-05
489
+ 34060 2021-04-04
490
+ 37580 2021-04-03
491
+ 53937 2021-04-02
492
+ 64285 2021-04-01
493
+ 69163 2021-03-31
494
+ 67017 2021-03-30
495
+ 61333 2021-03-29
496
+ 33181 2021-03-28
497
+ 36988 2021-03-27
498
+ 58916 2021-03-26
499
+ 70426 2021-03-25
500
+ 64516 2021-03-24
501
+ 67150 2021-03-23
502
+ 60741 2021-03-22
503
+ 38042 2021-03-21
504
+ 35356 2021-03-20
505
+ 55413 2021-03-19
506
+ 59670 2021-03-18
507
+ 60837 2021-03-17
508
+ 62121 2021-03-16
509
+ 62882 2021-03-15
510
+ 27969 2021-03-14
511
+ 29700 2021-03-13
512
+ 51730 2021-03-12
513
+ 59550 2021-03-11
514
+ 58192 2021-03-10
515
+ 62530 2021-03-09
516
+ 55878 2021-03-08
517
+ 34962 2021-03-07
518
+ 34498 2021-03-06
519
+ 55573 2021-03-05
520
+ 65041 2021-03-04
521
+ 57081 2021-03-03
522
+ 56793 2021-03-02
523
+ 50177 2021-03-01
524
+ 33489 2021-02-28
525
+ 29699 2021-02-27
526
+ 49956 2021-02-26
527
+ 56118 2021-02-25
528
+ 51804 2021-02-24
529
+ 53760 2021-02-23
530
+ 48743 2021-02-22
531
+ 27623 2021-02-21
532
+ 29653 2021-02-20
533
+ 50048 2021-02-19
534
+ 53670 2021-02-18
535
+ 52981 2021-02-17
536
+ 47710 2021-02-16
537
+ 43963 2021-02-15
538
+ 27489 2021-02-14
539
+ 28177 2021-02-13
540
+ 40204 2021-02-12
541
+ 47432 2021-02-11
542
+ 56312 2021-02-10
543
+ 62518 2021-02-09
544
+ 69978 2021-02-08
545
+ 46048 2021-02-07
546
+ 45412 2021-02-06
547
+ 48751 2021-02-05
548
+ 49197 2021-02-04
549
+ 52838 2021-02-03
550
+ 53588 2021-02-02
551
+ 50919 2021-02-01
552
+ 28159 2021-01-31
553
+ 28307 2021-01-30
554
+ 51295 2021-01-29
555
+ 59230 2021-01-28
556
+ 50086 2021-01-27
557
+ 48695 2021-01-26
558
+ 49506 2021-01-25
559
+ 24704 2021-01-24
560
+ 26050 2021-01-23
561
+ 51960 2021-01-22
562
+ 51237 2021-01-21
563
+ 46537 2021-01-20
564
+ 46024 2021-01-19
565
+ 40244 2021-01-18
566
+ 22968 2021-01-17
567
+ 26477 2021-01-16
568
+ 43477 2021-01-15
569
+ 45507 2021-01-14
570
+ 46443 2021-01-13
571
+ 46956 2021-01-12
572
+ 41636 2021-01-11
573
+ 25622 2021-01-10
574
+ 27029 2021-01-09
575
+ 44458 2021-01-08
576
+ 38715 2021-01-07
577
+ 39303 2021-01-06
578
+ 39687 2021-01-05
579
+ 36590 2021-01-04
580
+ 21732 2021-01-03
581
+ 19107 2021-01-02
582
+ 18701 2021-01-01
583
+ 22636 2020-12-31
584
+ 30357 2020-12-30
585
+ 31812 2020-12-29
586
+ 35843 2020-12-28
587
+ 21635 2020-12-27
588
+ 19132 2020-12-26
589
+ 20447 2020-12-25
590
+ 32668 2020-12-24
591
+ 36366 2020-12-23
592
+ 52370 2020-12-22
593
+ 34053 2020-12-21
594
+ 22900 2020-12-20
595
+ 24375 2020-12-19
596
+ 39790 2020-12-18
597
+ 46074 2020-12-17
598
+ 44574 2020-12-16
599
+ 45654 2020-12-15
600
+ 40168 2020-12-14
601
+ 22162 2020-12-13
602
+ 23423 2020-12-12
603
+ 40086 2020-12-11
604
+ 46503 2020-12-10
605
+ 48018 2020-12-09
606
+ 54343 2020-12-08
607
+ 46618 2020-12-07
608
+ 23106 2020-12-06
609
+ 25093 2020-12-05
610
+ 43044 2020-12-04
611
+ 45391 2020-12-03
612
+ 48036 2020-12-02
613
+ 44132 2020-12-01
614
+ 36040 2020-11-30
615
+ 25184 2020-11-29
616
+ 22380 2020-11-28
617
+ 31940 2020-11-27
618
+ 57570 2020-11-26
619
+ 83187 2020-11-25
620
+ 73761 2020-11-24
621
+ 48198 2020-11-23
622
+ 24351 2020-11-22
623
+ 55883 2020-11-21
624
+ 76199 2020-11-20
625
+ 81775 2020-11-19
626
+ 75118 2020-11-18
627
+ 60081 2020-11-17
628
+ 41258 2020-11-16
629
+ 58485 2020-11-15
630
+ 28264 2020-11-14
631
+ 61021 2020-11-13
632
+ 91029 2020-11-12
633
+ 47944 2020-11-11
634
+ 39710 2020-11-10
635
+ 38475 2020-11-09
636
+ 23434 2020-11-08
637
+ 23025 2020-11-07
638
+ 34578 2020-11-06
639
+ 43981 2020-11-05
640
+ 41786 2020-11-04
641
+ 42416 2020-11-03
642
+ 32551 2020-11-02
643
+ 17854 2020-11-01
644
+ 22027 2020-10-31
645
+ 36406 2020-10-30
646
+ 39406 2020-10-29
647
+ 47421 2020-10-28
648
+ 48618 2020-10-27
649
+ 38638 2020-10-26
650
+ 28968 2020-10-25
651
+ 30179 2020-10-24
652
+ 42937 2020-10-23
653
+ 40772 2020-10-22
654
+ 33533 2020-10-21
655
+ 41615 2020-10-20
656
+ 44000 2020-10-19
657
+ 33135 2020-10-18
658
+ 33700 2020-10-17
659
+ 50762 2020-10-16
660
+ 42478 2020-10-15
661
+ 49456 2020-10-14
662
+ 39029 2020-10-13
663
+ 36476 2020-10-12
664
+ 22518 2020-10-11
665
+ 23598 2020-10-10
666
+ 33373 2020-10-09
667
+ 38631 2020-10-08
668
+ 39545 2020-10-07
669
+ 37031 2020-10-06
670
+ 36062 2020-10-05
671
+ 22791 2020-10-04
672
+ 22346 2020-10-03
673
+ 35662 2020-10-02
674
+ 38203 2020-10-01
675
+ 38047 2020-09-30
676
+ 87729 2020-09-29
677
+ 32669 2020-09-28
678
+ 21473 2020-09-27
679
+ 28854 2020-09-26
680
+ 39409 2020-09-25
681
+ 39000 2020-09-24
682
+ 34737 2020-09-23
683
+ 37936 2020-09-22
684
+ 33861 2020-09-21
685
+ 19561 2020-09-20
686
+ 25161 2020-09-19
687
+ 37343 2020-09-18
688
+ 39031 2020-09-17
689
+ 40623 2020-09-16
690
+ 39667 2020-09-15
691
+ 35691 2020-09-14
692
+ 20114 2020-09-13
693
+ 19890 2020-09-12
694
+ 36578 2020-09-11
695
+ 39834 2020-09-10
696
+ 34788 2020-09-09
697
+ 31613 2020-09-08
698
+ 26358 2020-09-07
699
+ 18494 2020-09-06
700
+ 20142 2020-09-05
701
+ 29589 2020-09-04
702
+ 36458 2020-09-03
703
+ 33740 2020-09-02
704
+ 35926 2020-09-01
705
+ 33316 2020-08-31
706
+ 16825 2020-08-30
707
+ 19679 2020-08-29
708
+ 32232 2020-08-28
709
+ 33439 2020-08-27
710
+ 33313 2020-08-26
711
+ 36548 2020-08-25
712
+ 32463 2020-08-24
713
+ 19356 2020-08-23
714
+ 22637 2020-08-22
715
+ 32555 2020-08-21
716
+ 34454 2020-08-20
717
+ 31158 2020-08-19
718
+ 31383 2020-08-18
719
+ 30059 2020-08-17
720
+ 19754 2020-08-16
721
+ 18570 2020-08-15
722
+ 28165 2020-08-14
723
+ 31581 2020-08-13
724
+ 29853 2020-08-12
725
+ 31713 2020-08-11
726
+ 28252 2020-08-10
727
+ 16260 2020-08-09
728
+ 19978 2020-08-08
729
+ 29283 2020-08-07
730
+ 31562 2020-08-06
731
+ 33696 2020-08-05
732
+ 32800 2020-08-04
733
+ 26576 2020-08-03
734
+ 18150 2020-08-02
735
+ 19632 2020-08-01
python-app/graphql.py ADDED
@@ -0,0 +1,130 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+
3
+ import requests
4
+
5
+ counter = 0
6
+
7
+ class Query:
8
+ name: str
9
+ mutations: ()
10
+ schema = ""
11
+ url = "https://api.github.com/graphql"
12
+ headers = {
13
+ "Accept": "application/json",
14
+ "Authorization": "Bearer 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",
15
+ "Accept-Encoding": "gzip, deflate, br",
16
+ "Content-Type": "application/json",
17
+ "Connection": "keep-alive",
18
+ "DNT": '1',
19
+ "Origin": "file://"
20
+ }
21
+
22
+ def __init__(self, name):
23
+ self.name = name
24
+ self.schema = f"query {name}" + "{ <NEXT_VAL> }"
25
+ self.path = []
26
+ self.to_save = []
27
+ self.to_iter = []
28
+
29
+ def mutation(self, _name, **kwargs):
30
+ args = []
31
+ for k, v in kwargs.items():
32
+ if isinstance(v, str):
33
+ args.append(f'{k}: \"{v}\"')
34
+ else:
35
+ args.append(f'{k}: {v}')
36
+
37
+ args = ', '.join(args)
38
+
39
+ if len(args):
40
+ args = f'({args})'
41
+
42
+ self.schema = self.schema.replace('<NEXT_VAL>', f"{_name}{args}" + "{ <NEXT_VAL> }")
43
+ self.path += [_name]
44
+ return self
45
+
46
+ def iter(self, _name):
47
+ self.path += [_name]
48
+ to_replace = f"{_name} (<ITER {self.path}>)" + "{ totalCount pageInfo { endCursor hasNextPage} <NEXT_VAL> }"
49
+ self.schema = self.schema.replace('<NEXT_VAL>', to_replace)
50
+ self.to_iter.append([*self.path])
51
+ return self
52
+
53
+ def save_result(self, _name):
54
+ self.schema = self.schema.replace('<NEXT_VAL>', f"{_name} <NEXT_VAL>")
55
+ self.to_save.append([*self.path, _name])
56
+ return self
57
+
58
+ @property
59
+ def nodes(self):
60
+ self.path.append('nodes')
61
+ self.schema = self.schema.replace('<NEXT_VAL>', 'nodes { <NEXT_VAL> }')
62
+ return self
63
+
64
+ def end_of_page(self, previous, iterable):
65
+ if previous is None:
66
+ return False
67
+
68
+ for selector in iterable:
69
+ previous = previous[selector]
70
+
71
+ return previous['pageInfo']['hasNextPage']
72
+
73
+ def recursive_iterable(self, schema, iterables):
74
+ if len(iterables) > 0:
75
+ iterable = iterables[0]
76
+ iterables = iterables[1:]
77
+ else:
78
+ return
79
+
80
+ output = None
81
+ while not self.end_of_page(output, iterable):
82
+ if output is None:
83
+ index = f'first: 20'
84
+ else:
85
+ index = f'after: {output}'
86
+
87
+ new_schema = schema.replace(f'<ITER {str(iterable)}>', index)
88
+
89
+ if 'ITER' not in new_schema:
90
+ print('new schema', new_schema)
91
+ res = requests.post(self.url, headers=self.headers, json={'query': new_schema})
92
+ output = res.json()['data']
93
+
94
+ out = self.recursive_iterable(new_schema, iterables)
95
+ print('output', out)
96
+
97
+ return output
98
+
99
+ def call(self):
100
+ schema = self.schema.replace('<NEXT_VAL>', '')
101
+ self.recursive_iterable(schema, self.to_iter)
102
+
103
+ # print(self.schema.replace('<NEXT_VAL>', ''))
104
+ # print('will save', self.to_save)
105
+ # print('will iterate over', self.to_iter)
106
+ # # res = requests.post(self.url, headers=self.headers, json={'query': self.schema.replace('<NEXT_VAL>', '')})
107
+ # # output = res.json()['data']
108
+ # output = json.loads('{"repository": {"nameWithOwner": "huggingface/transformers", "issues": {"totalCount": 9843, "pageInfo": {"endCursor": "Y3Vyc29yOnYyOpHOFwK_Mw==", "hasNextPage": true}, "nodes": [{"number": 3}, {"number": 5}, {"number": 6}, {"number": 9}, {"number": 10}, {"number": 11}, {"number": 12}, {"number": 13}, {"number": 15}, {"number": 19}, {"number": 20}, {"number": 23}, {"number": 24}, {"number": 25}, {"number": 26}, {"number": 27}, {"number": 28}, {"number": 30}, {"number": 31}, {"number": 33}, {"number": 34}, {"number": 35}, {"number": 36}, {"number": 37}, {"number": 38}, {"number": 39}, {"number": 41}, {"number": 43}, {"number": 44}, {"number": 45}, {"number": 46}, {"number": 47}, {"number": 48}, {"number": 49}, {"number": 50}, {"number": 51}, {"number": 52}, {"number": 53}, {"number": 54}, {"number": 55}, {"number": 56}, {"number": 57}, {"number": 59}, {"number": 61}, {"number": 62}, {"number": 63}, {"number": 64}, {"number": 65}, {"number": 67}, {"number": 68}]}}}')
109
+ #
110
+ # for iterable in self.to_iter[::-1]:
111
+ # for selector in iterable:
112
+ # output = output[selector]
113
+ #
114
+ # page_info = output['pageInfo']
115
+ #
116
+ # print('pageInfo', page_info)
117
+ # # if page_info['hasNextPage']:
118
+ #
119
+ # return output
120
+
121
+
122
+ query = Query('GetRepository')
123
+ query.mutation('repository', owner='huggingface', name='transformers')
124
+ query.save_result('nameWithOwner')
125
+
126
+ query.iter('issues').nodes.save_result('number')
127
+ query.mutation('comments', first=100).nodes.mutation('reactions')
128
+ query.save_result('totalCount')
129
+
130
+ print(query.call())
python-app/query.sql ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #standardSQL
2
+ SELECT
3
+ COUNT(*) AS num_downloads,
4
+ DATE_TRUNC(DATE(timestamp), DAY) AS `day`
5
+ FROM `bigquery-public-data.pypi.file_downloads`
6
+ WHERE
7
+ file.project = '<PROJECT_NAME>'
8
+ AND DATE(timestamp)
9
+ BETWEEN DATE_TRUNC(DATE_SUB(CURRENT_DATE(), INTERVAL 18 MONTH), MONTH)
10
+ AND CURRENT_DATE()
11
+ GROUP BY `day`
12
+ ORDER BY `day` DESC
python-app/reactions.py ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ query = """
2
+ query GetRepository {
3
+ repository(owner: "huggingface", name: "transformers"){
4
+ nameWithOwner
5
+ issues (first: 50){
6
+ totalCount
7
+ nodes {
8
+ number
9
+ comments (first: 10) {
10
+ totalCount
11
+ nodes {
12
+ reactions (first: 10) {
13
+ totalCount
14
+ }
15
+ }
16
+ }
17
+ }
18
+ }
19
+ }
20
+ }
21
+ """
python-app/requirements.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ datasets
2
+ pypistats
python-app/update_metrics.py ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pypistats
2
+ from huggingface_hub import list_datasets
3
+ from datasets import load_dataset, concatenate_datasets, Dataset
4
+
5
+ def update_pip_installs():
6
+ metrics_datasets = [d.id for d in list_datasets(author='open-source-metrics', use_auth_token=True)]
7
+ pip_installs_datasets = [d for d in metrics_datasets if 'pip' in d]
8
+
9
+ for dataset_name in pip_installs_datasets:
10
+ dataset = load_dataset(dataset_name, use_auth_token=True)
11
+ library_name = dataset.split('/')[1].split('-')[0]
12
+ data = pypistats.overall(library_name, total=True, format="pandas")
13
+ data = data.groupby("category").get_group("without_mirrors").sort_values("date")
14
+
15
+ data.drop('category', axis=1, inplace=True)
16
+ data.drop('percent', axis=1, inplace=True)
17
+
18
+ pypistats_dataset = Dataset.from_pandas(data)
19
+ pypistats_dataset.rename_column('downloads', 'num_downloads')
20
+ pypistats_dataset.rename_column('date', 'day')
21
+
22
+ column_names = pypistats_dataset.column_names
23
+ column_names.remove('num_downloads')
24
+ column_names.remove('day')
25
+
26
+ pypistats_dataset.remove_columns(column_names)
27
+
28
+ days = pypistats_dataset['day']
29
+
30
+
31
+
32
+
33
+
34
+ update_pip_installs()
style.css ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ html {
2
+ /*color: white;*/
3
+ /*background-color: rgb(50, 50, 50);*/
4
+ font-family: Source Sans Pro,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;
5
+ line-height: 1.5;
6
+ }
7
+
8
+ body {
9
+ display: flex;
10
+ align-items: center;
11
+ flex-direction: column;
12
+ }
13
+
14
+ button {
15
+ width: 100%;
16
+ height: 40px;
17
+ margin-top: 20px;
18
+ cursor: pointer;
19
+ background: none;
20
+ border: 2px solid black;
21
+ /*color: white;*/
22
+ transition: all 0.2s ease;
23
+ }
24
+
25
+ button:hover {
26
+ border: 2px solid gray;
27
+ color: gray;
28
+ transition: all 0.2s ease;
29
+ }
30
+
31
+ .graphs {
32
+ margin: 20px;
33
+ }
34
+
35
+ .graphs > div {
36
+ margin: 20px;
37
+ }
38
+
39
+ .lds-ripple {
40
+ display: inline-block;
41
+ position: relative;
42
+ width: 80px;
43
+ height: 80px;
44
+ }
45
+ .lds-ripple div {
46
+ position: absolute;
47
+ border: 4px solid #000;
48
+ opacity: 1;
49
+ border-radius: 50%;
50
+ animation: lds-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite;
51
+ }
52
+ .lds-ripple div:nth-child(2) {
53
+ animation-delay: -0.5s;
54
+ }
55
+ @keyframes lds-ripple {
56
+ 0% {
57
+ top: 36px;
58
+ left: 36px;
59
+ width: 0;
60
+ height: 0;
61
+ opacity: 0;
62
+ }
63
+ 4.9% {
64
+ top: 36px;
65
+ left: 36px;
66
+ width: 0;
67
+ height: 0;
68
+ opacity: 0;
69
+ }
70
+ 5% {
71
+ top: 36px;
72
+ left: 36px;
73
+ width: 0;
74
+ height: 0;
75
+ opacity: 1;
76
+ }
77
+ 100% {
78
+ top: 0px;
79
+ left: 0px;
80
+ width: 72px;
81
+ height: 72px;
82
+ opacity: 0;
83
+ }
84
+ }