Skip to content

Instantly share code, notes, and snippets.

@symbioquine
Created February 12, 2022 15:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save symbioquine/1ad8708ddf83afb3e907b95002d9e744 to your computer and use it in GitHub Desktop.
Save symbioquine/1ad8708ddf83afb3e907b95002d9e744 to your computer and use it in GitHub Desktop.
farmOS + JupyterLite: seeding_logs_by_weekday.ipynb
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"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"
},
"kernelspec": {
"name": "python",
"display_name": "Pyolite",
"language": "python"
}
},
"nbformat_minor": 4,
"nbformat": 4,
"cells": [
{
"cell_type": "code",
"source": "from pyodide.http import pyfetch\nfrom IPython.display import JSON\nfrom js import location\n\nasync def get_all_entities(base_url):\n next_page = base_url\n while next_page is not None:\n resp = await pyfetch(next_page, method='GET')\n\n data = await resp.json()\n\n for entity in data.get('data', []):\n yield entity\n\n next_page = data.get('links', {}).get('next', {}).get('href', None)\n\nall_seeding_logs = [log async for log in get_all_entities(location.origin + '/api/log/seeding')]",
"metadata": {
"trusted": true
},
"execution_count": 68,
"outputs": []
},
{
"cell_type": "code",
"source": "import datetime\nfrom collections import defaultdict\n\ndef log_ts(log):\n return datetime.datetime.strptime(log['attributes']['timestamp'], \"%Y-%m-%dT%H:%M:%S%z\")\n\nWEEKDAYS = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su']\n\nlog_counts_by_weekday = defaultdict(lambda: 0)\n\nfor log in all_seeding_logs:\n log_counts_by_weekday[WEEKDAYS[log_ts(log).weekday()]] += 1\n\nJSON(log_counts_by_weekday)",
"metadata": {
"trusted": true
},
"execution_count": 69,
"outputs": [
{
"execution_count": 69,
"output_type": "execute_result",
"data": {
"text/plain": "<IPython.core.display.JSON object>",
"application/json": {
"Th": 56,
"Su": 156,
"Tu": 85,
"Fr": 105,
"We": 58,
"Mo": 40,
"Sa": 22
}
},
"metadata": {
"application/json": {
"expanded": false,
"root": "root"
}
}
}
]
},
{
"cell_type": "code",
"source": "import numpy as np\n\nweekday_occurrences = np.array([log_ts(log).weekday() for log in all_seeding_logs])",
"metadata": {
"trusted": true
},
"execution_count": 70,
"outputs": []
},
{
"cell_type": "code",
"source": "import matplotlib.pyplot as plt\n\n%matplotlib inline\n\nfig, ax = plt.subplots(1, 1)\nax.hist(weekday_occurrences, 7)\n\nax.set_title(\"Seeding Logs by Weekday\")\nax.set_ylabel('# of logs')\n\nfor rect, label in zip(ax.patches, WEEKDAYS):\n height = rect.get_height()\n ax.text(rect.get_x() + rect.get_width() / 2, height + 0.1, label, ha='center', va='bottom')\n\nplt.show()\n",
"metadata": {
"trusted": true
},
"execution_count": 71,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "<pyolite.display.Image at 0x7850348>",
"image/png": "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fwUqgGpJT0j6aTvWZ2Zm1qxyh9H/IiKWpE9CXhsRn8S3krIOcv311/Pd7353z/To0aP54he/uGf6xhtv5Nvf/nYGlZlZFsoKsIj4SsnkZWnb5nK2abYvZ511FvX1ySXWXbt2sXnzZlasWLFnfn19PSNHjsyqPDPrZO32Reb2fDKzWXNGjhzJokXJtzVWrFjBkCFD+PCHP8xrr73G22+/zXPPPYckPv3pT3PqqacyevRo1q9fn3HVZtZRyn0ic7uTdARwBzAECJI73q8C7gFqSK67XRQRr2VToWWlb9++VFZW8sorr1BfX8+ZZ57JunXrWLRoET179uQTn/gE119/PXPnzqW6upp77rmHr371q9x1112Z1LtlyxZGjUoeJL5hwwYqKiqorq6msbGRvn37snLlykzqMusqchdgJEPyfx4RfybpUOBDJEP2F0TEbZImA5OBm7Is0rIxcuRI6uvrqa+v54YbbmDdunXU19fTs2dP+vXrx4MPPsjnPvc5AHbu3EmfPn0yq/Woo45i6dKlAEydOpUePXowadIkGhsbGTNmTGZ1mXUVuQowST2Bs3nvetoOYIeksSTfNwOYCTyKA+ygtPs62LPPPsuQIUMYMGAA3/rWtzj88MOpq6vb0yPLu507d3LllVdSX19Pv379mDt3LocddljWZZkVSt5u5jsI2AT8QNKvJN0hqTvQOyJ2X8zYAPTOrELL1MiRI5k/fz69evWioqKCXr16sW3bNhYtWsT48ePZtGnTngB755139hrkkSerV6/m6quvZsWKFRxxxBHcd999WZdkVjh5C7BK4BTgexFxMvA7ktOFe0REkFwbex9JEyUtkbRk06ZNHV6sdb6hQ4eyefNmRowYsVdbz549Ofroo5kzZw433XQTJ510EsOHD98zajFvBg0axPDhwwE49dRTaWxszLQesyLK1SlEYC3J98kWp9NzSALsVUl9ImK9pD7AxuZWTr+PNh2gtra22ZCzYquoqOD111/fq23GjBl73g8fPpyFCxd2clWt163bew9vqKio4M0338ywGrNiylUPLCI2AGsknZA2jQJWAvOACWnbBGBuBuWZmVmO5K0HBnANcHc6AvFFkjt7HALcK+kK4GXgogzrszLUTH4g6xJapfG287Muwcz2IXcBFhFLgdpmZo3q5FLM2s3UqVP3vK+pqWH58uV7pidNmpRB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"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 432x288 with 0 Axes>"
},
"metadata": {}
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment