starcore-explorer-bad/content/python.ipynb
2023-06-24 01:19:43 +08:00

722 lines
15 KiB
Plaintext

{
"cells": [
{
"attachments": {},
"cell_type": "markdown",
"metadata": {
"tags": []
},
"source": [
"# A Python kernel backed by Pyodide\n",
"\n",
"![](https://raw.githubusercontent.com/pyodide/pyodide/master/docs/_static/img/pyodide-logo.png)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"import pyodide_kernel\n",
"pyodide_kernel.__version__"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Simple code execution"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"a = 3"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"a"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"b = 89\n",
"\n",
"def sq(x):\n",
" return x * x\n",
"\n",
"sq(b)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"print"
]
},
{
"cell_type": "markdown",
"metadata": {
"tags": []
},
"source": [
"# Redirected streams"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"import sys\n",
"\n",
"print(\"Error !!\", file=sys.stderr)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Error handling"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true,
"trusted": true
},
"outputs": [],
"source": [
"\"Hello\"\n",
"\n",
"def dummy_function():\n",
" import missing_module"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"dummy_function()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Code completion"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### press `tab` to see what is available in `sys` module"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"from sys import "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Code inspection"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### using the question mark"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"?print"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### by pressing `shift+tab`"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"print("
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Input support"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"name = await input('Enter your name: ')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"'Hello, ' + name"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Rich representation"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"from IPython.display import display, Markdown, HTML, JSON, Latex"
]
},
{
"cell_type": "markdown",
"metadata": {
"tags": []
},
"source": [
"## HTML"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"print('Before display')\n",
"\n",
"s = '<h1>HTML Title</h1>'\n",
"display(HTML(s))\n",
"\n",
"print('After display')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Markdown"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"Markdown('''\n",
"# Title\n",
"\n",
"**in bold**\n",
"\n",
"~~Strikthrough~~\n",
"''')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Pandas DataFrame"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"from string import ascii_uppercase as letters\n",
"from IPython.display import display\n",
"\n",
"df = pd.DataFrame(np.random.randint(0, 100, size=(100, len(letters))), columns=list(letters))\n",
"df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Show the same DataFrame "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## IPython.display module"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"from IPython.display import clear_output, display, update_display\n",
"from asyncio import sleep"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Update display"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"class Square:\n",
" color = 'PeachPuff'\n",
" def _repr_html_(self):\n",
" return '''\n",
" <div style=\"background: %s; width: 200px; height: 100px; border-radius: 10px;\">\n",
" </div>''' % self.color\n",
"square = Square()\n",
"\n",
"display(square, display_id='some-square')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"square.color = 'OliveDrab'\n",
"update_display(square, display_id='some-square')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Clear output"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"print(\"hello\")\n",
"await sleep(3)\n",
"clear_output() # will flicker when replacing \"hello\" with \"goodbye\"\n",
"print(\"goodbye\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"print(\"hello\")\n",
"await sleep(3)\n",
"clear_output(wait=True) # prevents flickering\n",
"print(\"goodbye\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Display classes"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"from IPython.display import HTML\n",
"HTML('''\n",
" <div style=\"background: aliceblue; width: 200px; height: 100px; border-radius: 10px;\">\n",
" </div>''')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"from IPython.display import Math\n",
"Math(r'F(k) = \\int_{-\\infty}^{\\infty} f(x) e^{2\\pi i k} dx')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"from IPython.display import Latex\n",
"Latex(r\"\"\"\\begin{eqnarray}\n",
"\\nabla \\times \\vec{\\mathbf{B}} -\\, \\frac1c\\, \\frac{\\partial\\vec{\\mathbf{E}}}{\\partial t} & = \\frac{4\\pi}{c}\\vec{\\mathbf{j}} \\\\\n",
"\\nabla \\cdot \\vec{\\mathbf{E}} & = 4 \\pi \\rho \\\\\n",
"\\nabla \\times \\vec{\\mathbf{E}}\\, +\\, \\frac1c\\, \\frac{\\partial\\vec{\\mathbf{B}}}{\\partial t} & = \\vec{\\mathbf{0}} \\\\\n",
"\\nabla \\cdot \\vec{\\mathbf{B}} & = 0 \n",
"\\end{eqnarray}\"\"\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"from IPython.display import ProgressBar\n",
"\n",
"for i in ProgressBar(10):\n",
" await sleep(0.1)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"from IPython.display import JSON\n",
"JSON(['foo', {'bar': ('baz', None, 1.0, 2)}], metadata={}, expanded=True, root='test')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"from IPython.display import GeoJSON\n",
"GeoJSON(\n",
" data={\n",
" \"type\": \"Feature\",\n",
" \"geometry\": {\n",
" \"type\": \"Point\",\n",
" \"coordinates\": [11.8, -45.04]\n",
" }\n",
" }, url_template=\"http://s3-eu-west-1.amazonaws.com/whereonmars.cartodb.net/{basemap_id}/{z}/{x}/{y}.png\",\n",
" layer_options={\n",
" \"basemap_id\": \"celestia_mars-shaded-16k_global\",\n",
" \"attribution\" : \"Celestia/praesepe\",\n",
" \"tms\": True,\n",
" \"minZoom\" : 0,\n",
" \"maxZoom\" : 5\n",
" }\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Network requests and JSON"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"import json\n",
"from js import fetch"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"res = await fetch('https://httpbin.org/get')\n",
"text = await res.text()\n",
"obj = json.loads(text) \n",
"JSON(obj)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Sympy"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"from sympy import Integral, sqrt, symbols, init_printing\n",
"\n",
"init_printing()\n",
"\n",
"x = symbols('x')\n",
"\n",
"Integral(sqrt(1 / x), x)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Magics"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"import os\n",
"os.listdir()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"%cd /home"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"%pwd"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"current_path = %pwd\n",
"print(current_path)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"%%writefile test.txt\n",
"\n",
"This will create a new file. \n",
"With the text that you see here."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"%history"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"import time"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"%%timeit \n",
"\n",
"time.sleep(0.1)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python (Pyodide)",
"language": "python",
"name": "python"
},
"language_info": {
"codemirror_mode": {
"name": "python",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8"
},
"orig_nbformat": 4
},
"nbformat": 4,
"nbformat_minor": 4
}