{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Defaulting to user installation because normal site-packages is not writeable\n", "Requirement already satisfied: plotly in /Users/sarat/Library/Python/3.9/lib/python/site-packages (5.16.1)\n", "Requirement already satisfied: nbformat in /Users/sarat/Library/Python/3.9/lib/python/site-packages (5.9.2)\n", "Requirement already satisfied: tenacity>=6.2.0 in /Users/sarat/Library/Python/3.9/lib/python/site-packages (from plotly) (8.2.3)\n", "Requirement already satisfied: packaging in /Users/sarat/Library/Python/3.9/lib/python/site-packages (from plotly) (23.1)\n", "Requirement already satisfied: fastjsonschema in /Users/sarat/Library/Python/3.9/lib/python/site-packages (from nbformat) (2.18.0)\n", "Requirement already satisfied: jsonschema>=2.6 in /Users/sarat/Library/Python/3.9/lib/python/site-packages (from nbformat) (4.19.0)\n", "Requirement already satisfied: jupyter-core in /Users/sarat/Library/Python/3.9/lib/python/site-packages (from nbformat) (5.3.1)\n", "Requirement already satisfied: traitlets>=5.1 in /Users/sarat/Library/Python/3.9/lib/python/site-packages (from nbformat) (5.9.0)\n", "Requirement already satisfied: attrs>=22.2.0 in /Users/sarat/Library/Python/3.9/lib/python/site-packages (from jsonschema>=2.6->nbformat) (23.1.0)\n", "Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /Users/sarat/Library/Python/3.9/lib/python/site-packages (from jsonschema>=2.6->nbformat) (2023.7.1)\n", "Requirement already satisfied: referencing>=0.28.4 in /Users/sarat/Library/Python/3.9/lib/python/site-packages (from jsonschema>=2.6->nbformat) (0.30.2)\n", "Requirement already satisfied: rpds-py>=0.7.1 in /Users/sarat/Library/Python/3.9/lib/python/site-packages (from jsonschema>=2.6->nbformat) (0.9.2)\n", "Requirement already satisfied: platformdirs>=2.5 in /Users/sarat/Library/Python/3.9/lib/python/site-packages (from jupyter-core->nbformat) (3.10.0)\n" ] } ], "source": [ "!pip install --upgrade plotly nbformat" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Files removed: 2\n" ] } ], "source": [ "!pip cache purge" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Defaulting to user installation because normal site-packages is not writeable\n", "Requirement already satisfied: nbformat in /Users/sarat/Library/Python/3.9/lib/python/site-packages (5.9.2)\n", "Requirement already satisfied: fastjsonschema in /Users/sarat/Library/Python/3.9/lib/python/site-packages (from nbformat) (2.18.0)\n", "Requirement already satisfied: jsonschema>=2.6 in /Users/sarat/Library/Python/3.9/lib/python/site-packages (from nbformat) (4.19.0)\n", "Requirement already satisfied: jupyter-core in /Users/sarat/Library/Python/3.9/lib/python/site-packages (from nbformat) (5.3.1)\n", "Requirement already satisfied: traitlets>=5.1 in /Users/sarat/Library/Python/3.9/lib/python/site-packages (from nbformat) (5.9.0)\n", "Requirement already satisfied: attrs>=22.2.0 in /Users/sarat/Library/Python/3.9/lib/python/site-packages (from jsonschema>=2.6->nbformat) (23.1.0)\n", "Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /Users/sarat/Library/Python/3.9/lib/python/site-packages (from jsonschema>=2.6->nbformat) (2023.7.1)\n", "Requirement already satisfied: referencing>=0.28.4 in /Users/sarat/Library/Python/3.9/lib/python/site-packages (from jsonschema>=2.6->nbformat) (0.30.2)\n", "Requirement already satisfied: rpds-py>=0.7.1 in /Users/sarat/Library/Python/3.9/lib/python/site-packages (from jsonschema>=2.6->nbformat) (0.9.2)\n", "Requirement already satisfied: platformdirs>=2.5 in /Users/sarat/Library/Python/3.9/lib/python/site-packages (from jupyter-core->nbformat) (3.10.0)\n" ] } ], "source": [ "!pip install --upgrade nbformat" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[*********************100%***********************] 1 of 1 completed\n" ] }, { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "close": [ 174.1999969482422, 171.55999755859375, 171.83999633789062, 172.99000549316406, 175.42999267578125, 177.3000030517578, 177.25, 180.08999633789062, 180.9499969482422, 179.5800018310547, 179.2100067138672, 177.82000732421875, 180.57000732421875, 180.9600067138672, 183.7899932861328, 183.30999755859375, 183.9499969482422, 186.00999450683594, 184.9199981689453, 185.00999450683594, 183.9600067138672, 187, 186.67999267578125, 185.27000427246094, 188.05999755859375, 189.25, 189.58999633789062, 193.97000122070312, 192.4600067138672, 191.3300018310547, 191.80999755859375, 190.67999267578125, 188.61000061035156, 188.0800018310547, 189.77000427246094, 190.5399932861328, 190.69000244140625, 193.99000549316406, 193.72999572753906, 195.10000610351562, 193.1300048828125, 191.94000244140625, 192.75, 193.6199951171875, 194.5, 193.22000122070312, 195.8300018310547, 196.4499969482422, 195.61000061035156, 192.5800018310547, 191.1699981689453, 181.99000549316406, 178.85000610351562, 179.8000030517578, 178.19000244140625, 177.97000122070312, 177.7899932861328, 179.4600067138672, 177.4499969482422, 176.57000732421875, 174, 174.49000549316406 ], "high": [ 174.7100067138672, 173.3800048828125, 172.4199981689453, 173.89999389648438, 175.77000427246094, 178.99000549316406, 179.35000610351562, 180.1199951171875, 181.77999877929688, 184.9499969482422, 180.1199951171875, 181.2100067138672, 180.83999633789062, 182.22999572753906, 183.88999938964844, 184.14999389648438, 184.38999938964844, 186.52000427246094, 186.99000549316406, 186.10000610351562, 185.41000366210938, 187.0500030517578, 187.55999755859375, 188.0500030517578, 188.38999938964844, 189.89999389648438, 190.07000732421875, 194.47999572753906, 193.8800048828125, 192.97999572753906, 192.02000427246094, 192.6699981689453, 189.99000549316406, 189.3000030517578, 191.6999969482422, 191.19000244140625, 191.17999267578125, 194.32000732421875, 194.3300018310547, 198.22999572753906, 196.47000122070312, 194.97000122070312, 194.91000366210938, 194.44000244140625, 195.63999938964844, 197.1999969482422, 196.6300048828125, 196.49000549316406, 196.72999572753906, 195.17999267578125, 192.3699951171875, 187.3800048828125, 183.1300048828125, 180.27000427246094, 180.92999267578125, 180.75, 178.6199951171875, 179.69000244140625, 179.47999572753906, 178.5399932861328, 177.50999450683594, 175.10000610351562 ], "low": [ 173.4499969482422, 171.27999877929688, 170.52000427246094, 171.69000244140625, 173.11000061035156, 176.57000732421875, 176.75999450683594, 176.92999267578125, 179.25999450683594, 178.0399932861328, 177.42999267578125, 177.32000732421875, 177.4600067138672, 180.6300048828125, 180.97000122070312, 182.44000244140625, 182.02000427246094, 183.77999877929688, 184.27000427246094, 184.41000366210938, 182.58999633789062, 183.6699981689453, 185.00999450683594, 185.22999572753906, 185.6699981689453, 187.60000610351562, 188.94000244140625, 191.25999450683594, 191.75999450683594, 190.6199951171875, 189.1999969482422, 190.24000549316406, 187.0399932861328, 186.60000610351562, 188.47000122070312, 189.77999877929688, 189.6300048828125, 191.80999755859375, 192.4199981689453, 192.64999389648438, 192.5, 191.22999572753906, 192.25, 192.9199981689453, 193.32000732421875, 192.5500030517578, 194.13999938964844, 195.25999450683594, 195.27999877929688, 191.85000610351562, 190.69000244140625, 181.9199981689453, 177.35000610351562, 177.5800018310547, 177.00999450683594, 177.60000610351562, 176.5500030517578, 177.30999755859375, 177.0500030517578, 176.5, 173.47999572753906, 171.9600067138672 ], "open": [ 173.97999572753906, 173.1300048828125, 171.08999633789062, 172.41000366210938, 173.32000732421875, 176.9600067138672, 177.3300018310547, 177.6999969482422, 181.02999877929688, 182.6300048828125, 179.97000122070312, 178.44000244140625, 177.89999389648438, 181.5, 181.27000427246094, 182.8000030517578, 183.3699951171875, 183.9600067138672, 186.72999572753906, 184.41000366210938, 184.89999389648438, 183.74000549316406, 185.5500030517578, 186.8300018310547, 185.88999938964844, 187.92999267578125, 189.0800018310547, 191.6300048828125, 193.77999877929688, 191.57000732421875, 189.83999633789062, 191.41000366210938, 189.25999450683594, 189.16000366210938, 189.67999267578125, 190.5, 190.22999572753906, 191.89999389648438, 193.35000610351562, 193.10000610351562, 195.08999633789062, 194.10000610351562, 193.41000366210938, 193.3300018310547, 193.6699981689453, 196.02000427246094, 194.6699981689453, 196.05999755859375, 196.24000549316406, 195.0399932861328, 191.57000732421875, 185.52000427246094, 182.1300048828125, 179.69000244140625, 180.8699951171875, 179.47999572753906, 177.32000732421875, 177.97000122070312, 178.8800048828125, 177.1300048828125, 177.13999938964844, 172.3000030517578 ], "type": "candlestick", "x": [ "2023-05-22T00:00:00", "2023-05-23T00:00:00", "2023-05-24T00:00:00", "2023-05-25T00:00:00", "2023-05-26T00:00:00", "2023-05-30T00:00:00", "2023-05-31T00:00:00", "2023-06-01T00:00:00", "2023-06-02T00:00:00", "2023-06-05T00:00:00", "2023-06-06T00:00:00", "2023-06-07T00:00:00", "2023-06-08T00:00:00", "2023-06-09T00:00:00", "2023-06-12T00:00:00", "2023-06-13T00:00:00", "2023-06-14T00:00:00", "2023-06-15T00:00:00", "2023-06-16T00:00:00", "2023-06-20T00:00:00", "2023-06-21T00:00:00", "2023-06-22T00:00:00", "2023-06-23T00:00:00", "2023-06-26T00:00:00", "2023-06-27T00:00:00", "2023-06-28T00:00:00", "2023-06-29T00:00:00", "2023-06-30T00:00:00", "2023-07-03T00:00:00", "2023-07-05T00:00:00", "2023-07-06T00:00:00", "2023-07-07T00:00:00", "2023-07-10T00:00:00", "2023-07-11T00:00:00", "2023-07-12T00:00:00", "2023-07-13T00:00:00", "2023-07-14T00:00:00", "2023-07-17T00:00:00", "2023-07-18T00:00:00", "2023-07-19T00:00:00", "2023-07-20T00:00:00", "2023-07-21T00:00:00", "2023-07-24T00:00:00", "2023-07-25T00:00:00", "2023-07-26T00:00:00", "2023-07-27T00:00:00", "2023-07-28T00:00:00", "2023-07-31T00:00:00", "2023-08-01T00:00:00", "2023-08-02T00:00:00", "2023-08-03T00:00:00", "2023-08-04T00:00:00", "2023-08-07T00:00:00", "2023-08-08T00:00:00", "2023-08-09T00:00:00", "2023-08-10T00:00:00", "2023-08-11T00:00:00", "2023-08-14T00:00:00", "2023-08-15T00:00:00", "2023-08-16T00:00:00", "2023-08-17T00:00:00", "2023-08-18T00:00:00" ] } ], "layout": { "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Candlestick Chart for AAPL in the Last 90 Days" }, "xaxis": { "rangeslider": { "visible": false }, "title": { "text": "Date" } }, "yaxis": { "title": { "text": "Price" } } } } }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import yfinance as yf\n", "import plotly.graph_objects as go\n", "from datetime import datetime, timedelta\n", "\n", "# Define the stock ticker symbol and the date range\n", "ticker_symbol = \"AAPL\" # Example: Apple Inc.\n", "end_date = datetime.today()\n", "start_date = end_date - timedelta(days=90)\n", "\n", "# Fetch historical data using yfinance\n", "data = yf.download(ticker_symbol, start=start_date, end=end_date)\n", "\n", "# Create a candlestick graph using Plotly\n", "fig = go.Figure(data=[go.Candlestick(x=data.index,\n", " open=data['Open'],\n", " high=data['High'],\n", " low=data['Low'],\n", " close=data['Close'])])\n", "\n", "# Customize the layout\n", "fig.update_layout(title=f'Candlestick Chart for {ticker_symbol} in the Last 90 Days',\n", " xaxis_title='Date',\n", " yaxis_title='Price',\n", " xaxis_rangeslider_visible=False)\n", "\n", "# Show the plot\n", "fig.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.6" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }