Skip to content

Commit b9f3941

Browse files
jlewiJeremy Lewi
authored and
Jeremy Lewi
committed
Compute embeddings for all kubeflow repositories.
* This is the first step in creating an org wide model for all of Kubeflow (kubeflow#110) * Modify the Get-GitHub-Issues.ipynb model to reuse code in the embeddings directory. * Add some missing packages to requirements.txt. * Use the GitHub graphql client to get a list of all repositories. * Add some missing GCS utilities * Remove some of the duplication between Get-GitHub-Issues.ipynb and our library methods (kubeflow#122)
1 parent 9bbdce3 commit b9f3941

File tree

9 files changed

+480
-695
lines changed

9 files changed

+480
-695
lines changed

Issue_Embeddings/notebooks/01_AcquireData.ipynb

+14-4
Original file line numberDiff line numberDiff line change
@@ -155,9 +155,7 @@
155155
{
156156
"cell_type": "code",
157157
"execution_count": 43,
158-
"metadata": {
159-
"scrolled": false
160-
},
158+
"metadata": {},
161159
"outputs": [
162160
{
163161
"data": {
@@ -501,8 +499,20 @@
501499
"display_name": "Python 3",
502500
"language": "python",
503501
"name": "python3"
502+
},
503+
"language_info": {
504+
"codemirror_mode": {
505+
"name": "ipython",
506+
"version": 3
507+
},
508+
"file_extension": ".py",
509+
"mimetype": "text/x-python",
510+
"name": "python",
511+
"nbconvert_exporter": "python",
512+
"pygments_lexer": "ipython3",
513+
"version": "3.6.9"
504514
}
505515
},
506516
"nbformat": 4,
507-
"nbformat_minor": 2
517+
"nbformat_minor": 4
508518
}

Issue_Embeddings/notebooks/02_fastai_DataBunch.ipynb

+2-2
Original file line numberDiff line numberDiff line change
@@ -267,9 +267,9 @@
267267
"name": "python",
268268
"nbconvert_exporter": "python",
269269
"pygments_lexer": "ipython3",
270-
"version": "3.6.7"
270+
"version": "3.6.9"
271271
}
272272
},
273273
"nbformat": 4,
274-
"nbformat_minor": 2
274+
"nbformat_minor": 4
275275
}

Issue_Embeddings/notebooks/03_Create_Model.ipynb

+2-2
Original file line numberDiff line numberDiff line change
@@ -282,9 +282,9 @@
282282
"name": "python",
283283
"nbconvert_exporter": "python",
284284
"pygments_lexer": "ipython3",
285-
"version": "3.6.7"
285+
"version": "3.6.9"
286286
}
287287
},
288288
"nbformat": 4,
289-
"nbformat_minor": 2
289+
"nbformat_minor": 4
290290
}

Issue_Embeddings/notebooks/Get-GitHub-Issues.ipynb

+308-204
Large diffs are not rendered by default.

Issue_Embeddings/requirements.txt

+5
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,15 @@ cymem==2.0.2
1717
cytoolz==0.9.0.1
1818
decorator==4.4.0
1919
defusedxml==0.6.0
20+
dill==0.3.0
2021
entrypoints==0.3
2122
fastai==1.0.53.post3
2223
fastprogress==0.1.21
2324
flask-session==0.3.1
2425
flask==1.0.2
2526
ftfy==4.4.3
2627
gcsfs==0.2.1
28+
github3.py>=1.3.0
2729
google-auth-oauthlib==0.3.0
2830
google-auth==1.6.3
2931
gunicorn==19.9.0
@@ -40,13 +42,15 @@ jedi==0.13.3
4042
jinja2==2.10.1
4143
joblib==0.13.2
4244
jsonschema==3.0.1
45+
JSON-log-formatter==0.2.0
4346
jupyter-client==5.2.4
4447
jupyter-core==4.4.0
4548
kiwisolver==1.1.0
4649
markupsafe==1.1.1
4750
matplotlib==3.0.3
4851
mdparse==0.13
4952
mistune==0.8.4
53+
more-itertools==8.2.0
5054
murmurhash==1.0.2
5155
mwparserfromhell==0.5.3
5256
nbconvert==5.5.0
@@ -100,6 +104,7 @@ thinc==7.0.4
100104
timeout-decorator==0.4.1
101105
toolz==0.9.0
102106
tornado==6.0.2
107+
torch==1.1.0
103108
tqdm==4.32.2
104109
traitlets==4.3.2
105110
typing==3.6.6

Issue_Triage/notebooks/metrics.ipynb

+45-38
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
},
1212
{
1313
"cell_type": "code",
14-
"execution_count": 312,
14+
"execution_count": 1,
1515
"metadata": {},
1616
"outputs": [
1717
{
@@ -20,7 +20,7 @@
2020
"RendererRegistry.enable('html')"
2121
]
2222
},
23-
"execution_count": 312,
23+
"execution_count": 1,
2424
"metadata": {},
2525
"output_type": "execute_result"
2626
}
@@ -54,7 +54,7 @@
5454
},
5555
{
5656
"cell_type": "code",
57-
"execution_count": 174,
57+
"execution_count": 2,
5858
"metadata": {},
5959
"outputs": [],
6060
"source": [
@@ -93,9 +93,18 @@
9393
},
9494
{
9595
"cell_type": "code",
96-
"execution_count": 201,
96+
"execution_count": 3,
9797
"metadata": {},
98-
"outputs": [],
98+
"outputs": [
99+
{
100+
"name": "stderr",
101+
"output_type": "stream",
102+
"text": [
103+
"/home/jovyan/.local/lib/python3.6/site-packages/pandas_gbq/gbq.py:555: UserWarning: A progress bar was requested, but there was an error loading the tqdm library. Please install tqdm to use the progress bar functionality.\n",
104+
" progress_bar_type=progress_bar_type,\n"
105+
]
106+
}
107+
],
99108
"source": [
100109
"query = \"\"\"\n",
101110
"SELECT\n",
@@ -113,7 +122,7 @@
113122
},
114123
{
115124
"cell_type": "code",
116-
"execution_count": 214,
125+
"execution_count": 4,
117126
"metadata": {},
118127
"outputs": [],
119128
"source": [
@@ -123,7 +132,7 @@
123132
},
124133
{
125134
"cell_type": "code",
126-
"execution_count": 215,
135+
"execution_count": 5,
127136
"metadata": {},
128137
"outputs": [],
129138
"source": [
@@ -144,7 +153,7 @@
144153
},
145154
{
146155
"cell_type": "code",
147-
"execution_count": 247,
156+
"execution_count": 6,
148157
"metadata": {},
149158
"outputs": [],
150159
"source": [
@@ -175,7 +184,7 @@
175184
},
176185
{
177186
"cell_type": "code",
178-
"execution_count": 248,
187+
"execution_count": 7,
179188
"metadata": {},
180189
"outputs": [],
181190
"source": [
@@ -206,7 +215,7 @@
206215
},
207216
{
208217
"cell_type": "code",
209-
"execution_count": 249,
218+
"execution_count": 8,
210219
"metadata": {},
211220
"outputs": [],
212221
"source": [
@@ -224,7 +233,7 @@
224233
},
225234
{
226235
"cell_type": "code",
227-
"execution_count": 254,
236+
"execution_count": 9,
228237
"metadata": {},
229238
"outputs": [],
230239
"source": [
@@ -240,14 +249,14 @@
240249
},
241250
{
242251
"cell_type": "code",
243-
"execution_count": 255,
252+
"execution_count": 10,
244253
"metadata": {},
245254
"outputs": [
246255
{
247256
"name": "stdout",
248257
"output_type": "stream",
249258
"text": [
250-
"Total # of issues 24\n",
259+
"Total # of issues 702\n",
251260
"Number and precentage of issues with labels with various prefixes\n"
252261
]
253262
},
@@ -281,8 +290,8 @@
281290
" <tr>\n",
282291
" <th>0</th>\n",
283292
" <td>area</td>\n",
284-
" <td>1</td>\n",
285-
" <td>4.166667</td>\n",
293+
" <td>10</td>\n",
294+
" <td>1.424501</td>\n",
286295
" </tr>\n",
287296
" <tr>\n",
288297
" <th>1</th>\n",
@@ -293,21 +302,21 @@
293302
" <tr>\n",
294303
" <th>2</th>\n",
295304
" <td>kind</td>\n",
296-
" <td>23</td>\n",
297-
" <td>95.833333</td>\n",
305+
" <td>655</td>\n",
306+
" <td>93.304843</td>\n",
298307
" </tr>\n",
299308
" </tbody>\n",
300309
"</table>\n",
301310
"</div>"
302311
],
303312
"text/plain": [
304313
" label count percentage\n",
305-
"0 area 1 4.166667\n",
314+
"0 area 10 1.424501\n",
306315
"1 platform 0 0.000000\n",
307-
"2 kind 23 95.833333"
316+
"2 kind 655 93.304843"
308317
]
309318
},
310-
"execution_count": 255,
319+
"execution_count": 10,
311320
"metadata": {},
312321
"output_type": "execute_result"
313322
}
@@ -320,17 +329,17 @@
320329
},
321330
{
322331
"cell_type": "code",
323-
"execution_count": 313,
332+
"execution_count": 11,
324333
"metadata": {},
325334
"outputs": [
326335
{
327336
"data": {
328337
"text/html": [
329338
"\n",
330-
"<div id=\"altair-viz-d251d2f8fc924987bdcde6785869f627\"></div>\n",
339+
"<div id=\"altair-viz-84432cb640954772bd405994958b5a7b\"></div>\n",
331340
"<script type=\"text/javascript\">\n",
332341
" (function(spec, embedOpt){\n",
333-
" const outputDiv = document.getElementById(\"altair-viz-d251d2f8fc924987bdcde6785869f627\");\n",
342+
" const outputDiv = document.getElementById(\"altair-viz-84432cb640954772bd405994958b5a7b\");\n",
334343
" const paths = {\n",
335344
" \"vega\": \"https://cdn.jsdelivr.net/npm//vega@5?noext\",\n",
336345
" \"vega-lib\": \"https://cdn.jsdelivr.net/npm//vega-lib?noext\",\n",
@@ -371,14 +380,14 @@
371380
" .catch(showError)\n",
372381
" .then(() => displayChart(vegaEmbed));\n",
373382
" }\n",
374-
" })({\"config\": {\"view\": {\"continuousWidth\": 400, \"continuousHeight\": 300}}, \"data\": {\"name\": \"data-4451d8e017c39fe7d73f407358e493ab\"}, \"mark\": \"point\", \"encoding\": {\"x\": {\"type\": \"nominal\", \"field\": \"label\"}, \"y\": {\"type\": \"quantitative\", \"field\": \"count\"}}, \"selection\": {\"selector012\": {\"type\": \"interval\", \"bind\": \"scales\", \"encodings\": [\"x\", \"y\"]}}, \"$schema\": \"https://vega.github.io/schema/vega-lite/v4.0.2.json\", \"datasets\": {\"data-4451d8e017c39fe7d73f407358e493ab\": [{\"label\": \"area\", \"count\": 1, \"percentage\": 4.166666666666666}, {\"label\": \"platform\", \"count\": 0, \"percentage\": 0.0}, {\"label\": \"kind\", \"count\": 23, \"percentage\": 95.83333333333334}]}}, {\"mode\": \"vega-lite\"});\n",
383+
" })({\"config\": {\"view\": {\"continuousWidth\": 400, \"continuousHeight\": 300}}, \"data\": {\"name\": \"data-6e9be022f6f73724ea217cad7870312d\"}, \"mark\": \"point\", \"encoding\": {\"x\": {\"type\": \"nominal\", \"field\": \"label\"}, \"y\": {\"type\": \"quantitative\", \"field\": \"count\"}}, \"selection\": {\"selector001\": {\"type\": \"interval\", \"bind\": \"scales\", \"encodings\": [\"x\", \"y\"]}}, \"$schema\": \"https://vega.github.io/schema/vega-lite/v4.0.2.json\", \"datasets\": {\"data-6e9be022f6f73724ea217cad7870312d\": [{\"label\": \"area\", \"count\": 10, \"percentage\": 1.4245014245014245}, {\"label\": \"platform\", \"count\": 0, \"percentage\": 0.0}, {\"label\": \"kind\", \"count\": 655, \"percentage\": 93.30484330484332}]}}, {\"mode\": \"vega-lite\"});\n",
375384
"</script>"
376385
],
377386
"text/plain": [
378387
"alt.Chart(...)"
379388
]
380389
},
381-
"execution_count": 313,
390+
"execution_count": 11,
382391
"metadata": {},
383392
"output_type": "execute_result"
384393
}
@@ -402,18 +411,18 @@
402411
},
403412
{
404413
"cell_type": "code",
405-
"execution_count": 300,
414+
"execution_count": 12,
406415
"metadata": {},
407416
"outputs": [
408417
{
409418
"name": "stderr",
410419
"output_type": "stream",
411420
"text": [
412-
"/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:8: SettingWithCopyWarning: \n",
421+
"/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:8: SettingWithCopyWarning: \n",
413422
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
414423
"Try using .loc[row_indexer,col_indexer] = value instead\n",
415424
"\n",
416-
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
425+
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
417426
" \n"
418427
]
419428
}
@@ -432,17 +441,17 @@
432441
},
433442
{
434443
"cell_type": "code",
435-
"execution_count": 316,
444+
"execution_count": 13,
436445
"metadata": {},
437446
"outputs": [
438447
{
439448
"data": {
440449
"text/html": [
441450
"\n",
442-
"<div id=\"altair-viz-fc20cd2740164d27b694b30edf4d2385\"></div>\n",
451+
"<div id=\"altair-viz-b9b9735f32264f558d6fd8784c364310\"></div>\n",
443452
"<script type=\"text/javascript\">\n",
444453
" (function(spec, embedOpt){\n",
445-
" const outputDiv = document.getElementById(\"altair-viz-fc20cd2740164d27b694b30edf4d2385\");\n",
454+
" const outputDiv = document.getElementById(\"altair-viz-b9b9735f32264f558d6fd8784c364310\");\n",
446455
" const paths = {\n",
447456
" \"vega\": \"https://cdn.jsdelivr.net/npm//vega@5?noext\",\n",
448457
" \"vega-lib\": \"https://cdn.jsdelivr.net/npm//vega-lib?noext\",\n",
@@ -483,14 +492,14 @@
483492
" .catch(showError)\n",
484493
" .then(() => displayChart(vegaEmbed));\n",
485494
" }\n",
486-
" })({\"config\": {\"view\": {\"continuousWidth\": 400, \"continuousHeight\": 300}}, \"layer\": [{\"mark\": \"line\", \"encoding\": {\"x\": {\"type\": \"temporal\", \"field\": \"day\"}, \"y\": {\"type\": \"quantitative\", \"field\": \"num_issues\"}}}, {\"mark\": \"point\", \"encoding\": {\"x\": {\"type\": \"temporal\", \"field\": \"day\"}, \"y\": {\"type\": \"quantitative\", \"field\": \"num_issues\"}}}], \"data\": {\"name\": \"data-bcab1200d103f404c02e000cf7142a4c\"}, \"$schema\": \"https://vega.github.io/schema/vega-lite/v4.0.2.json\", \"datasets\": {\"data-bcab1200d103f404c02e000cf7142a4c\": [{\"day\": \"2020-01-03T00:00:00\", \"num_issues\": 5}, {\"day\": \"2020-01-17T00:00:00\", \"num_issues\": 10}, {\"day\": \"2020-01-18T00:00:00\", \"num_issues\": 1}, {\"day\": \"2020-01-19T00:00:00\", \"num_issues\": 1}, {\"day\": \"2020-01-20T00:00:00\", \"num_issues\": 7}]}}, {\"mode\": \"vega-lite\"});\n",
495+
" })({\"config\": {\"view\": {\"continuousWidth\": 400, \"continuousHeight\": 300}}, \"layer\": [{\"mark\": \"line\", \"encoding\": {\"x\": {\"type\": \"temporal\", \"field\": \"day\"}, \"y\": {\"type\": \"quantitative\", \"field\": \"num_issues\"}}, \"selection\": {\"selector002\": {\"type\": \"interval\", \"bind\": \"scales\", \"encodings\": [\"x\", \"y\"]}}}, {\"mark\": \"point\", \"encoding\": {\"x\": {\"type\": \"temporal\", \"field\": \"day\"}, \"y\": {\"type\": \"quantitative\", \"field\": \"num_issues\"}}}], \"data\": {\"name\": \"data-8a4f2a8bad3630a9969e40c6ef5a6ad1\"}, \"$schema\": \"https://vega.github.io/schema/vega-lite/v4.0.2.json\", \"datasets\": {\"data-8a4f2a8bad3630a9969e40c6ef5a6ad1\": [{\"day\": \"2020-01-03T00:00:00\", \"num_issues\": 5}, {\"day\": \"2020-01-17T00:00:00\", \"num_issues\": 10}, {\"day\": \"2020-01-18T00:00:00\", \"num_issues\": 1}, {\"day\": \"2020-01-19T00:00:00\", \"num_issues\": 1}, {\"day\": \"2020-01-20T00:00:00\", \"num_issues\": 10}, {\"day\": \"2020-01-21T00:00:00\", \"num_issues\": 8}, {\"day\": \"2020-01-22T00:00:00\", \"num_issues\": 11}, {\"day\": \"2020-01-23T00:00:00\", \"num_issues\": 10}, {\"day\": \"2020-01-24T00:00:00\", \"num_issues\": 8}, {\"day\": \"2020-01-25T00:00:00\", \"num_issues\": 1}, {\"day\": \"2020-01-26T00:00:00\", \"num_issues\": 2}, {\"day\": \"2020-01-27T00:00:00\", \"num_issues\": 5}, {\"day\": \"2020-01-28T00:00:00\", \"num_issues\": 13}, {\"day\": \"2020-01-29T00:00:00\", \"num_issues\": 20}, {\"day\": \"2020-01-30T00:00:00\", \"num_issues\": 17}, {\"day\": \"2020-01-31T00:00:00\", \"num_issues\": 13}, {\"day\": \"2020-02-01T00:00:00\", \"num_issues\": 1}, {\"day\": \"2020-02-02T00:00:00\", \"num_issues\": 7}, {\"day\": \"2020-02-03T00:00:00\", \"num_issues\": 13}, {\"day\": \"2020-02-04T00:00:00\", \"num_issues\": 15}, {\"day\": \"2020-02-05T00:00:00\", \"num_issues\": 15}, {\"day\": \"2020-02-06T00:00:00\", \"num_issues\": 7}, {\"day\": \"2020-02-07T00:00:00\", \"num_issues\": 9}, {\"day\": \"2020-02-08T00:00:00\", \"num_issues\": 1}, {\"day\": \"2020-02-09T00:00:00\", \"num_issues\": 9}, {\"day\": \"2020-02-10T00:00:00\", \"num_issues\": 15}, {\"day\": \"2020-02-11T00:00:00\", \"num_issues\": 16}, {\"day\": \"2020-02-12T00:00:00\", \"num_issues\": 25}, {\"day\": \"2020-02-13T00:00:00\", \"num_issues\": 16}, {\"day\": \"2020-02-14T00:00:00\", \"num_issues\": 15}, {\"day\": \"2020-02-15T00:00:00\", \"num_issues\": 2}, {\"day\": \"2020-02-16T00:00:00\", \"num_issues\": 3}, {\"day\": \"2020-02-17T00:00:00\", \"num_issues\": 9}, {\"day\": \"2020-02-18T00:00:00\", \"num_issues\": 7}, {\"day\": \"2020-02-19T00:00:00\", \"num_issues\": 16}, {\"day\": \"2020-02-20T00:00:00\", \"num_issues\": 10}, {\"day\": \"2020-02-21T00:00:00\", \"num_issues\": 7}, {\"day\": \"2020-02-22T00:00:00\", \"num_issues\": 2}, {\"day\": \"2020-02-23T00:00:00\", \"num_issues\": 4}, {\"day\": \"2020-02-24T00:00:00\", \"num_issues\": 15}, {\"day\": \"2020-02-25T00:00:00\", \"num_issues\": 4}, {\"day\": \"2020-02-26T00:00:00\", \"num_issues\": 8}, {\"day\": \"2020-02-27T00:00:00\", \"num_issues\": 9}, {\"day\": \"2020-02-28T00:00:00\", \"num_issues\": 11}, {\"day\": \"2020-02-29T00:00:00\", \"num_issues\": 2}, {\"day\": \"2020-03-01T00:00:00\", \"num_issues\": 3}, {\"day\": \"2020-03-02T00:00:00\", \"num_issues\": 8}, {\"day\": \"2020-03-03T00:00:00\", \"num_issues\": 13}, {\"day\": \"2020-03-04T00:00:00\", \"num_issues\": 17}, {\"day\": \"2020-03-05T00:00:00\", \"num_issues\": 9}, {\"day\": \"2020-03-06T00:00:00\", \"num_issues\": 5}, {\"day\": \"2020-03-07T00:00:00\", \"num_issues\": 1}, {\"day\": \"2020-03-08T00:00:00\", \"num_issues\": 4}, {\"day\": \"2020-03-09T00:00:00\", \"num_issues\": 11}, {\"day\": \"2020-03-10T00:00:00\", \"num_issues\": 14}, {\"day\": \"2020-03-11T00:00:00\", \"num_issues\": 14}, {\"day\": \"2020-03-12T00:00:00\", \"num_issues\": 14}, {\"day\": \"2020-03-13T00:00:00\", \"num_issues\": 14}, {\"day\": \"2020-03-14T00:00:00\", \"num_issues\": 1}, {\"day\": \"2020-03-15T00:00:00\", \"num_issues\": 6}, {\"day\": \"2020-03-16T00:00:00\", \"num_issues\": 18}, {\"day\": \"2020-03-17T00:00:00\", \"num_issues\": 12}, {\"day\": \"2020-03-18T00:00:00\", \"num_issues\": 13}, {\"day\": \"2020-03-19T00:00:00\", \"num_issues\": 7}, {\"day\": \"2020-03-20T00:00:00\", \"num_issues\": 13}, {\"day\": \"2020-03-21T00:00:00\", \"num_issues\": 3}, {\"day\": \"2020-03-22T00:00:00\", \"num_issues\": 1}, {\"day\": \"2020-03-23T00:00:00\", \"num_issues\": 14}, {\"day\": \"2020-03-24T00:00:00\", \"num_issues\": 13}, {\"day\": \"2020-03-25T00:00:00\", \"num_issues\": 6}, {\"day\": \"2020-03-26T00:00:00\", \"num_issues\": 9}, {\"day\": \"2020-03-27T00:00:00\", \"num_issues\": 7}, {\"day\": \"2020-03-29T00:00:00\", \"num_issues\": 1}, {\"day\": \"2020-03-30T00:00:00\", \"num_issues\": 7}, {\"day\": \"2020-03-31T00:00:00\", \"num_issues\": 4}, {\"day\": \"2020-04-01T00:00:00\", \"num_issues\": 6}, {\"day\": \"2020-04-02T00:00:00\", \"num_issues\": 8}, {\"day\": \"2020-04-03T00:00:00\", \"num_issues\": 12}, {\"day\": \"2020-04-04T00:00:00\", \"num_issues\": 2}, {\"day\": \"2020-04-05T00:00:00\", \"num_issues\": 3}, {\"day\": \"2020-04-06T00:00:00\", \"num_issues\": 1}]}}, {\"mode\": \"vega-lite\"});\n",
487496
"</script>"
488497
],
489498
"text/plain": [
490499
"alt.LayerChart(...)"
491500
]
492501
},
493-
"execution_count": 316,
502+
"execution_count": 13,
494503
"metadata": {},
495504
"output_type": "execute_result"
496505
}
@@ -504,9 +513,7 @@
504513
"\n",
505514
"point = line + line.mark_point()\n",
506515
"\n",
507-
"# Try turning off interactive mode to see if it renders in GitHub preview.\n",
508-
"point\n",
509-
"# point.interactive()"
516+
"point.interactive()"
510517
]
511518
}
512519
],
@@ -526,9 +533,9 @@
526533
"name": "python",
527534
"nbconvert_exporter": "python",
528535
"pygments_lexer": "ipython3",
529-
"version": "3.7.5rc1"
536+
"version": "3.6.9"
530537
}
531538
},
532539
"nbformat": 4,
533-
"nbformat_minor": 2
540+
"nbformat_minor": 4
534541
}

0 commit comments

Comments
 (0)