{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Downloading Gist data from the Github API" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ " from toolz.curried import *\n", " from pandas import Series, DataFrame, concat, get_dummies, TimeGrouper" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "cache the `pandas.read_json` function because that is how we will download the results. Be aware, resetting `read_json` will clear the cache." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ " read_json = memoize(__import__('pandas').read_json)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Begin downloading the data through the Github user information." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ " def get_info(user = 'tonyfast'):\n", " return concat({user: \n", " read_json(f\"\"\"https://api.github.com/users/{user}\"\"\", typ='series')\n", " }).unstack()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From the info we can determine the location and quantity of the user's gists." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ " def get_gists(info, max=3):\n", " gist_page_url = info.loc[\"gists_url\"].format(**{\"/gist_id\": \"?page={}\"}).format\n", "\n", " return (\n", " concat(\n", " [\n", " read_json(gist_page_url(object))\n", " for object in range(1, min(max, (info.loc[\"public_gists\"] // 30) + 1))\n", " ]\n", " )\n", " .pipe(\n", " lambda df: df[\"files\"]\n", " .apply(compose(Series, list, dict.values))\n", " .stack()\n", " .apply(Series)\n", " .reset_index(-1, drop=True)\n", " .join(df)\n", " )\n", " .pipe(do(cleanse)).pipe(convert_to_feather, f\"{info.name}_gists.feather\")\n", " )\n", "\n", "\n", " def cleanse(df):\n", " \"\"\"files and owner are dict's that cannot be serialized by feather\"\"\"\n", " del df[\"files\"], df[\"owner\"]\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Storing the data in [feather](https://github.com/wesm/feather) makes it more reusable." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ " def convert_to_feather(df, dest):\n", " import feather\n", " feather.write_dataframe(df, dest)\n", " return feather.read_dataframe(dest)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The `main` function" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ " def main(user=\"tonyfast\", max=3):\n", " return get_gists(get_info(user).loc[user], max)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Demonstrate the functions use." ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
filenametypelanguageraw_urlsizecommentscomments_urlcommits_urlcreated_atdescription...git_pull_urlgit_push_urlhtml_urlidnode_idpublictruncatedupdated_aturluser
2554Untitled279.ipynbtext/plainJupyter Notebookhttps://gist.githubusercontent.com/tonyfast/a4...19280https://api.github.com/gists/748a91e1769d24979...https://api.github.com/gists/748a91e1769d24979...2015-12-29 13:51:19Underlay an svg element as a <div> background...https://gist.github.com/748a91e1769d24979393.githttps://gist.github.com/748a91e1769d24979393.githttps://gist.github.com/748a91e1769d24979393748a91e1769d24979393MDQ6R2lzdDc0OGE5MWUxNzY5ZDI0OTc5MzkzTrueFalse2015-12-29 13:51:19https://api.github.com/gists/748a91e1769d24979393NaN
8969Untitled144.ipynbtext/plainJupyter Notebookhttps://gist.githubusercontent.com/tonyfast/0c...37530https://api.github.com/gists/b0125d860d5ffe74d...https://api.github.com/gists/b0125d860d5ffe74d...2016-02-03 17:58:58A simple dropdown widget...https://gist.github.com/b0125d860d5ffe74dbdb.githttps://gist.github.com/b0125d860d5ffe74dbdb.githttps://gist.github.com/b0125d860d5ffe74dbdbb0125d860d5ffe74dbdbMDQ6R2lzdGIwMTI1ZDg2MGQ1ZmZlNzRkYmRiTrueFalse2016-02-03 17:58:59https://api.github.com/gists/b0125d860d5ffe74dbdbNaN
\n", "

2 rows × 21 columns

\n", "
" ], "text/plain": [ " filename type language \\\n", "2554 Untitled279.ipynb text/plain Jupyter Notebook \n", "8969 Untitled144.ipynb text/plain Jupyter Notebook \n", "\n", " raw_url size comments \\\n", "2554 https://gist.githubusercontent.com/tonyfast/a4... 1928 0 \n", "8969 https://gist.githubusercontent.com/tonyfast/0c... 3753 0 \n", "\n", " comments_url \\\n", "2554 https://api.github.com/gists/748a91e1769d24979... \n", "8969 https://api.github.com/gists/b0125d860d5ffe74d... \n", "\n", " commits_url created_at \\\n", "2554 https://api.github.com/gists/748a91e1769d24979... 2015-12-29 13:51:19 \n", "8969 https://api.github.com/gists/b0125d860d5ffe74d... 2016-02-03 17:58:58 \n", "\n", " description ... \\\n", "2554 Underlay an svg element as a
background ... \n", "8969 A simple dropdown widget ... \n", "\n", " git_pull_url \\\n", "2554 https://gist.github.com/748a91e1769d24979393.git \n", "8969 https://gist.github.com/b0125d860d5ffe74dbdb.git \n", "\n", " git_push_url \\\n", "2554 https://gist.github.com/748a91e1769d24979393.git \n", "8969 https://gist.github.com/b0125d860d5ffe74dbdb.git \n", "\n", " html_url id \\\n", "2554 https://gist.github.com/748a91e1769d24979393 748a91e1769d24979393 \n", "8969 https://gist.github.com/b0125d860d5ffe74dbdb b0125d860d5ffe74dbdb \n", "\n", " node_id public truncated \\\n", "2554 MDQ6R2lzdDc0OGE5MWUxNzY5ZDI0OTc5Mzkz True False \n", "8969 MDQ6R2lzdGIwMTI1ZDg2MGQ1ZmZlNzRkYmRi True False \n", "\n", " updated_at url \\\n", "2554 2015-12-29 13:51:19 https://api.github.com/gists/748a91e1769d24979393 \n", "8969 2016-02-03 17:58:59 https://api.github.com/gists/b0125d860d5ffe74dbdb \n", "\n", " user \n", "2554 NaN \n", "8969 NaN \n", "\n", "[2 rows x 21 columns]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ " if 0: \n", " df = main(max= 1000)\n", " %matplotlib inline\n", " df.set_index('created_at').language.pipe(get_dummies).describe().sort_values('mean', axis=1, ascending=False).loc['mean'].plot.pie()\n", " __import__(\"IPython\").display.display(df.sample(2))" ] }, { "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.5" } }, "nbformat": 4, "nbformat_minor": 2 }