diff --git a/bug-string-reviewnb.ipynb b/bug-string-reviewnb.ipynb new file mode 100644 index 000000000..9635e30f2 --- /dev/null +++ b/bug-string-reviewnb.ipynb @@ -0,0 +1,72 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " select name\n", + " from table\n", + " where app_id = 'test_id'\n", + " and event_time > 20200310\n", + " group by 1\n", + " \n", + "101\n" + ] + } + ], + "source": [ + "import datetime\n", + "app_id = 'test_id'\n", + "sql = \"\"\"\n", + " select name\n", + " from table\n", + " where app_id = {app_id}\n", + " and event_time > {datetime.datetime.now().strftime('%Y%m%d')}\n", + " group by 1\n", + " \"\"\"\n", + " \n", + "print(sql)\n", + "\n", + "a = 100\n", + "a = a + 1\n", + "print(a)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# new code cell" + ] + } + ], + "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.6.8" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/notebooks/01.03-Magic-Commands.ipynb b/notebooks/01.03-Magic-Commands.ipynb index 4a47b373a..5e734b2a9 100644 --- a/notebooks/01.03-Magic-Commands.ipynb +++ b/notebooks/01.03-Magic-Commands.ipynb @@ -11,6 +11,17 @@ "*The text is released under the [CC-BY-NC-ND license](https://creativecommons.org/licenses/by-nc-nd/3.0/us/legalcode), and code is released under the [MIT license](https://opensource.org/licenses/MIT). If you find this content useful, please consider supporting the work by [buying the book](http://shop.oreilly.com/product/0636920034919.do)!*" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "New list items\n", + "\n", + "- The previous two sections showed how and explore Python efficiently and interactively. Here we'll begin discussing some\n", + "- versionChanged-The previous two sections added showed how IPython lets you use and explore Python efficiently and interactively. Here we'll begin discussing some\n", + "- newWord3The previous two sections showed how IModified lets you use and explore Python efficiently and interactively. Here we'll begin discussing some" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -225,9 +236,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.5.1" + "version": "3.6.8" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/notebooks/02.08-Sorting.ipynb b/notebooks/02.08-Sorting.ipynb index fdb02d56c..52efb57e8 100644 --- a/notebooks/02.08-Sorting.ipynb +++ b/notebooks/02.08-Sorting.ipynb @@ -30,7 +30,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Up to this point we have been concerned mainly with tools to access and operate on array data with NumPy.\n", + "--Change--Up to this point we have been concerned mainly with tools to access and operate on array data with NumPy.\n", "This section covers algorithms related to sorting values in NumPy arrays.\n", "These algorithms are a favorite topic in introductory computer science courses: if you've ever taken one, you probably have had dreams (or, depending on your temperament, nightmares) about *insertion sorts*, *selection sorts*, *merge sorts*, *quick sorts*, *bubble sorts*, and many, many more.\n", "All are means of accomplishing a similar task: sorting the values in a list or array.\n", @@ -729,9 +729,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.4" + "version": "3.6.8" } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/notebooks/Plotly-v2.ipynb b/notebooks/Plotly-v2.ipynb new file mode 100644 index 000000000..06f8aa9a7 --- /dev/null +++ b/notebooks/Plotly-v2.ipynb @@ -0,0 +1,945 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "type": "bar", + "y": [ + 2, + 3, + 1 + ] + } + ], + "layout": { + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + } + }, + "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": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "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": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "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 + }, + "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 + } + } + } + } + }, + "text/html": [ + "
\n", + " \n", + " \n", + "
\n", + " \n", + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import plotly.graph_objects as go\n", + "fig = go.Figure(data=go.Bar(y=[2, 3, 1]))\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.6.8" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/notebooks/Plotly-v4.ipynb b/notebooks/Plotly-v4.ipynb new file mode 100644 index 000000000..e072def88 --- /dev/null +++ b/notebooks/Plotly-v4.ipynb @@ -0,0 +1,1006 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import plotly.express as px\n", + "fig = px.scatter(x=[0, 1, 2, 3, 4], y=[0, 1, 4, 9, 16])\n", + "fig.show(renderer=\"png\")" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "hoverlabel": { + "namelength": 0 + }, + "hovertemplate": "x=%{x}
y=%{y}", + "legendgroup": "", + "marker": { + "color": "#636efa", + "symbol": "circle" + }, + "mode": "markers", + "name": "", + "showlegend": false, + "type": "scatter", + "x": [ + 0, + 1, + 2, + 3, + 4 + ], + "xaxis": "x", + "y": [ + 0, + 1, + 4, + 9, + 16 + ], + "yaxis": "y" + } + ], + "layout": { + "legend": { + "tracegroupgap": 0 + }, + "margin": { + "t": 60 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + } + }, + "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": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "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": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "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 + }, + "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 + } + } + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0, + 1 + ], + "title": { + "text": "x" + } + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0, + 1 + ], + "title": { + "text": "y" + } + } + } + }, + "text/html": [ + "
\n", + " \n", + " \n", + "
\n", + " \n", + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import plotly.express as px\n", + "fig = px.scatter(x=[0, 1, 2, 3, 4], y=[0, 1, 4, 9, 16])\n", + "fig.show()" + ] + } + ], + "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.6.8" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/v2-bug-string-reviewnb.ipynb b/v2-bug-string-reviewnb.ipynb new file mode 100644 index 000000000..0c5b1cb67 --- /dev/null +++ b/v2-bug-string-reviewnb.ipynb @@ -0,0 +1,69 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " select name\n", + " from table\n", + " where app_id = 'test_id'\n", + " and event_time > 20200310\n", + " group by 1\n", + " \n", + "101\n" + ] + } + ], + "source": [ + "import datetime\n", + "app_id = 'test_id'\n", + "sql = f\"\"\"\n", + " select name\n", + " from table\n", + " where app_id = '{app_id}'\n", + " and event_time > {datetime.datetime.now().strftime('%Y%m%d')}\n", + " group by 1\n", + " \"\"\"\n", + " \n", + "print(sql)\n", + "a = 100\n", + "a = a + 1\n", + "print(a)" + ] + }, + { + "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.6.8" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/v3-bug-string-reviewnb.ipynb b/v3-bug-string-reviewnb.ipynb new file mode 100644 index 000000000..e520825c7 --- /dev/null +++ b/v3-bug-string-reviewnb.ipynb @@ -0,0 +1,72 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " select name\n", + " from table\n", + " where app_id = 'test_id'\n", + " and event_time > 20200310\n", + " group by 1\n", + " \n", + "101\n" + ] + } + ], + "source": [ + "import datetime\n", + "app_id = 'test_id'\n", + "sql = \"\"\"\n", + " select name\n", + " from table\n", + " where app_id = '{app_id}'\n", + " and event_time > {datetime.datetime.now().strftime('%Y%m%d')}\n", + " group by 1\n", + " \"\"\"\n", + " \n", + "print(sql)\n", + "a = 100\n", + "a = a + 1\n", + "print(a)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "u'abc' + foo\n", + "f'abc' + foo" + ] + } + ], + "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.6.8" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +}