├── readme.md ├── Pipfile ├── .gitignore ├── PageRank in Spark.ipynb ├── PageRank explicado.ipynb ├── twitter_closed.jsonl └── Pipfile.lock /readme.md: -------------------------------------------------------------------------------- 1 | 2 | ## Para lanzar los notebooks ejecuta el siguiente comando, necesitas Docker: 3 | 4 | ``` 5 | docker run -p 8888:8888 -v "$PWD":/home/jovyan/work jupyter/pyspark-notebook 6 | ``` 7 | 8 | Una vez ejecutado ve a la dirección web que aparece en tu consola. -------------------------------------------------------------------------------- /Pipfile: -------------------------------------------------------------------------------- 1 | [[source]] 2 | name = "pypi" 3 | url = "https://pypi.org/simple" 4 | verify_ssl = true 5 | 6 | [dev-packages] 7 | 8 | [packages] 9 | twython = "*" 10 | click = "*" 11 | jupyter = "*" 12 | networkx = "*" 13 | matplotlib = "*" 14 | graphviz = "*" 15 | 16 | [requires] 17 | python_version = "3.6" 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Created by https://www.toptal.com/developers/gitignore/api/python,jupyternotebooks 3 | # Edit at https://www.toptal.com/developers/gitignore?templates=python,jupyternotebooks 4 | 5 | ### JupyterNotebooks ### 6 | # gitignore template for Jupyter Notebooks 7 | # website: http://jupyter.org/ 8 | 9 | .ipynb_checkpoints 10 | */.ipynb_checkpoints/* 11 | 12 | # IPython 13 | profile_default/ 14 | ipython_config.py 15 | 16 | # Remove previous ipynb_checkpoints 17 | # git rm -r .ipynb_checkpoints/ 18 | 19 | ### Python ### 20 | # Byte-compiled / optimized / DLL files 21 | __pycache__/ 22 | *.py[cod] 23 | *$py.class 24 | 25 | # C extensions 26 | *.so 27 | 28 | # Distribution / packaging 29 | .Python 30 | build/ 31 | develop-eggs/ 32 | dist/ 33 | downloads/ 34 | eggs/ 35 | .eggs/ 36 | lib/ 37 | lib64/ 38 | parts/ 39 | sdist/ 40 | var/ 41 | wheels/ 42 | pip-wheel-metadata/ 43 | share/python-wheels/ 44 | *.egg-info/ 45 | .installed.cfg 46 | *.egg 47 | MANIFEST 48 | 49 | # PyInstaller 50 | # Usually these files are written by a python script from a template 51 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 52 | *.manifest 53 | *.spec 54 | 55 | # Installer logs 56 | pip-log.txt 57 | pip-delete-this-directory.txt 58 | 59 | # Unit test / coverage reports 60 | htmlcov/ 61 | .tox/ 62 | .nox/ 63 | .coverage 64 | .coverage.* 65 | .cache 66 | nosetests.xml 67 | coverage.xml 68 | *.cover 69 | *.py,cover 70 | .hypothesis/ 71 | .pytest_cache/ 72 | pytestdebug.log 73 | 74 | # Translations 75 | *.mo 76 | *.pot 77 | 78 | # Django stuff: 79 | *.log 80 | local_settings.py 81 | db.sqlite3 82 | db.sqlite3-journal 83 | 84 | # Flask stuff: 85 | instance/ 86 | .webassets-cache 87 | 88 | # Scrapy stuff: 89 | .scrapy 90 | 91 | # Sphinx documentation 92 | docs/_build/ 93 | doc/_build/ 94 | 95 | # PyBuilder 96 | target/ 97 | 98 | # Jupyter Notebook 99 | 100 | # IPython 101 | 102 | # pyenv 103 | .python-version 104 | 105 | # pipenv 106 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 107 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 108 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 109 | # install all needed dependencies. 110 | #Pipfile.lock 111 | 112 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 113 | __pypackages__/ 114 | 115 | # Celery stuff 116 | celerybeat-schedule 117 | celerybeat.pid 118 | 119 | # SageMath parsed files 120 | *.sage.py 121 | 122 | # Environments 123 | .env 124 | .venv 125 | env/ 126 | venv/ 127 | ENV/ 128 | env.bak/ 129 | venv.bak/ 130 | pythonenv* 131 | 132 | # Spyder project settings 133 | .spyderproject 134 | .spyproject 135 | 136 | # Rope project settings 137 | .ropeproject 138 | 139 | # mkdocs documentation 140 | /site 141 | 142 | # mypy 143 | .mypy_cache/ 144 | .dmypy.json 145 | dmypy.json 146 | 147 | # Pyre type checker 148 | .pyre/ 149 | 150 | # pytype static type analyzer 151 | .pytype/ 152 | 153 | # profiling data 154 | .prof 155 | 156 | # End of https://www.toptal.com/developers/gitignore/api/python,jupyternotebooks 157 | 158 | *.json -------------------------------------------------------------------------------- /PageRank in Spark.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": null, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import pyspark\n", 10 | "import json" 11 | ] 12 | }, 13 | { 14 | "cell_type": "code", 15 | "execution_count": null, 16 | "metadata": {}, 17 | "outputs": [], 18 | "source": [ 19 | "conf = pyspark.SparkConf()\n", 20 | "conf.setAppName(\"Twitter page rank\")\n", 21 | "conf.setMaster(\"local[*]\")" 22 | ] 23 | }, 24 | { 25 | "cell_type": "code", 26 | "execution_count": null, 27 | "metadata": {}, 28 | "outputs": [], 29 | "source": [ 30 | "sc = pyspark.SparkContext(conf = conf)" 31 | ] 32 | }, 33 | { 34 | "cell_type": "code", 35 | "execution_count": null, 36 | "metadata": {}, 37 | "outputs": [], 38 | "source": [ 39 | "twitterLines = sc.textFile(\"twitter_closed.jsonl\")" 40 | ] 41 | }, 42 | { 43 | "cell_type": "code", 44 | "execution_count": null, 45 | "metadata": {}, 46 | "outputs": [], 47 | "source": [ 48 | "followers = twitterLines.map(lambda line: json.loads(line))" 49 | ] 50 | }, 51 | { 52 | "cell_type": "code", 53 | "execution_count": null, 54 | "metadata": {}, 55 | "outputs": [], 56 | "source": [ 57 | "links = followers\\\n", 58 | " .keyBy(lambda d: d[\"user_id\"])\\\n", 59 | " .mapValues(lambda d: d[\"following_id\"])" 60 | ] 61 | }, 62 | { 63 | "cell_type": "code", 64 | "execution_count": null, 65 | "metadata": {}, 66 | "outputs": [], 67 | "source": [ 68 | "N = links.count()\n", 69 | "d = 0.85" 70 | ] 71 | }, 72 | { 73 | "cell_type": "code", 74 | "execution_count": null, 75 | "metadata": {}, 76 | "outputs": [], 77 | "source": [ 78 | "ranks = links\\\n", 79 | " .keyBy(lambda usuario: usuario[0])\\\n", 80 | " .map(lambda usuario: (usuario[0], 1 / N))" 81 | ] 82 | }, 83 | { 84 | "cell_type": "code", 85 | "execution_count": null, 86 | "metadata": {}, 87 | "outputs": [], 88 | "source": [ 89 | "iterations = 10" 90 | ] 91 | }, 92 | { 93 | "cell_type": "code", 94 | "execution_count": null, 95 | "metadata": {}, 96 | "outputs": [], 97 | "source": [ 98 | "def calcula_contribuciones(registro):\n", 99 | " \"\"\"\n", 100 | " Calcula las contribuciones de un `usuario` hacia las personas a las que sigue\n", 101 | " \n", 102 | " args:\n", 103 | " registro: una tupla de tuplas, de la siguiente forma: (usuario, (seguidos, page_rank))\n", 104 | " \n", 105 | " returns:\n", 106 | " una lista de tuplas de la forma (usuario_seguido, contribución pr)\n", 107 | " \"\"\"\n", 108 | " \n", 109 | " resultados = list()\n", 110 | " (usuario, (seguidos, page_rank_usuario)) = registro\n", 111 | "\n", 112 | " for seguido in seguidos:\n", 113 | " resultados.append((seguido, page_rank_usuario / len(seguidos)))\n", 114 | " resultados.append((usuario, 0))\n", 115 | " \n", 116 | " return resultados" 117 | ] 118 | }, 119 | { 120 | "cell_type": "code", 121 | "execution_count": null, 122 | "metadata": {}, 123 | "outputs": [], 124 | "source": [ 125 | "for i in range(iterations):\n", 126 | " \n", 127 | " contributions = links.join(ranks)\\\n", 128 | " .flatMap(calcula_contribuciones)\n", 129 | " \n", 130 | " ranks = contributions\\\n", 131 | " .reduceByKey(lambda a, b: a + b)\\\n", 132 | " .mapValues(lambda v: (1 - d) / N + d * v)" 133 | ] 134 | }, 135 | { 136 | "cell_type": "code", 137 | "execution_count": null, 138 | "metadata": {}, 139 | "outputs": [], 140 | "source": [ 141 | "results = dict(ranks.collect())" 142 | ] 143 | }, 144 | { 145 | "cell_type": "code", 146 | "execution_count": null, 147 | "metadata": {}, 148 | "outputs": [], 149 | "source": [ 150 | "results[2582486138]" 151 | ] 152 | }, 153 | { 154 | "cell_type": "code", 155 | "execution_count": null, 156 | "metadata": {}, 157 | "outputs": [], 158 | "source": [ 159 | "results[1306760288243462147]" 160 | ] 161 | }, 162 | { 163 | "cell_type": "code", 164 | "execution_count": null, 165 | "metadata": {}, 166 | "outputs": [], 167 | "source": [ 168 | "sc.stop()" 169 | ] 170 | } 171 | ], 172 | "metadata": { 173 | "kernelspec": { 174 | "display_name": "Python 3", 175 | "language": "python", 176 | "name": "python3" 177 | }, 178 | "language_info": { 179 | "codemirror_mode": { 180 | "name": "ipython", 181 | "version": 3 182 | }, 183 | "file_extension": ".py", 184 | "mimetype": "text/x-python", 185 | "name": "python", 186 | "nbconvert_exporter": "python", 187 | "pygments_lexer": "ipython3", 188 | "version": "3.8.6" 189 | } 190 | }, 191 | "nbformat": 4, 192 | "nbformat_minor": 4 193 | } 194 | -------------------------------------------------------------------------------- /PageRank explicado.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# PageRank - Explicado" 8 | ] 9 | }, 10 | { 11 | "cell_type": "markdown", 12 | "metadata": {}, 13 | "source": [ 14 | "## Definiciones \n", 15 | "\n", 16 | " - $PR(usuario_i)$: PageRank calculado para la el usuario $i$.\n", 17 | " - Backlink: Si la el usuario $A$ sigue a $B$, entonces se dice que el usuario $B$ tiene un *backlink* desde $A$.\n", 18 | " \n", 19 | "## ¿Qué es PageRank? \n", 20 | "\n", 21 | "En resumen, PageRank es una especie de \"voto\", otorgado por todos los usuarios de twitter qué tan importante un determinado usuario es. Cada follow cuenta como un \"voto\".\n", 22 | "\n", 23 | "## ¿Cómo funciona? \n", 24 | "\n", 25 | "Supongamos que tenemos $N$ usuarios en nuestro universo. Y si el usuario $A$ es seguido por $u_1$, $u_2$, $...$, $u_n$, el PageRank del usuario $A$ está determinado por: \n", 26 | "\n", 27 | "$$PR(A) = \\frac{1 - d}{N} + d \\left( \\frac{PR(u_1)}{L(u_1)} + \\frac{PR(u_2)}{L(u_2)} +\\space...\\space+ \\frac{PR(u_n)}{L(u_n)} \\right)$$\n", 28 | "\n", 29 | "Nuevos términos: \n", 30 | "\n", 31 | " - $L(u_n)$ - El término $L(u_n)$ se refiere el número de usuarios que el usuario $u_n$ sigue, su contribución al PageRank de cualquiera de las personas que sigue se ve \"diluido\" entre más usuarios siga.\n", 32 | " - $d$ - es conocida como factor de moderación. Un valor común es $0.85$. \n", 33 | "\n", 34 | "## ¿Iterativo? \n", 35 | "\n", 36 | "No es suficiente con calcular el PageRank una sola vez, puesto que los valores fluctuan, la importancia de un determinado usuario no puede ser calculado en una sola operación... sin embargo, con el tiempo, los valores de PageRank convergen, es decir, se mantienen estables. La fórmula en realidad se divide en: \n", 37 | "\n", 38 | "Cuando $t = 0$: \n", 39 | "\n", 40 | "$$PR(u_i;0) = \\frac{1}{N}$$\n", 41 | "\n", 42 | "Para cualquier otro valor de $t$: \n", 43 | "\n", 44 | "$$PR(u_i;t) = \\frac{1 - d}{N} + d \\sum_{u_j \\in S(u_i) } \\frac{PR(u_j;t-1)}{L(u_j)}$$" 45 | ] 46 | }, 47 | { 48 | "cell_type": "code", 49 | "execution_count": null, 50 | "metadata": {}, 51 | "outputs": [], 52 | "source": [ 53 | "import json\n", 54 | "from collections import defaultdict\n", 55 | "from copy import deepcopy" 56 | ] 57 | }, 58 | { 59 | "cell_type": "code", 60 | "execution_count": null, 61 | "metadata": {}, 62 | "outputs": [], 63 | "source": [ 64 | "def invert_graph(graph: dict):\n", 65 | "\n", 66 | " followers_graph = defaultdict(set)\n", 67 | "\n", 68 | " for user, followed_users in graph.items():\n", 69 | " for followed_user in followed_users:\n", 70 | " followers_graph[followed_user].add(user)\n", 71 | " \n", 72 | " return dict(followers_graph)" 73 | ] 74 | }, 75 | { 76 | "cell_type": "code", 77 | "execution_count": null, 78 | "metadata": {}, 79 | "outputs": [], 80 | "source": [ 81 | "def calculate_pr(graph, d = 0.85, iterations = 100, debug = False):\n", 82 | " inverted_graph = invert_graph(graph)\n", 83 | " \n", 84 | " N = len(graph)\n", 85 | " S = lambda u: inverted_graph.get(u, set())\n", 86 | " L = lambda u: len(graph[u])\n", 87 | "\n", 88 | " initial_pr = { user: 1 / N for user in graph }\n", 89 | " previous_pr = deepcopy(initial_pr)\n", 90 | "\n", 91 | " for it in range(1, iterations + 1):\n", 92 | " iteration_pr = {}\n", 93 | " for u_i in graph:\n", 94 | " simple_page_rank = (1 - d) / N\n", 95 | " contributions = 0\n", 96 | " for u_j in S(u_i):\n", 97 | " contributions += previous_pr[u_j] / L(u_j)\n", 98 | " iteration_pr[u_i] = simple_page_rank + d * contributions\n", 99 | " previous_pr = deepcopy(iteration_pr)\n", 100 | "\n", 101 | " return previous_pr" 102 | ] 103 | }, 104 | { 105 | "cell_type": "markdown", 106 | "metadata": {}, 107 | "source": [ 108 | "## Un micro ejemplo " 109 | ] 110 | }, 111 | { 112 | "cell_type": "code", 113 | "execution_count": null, 114 | "metadata": {}, 115 | "outputs": [], 116 | "source": [ 117 | "twitter_graph = {}\n", 118 | "with open(\"twitter_closed.jsonl\") as readable:\n", 119 | " for line in readable:\n", 120 | " user = json.loads(line)\n", 121 | " twitter_graph[user[\"user_id\"]] = user[\"following_id\"]" 122 | ] 123 | }, 124 | { 125 | "cell_type": "code", 126 | "execution_count": null, 127 | "metadata": {}, 128 | "outputs": [], 129 | "source": [ 130 | "results = calculate_pr(twitter_graph, iterations = 10)" 131 | ] 132 | }, 133 | { 134 | "cell_type": "code", 135 | "execution_count": null, 136 | "metadata": {}, 137 | "outputs": [], 138 | "source": [ 139 | "results[2582486138]" 140 | ] 141 | }, 142 | { 143 | "cell_type": "code", 144 | "execution_count": null, 145 | "metadata": {}, 146 | "outputs": [], 147 | "source": [ 148 | "results[1306760288243462147]" 149 | ] 150 | }, 151 | { 152 | "cell_type": "code", 153 | "execution_count": null, 154 | "metadata": {}, 155 | "outputs": [], 156 | "source": [] 157 | } 158 | ], 159 | "metadata": { 160 | "kernelspec": { 161 | "display_name": "Python 3", 162 | "language": "python", 163 | "name": "python3" 164 | }, 165 | "language_info": { 166 | "codemirror_mode": { 167 | "name": "ipython", 168 | "version": 3 169 | }, 170 | "file_extension": ".py", 171 | "mimetype": "text/x-python", 172 | "name": "python", 173 | "nbconvert_exporter": "python", 174 | "pygments_lexer": "ipython3", 175 | "version": "3.8.6" 176 | } 177 | }, 178 | "nbformat": 4, 179 | "nbformat_minor": 4 180 | } 181 | -------------------------------------------------------------------------------- /twitter_closed.jsonl: -------------------------------------------------------------------------------- 1 | {"user_id": 2582486138, "following_id": [174104147, 3643495637, 148388154, 1039473529568329728, 268088205, 1569333570, 143183218, 109409138, 60729429, 109736946, 3007552940, 305176724, 16742912]} 2 | {"user_id": 852306660, "following_id": [1089685646988402688, 213136009, 441914762, 1315049265673232386, 17659972, 12741082, 174104147, 60729429, 109409138, 936598053850578944, 39174346, 1569333570, 1377630980, 148388154]} 3 | {"user_id": 82703587, "following_id": [1096466461, 178848278, 18258419, 213136009, 129368416]} 4 | {"user_id": 129368416, "following_id": [213136009, 1250890769411592199, 1096466461, 1569333570, 143183218, 82703587]} 5 | {"user_id": 432134675, "following_id": [936598053850578944, 1569333570, 213136009, 148388154, 143183218, 16742912]} 6 | {"user_id": 3367771, "following_id": [220122252, 178848278, 140021370, 109736946, 60729429, 143183218, 16742912]} 7 | {"user_id": 12741082, "following_id": [213136009, 441914762, 112907123, 183064762, 1315049265673232386, 178848278, 234086009, 1377630980, 3643495637, 1058123877270913024, 148388154, 82124446, 1121236564271685634, 65728983, 1039473529568329728, 1141908055933800448, 268088205, 16742912, 711926891590979586, 305176724, 143183218, 3007552940, 1089685646988402688, 710476297332506624, 39174346, 936598053850578944, 18737039, 109736946, 1096466461, 1569333570, 109409138, 174104147, 60729429]} 8 | {"user_id": 383592968, "following_id": [3367771, 140021370, 441914762, 262906949, 213136009, 711926891590979586, 1089685646988402688]} 9 | {"user_id": 232729962, "following_id": [1285321735, 1039473529568329728, 148388154, 213136009, 1569333570, 109736946, 305176724, 3007552940, 143183218, 16742912]} 10 | {"user_id": 67145729, "following_id": []} 11 | {"user_id": 11563172, "following_id": [18737039]} 12 | {"user_id": 39174346, "following_id": [1315049265673232386, 109409138, 65728983, 268088205, 1058123877270913024, 3643495637, 1039473529568329728, 441914762, 12741082, 1377630980, 936598053850578944, 148388154, 1569333570, 3367771, 16742912]} 13 | {"user_id": 851390880, "following_id": [213136009, 17659972, 65728983, 12741082, 710476297332506624, 148388154, 1377630980, 936598053850578944, 1039473529568329728, 1089685646988402688, 1569333570, 143183218, 109409138, 39174346, 174104147, 60729429, 16742912]} 14 | {"user_id": 1250890769411592199, "following_id": [3367771, 3643495637, 213136009, 65728983, 178848278, 129368416, 16742912, 1096466461]} 15 | {"user_id": 82124446, "following_id": [111674998, 1141908055933800448, 18737039, 868624889951002624, 260088313, 262906949, 84474379, 213136009, 3007552940, 711926891590979586, 441914762, 107245235, 187833916, 710476297332506624, 728629981904023553, 1121236564271685634, 1089685646988402688]} 16 | {"user_id": 1121236564271685634, "following_id": [18737039, 174104147, 101154853, 234086009, 111674998, 84474379, 226437753, 260088313, 183064762, 12741082, 213136009, 3007552940, 187833916, 710476297332506624, 711926891590979586, 262906949, 1089685646988402688, 82124446]} 17 | {"user_id": 148388154, "following_id": [112907123, 1315049265673232386, 18766800, 1089685646988402688, 109409138, 178848278, 3643495637, 84474379, 268088205, 1058123877270913024, 12741082, 1039473529568329728, 213136009, 1377630980, 936598053850578944, 1569333570, 39174346, 17659972]} 18 | {"user_id": 140021370, "following_id": [1569333570, 112907123, 16742912, 60729429]} 19 | {"user_id": 305176724, "following_id": [728629981904023553, 109409138, 3007552940, 3367771, 109736946, 60729429]} 20 | {"user_id": 268088205, "following_id": [213136009, 1377630980, 1315049265673232386, 84474379, 60729429, 18766800, 112907123, 936598053850578944, 39174346, 148388154, 1058123877270913024, 3643495637, 1039473529568329728, 16742912, 12741082, 174104147]} 21 | {"user_id": 111674998, "following_id": [226437753, 213136009, 82124446, 234086009, 711926891590979586, 1121236564271685634, 262906949, 260088313, 1089685646988402688]} 22 | {"user_id": 84474379, "following_id": [111674998, 109736946, 1955426606, 1285321735, 1315049265673232386, 268088205, 305176724, 728629981904023553, 112907123, 220122252, 3643495637, 17659972, 174104147, 39174346, 711926891590979586, 1121236564271685634, 107245235, 260088313, 60729429, 213136009, 1377630980, 3007552940, 82124446, 936598053850578944, 1058123877270913024, 143183218, 441914762, 1089685646988402688, 109409138, 1569333570, 148388154, 12741082]} 23 | {"user_id": 260088313, "following_id": [711926891590979586, 234086009, 2527001, 82124446, 84474379, 213136009, 111674998, 262906949, 143183218, 1089685646988402688, 16742912]} 24 | {"user_id": 2469849156, "following_id": [1089685646988402688, 107245235, 1039473529568329728, 1569333570, 12741082, 213136009, 174104147, 143183218, 16742912]} 25 | {"user_id": 109736946, "following_id": [710476297332506624, 3007552940, 728629981904023553, 441914762, 1089685646988402688, 220122252, 12741082, 1096466461, 109409138, 305176724, 3367771, 11703722, 60729429, 143183218, 174104147]} 26 | {"user_id": 728629981904023553, "following_id": [213136009, 3367771, 65728983, 140021370, 143183218, 107245235, 109409138, 60729429, 82124446, 109736946, 711926891590979586, 1089685646988402688, 3007552940, 305176724, 441914762]} 27 | {"user_id": 1125746634011209729, "following_id": [18737039]} 28 | {"user_id": 1116938336327933952, "following_id": [213136009, 140021370, 268088205, 3643495637, 148388154, 16742912]} 29 | {"user_id": 60729429, "following_id": [936598053850578944, 268088205, 3643495637, 140021370, 1089685646988402688, 174104147, 1058123877270913024, 143183218, 1377630980, 3007552940, 3367771, 305176724, 109736946, 16742912, 109409138]} 30 | {"user_id": 143183218, "following_id": [1377630980, 12741082, 936598053850578944, 109409138, 174104147, 60729429, 1096466461, 3367771]} 31 | {"user_id": 18258419, "following_id": [1089685646988402688, 82703587, 135286192, 213136009]} 32 | {"user_id": 2527001, "following_id": [187833916, 84351228]} 33 | {"user_id": 65728983, "following_id": [60729429, 12741082]} 34 | {"user_id": 1058381325588160512, "following_id": [1377630980, 1569333570, 213136009, 936598053850578944, 109409138, 60729429, 710476297332506624, 148388154, 12741082]} 35 | {"user_id": 79901028, "following_id": [213136009, 1569333570, 1377630980, 148388154, 12741082]} 36 | {"user_id": 3643495637, "following_id": [213136009, 2582486138, 441914762, 1315049265673232386, 1096466461, 1250890769411592199, 109409138, 112907123, 84474379, 1058123877270913024, 1039473529568329728, 268088205, 936598053850578944, 148388154, 39174346, 710476297332506624, 1089685646988402688, 1377630980, 1569333570, 12741082, 140021370, 60729429, 109736946, 3007552940, 305176724, 143183218, 16742912]} 37 | {"user_id": 18766800, "following_id": [140021370, 16742912, 143183218, 148388154, 174104147, 268088205]} 38 | {"user_id": 68201509, "following_id": []} 39 | {"user_id": 2667537554, "following_id": [213136009, 183064762, 936598053850578944, 1089685646988402688, 16742912, 3007552940]} 40 | {"user_id": 1145326260341682176, "following_id": []} 41 | {"user_id": 87068371, "following_id": [135286192]} 42 | {"user_id": 868624889951002624, "following_id": [82124446, 711926891590979586, 1089685646988402688]} 43 | {"user_id": 3007552940, "following_id": [143183218, 109736946, 213136009, 82124446, 183064762, 1121236564271685634, 710476297332506624, 1141908055933800448, 178848278, 441914762, 728629981904023553, 262906949, 12741082, 1089685646988402688, 220122252, 711926891590979586, 305176724, 109409138, 60729429]} 44 | {"user_id": 1089685646988402688, "following_id": [1955426606, 140021370, 109736946, 868624889951002624, 234086009, 1039473529568329728, 213136009, 60729429, 1141908055933800448, 143183218, 82124446, 220122252, 262906949, 260088313, 111674998, 1121236564271685634, 728629981904023553, 3007552940, 441914762, 12741082, 16742912, 187833916, 711926891590979586]} 45 | {"user_id": 183064762, "following_id": [213136009, 2667537554, 12741082, 18737039, 1039473529568329728, 1089685646988402688, 1121236564271685634, 305176724, 109409138, 3007552940, 710476297332506624, 16742912, 143183218, 109736946, 174104147, 60729429]} 46 | {"user_id": 109409138, "following_id": [1315049265673232386, 112907123, 728629981904023553, 39174346, 148388154, 936598053850578944, 143183218, 1039473529568329728, 1377630980, 1569333570, 441914762, 1058123877270913024, 1089685646988402688, 305176724, 174104147, 3007552940, 109736946, 12741082, 16742912, 60729429]} 47 | {"user_id": 710476297332506624, "following_id": []} 48 | {"user_id": 84351228, "following_id": []} 49 | {"user_id": 16742912, "following_id": [140021370, 12741082, 3367771]} 50 | {"user_id": 936598053850578944, "following_id": [1089685646988402688, 213136009, 268088205, 1315049265673232386, 441914762, 112907123, 3643495637, 109409138, 1058123877270913024, 109736946, 65728983, 1039473529568329728, 148388154, 3007552940, 39174346, 1377630980, 143183218, 12741082, 1569333570]} 51 | {"user_id": 11703722, "following_id": []} 52 | {"user_id": 227007797, "following_id": [12741082, 140021370, 1089685646988402688, 710476297332506624, 16742912, 1569333570, 143183218, 109409138]} 53 | {"user_id": 1096466461, "following_id": [234086009, 3643495637, 1250890769411592199, 178848278, 60729429, 143183218, 68201509, 82703587, 12741082, 3367771, 109736946, 213136009]} 54 | {"user_id": 1141908055933800448, "following_id": [140021370, 234086009, 82124446, 213136009, 12741082, 305176724, 109736946, 3007552940, 710476297332506624, 1089685646988402688, 711926891590979586, 60729429]} 55 | {"user_id": 135286192, "following_id": [1125171885979910144, 213136009, 234086009, 87068371, 18258419]} 56 | {"user_id": 1315049265673232386, "following_id": [213136009, 84474379, 178848278, 3643495637, 12741082, 1039473529568329728, 268088205, 1058123877270913024, 109409138, 1569333570, 60729429, 936598053850578944, 39174346, 148388154, 1377630980]} 57 | {"user_id": 891085040007999490, "following_id": [213136009, 1315049265673232386, 112907123, 3643495637, 1058123877270913024, 710476297332506624, 178848278, 1039473529568329728, 148388154, 268088205, 1089685646988402688, 39174346, 3367771, 936598053850578944, 3007552940, 1377630980, 109409138, 305176724, 12741082, 1569333570, 60729429, 174104147, 109736946, 143183218, 16742912]} 58 | {"user_id": 7331272, "following_id": [710476297332506624]} 59 | {"user_id": 107245235, "following_id": [18737039, 1285321735, 2469849156, 213136009, 17659972, 1121236564271685634, 711926891590979586, 3007552940, 84474379, 728629981904023553, 60729429, 174104147, 109409138, 441914762, 82124446, 109736946, 1089685646988402688]} 60 | {"user_id": 262906949, "following_id": [111674998, 148388154, 82124446, 710476297332506624, 2527001, 109409138, 213136009, 1121236564271685634, 187833916, 3007552940, 16742912, 711926891590979586, 260088313, 1089685646988402688, 220122252, 234086009]} 61 | {"user_id": 220122252, "following_id": [187833916]} 62 | {"user_id": 213136009, "following_id": [18737039, 1315049265673232386, 39174346, 268088205, 383592968, 728629981904023553, 1955426606, 111674998, 143183218, 1377630980, 936598053850578944, 11703722, 305176724, 112907123, 60729429, 1569333570, 140021370, 868624889951002624, 109736946, 107245235, 232729962, 2469849156, 851390880, 41852612, 17659972, 129368416, 1250890769411592199, 1125171885979910144, 12741082, 7331272, 101154853, 187833916, 2527001, 84474379, 1145326260341682176, 285415139, 1141908055933800448, 148388154, 711926891590979586, 1285321735, 3007552940, 82124446, 260088313, 67145729, 1121236564271685634, 220122252, 1089685646988402688, 262906949, 710476297332506624, 234086009, 98792382, 68201509, 65728983, 135286192, 1096466461, 18258419, 289067233, 82703587]} 63 | {"user_id": 41852612, "following_id": [174104147, 109409138, 1569333570, 936598053850578944, 143183218, 1377630980, 12741082, 213136009, 11703722, 3367771]} 64 | {"user_id": 441914762, "following_id": [1039473529568329728, 936598053850578944, 226437753, 305176724, 39174346, 16742912, 107245235, 82124446, 109409138, 109736946, 22186082, 84474379, 711926891590979586, 3007552940, 1089685646988402688, 728629981904023553]} 65 | {"user_id": 1039473529568329728, "following_id": [1315049265673232386, 174104147, 3643495637, 1058123877270913024, 1377630980, 1089685646988402688, 936598053850578944, 148388154, 268088205, 1569333570, 39174346, 12741082, 109409138, 60729429, 143183218]} 66 | {"user_id": 22186082, "following_id": [213136009, 148388154, 12741082, 728629981904023553, 305176724, 109736946, 82124446, 441914762, 1569333570, 60729429, 109409138, 143183218, 16742912]} 67 | {"user_id": 1955426606, "following_id": [711926891590979586, 213136009, 1089685646988402688]} 68 | {"user_id": 112907123, "following_id": [728629981904023553, 148388154, 143183218, 178848278, 1306760288243462147, 12741082, 140021370, 174104147, 109409138, 60729429, 1058123877270913024, 1039473529568329728, 3643495637, 84474379, 268088205, 936598053850578944]} 69 | {"user_id": 1306760288243462147, "following_id": [213136009, 143183218, 1377630980, 112907123, 148388154, 39174346, 710476297332506624]} 70 | {"user_id": 187833916, "following_id": [711926891590979586, 213136009, 2527001, 82124446, 1121236564271685634, 262906949, 1089685646988402688, 220122252]} 71 | {"user_id": 226437753, "following_id": [111674998, 39174346, 174104147, 936598053850578944, 112907123, 82124446, 268088205, 1569333570, 1377630980, 148388154, 60729429, 441914762, 213136009, 1121236564271685634, 728629981904023553, 3007552940, 109409138, 1089685646988402688, 1039473529568329728, 143183218, 12741082, 710476297332506624, 16742912]} 72 | {"user_id": 1569333570, "following_id": [3643495637, 1039473529568329728, 148388154, 109409138, 936598053850578944, 39174346, 1377630980, 12741082]} 73 | {"user_id": 18737039, "following_id": []} 74 | {"user_id": 101154853, "following_id": [82124446, 1121236564271685634, 260088313, 213136009, 1089685646988402688]} 75 | {"user_id": 1377630980, "following_id": [213136009, 1089685646988402688, 143183218, 268088205, 1315049265673232386, 12741082, 1039473529568329728, 84474379, 109409138, 148388154, 936598053850578944, 39174346, 60729429, 1569333570]} 76 | {"user_id": 1125171885979910144, "following_id": [87068371, 213136009, 135286192]} 77 | {"user_id": 247004582, "following_id": [213136009, 16742912, 148388154, 39174346]} 78 | {"user_id": 1285321735, "following_id": [1569333570, 107245235, 232729962, 17659972, 213136009]} 79 | {"user_id": 98792382, "following_id": [213136009]} 80 | {"user_id": 1300900291244589056, "following_id": [213136009, 148388154, 109409138, 18737039]} 81 | {"user_id": 234086009, "following_id": [1096466461, 710476297332506624, 140021370, 268088205, 148388154, 143183218, 1039473529568329728, 1285321735, 1377630980, 82124446, 1141908055933800448, 711926891590979586, 260088313, 1121236564271685634, 111674998, 1089685646988402688, 178848278, 213136009, 174104147, 262906949, 135286192]} 82 | {"user_id": 285415139, "following_id": []} 83 | {"user_id": 711926891590979586, "following_id": [1955426606, 710476297332506624, 868624889951002624, 234086009, 260088313, 1141908055933800448, 82124446, 1121236564271685634, 109736946, 12741082, 728629981904023553, 441914762, 1089685646988402688, 220122252, 109409138, 16742912, 3007552940, 84351228]} 84 | {"user_id": 178848278, "following_id": [213136009, 1141908055933800448, 3643495637, 1315049265673232386, 112907123, 936598053850578944, 18737039, 1039473529568329728, 140021370, 1250890769411592199, 39174346, 148388154, 1096466461, 12741082, 1377630980, 1569333570, 305176724, 728629981904023553, 109409138, 60729429, 234086009, 220122252, 174104147, 3367771]} 85 | {"user_id": 289067233, "following_id": [213136009]} 86 | {"user_id": 174104147, "following_id": [143183218, 109409138, 234086009, 109736946, 60729429, 12741082, 16742912]} 87 | {"user_id": 17659972, "following_id": [39174346, 1285321735, 84474379, 936598053850578944, 1569333570, 1377630980, 148388154]} 88 | {"user_id": 1058123877270913024, "following_id": [710476297332506624, 1315049265673232386, 112907123, 140021370, 3007552940, 268088205, 3643495637, 39174346, 936598053850578944, 1089685646988402688, 148388154, 1039473529568329728, 12741082, 1377630980, 1569333570, 143183218, 109736946, 109409138, 60729429, 16742912]} 89 | -------------------------------------------------------------------------------- /Pipfile.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_meta": { 3 | "hash": { 4 | "sha256": "65d5c71edb880da5048e4252fff74ba26a919369a8042106deca916e7420ee73" 5 | }, 6 | "pipfile-spec": 6, 7 | "requires": { 8 | "python_version": "3.6" 9 | }, 10 | "sources": [ 11 | { 12 | "name": "pypi", 13 | "url": "https://pypi.org/simple", 14 | "verify_ssl": true 15 | } 16 | ] 17 | }, 18 | "default": { 19 | "appnope": { 20 | "hashes": [ 21 | "sha256:93aa393e9d6c54c5cd570ccadd8edad61ea0c4b9ea7a01409020c9aa019eb442", 22 | "sha256:dd83cd4b5b460958838f6eb3000c660b1f9caf2a5b1de4264e941512f603258a" 23 | ], 24 | "markers": "platform_system == 'Darwin'", 25 | "version": "==0.1.2" 26 | }, 27 | "argon2-cffi": { 28 | "hashes": [ 29 | "sha256:05a8ac07c7026542377e38389638a8a1e9b78f1cd8439cd7493b39f08dd75fbf", 30 | "sha256:0bf066bc049332489bb2d75f69216416329d9dc65deee127152caeb16e5ce7d5", 31 | "sha256:18dee20e25e4be86680b178b35ccfc5d495ebd5792cd00781548d50880fee5c5", 32 | "sha256:392c3c2ef91d12da510cfb6f9bae52512a4552573a9e27600bdb800e05905d2b", 33 | "sha256:57358570592c46c420300ec94f2ff3b32cbccd10d38bdc12dc6979c4a8484fbc", 34 | "sha256:6678bb047373f52bcff02db8afab0d2a77d83bde61cfecea7c5c62e2335cb203", 35 | "sha256:6ea92c980586931a816d61e4faf6c192b4abce89aa767ff6581e6ddc985ed003", 36 | "sha256:77e909cc756ef81d6abb60524d259d959bab384832f0c651ed7dcb6e5ccdbb78", 37 | "sha256:7d455c802727710e9dfa69b74ccaab04568386ca17b0ad36350b622cd34606fe", 38 | "sha256:8a84934bd818e14a17943de8099d41160da4a336bcc699bb4c394bbb9b94bd32", 39 | "sha256:9bee3212ba4f560af397b6d7146848c32a800652301843df06b9e8f68f0f7361", 40 | "sha256:9dfd5197852530294ecb5795c97a823839258dfd5eb9420233c7cfedec2058f2", 41 | "sha256:b160416adc0f012fb1f12588a5e6954889510f82f698e23ed4f4fa57f12a0647", 42 | "sha256:ba7209b608945b889457f949cc04c8e762bed4fe3fec88ae9a6b7765ae82e496", 43 | "sha256:cc0e028b209a5483b6846053d5fd7165f460a1f14774d79e632e75e7ae64b82b", 44 | "sha256:d8029b2d3e4b4cea770e9e5a0104dd8fa185c1724a0f01528ae4826a6d25f97d", 45 | "sha256:da7f0445b71db6d3a72462e04f36544b0de871289b0bc8a7cc87c0f5ec7079fa", 46 | "sha256:e2db6e85c057c16d0bd3b4d2b04f270a7467c147381e8fd73cbbe5bc719832be" 47 | ], 48 | "version": "==20.1.0" 49 | }, 50 | "async-generator": { 51 | "hashes": [ 52 | "sha256:01c7bf666359b4967d2cda0000cc2e4af16a0ae098cbffcb8472fb9e8ad6585b", 53 | "sha256:6ebb3d106c12920aaae42ccb6f787ef5eefdcdd166ea3d628fa8476abe712144" 54 | ], 55 | "version": "==1.10" 56 | }, 57 | "attrs": { 58 | "hashes": [ 59 | "sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6", 60 | "sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700" 61 | ], 62 | "version": "==20.3.0" 63 | }, 64 | "backcall": { 65 | "hashes": [ 66 | "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e", 67 | "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255" 68 | ], 69 | "version": "==0.2.0" 70 | }, 71 | "bleach": { 72 | "hashes": [ 73 | "sha256:52b5919b81842b1854196eaae5ca29679a2f2e378905c346d3ca8227c2c66080", 74 | "sha256:9f8ccbeb6183c6e6cddea37592dfb0167485c1e3b13b3363bc325aa8bda3adbd" 75 | ], 76 | "version": "==3.2.1" 77 | }, 78 | "certifi": { 79 | "hashes": [ 80 | "sha256:1a4995114262bffbc2413b159f2a1a480c969de6e6eb13ee966d470af86af59c", 81 | "sha256:719a74fb9e33b9bd44cc7f3a8d94bc35e4049deebe19ba7d8e108280cfd59830" 82 | ], 83 | "version": "==2020.12.5" 84 | }, 85 | "cffi": { 86 | "hashes": [ 87 | "sha256:00a1ba5e2e95684448de9b89888ccd02c98d512064b4cb987d48f4b40aa0421e", 88 | "sha256:00e28066507bfc3fe865a31f325c8391a1ac2916219340f87dfad602c3e48e5d", 89 | "sha256:045d792900a75e8b1e1b0ab6787dd733a8190ffcf80e8c8ceb2fb10a29ff238a", 90 | "sha256:0638c3ae1a0edfb77c6765d487fee624d2b1ee1bdfeffc1f0b58c64d149e7eec", 91 | "sha256:105abaf8a6075dc96c1fe5ae7aae073f4696f2905fde6aeada4c9d2926752362", 92 | "sha256:155136b51fd733fa94e1c2ea5211dcd4c8879869008fc811648f16541bf99668", 93 | "sha256:1a465cbe98a7fd391d47dce4b8f7e5b921e6cd805ef421d04f5f66ba8f06086c", 94 | "sha256:1d2c4994f515e5b485fd6d3a73d05526aa0fcf248eb135996b088d25dfa1865b", 95 | "sha256:2c24d61263f511551f740d1a065eb0212db1dbbbbd241db758f5244281590c06", 96 | "sha256:51a8b381b16ddd370178a65360ebe15fbc1c71cf6f584613a7ea08bfad946698", 97 | "sha256:594234691ac0e9b770aee9fcdb8fa02c22e43e5c619456efd0d6c2bf276f3eb2", 98 | "sha256:5cf4be6c304ad0b6602f5c4e90e2f59b47653ac1ed9c662ed379fe48a8f26b0c", 99 | "sha256:64081b3f8f6f3c3de6191ec89d7dc6c86a8a43911f7ecb422c60e90c70be41c7", 100 | "sha256:6bc25fc545a6b3d57b5f8618e59fc13d3a3a68431e8ca5fd4c13241cd70d0009", 101 | "sha256:798caa2a2384b1cbe8a2a139d80734c9db54f9cc155c99d7cc92441a23871c03", 102 | "sha256:7c6b1dece89874d9541fc974917b631406233ea0440d0bdfbb8e03bf39a49b3b", 103 | "sha256:840793c68105fe031f34d6a086eaea153a0cd5c491cde82a74b420edd0a2b909", 104 | "sha256:8d6603078baf4e11edc4168a514c5ce5b3ba6e3e9c374298cb88437957960a53", 105 | "sha256:9cc46bc107224ff5b6d04369e7c595acb700c3613ad7bcf2e2012f62ece80c35", 106 | "sha256:9f7a31251289b2ab6d4012f6e83e58bc3b96bd151f5b5262467f4bb6b34a7c26", 107 | "sha256:9ffb888f19d54a4d4dfd4b3f29bc2c16aa4972f1c2ab9c4ab09b8ab8685b9c2b", 108 | "sha256:a5ed8c05548b54b998b9498753fb9cadbfd92ee88e884641377d8a8b291bcc01", 109 | "sha256:a7711edca4dcef1a75257b50a2fbfe92a65187c47dab5a0f1b9b332c5919a3fb", 110 | "sha256:af5c59122a011049aad5dd87424b8e65a80e4a6477419c0c1015f73fb5ea0293", 111 | "sha256:b18e0a9ef57d2b41f5c68beefa32317d286c3d6ac0484efd10d6e07491bb95dd", 112 | "sha256:b4e248d1087abf9f4c10f3c398896c87ce82a9856494a7155823eb45a892395d", 113 | "sha256:ba4e9e0ae13fc41c6b23299545e5ef73055213e466bd107953e4a013a5ddd7e3", 114 | "sha256:c6332685306b6417a91b1ff9fae889b3ba65c2292d64bd9245c093b1b284809d", 115 | "sha256:d5ff0621c88ce83a28a10d2ce719b2ee85635e85c515f12bac99a95306da4b2e", 116 | "sha256:d9efd8b7a3ef378dd61a1e77367f1924375befc2eba06168b6ebfa903a5e59ca", 117 | "sha256:df5169c4396adc04f9b0a05f13c074df878b6052430e03f50e68adf3a57aa28d", 118 | "sha256:ebb253464a5d0482b191274f1c8bf00e33f7e0b9c66405fbffc61ed2c839c775", 119 | "sha256:ec80dc47f54e6e9a78181ce05feb71a0353854cc26999db963695f950b5fb375", 120 | "sha256:f032b34669220030f905152045dfa27741ce1a6db3324a5bc0b96b6c7420c87b", 121 | "sha256:f60567825f791c6f8a592f3c6e3bd93dd2934e3f9dac189308426bd76b00ef3b", 122 | "sha256:f803eaa94c2fcda012c047e62bc7a51b0bdabda1cad7a92a522694ea2d76e49f" 123 | ], 124 | "version": "==1.14.4" 125 | }, 126 | "chardet": { 127 | "hashes": [ 128 | "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa", 129 | "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5" 130 | ], 131 | "version": "==4.0.0" 132 | }, 133 | "click": { 134 | "hashes": [ 135 | "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a", 136 | "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc" 137 | ], 138 | "index": "pypi", 139 | "version": "==7.1.2" 140 | }, 141 | "cycler": { 142 | "hashes": [ 143 | "sha256:1d8a5ae1ff6c5cf9b93e8811e581232ad8920aeec647c37316ceac982b08cb2d", 144 | "sha256:cd7b2d1018258d7247a71425e9f26463dfb444d411c39569972f4ce586b0c9d8" 145 | ], 146 | "version": "==0.10.0" 147 | }, 148 | "decorator": { 149 | "hashes": [ 150 | "sha256:41fa54c2a0cc4ba648be4fd43cff00aedf5b9465c9bf18d64325bc225f08f760", 151 | "sha256:e3a62f0520172440ca0dcc823749319382e377f37f140a0b99ef45fecb84bfe7" 152 | ], 153 | "version": "==4.4.2" 154 | }, 155 | "defusedxml": { 156 | "hashes": [ 157 | "sha256:6687150770438374ab581bb7a1b327a847dd9c5749e396102de3fad4e8a3ef93", 158 | "sha256:f684034d135af4c6cbb949b8a4d2ed61634515257a67299e5f940fbaa34377f5" 159 | ], 160 | "version": "==0.6.0" 161 | }, 162 | "entrypoints": { 163 | "hashes": [ 164 | "sha256:589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19", 165 | "sha256:c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451" 166 | ], 167 | "version": "==0.3" 168 | }, 169 | "graphviz": { 170 | "hashes": [ 171 | "sha256:2b85f105024e229ec330fe5067abbe9aa0d7708921a585ecc2bf56000bf5e027", 172 | "sha256:403b55553b235875fa521023a06d9c29b46f3a956f960d4e0a5b956bca9eb9ce" 173 | ], 174 | "index": "pypi", 175 | "version": "==0.15" 176 | }, 177 | "idna": { 178 | "hashes": [ 179 | "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6", 180 | "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0" 181 | ], 182 | "version": "==2.10" 183 | }, 184 | "importlib-metadata": { 185 | "hashes": [ 186 | "sha256:5c5a2720817414a6c41f0a49993908068243ae02c1635a228126519b509c8aed", 187 | "sha256:bf792d480abbd5eda85794e4afb09dd538393f7d6e6ffef6e9f03d2014cf9450" 188 | ], 189 | "markers": "python_version < '3.8'", 190 | "version": "==3.3.0" 191 | }, 192 | "ipykernel": { 193 | "hashes": [ 194 | "sha256:63b4b96c513e1138874934e3e783a8e5e13c02b9036e37107bfe042ac8955005", 195 | "sha256:e20ceb7e52cb4d250452e1230be76e0b2323f33bd46c6b2bc7abb6601740e182" 196 | ], 197 | "version": "==5.4.2" 198 | }, 199 | "ipython": { 200 | "hashes": [ 201 | "sha256:2dbcc8c27ca7d3cfe4fcdff7f45b27f9a8d3edfa70ff8024a71c7a8eb5f09d64", 202 | "sha256:9f4fcb31d3b2c533333893b9172264e4821c1ac91839500f31bd43f2c59b3ccf" 203 | ], 204 | "markers": "python_version >= '3.3'", 205 | "version": "==7.16.1" 206 | }, 207 | "ipython-genutils": { 208 | "hashes": [ 209 | "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8", 210 | "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8" 211 | ], 212 | "version": "==0.2.0" 213 | }, 214 | "ipywidgets": { 215 | "hashes": [ 216 | "sha256:13ffeca438e0c0f91ae583dc22f50379b9d6b28390ac7be8b757140e9a771516", 217 | "sha256:e945f6e02854a74994c596d9db83444a1850c01648f1574adf144fbbabe05c97" 218 | ], 219 | "version": "==7.5.1" 220 | }, 221 | "jedi": { 222 | "hashes": [ 223 | "sha256:86ed7d9b750603e4ba582ea8edc678657fb4007894a12bcf6f4bb97892f31d20", 224 | "sha256:98cc583fa0f2f8304968199b01b6b4b94f469a1f4a74c1560506ca2a211378b5" 225 | ], 226 | "version": "==0.17.2" 227 | }, 228 | "jinja2": { 229 | "hashes": [ 230 | "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0", 231 | "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035" 232 | ], 233 | "version": "==2.11.2" 234 | }, 235 | "jsonschema": { 236 | "hashes": [ 237 | "sha256:4e5b3cf8216f577bee9ce139cbe72eca3ea4f292ec60928ff24758ce626cd163", 238 | "sha256:c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a" 239 | ], 240 | "version": "==3.2.0" 241 | }, 242 | "jupyter": { 243 | "hashes": [ 244 | "sha256:3e1f86076bbb7c8c207829390305a2b1fe836d471ed54be66a3b8c41e7f46cc7", 245 | "sha256:5b290f93b98ffbc21c0c7e749f054b3267782166d72fa5e3ed1ed4eaf34a2b78", 246 | "sha256:d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f" 247 | ], 248 | "index": "pypi", 249 | "version": "==1.0.0" 250 | }, 251 | "jupyter-client": { 252 | "hashes": [ 253 | "sha256:49e390b36fe4b4226724704ea28d9fb903f1a3601b6882ce3105221cd09377a1", 254 | "sha256:c958d24d6eacb975c1acebb68ac9077da61b5f5c040f22f6849928ad7393b950" 255 | ], 256 | "version": "==6.1.7" 257 | }, 258 | "jupyter-console": { 259 | "hashes": [ 260 | "sha256:1d80c06b2d85bfb10bd5cc731b3db18e9023bc81ab00491d3ac31f206490aee3", 261 | "sha256:7f6194f4f4692d292da3f501c7f343ccd5e36c6a1becf7b7515e23e66d6bf1e9" 262 | ], 263 | "version": "==6.2.0" 264 | }, 265 | "jupyter-core": { 266 | "hashes": [ 267 | "sha256:0a451c9b295e4db772bdd8d06f2f1eb31caeec0e81fbb77ba37d4a3024e3b315", 268 | "sha256:aa1f9496ab3abe72da4efe0daab0cb2233997914581f9a071e07498c6add8ed3" 269 | ], 270 | "version": "==4.7.0" 271 | }, 272 | "jupyterlab-pygments": { 273 | "hashes": [ 274 | "sha256:abfb880fd1561987efaefcb2d2ac75145d2a5d0139b1876d5be806e32f630008", 275 | "sha256:cfcda0873626150932f438eccf0f8bf22bfa92345b814890ab360d666b254146" 276 | ], 277 | "version": "==0.1.2" 278 | }, 279 | "kiwisolver": { 280 | "hashes": [ 281 | "sha256:0cd53f403202159b44528498de18f9285b04482bab2a6fc3f5dd8dbb9352e30d", 282 | "sha256:1e1bc12fb773a7b2ffdeb8380609f4f8064777877b2225dec3da711b421fda31", 283 | "sha256:225e2e18f271e0ed8157d7f4518ffbf99b9450fca398d561eb5c4a87d0986dd9", 284 | "sha256:232c9e11fd7ac3a470d65cd67e4359eee155ec57e822e5220322d7b2ac84fbf0", 285 | "sha256:31dfd2ac56edc0ff9ac295193eeaea1c0c923c0355bf948fbd99ed6018010b72", 286 | "sha256:33449715e0101e4d34f64990352bce4095c8bf13bed1b390773fc0a7295967b3", 287 | "sha256:401a2e9afa8588589775fe34fc22d918ae839aaaf0c0e96441c0fdbce6d8ebe6", 288 | "sha256:44a62e24d9b01ba94ae7a4a6c3fb215dc4af1dde817e7498d901e229aaf50e4e", 289 | "sha256:50af681a36b2a1dee1d3c169ade9fdc59207d3c31e522519181e12f1b3ba7000", 290 | "sha256:563c649cfdef27d081c84e72a03b48ea9408c16657500c312575ae9d9f7bc1c3", 291 | "sha256:5989db3b3b34b76c09253deeaf7fbc2707616f130e166996606c284395da3f18", 292 | "sha256:5a7a7dbff17e66fac9142ae2ecafb719393aaee6a3768c9de2fd425c63b53e21", 293 | "sha256:5c3e6455341008a054cccee8c5d24481bcfe1acdbc9add30aa95798e95c65621", 294 | "sha256:5f6ccd3dd0b9739edcf407514016108e2280769c73a85b9e59aa390046dbf08b", 295 | "sha256:72c99e39d005b793fb7d3d4e660aed6b6281b502e8c1eaf8ee8346023c8e03bc", 296 | "sha256:78751b33595f7f9511952e7e60ce858c6d64db2e062afb325985ddbd34b5c131", 297 | "sha256:834ee27348c4aefc20b479335fd422a2c69db55f7d9ab61721ac8cd83eb78882", 298 | "sha256:8be8d84b7d4f2ba4ffff3665bcd0211318aa632395a1a41553250484a871d454", 299 | "sha256:950a199911a8d94683a6b10321f9345d5a3a8433ec58b217ace979e18f16e248", 300 | "sha256:a357fd4f15ee49b4a98b44ec23a34a95f1e00292a139d6015c11f55774ef10de", 301 | "sha256:a53d27d0c2a0ebd07e395e56a1fbdf75ffedc4a05943daf472af163413ce9598", 302 | "sha256:acef3d59d47dd85ecf909c359d0fd2c81ed33bdff70216d3956b463e12c38a54", 303 | "sha256:b38694dcdac990a743aa654037ff1188c7a9801ac3ccc548d3341014bc5ca278", 304 | "sha256:b9edd0110a77fc321ab090aaa1cfcaba1d8499850a12848b81be2222eab648f6", 305 | "sha256:c08e95114951dc2090c4a630c2385bef681cacf12636fb0241accdc6b303fd81", 306 | "sha256:c5518d51a0735b1e6cee1fdce66359f8d2b59c3ca85dc2b0813a8aa86818a030", 307 | "sha256:c8fd0f1ae9d92b42854b2979024d7597685ce4ada367172ed7c09edf2cef9cb8", 308 | "sha256:ca3820eb7f7faf7f0aa88de0e54681bddcb46e485beb844fcecbcd1c8bd01689", 309 | "sha256:cf8b574c7b9aa060c62116d4181f3a1a4e821b2ec5cbfe3775809474113748d4", 310 | "sha256:d3155d828dec1d43283bd24d3d3e0d9c7c350cdfcc0bd06c0ad1209c1bbc36d0", 311 | "sha256:f8d6f8db88049a699817fd9178782867bf22283e3813064302ac59f61d95be05", 312 | "sha256:fd34fbbfbc40628200730bc1febe30631347103fc8d3d4fa012c21ab9c11eca9" 313 | ], 314 | "version": "==1.3.1" 315 | }, 316 | "markupsafe": { 317 | "hashes": [ 318 | "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473", 319 | "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161", 320 | "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235", 321 | "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5", 322 | "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42", 323 | "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff", 324 | "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b", 325 | "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1", 326 | "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e", 327 | "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183", 328 | "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66", 329 | "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b", 330 | "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1", 331 | "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15", 332 | "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1", 333 | "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e", 334 | "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b", 335 | "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905", 336 | "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735", 337 | "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d", 338 | "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e", 339 | "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d", 340 | "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c", 341 | "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21", 342 | "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2", 343 | "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5", 344 | "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b", 345 | "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6", 346 | "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f", 347 | "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f", 348 | "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2", 349 | "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7", 350 | "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be" 351 | ], 352 | "version": "==1.1.1" 353 | }, 354 | "matplotlib": { 355 | "hashes": [ 356 | "sha256:09225edca87a79815822eb7d3be63a83ebd4d9d98d5aa3a15a94f4eee2435954", 357 | "sha256:0caa687fce6174fef9b27d45f8cc57cbc572e04e98c81db8e628b12b563d59a2", 358 | "sha256:27c9393fada62bd0ad7c730562a0fecbd3d5aaa8d9ed80ba7d3ebb8abc4f0453", 359 | "sha256:2c2c5041608cb75c39cbd0ed05256f8a563e144234a524c59d091abbfa7a868f", 360 | "sha256:2d31aff0c8184b05006ad756b9a4dc2a0805e94d28f3abc3187e881b6673b302", 361 | "sha256:3a4c3e9be63adf8e9b305aa58fb3ec40ecc61fd0f8fd3328ce55bc30e7a2aeb0", 362 | "sha256:5111d6d47a0f5b8f3e10af7a79d5e7eb7e73a22825391834734274c4f312a8a0", 363 | "sha256:5ed3d3342698c2b1f3651f8ea6c099b0f196d16ee00e33dc3a6fee8cb01d530a", 364 | "sha256:6ffd2d80d76df2e5f9f0c0140b5af97e3b87dd29852dcdb103ec177d853ec06b", 365 | "sha256:746897fbd72bd462b888c74ed35d812ca76006b04f717cd44698cdfc99aca70d", 366 | "sha256:756ee498b9ba35460e4cbbd73f09018e906daa8537fff61da5b5bf8d5e9de5c7", 367 | "sha256:7ad44f2c74c50567c694ee91c6fa16d67e7c8af6f22c656b80469ad927688457", 368 | "sha256:83e6c895d93fdf93eeff1a21ee96778ba65ef258e5d284160f7c628fee40c38f", 369 | "sha256:9b03722c89a43a61d4d148acfc89ec5bb54cd0fd1539df25b10eb9c5fa6c393a", 370 | "sha256:a4fe54eab2c7129add75154823e6543b10261f9b65b2abe692d68743a4999f8c", 371 | "sha256:b1b60c6476c4cfe9e5cf8ab0d3127476fd3d5f05de0f343a452badaad0e4bdec", 372 | "sha256:b26c472847911f5a7eb49e1c888c31c77c4ddf8023c1545e0e8e0367ba74fb15", 373 | "sha256:b2a5e1f637a92bb6f3526cc54cc8af0401112e81ce5cba6368a1b7908f9e18bc", 374 | "sha256:b7b09c61a91b742cb5460b72efd1fe26ef83c1c704f666e0af0df156b046aada", 375 | "sha256:b8ba2a1dbb4660cb469fe8e1febb5119506059e675180c51396e1723ff9b79d9", 376 | "sha256:c092fc4673260b1446b8578015321081d5db73b94533fe4bf9b69f44e948d174", 377 | "sha256:c586ac1d64432f92857c3cf4478cfb0ece1ae18b740593f8a39f2f0b27c7fda5", 378 | "sha256:d082f77b4ed876ae94a9373f0db96bf8768a7cca6c58fc3038f94e30ffde1880", 379 | "sha256:e71cdd402047e657c1662073e9361106c6981e9621ab8c249388dfc3ec1de07b", 380 | "sha256:eb6b6700ea454bb88333d98601e74928e06f9669c1ea231b4c4c666c1d7701b4" 381 | ], 382 | "index": "pypi", 383 | "version": "==3.3.3" 384 | }, 385 | "mistune": { 386 | "hashes": [ 387 | "sha256:59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e", 388 | "sha256:88a1051873018da288eee8538d476dffe1262495144b33ecb586c4ab266bb8d4" 389 | ], 390 | "version": "==0.8.4" 391 | }, 392 | "nbclient": { 393 | "hashes": [ 394 | "sha256:01e2d726d16eaf2cde6db74a87e2451453547e8832d142f73f72fddcd4fe0250", 395 | "sha256:4d6b116187c795c99b9dba13d46e764d596574b14c296d60670c8dfe454db364" 396 | ], 397 | "version": "==0.5.1" 398 | }, 399 | "nbconvert": { 400 | "hashes": [ 401 | "sha256:39e9f977920b203baea0be67eea59f7b37a761caa542abe80f5897ce3cf6311d", 402 | "sha256:cbbc13a86dfbd4d1b5dee106539de0795b4db156c894c2c5dc382062bbc29002" 403 | ], 404 | "version": "==6.0.7" 405 | }, 406 | "nbformat": { 407 | "hashes": [ 408 | "sha256:aa9450c16d29286dc69b92ea4913c1bffe86488f90184445996ccc03a2f60382", 409 | "sha256:f545b22138865bfbcc6b1ffe89ed5a2b8e2dc5d4fe876f2ca60d8e6f702a30f8" 410 | ], 411 | "version": "==5.0.8" 412 | }, 413 | "nest-asyncio": { 414 | "hashes": [ 415 | "sha256:dbe032f3e9ff7f120e76be22bf6e7958e867aed1743e6894b8a9585fe8495cc9", 416 | "sha256:eaa09ef1353ebefae19162ad423eef7a12166bcc63866f8bff8f3635353cd9fa" 417 | ], 418 | "version": "==1.4.3" 419 | }, 420 | "networkx": { 421 | "hashes": [ 422 | "sha256:7978955423fbc9639c10498878be59caf99b44dc304c2286162fd24b458c1602", 423 | "sha256:8c5812e9f798d37c50570d15c4a69d5710a18d77bafc903ee9c5fba7454c616c" 424 | ], 425 | "index": "pypi", 426 | "version": "==2.5" 427 | }, 428 | "notebook": { 429 | "hashes": [ 430 | "sha256:3db37ae834c5f3b6378381229d0e5dfcbfb558d08c8ce646b1ad355147f5e91d", 431 | "sha256:508cf9dad7cdb3188f1aa27017dc78179029dfe83814fc505329f689bc2ab50f" 432 | ], 433 | "version": "==6.1.5" 434 | }, 435 | "numpy": { 436 | "hashes": [ 437 | "sha256:08308c38e44cc926bdfce99498b21eec1f848d24c302519e64203a8da99a97db", 438 | "sha256:09c12096d843b90eafd01ea1b3307e78ddd47a55855ad402b157b6c4862197ce", 439 | "sha256:13d166f77d6dc02c0a73c1101dd87fdf01339febec1030bd810dcd53fff3b0f1", 440 | "sha256:141ec3a3300ab89c7f2b0775289954d193cc8edb621ea05f99db9cb181530512", 441 | "sha256:16c1b388cc31a9baa06d91a19366fb99ddbe1c7b205293ed072211ee5bac1ed2", 442 | "sha256:18bed2bcb39e3f758296584337966e68d2d5ba6aab7e038688ad53c8f889f757", 443 | "sha256:1aeef46a13e51931c0b1cf8ae1168b4a55ecd282e6688fdb0a948cc5a1d5afb9", 444 | "sha256:27d3f3b9e3406579a8af3a9f262f5339005dd25e0ecf3cf1559ff8a49ed5cbf2", 445 | "sha256:2a2740aa9733d2e5b2dfb33639d98a64c3b0f24765fed86b0fd2aec07f6a0a08", 446 | "sha256:4377e10b874e653fe96985c05feed2225c912e328c8a26541f7fc600fb9c637b", 447 | "sha256:448ebb1b3bf64c0267d6b09a7cba26b5ae61b6d2dbabff7c91b660c7eccf2bdb", 448 | "sha256:50e86c076611212ca62e5a59f518edafe0c0730f7d9195fec718da1a5c2bb1fc", 449 | "sha256:5734bdc0342aba9dfc6f04920988140fb41234db42381cf7ccba64169f9fe7ac", 450 | "sha256:64324f64f90a9e4ef732be0928be853eee378fd6a01be21a0a8469c4f2682c83", 451 | "sha256:6ae6c680f3ebf1cf7ad1d7748868b39d9f900836df774c453c11c5440bc15b36", 452 | "sha256:6d7593a705d662be5bfe24111af14763016765f43cb6923ed86223f965f52387", 453 | "sha256:8cac8790a6b1ddf88640a9267ee67b1aee7a57dfa2d2dd33999d080bc8ee3a0f", 454 | "sha256:8ece138c3a16db8c1ad38f52eb32be6086cc72f403150a79336eb2045723a1ad", 455 | "sha256:9eeb7d1d04b117ac0d38719915ae169aa6b61fca227b0b7d198d43728f0c879c", 456 | "sha256:a09f98011236a419ee3f49cedc9ef27d7a1651df07810ae430a6b06576e0b414", 457 | "sha256:a5d897c14513590a85774180be713f692df6fa8ecf6483e561a6d47309566f37", 458 | "sha256:ad6f2ff5b1989a4899bf89800a671d71b1612e5ff40866d1f4d8bcf48d4e5764", 459 | "sha256:c42c4b73121caf0ed6cd795512c9c09c52a7287b04d105d112068c1736d7c753", 460 | "sha256:cb1017eec5257e9ac6209ac172058c430e834d5d2bc21961dceeb79d111e5909", 461 | "sha256:d6c7bb82883680e168b55b49c70af29b84b84abb161cbac2800e8fcb6f2109b6", 462 | "sha256:e452dc66e08a4ce642a961f134814258a082832c78c90351b75c41ad16f79f63", 463 | "sha256:e5b6ed0f0b42317050c88022349d994fe72bfe35f5908617512cd8c8ef9da2a9", 464 | "sha256:e9b30d4bd69498fc0c3fe9db5f62fffbb06b8eb9321f92cc970f2969be5e3949", 465 | "sha256:ec149b90019852266fec2341ce1db513b843e496d5a8e8cdb5ced1923a92faab", 466 | "sha256:edb01671b3caae1ca00881686003d16c2209e07b7ef8b7639f1867852b948f7c", 467 | "sha256:f0d3929fe88ee1c155129ecd82f981b8856c5d97bcb0d5f23e9b4242e79d1de3", 468 | "sha256:f29454410db6ef8126c83bd3c968d143304633d45dc57b51252afbd79d700893", 469 | "sha256:fe45becb4c2f72a0907c1d0246ea6449fe7a9e2293bb0e11c4e9a32bb0930a15", 470 | "sha256:fedbd128668ead37f33917820b704784aff695e0019309ad446a6d0b065b57e4" 471 | ], 472 | "version": "==1.19.4" 473 | }, 474 | "oauthlib": { 475 | "hashes": [ 476 | "sha256:bee41cc35fcca6e988463cacc3bcb8a96224f470ca547e697b604cc697b2f889", 477 | "sha256:df884cd6cbe20e32633f1db1072e9356f53638e4361bef4e8b03c9127c9328ea" 478 | ], 479 | "version": "==3.1.0" 480 | }, 481 | "packaging": { 482 | "hashes": [ 483 | "sha256:24e0da08660a87484d1602c30bb4902d74816b6985b93de36926f5bc95741858", 484 | "sha256:78598185a7008a470d64526a8059de9aaa449238f280fc9eb6b13ba6c4109093" 485 | ], 486 | "version": "==20.8" 487 | }, 488 | "pandocfilters": { 489 | "hashes": [ 490 | "sha256:bc63fbb50534b4b1f8ebe1860889289e8af94a23bff7445259592df25a3906eb" 491 | ], 492 | "version": "==1.4.3" 493 | }, 494 | "parso": { 495 | "hashes": [ 496 | "sha256:97218d9159b2520ff45eb78028ba8b50d2bc61dcc062a9682666f2dc4bd331ea", 497 | "sha256:caba44724b994a8a5e086460bb212abc5a8bc46951bf4a9a1210745953622eb9" 498 | ], 499 | "version": "==0.7.1" 500 | }, 501 | "pexpect": { 502 | "hashes": [ 503 | "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937", 504 | "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c" 505 | ], 506 | "markers": "sys_platform != 'win32'", 507 | "version": "==4.8.0" 508 | }, 509 | "pickleshare": { 510 | "hashes": [ 511 | "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca", 512 | "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56" 513 | ], 514 | "version": "==0.7.5" 515 | }, 516 | "pillow": { 517 | "hashes": [ 518 | "sha256:006de60d7580d81f4a1a7e9f0173dc90a932e3905cc4d47ea909bc946302311a", 519 | "sha256:0a2e8d03787ec7ad71dc18aec9367c946ef8ef50e1e78c71f743bc3a770f9fae", 520 | "sha256:0eeeae397e5a79dc088d8297a4c2c6f901f8fb30db47795113a4a605d0f1e5ce", 521 | "sha256:11c5c6e9b02c9dac08af04f093eb5a2f84857df70a7d4a6a6ad461aca803fb9e", 522 | "sha256:2fb113757a369a6cdb189f8df3226e995acfed0a8919a72416626af1a0a71140", 523 | "sha256:4b0ef2470c4979e345e4e0cc1bbac65fda11d0d7b789dbac035e4c6ce3f98adb", 524 | "sha256:59e903ca800c8cfd1ebe482349ec7c35687b95e98cefae213e271c8c7fffa021", 525 | "sha256:5abd653a23c35d980b332bc0431d39663b1709d64142e3652890df4c9b6970f6", 526 | "sha256:5f9403af9c790cc18411ea398a6950ee2def2a830ad0cfe6dc9122e6d528b302", 527 | "sha256:6b4a8fd632b4ebee28282a9fef4c341835a1aa8671e2770b6f89adc8e8c2703c", 528 | "sha256:6c1aca8231625115104a06e4389fcd9ec88f0c9befbabd80dc206c35561be271", 529 | "sha256:795e91a60f291e75de2e20e6bdd67770f793c8605b553cb6e4387ce0cb302e09", 530 | "sha256:7ba0ba61252ab23052e642abdb17fd08fdcfdbbf3b74c969a30c58ac1ade7cd3", 531 | "sha256:7c9401e68730d6c4245b8e361d3d13e1035cbc94db86b49dc7da8bec235d0015", 532 | "sha256:81f812d8f5e8a09b246515fac141e9d10113229bc33ea073fec11403b016bcf3", 533 | "sha256:895d54c0ddc78a478c80f9c438579ac15f3e27bf442c2a9aa74d41d0e4d12544", 534 | "sha256:8de332053707c80963b589b22f8e0229f1be1f3ca862a932c1bcd48dafb18dd8", 535 | "sha256:92c882b70a40c79de9f5294dc99390671e07fc0b0113d472cbea3fde15db1792", 536 | "sha256:95edb1ed513e68bddc2aee3de66ceaf743590bf16c023fb9977adc4be15bd3f0", 537 | "sha256:b63d4ff734263ae4ce6593798bcfee6dbfb00523c82753a3a03cbc05555a9cc3", 538 | "sha256:bd7bf289e05470b1bc74889d1466d9ad4a56d201f24397557b6f65c24a6844b8", 539 | "sha256:cc3ea6b23954da84dbee8025c616040d9aa5eaf34ea6895a0a762ee9d3e12e11", 540 | "sha256:cc9ec588c6ef3a1325fa032ec14d97b7309db493782ea8c304666fb10c3bd9a7", 541 | "sha256:d3d07c86d4efa1facdf32aa878bd508c0dc4f87c48125cc16b937baa4e5b5e11", 542 | "sha256:d8a96747df78cda35980905bf26e72960cba6d355ace4780d4bdde3b217cdf1e", 543 | "sha256:e38d58d9138ef972fceb7aeec4be02e3f01d383723965bfcef14d174c8ccd039", 544 | "sha256:eb472586374dc66b31e36e14720747595c2b265ae962987261f044e5cce644b5", 545 | "sha256:fbd922f702582cb0d71ef94442bfca57624352622d75e3be7a1e7e9360b07e72" 546 | ], 547 | "version": "==8.0.1" 548 | }, 549 | "prometheus-client": { 550 | "hashes": [ 551 | "sha256:9da7b32f02439d8c04f7777021c304ed51d9ec180604700c1ba72a4d44dceb03", 552 | "sha256:b08c34c328e1bf5961f0b4352668e6c8f145b4a087e09b7296ef62cbe4693d35" 553 | ], 554 | "version": "==0.9.0" 555 | }, 556 | "prompt-toolkit": { 557 | "hashes": [ 558 | "sha256:25c95d2ac813909f813c93fde734b6e44406d1477a9faef7c915ff37d39c0a8c", 559 | "sha256:7debb9a521e0b1ee7d2fe96ee4bd60ef03c6492784de0547337ca4433e46aa63" 560 | ], 561 | "version": "==3.0.8" 562 | }, 563 | "ptyprocess": { 564 | "hashes": [ 565 | "sha256:923f299cc5ad920c68f2bc0bc98b75b9f838b93b599941a6b63ddbc2476394c0", 566 | "sha256:d7cc528d76e76342423ca640335bd3633420dc1366f258cb31d05e865ef5ca1f" 567 | ], 568 | "markers": "os_name != 'nt'", 569 | "version": "==0.6.0" 570 | }, 571 | "pycparser": { 572 | "hashes": [ 573 | "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0", 574 | "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705" 575 | ], 576 | "version": "==2.20" 577 | }, 578 | "pygments": { 579 | "hashes": [ 580 | "sha256:ccf3acacf3782cbed4a989426012f1c535c9a90d3a7fc3f16d231b9372d2b716", 581 | "sha256:f275b6c0909e5dafd2d6269a656aa90fa58ebf4a74f8fcf9053195d226b24a08" 582 | ], 583 | "version": "==2.7.3" 584 | }, 585 | "pyparsing": { 586 | "hashes": [ 587 | "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1", 588 | "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b" 589 | ], 590 | "version": "==2.4.7" 591 | }, 592 | "pyrsistent": { 593 | "hashes": [ 594 | "sha256:2e636185d9eb976a18a8a8e96efce62f2905fea90041958d8cc2a189756ebf3e" 595 | ], 596 | "version": "==0.17.3" 597 | }, 598 | "python-dateutil": { 599 | "hashes": [ 600 | "sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c", 601 | "sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a" 602 | ], 603 | "version": "==2.8.1" 604 | }, 605 | "pyzmq": { 606 | "hashes": [ 607 | "sha256:03638e46d486dd1c118e03c8bf9c634bdcae679600eac6573ae1e54906de7c2f", 608 | "sha256:0af84f34f27b5c6a0e906c648bdf46d4caebf9c8e6e16db0728f30a58141cad6", 609 | "sha256:0e554fd390021edbe0330b67226325a820b0319c5b45e1b0a59bf22ccc36e793", 610 | "sha256:1e9b75a119606732023a305d1c214146c09a91f8116f6aff3e8b7d0a60b6f0ff", 611 | "sha256:225774a48ed7414c0395335e7123ef8c418dbcbe172caabdc2496133b03254c2", 612 | "sha256:2742e380d186673eee6a570ef83d4568741945434ba36d92b98d36cdbfedbd44", 613 | "sha256:309d763d89ec1845c0e0fa14e1fb6558fd8c9ef05ed32baec27d7a8499cc7bb0", 614 | "sha256:46250789730489009fe139cbf576679557c070a6a3628077d09a4153d52fd381", 615 | "sha256:4d9259a5eb3f71abbaf61f165cacf42240bfeea3783bebd8255341abdfe206f1", 616 | "sha256:523d542823cabb94065178090e05347bd204365f6e7cb260f0071c995d392fc2", 617 | "sha256:53706f4a792cdae422121fb6a5e65119bad02373153364fc9d004cf6a90394de", 618 | "sha256:5efe02bdcc5eafcac0aab531292294298f0ab8d28ed43be9e507d0e09173d1a4", 619 | "sha256:63ee08e35be72fdd7568065a249a5b5cf51a2e8ab6ee63cf9f73786fcb9e710b", 620 | "sha256:6e24907857c80dc67692e31f5bf3ad5bf483ee0142cec95b3d47e2db8c43bdda", 621 | "sha256:7113eb93dcd0a5750c65d123ed0099e036a3a3f2dcb48afedd025ffa125c983b", 622 | "sha256:824ad5888331aadeac772bce27e1c2fbcab82fade92edbd234542c4e12f0dca9", 623 | "sha256:895695be380f0f85d2e3ec5ccf68a93c92d45bd298567525ad5633071589872c", 624 | "sha256:b62113eeb9a0649cebed9b21fd578f3a0175ef214a2a91dcb7b31bbf55805295", 625 | "sha256:bc7dd697356b31389d5118b9bcdef3e8d8079e8181800c4e8d72dccd56e1ff68", 626 | "sha256:bf755905a7d30d2749079611b9a89924c1f2da2695dc09ce221f42122c9808e3", 627 | "sha256:c63fafd2556d218368c51d18588f8e6f8d86d09d493032415057faf6de869b34", 628 | "sha256:c95dda497a7c1b1e734b5e8353173ca5dd7b67784d8821d13413a97856588057", 629 | "sha256:cc09c5cd1a4332611c8564d65e6a432dc6db3e10793d0254da9fa1e31d9ffd6d", 630 | "sha256:cfa54a162a7b32641665e99b2c12084555afe9fc8fe80ec8b2f71a57320d10e1", 631 | "sha256:d81184489369ec325bd50ba1c935361e63f31f578430b9ad95471899361a8253", 632 | "sha256:d92c7f41a53ece82b91703ea433c7d34143248cf0cead33aa11c5fc621c764bf", 633 | "sha256:dc2f48b575dff6edefd572f1ac84cf0c3f18ad5fcf13384de32df740a010594a", 634 | "sha256:f0beef935efe78a63c785bb21ed56c1c24448511383e3994927c8bb2caf5e714", 635 | "sha256:f110a4d3f8f01209eec304ed542f6c8054cce9b0f16dfe3d571e57c290e4e133" 636 | ], 637 | "version": "==20.0.0" 638 | }, 639 | "qtconsole": { 640 | "hashes": [ 641 | "sha256:4d70967aeb62a5bd13a109d61b169a3cf844afc24a35c11f5518574bb8abe670", 642 | "sha256:4d7dd4eae8a90d0b2b19b31794b30f137238463998989734a3acb8a53b506bab" 643 | ], 644 | "version": "==5.0.1" 645 | }, 646 | "qtpy": { 647 | "hashes": [ 648 | "sha256:2db72c44b55d0fe1407be8fba35c838ad0d6d3bb81f23007886dc1fc0f459c8d", 649 | "sha256:fa0b8363b363e89b2a6f49eddc162a04c0699ae95e109a6be3bb145a913190ea" 650 | ], 651 | "version": "==1.9.0" 652 | }, 653 | "requests": { 654 | "hashes": [ 655 | "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804", 656 | "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e" 657 | ], 658 | "version": "==2.25.1" 659 | }, 660 | "requests-oauthlib": { 661 | "hashes": [ 662 | "sha256:7f71572defaecd16372f9006f33c2ec8c077c3cfa6f5911a9a90202beb513f3d", 663 | "sha256:b4261601a71fd721a8bd6d7aa1cc1d6a8a93b4a9f5e96626f8e4d91e8beeaa6a" 664 | ], 665 | "version": "==1.3.0" 666 | }, 667 | "send2trash": { 668 | "hashes": [ 669 | "sha256:60001cc07d707fe247c94f74ca6ac0d3255aabcb930529690897ca2a39db28b2", 670 | "sha256:f1691922577b6fa12821234aeb57599d887c4900b9ca537948d2dac34aea888b" 671 | ], 672 | "version": "==1.5.0" 673 | }, 674 | "six": { 675 | "hashes": [ 676 | "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259", 677 | "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced" 678 | ], 679 | "version": "==1.15.0" 680 | }, 681 | "terminado": { 682 | "hashes": [ 683 | "sha256:3da72a155b807b01c9e8a5babd214e052a0a45a975751da3521a1c3381ce6d76", 684 | "sha256:c55f025beb06c2e2669f7ba5a04f47bb3304c30c05842d4981d8f0fc9ab3b4e3" 685 | ], 686 | "version": "==0.9.1" 687 | }, 688 | "testpath": { 689 | "hashes": [ 690 | "sha256:60e0a3261c149755f4399a1fff7d37523179a70fdc3abdf78de9fc2604aeec7e", 691 | "sha256:bfcf9411ef4bf3db7579063e0546938b1edda3d69f4e1fb8756991f5951f85d4" 692 | ], 693 | "version": "==0.4.4" 694 | }, 695 | "tornado": { 696 | "hashes": [ 697 | "sha256:0a00ff4561e2929a2c37ce706cb8233b7907e0cdc22eab98888aca5dd3775feb", 698 | "sha256:0d321a39c36e5f2c4ff12b4ed58d41390460f798422c4504e09eb5678e09998c", 699 | "sha256:1e8225a1070cd8eec59a996c43229fe8f95689cb16e552d130b9793cb570a288", 700 | "sha256:20241b3cb4f425e971cb0a8e4ffc9b0a861530ae3c52f2b0434e6c1b57e9fd95", 701 | "sha256:25ad220258349a12ae87ede08a7b04aca51237721f63b1808d39bdb4b2164558", 702 | "sha256:33892118b165401f291070100d6d09359ca74addda679b60390b09f8ef325ffe", 703 | "sha256:33c6e81d7bd55b468d2e793517c909b139960b6c790a60b7991b9b6b76fb9791", 704 | "sha256:3447475585bae2e77ecb832fc0300c3695516a47d46cefa0528181a34c5b9d3d", 705 | "sha256:34ca2dac9e4d7afb0bed4677512e36a52f09caa6fded70b4e3e1c89dbd92c326", 706 | "sha256:3e63498f680547ed24d2c71e6497f24bca791aca2fe116dbc2bd0ac7f191691b", 707 | "sha256:548430be2740e327b3fe0201abe471f314741efcb0067ec4f2d7dcfb4825f3e4", 708 | "sha256:6196a5c39286cc37c024cd78834fb9345e464525d8991c21e908cc046d1cc02c", 709 | "sha256:61b32d06ae8a036a6607805e6720ef00a3c98207038444ba7fd3d169cd998910", 710 | "sha256:6286efab1ed6e74b7028327365cf7346b1d777d63ab30e21a0f4d5b275fc17d5", 711 | "sha256:65d98939f1a2e74b58839f8c4dab3b6b3c1ce84972ae712be02845e65391ac7c", 712 | "sha256:66324e4e1beede9ac79e60f88de548da58b1f8ab4b2f1354d8375774f997e6c0", 713 | "sha256:6c77c9937962577a6a76917845d06af6ab9197702a42e1346d8ae2e76b5e3675", 714 | "sha256:70dec29e8ac485dbf57481baee40781c63e381bebea080991893cd297742b8fd", 715 | "sha256:7250a3fa399f08ec9cb3f7b1b987955d17e044f1ade821b32e5f435130250d7f", 716 | "sha256:748290bf9112b581c525e6e6d3820621ff020ed95af6f17fedef416b27ed564c", 717 | "sha256:7da13da6f985aab7f6f28debab00c67ff9cbacd588e8477034c0652ac141feea", 718 | "sha256:8f959b26f2634a091bb42241c3ed8d3cedb506e7c27b8dd5c7b9f745318ddbb6", 719 | "sha256:9de9e5188a782be6b1ce866e8a51bc76a0fbaa0e16613823fc38e4fc2556ad05", 720 | "sha256:a48900ecea1cbb71b8c71c620dee15b62f85f7c14189bdeee54966fbd9a0c5bd", 721 | "sha256:b87936fd2c317b6ee08a5741ea06b9d11a6074ef4cc42e031bc6403f82a32575", 722 | "sha256:c77da1263aa361938476f04c4b6c8916001b90b2c2fdd92d8d535e1af48fba5a", 723 | "sha256:cb5ec8eead331e3bb4ce8066cf06d2dfef1bfb1b2a73082dfe8a161301b76e37", 724 | "sha256:cc0ee35043162abbf717b7df924597ade8e5395e7b66d18270116f8745ceb795", 725 | "sha256:d14d30e7f46a0476efb0deb5b61343b1526f73ebb5ed84f23dc794bdb88f9d9f", 726 | "sha256:d371e811d6b156d82aa5f9a4e08b58debf97c302a35714f6f45e35139c332e32", 727 | "sha256:d3d20ea5782ba63ed13bc2b8c291a053c8d807a8fa927d941bd718468f7b950c", 728 | "sha256:d3f7594930c423fd9f5d1a76bee85a2c36fd8b4b16921cae7e965f22575e9c01", 729 | "sha256:dcef026f608f678c118779cd6591c8af6e9b4155c44e0d1bc0c87c036fb8c8c4", 730 | "sha256:e0791ac58d91ac58f694d8d2957884df8e4e2f6687cdf367ef7eb7497f79eaa2", 731 | "sha256:e385b637ac3acaae8022e7e47dfa7b83d3620e432e3ecb9a3f7f58f150e50921", 732 | "sha256:e519d64089b0876c7b467274468709dadf11e41d65f63bba207e04217f47c085", 733 | "sha256:e7229e60ac41a1202444497ddde70a48d33909e484f96eb0da9baf8dc68541df", 734 | "sha256:ed3ad863b1b40cd1d4bd21e7498329ccaece75db5a5bf58cd3c9f130843e7102", 735 | "sha256:f0ba29bafd8e7e22920567ce0d232c26d4d47c8b5cf4ed7b562b5db39fa199c5", 736 | "sha256:fa2ba70284fa42c2a5ecb35e322e68823288a4251f9ba9cc77be04ae15eada68", 737 | "sha256:fba85b6cd9c39be262fcd23865652920832b61583de2a2ca907dbd8e8a8c81e5" 738 | ], 739 | "version": "==6.1" 740 | }, 741 | "traitlets": { 742 | "hashes": [ 743 | "sha256:70b4c6a1d9019d7b4f6846832288f86998aa3b9207c6821f3578a6a6a467fe44", 744 | "sha256:d023ee369ddd2763310e4c3eae1ff649689440d4ae59d7485eb4cfbbe3e359f7" 745 | ], 746 | "version": "==4.3.3" 747 | }, 748 | "twython": { 749 | "hashes": [ 750 | "sha256:a469d673fdd20d1c346e9b9f784212db521aa611bbdfc4912229ab701b36002b", 751 | "sha256:c6ca64309260e0ab47267f76217c80812f591991437f376fc61498816384f9e7" 752 | ], 753 | "index": "pypi", 754 | "version": "==3.8.2" 755 | }, 756 | "typing-extensions": { 757 | "hashes": [ 758 | "sha256:7cb407020f00f7bfc3cb3e7881628838e69d8f3fcab2f64742a5e76b2f841918", 759 | "sha256:99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c", 760 | "sha256:dafc7639cde7f1b6e1acc0f457842a83e722ccca8eef5270af2d74792619a89f" 761 | ], 762 | "markers": "python_version < '3.8'", 763 | "version": "==3.7.4.3" 764 | }, 765 | "urllib3": { 766 | "hashes": [ 767 | "sha256:19188f96923873c92ccb987120ec4acaa12f0461fa9ce5d3d0772bc965a39e08", 768 | "sha256:d8ff90d979214d7b4f8ce956e80f4028fc6860e4431f731ea4a8c08f23f99473" 769 | ], 770 | "version": "==1.26.2" 771 | }, 772 | "wcwidth": { 773 | "hashes": [ 774 | "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784", 775 | "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83" 776 | ], 777 | "version": "==0.2.5" 778 | }, 779 | "webencodings": { 780 | "hashes": [ 781 | "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", 782 | "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923" 783 | ], 784 | "version": "==0.5.1" 785 | }, 786 | "widgetsnbextension": { 787 | "hashes": [ 788 | "sha256:079f87d87270bce047512400efd70238820751a11d2d8cb137a5a5bdbaf255c7", 789 | "sha256:bd314f8ceb488571a5ffea6cc5b9fc6cba0adaf88a9d2386b93a489751938bcd" 790 | ], 791 | "version": "==3.5.1" 792 | }, 793 | "zipp": { 794 | "hashes": [ 795 | "sha256:102c24ef8f171fd729d46599845e95c7ab894a4cf45f5de11a44cc7444fb1108", 796 | "sha256:ed5eee1974372595f9e416cc7bbeeb12335201d8081ca8a0743c954d4446e5cb" 797 | ], 798 | "version": "==3.4.0" 799 | } 800 | }, 801 | "develop": {} 802 | } 803 | --------------------------------------------------------------------------------