Last active
September 18, 2022 18:46
-
-
Save aalexren/aa79fe2bd0b4403b3c2dc771362159b0 to your computer and use it in GitHub Desktop.
[py_elementary]basics.ipynb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"nbformat": 4, | |
"nbformat_minor": 0, | |
"metadata": { | |
"colab": { | |
"name": "[py_elementary]basics.ipynb", | |
"provenance": [], | |
"collapsed_sections": [], | |
"authorship_tag": "ABX9TyNWlA4qthhQ/MUCN9AX2Q0P", | |
"include_colab_link": true | |
}, | |
"kernelspec": { | |
"name": "python3", | |
"display_name": "Python 3" | |
}, | |
"language_info": { | |
"name": "python" | |
} | |
}, | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "view-in-github", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"<a href=\"https://colab.research.google.com/gist/aalexren/aa79fe2bd0b4403b3c2dc771362159b0/-py_elementary-basics.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"# Базовые принципы" | |
], | |
"metadata": { | |
"id": "7iwpHF1Ym1my" | |
} | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"## Модель данных. Объекты" | |
], | |
"metadata": { | |
"id": "J0rMIvOFt5Ep" | |
} | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"В `pythnon` у каждого объекта есть свой уникальный `id` являющийся целым числом. Всё является объектом, в своё время они бывают `immutable` (неизменяемые) и `mutable` (изменяемые). \n", | |
"\n", | |
"К неизменяемым относятся:\n", | |
"\n", | |
"\n", | |
"1. int\n", | |
"2. float\n", | |
"3. string\n", | |
"4. tuple\n", | |
"5. bool\n", | |
"6. complex\n", | |
"7. остальные...\n", | |
"\n", | |
"К изменяемым же относятся: `list, dict, set`. Суть в том, что мы не можем поменять состояние этих объектов, а, например, в список мы можем добавить элемент." | |
], | |
"metadata": { | |
"id": "EoznUhVDsW06" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"# Важный момент\n", | |
"1 == True" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "MwRzdohst3km", | |
"outputId": "30e45acf-9223-4612-c534-136f091a892c" | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"True" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 1 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"# Но в то же время\n", | |
"1 is True" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "-ntSxfYSwT2d", | |
"outputId": "3a16d072-be18-48e3-d3fc-9a6710f2b4cd" | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"False" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 3 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"# Однако\n", | |
"set([1, True])" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "Y2DSy7IpwZqR", | |
"outputId": "20ed1dac-aba4-419c-d35a-7e104ea6e054" | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"{1}" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 4 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"Почему в *set* `1` и `True` ссылаются на один и тот же объект, хотя `1 is True` даёт `False`?\n", | |
"\n", | |
"---\n", | |
"\n", | |
"Ответ кроется в том, как устроен *set* в pyton. Дело в том, что он использует для проверки hash-функцию, для которой выполнено равенство `hash(1) == hash(True)`. **Однако сопоставление единице истины и нулю лжи устарело и более в python не используется (но объект `True` является наследником класса `int`)!**" | |
], | |
"metadata": { | |
"id": "bDwjBIk4wfzs" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"# Забавно так же и следующее\n", | |
"a = [[1, 2], 3]\n", | |
"\n", | |
"b = a.copy()\n", | |
"print(b) # [[1, 2], 3]\n", | |
"\n", | |
"a[0][0] = 5\n", | |
"a[1] = 6\n", | |
"print(b) # [[5, 2], 3]\n", | |
"\n", | |
"a[0][0] = 1\n", | |
"a[1] = 3\n", | |
"b = a[:]\n", | |
"a[0][0] = 5\n", | |
"print(b) # [[5, 2], 3]" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "UPJIXC-Y4XAl", | |
"outputId": "2fb6466c-236b-40b4-abf2-d38c01af53b6" | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"[[1, 2], 3]\n", | |
"[[5, 2], 3]\n", | |
"[[5, 2], 3]\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"Т.е. фактически `[:]` является просто `shortcut` (ярлык) для функции `copy`, которая НЕрекурсивно копирует объект. Если бы мы хотели действительно скопировать весь объект мы бы использовали `deepcopy` модуля `copy`." | |
], | |
"metadata": { | |
"id": "ihoyhCj140Hs" | |
} | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"## Функции и стек вызовов" | |
], | |
"metadata": { | |
"id": "gRnkC-k_MRxn" | |
} | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"Функции в python должны работать так, чтобы после их выполнения можно было восстановить шаг, на котором произошёл вызвать, чтобы продолжить выполнение программы. Для этого существует стек, в который кладут функции, которые вызваются и удаляются, когда они возвращают управление." | |
], | |
"metadata": { | |
"id": "90aiJnNfMVxh" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"# Примеры вызова функций\n", | |
"def printab(a, b):\n", | |
" print(a)\n", | |
" print(b)\n", | |
"\n", | |
"printab(10, 20)\n", | |
"printab(a=10, b=20)\n", | |
"printab(10, b=20) # сначала всегда позиционный, только потом непозиционные аргументы\n", | |
"\n", | |
"lst = [10, 20]\n", | |
"printab(*lst) # = printab(lst[0], lst[1])\n", | |
"\n", | |
"args = {'a': 10, 'b': 20}\n", | |
"printab(**args) # = printab(key1=args[key1], key2=args[key2])\n" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "eZWnpT_bRS0Z", | |
"outputId": "9f8c6567-2646-4c65-d473-1ed12d17b1ec" | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"10\n", | |
"20\n", | |
"10\n", | |
"20\n", | |
"10\n", | |
"20\n", | |
"10\n", | |
"20\n", | |
"10\n", | |
"20\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"Конечно, мы можем указывать значения аргументов по умолчанию. Однако, есть правило, согласно которому после заданных аргументов со значениями по умолчанию не могут следовать аргументы без значений по умолчанию." | |
], | |
"metadata": { | |
"id": "31Bkz_r9SoEj" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"# Ошибка\n", | |
"def printab(a=10, b):\n", | |
" print(a)\n", | |
" print(b)" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 131 | |
}, | |
"id": "MwrYavZ5S2P9", | |
"outputId": "3a4d11ff-09e0-46f8-ba57-05df755c246f" | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "error", | |
"ename": "SyntaxError", | |
"evalue": "ignored", | |
"traceback": [ | |
"\u001b[0;36m File \u001b[0;32m\"<ipython-input-2-5005e27d4071>\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m def printab(a=10, b):\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m non-default argument follows default argument\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"Чтобы получать и работать с неопределённым числом аргументов используется `*`." | |
], | |
"metadata": { | |
"id": "cTe_ktFMTwuG" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"def printab(a, b, *args): # здесь * наоборот, сворачивает все оставшиеся аргументы в кортеж\n", | |
" print(a)\n", | |
" print(b)\n", | |
" for arg in args:\n", | |
" print(arg)\n", | |
"\n", | |
"lst = [i*10 for i in range(1, 6)]\n", | |
"printab(*lst) # здесь * разворачивает наш список" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "e1FdSOdgT1vR", | |
"outputId": "fbdc8516-a2e0-4f4d-d762-9f21198d4959" | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"10\n", | |
"20\n", | |
"30\n", | |
"40\n", | |
"50\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"Немного про порядок следования аргументов и их передачи" | |
], | |
"metadata": { | |
"id": "dxAR1iOXZEOY" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"def s(a, *vs, b=10):\n", | |
" res = a + b\n", | |
" for v in vs:\n", | |
" res += v\n", | |
" return res\n", | |
"\n", | |
"# 41 – т.к. не был передан аргумент b, в связи с чем 31 это один из элементов кортежа vs\n", | |
"s(0, 0, 31) \n", | |
"\n", | |
"# 41 аналогично\n", | |
"s(11, 10, 10)\n", | |
"\n", | |
"# SyntaxError: positional argument follows keyword argument\n", | |
"# s(b=31, 0) \n", | |
"\n", | |
"# 31 – vs = ()\n", | |
"s(21) \n", | |
"\n", | |
"# 31 – a = 11, vs = (10,)\n", | |
"s(11, 10) \n", | |
"\n", | |
"# 31 – a = 5, vs = (5, 5, 5, 1,), b = 10\n", | |
"s(5, 5, 5, 5, 1) \n", | |
"\n", | |
"# 31 – vs = ()\n", | |
"s(11, b=20) \n", | |
"\n", | |
"# 31 – a = 11, vs = (10, ), b = 10\n", | |
"s(11, 10, b=10) \n", | |
"\n", | |
"# TypeError: s() missing 1 required positional argument: 'a'\n", | |
"# s(b=31)" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "Niut23OuXGZp", | |
"outputId": "f88d7018-2548-44e2-da4c-de1b7114b5d1" | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"31" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 18 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"Аргументы по умолчанию инициализируются только **один раз** в *момент компиляции байт-кода*, поэтому важно следить за такими аргументами в функциях. " | |
], | |
"metadata": { | |
"id": "qpX4W-cEopu0" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"# Множество seen инициализировалось один раз\n", | |
"# и теперь используется повторно\n", | |
"# из-за чего повторный вызов функции \n", | |
"# выводит пустой список уникальных элементов.\n", | |
"def unique(iterable, seen=set()):\n", | |
" acc = []\n", | |
" for item in iterable:\n", | |
" if item not in seen:\n", | |
" seen.add(item)\n", | |
" acc.append(item)\n", | |
" return acc\n", | |
"\n", | |
"xc = [1, 1, 2, 3]\n", | |
"print(unique(xc)) # [1, 2, 3]\n", | |
"\n", | |
"print(unique(xc)) # []\n", | |
"\n", | |
"unique.__defaults__" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "U6C8piCto9e6", | |
"outputId": "7bb783dc-70b1-435f-d030-8efd18118743" | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"[1, 2, 3]\n", | |
"[]\n" | |
] | |
}, | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"({1, 2, 3},)" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 20 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"# Правильный способ инициализации\n", | |
"def unique(iterable, seen=None):\n", | |
" seen = set(seen or []) # None --- falsy value; если первый аргумент False, or вернёт второй\n", | |
" acc = []\n", | |
" for item in iterable:\n", | |
" if item not in seen:\n", | |
" seen.add(item)\n", | |
" acc.append(item)\n", | |
" return acc\n", | |
"\n", | |
"xc = [1, 1, 2, 3]\n", | |
"print(unique(xc)) # [1, 2, 3]\n", | |
"\n", | |
"print(unique(xc)) # [1, 2, 3]\n", | |
"\n", | |
"unique.__defaults__" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "2Tc1vZG6qMIg", | |
"outputId": "38f6c605-49ac-4c91-b457-e9c888a74e4a" | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"[1, 2, 3]\n", | |
"[1, 2, 3]\n" | |
] | |
}, | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"(None,)" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 22 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"## Распаковка и присваивание\n", | |
"\n", | |
"В качестве правого аргумента можно использовать любой аргумент, поддерживающий протокол итератора." | |
], | |
"metadata": { | |
"id": "vjleRjemgBLQ" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"acc = []\n", | |
"seen = set()\n", | |
"(acc, seen) = ([], set()) # equivalent\n", | |
"\n", | |
"x, y, z = [1, 2, 3]\n", | |
"x, y, z = {3, 1, 2} # unordered => x = 1, y = 2, z = 3\n", | |
"x, y, z = \"xyz\"\n", | |
"\n", | |
"# если опустим скобки, то работать не будет, т.к. справа ожидается последовательность из 4-х элементов;\n", | |
"# распаковка работает рекурсивно.\n", | |
"rec = (0, 0), (4, 4)\n", | |
"(x0, y0), (x1, y1) = rec # скобки опускают, но иногда они бывают полезны" | |
], | |
"metadata": { | |
"id": "_7wUs9aRgD9i" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"## Область видимости\n", | |
"\n", | |
"Есть правило LEGB, согласно которому поиск сначала осуществляется в локальной области видимости, затем в окружающей (enclosing), после в global и, наконец, во встроенной." | |
], | |
"metadata": { | |
"id": "6l355e8ilvK2" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"min # builtin\n", | |
"# <built-in function min>\n", | |
"\n", | |
"min = 42 # global\n", | |
"def f(*args):\n", | |
" min = 2\n", | |
" def g(): # enclosing\n", | |
" min = 4 # local\n", | |
" print(min)" | |
], | |
"metadata": { | |
"id": "0onA73OjmCJi" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"***Enclosing scopes, порядок выполнения:***" | |
], | |
"metadata": { | |
"id": "qFzjdbXySaFV" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"def f():\n", | |
" x = 1\n", | |
" def a():\n", | |
" x = 2\n", | |
" def b():\n", | |
" x = 3\n", | |
" def c():\n", | |
" print(x)\n", | |
" c() \n", | |
" b()\n", | |
" a()\n", | |
"f()\n", | |
"\n", | |
"# На экран будет выведено число 3" | |
], | |
"metadata": { | |
"id": "lbjosM1lScKI", | |
"outputId": "6c0700e0-acad-46d3-bf6f-4d3c3e1fc116", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
} | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"3\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"> namespace - это группа, в которой все имена уникальны. В python такие пространства могут образовывать дерево с корнем global namespace. А область видимости (переменной, функции и т.д.) - это способ определить границы таких групп, то есть это часть программы, в которой мы можем обратиться к конкретной переменной.\n", | |
"\n" | |
], | |
"metadata": { | |
"id": "2jg0gIlnTDrz" | |
} | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"Оператор nonlocal позволяет модифицировать значение переменной из объемлющей области видимости. [https://peps.python.org/pep-3104/](https://peps.python.org/pep-3104/)" | |
], | |
"metadata": { | |
"id": "WeacUPKCpXJc" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"def cell(value=None):\n", | |
" def get():\n", | |
" return value\n", | |
" def set(update):\n", | |
" nonlocal value\n", | |
" value = update\n", | |
" return get, set\n", | |
"\n", | |
"get, set = cell()\n", | |
"set(42)\n", | |
"get()" | |
], | |
"metadata": { | |
"id": "nCbb6aCCpeB7", | |
"outputId": "e504f256-9a9a-48d1-9d76-a4923b1c6bc7", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
} | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"42" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 2 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"Анонимные функции и элементы функционального программирования" | |
], | |
"metadata": { | |
"id": "Jt0dmRG3r_vg" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"list(map(lambda x, n: x ** n, [2, 3], range(1, 8)))\n", | |
"# map выбирает наименьшую по длине последовательность для обработки из аргументов" | |
], | |
"metadata": { | |
"id": "BxBHi0aIsEZJ", | |
"outputId": "14a17e6c-1722-407b-a261-de2c6ebbb053", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
} | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"[2, 9]" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 3 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"## Классы" | |
], | |
"metadata": { | |
"id": "NLDWHeFemxLv" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"class Counter:\n", | |
" \"I'm a counter class\"\n", | |
" def __init__(self, initial=0):\n", | |
" self.value = initial\n", | |
" \n", | |
" def increment(self):\n", | |
" self.value += 1\n", | |
" \n", | |
" # вместо self можно поставить любое название,\n", | |
" # однако принято писать self\n", | |
" def get(self):\n", | |
" return self.value\n", | |
"\n", | |
"c = Counter(42)\n", | |
"c.increment()\n", | |
"c.get()" | |
], | |
"metadata": { | |
"id": "MvbMdkAbmzQk", | |
"outputId": "f6d30a4d-d1ed-4f32-9036-1fb185c8ade5", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
} | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"43" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 3 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"Можно создавать ***атрибуты*** класса непосредственно во время исполнения" | |
], | |
"metadata": { | |
"id": "BGIpRsX4JJ5Q" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"class Counter:\n", | |
" pass\n", | |
"\n", | |
"x = Counter()\n", | |
"x.count = 0\n", | |
"x.count += 1\n", | |
"\n", | |
"print(x.count)" | |
], | |
"metadata": { | |
"id": "NTtHRxXNJCfl", | |
"outputId": "f43f8e2b-5893-4790-c3cf-97ae6df1725b", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
} | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"1\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"А ещё если в области видимости нет нужного атрибута для `self`, то он будет искать его у атрибута класса. В данном случае, хоть мы и не объявили `self`.`val`, метод `bar` всё равно верно почитает значаение и `a.val` будет равен 2.\n", | |
"\n", | |
"P.S. Методы у объекта называются ***Bound Methods***, потому как объект класса знает где будет лежать эта функция в классе, экземпляром которого он является. `x.bar()` эквивалентно вызову `A.bar(x)`." | |
], | |
"metadata": { | |
"id": "CN-a49M-YUaV" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"class A:\n", | |
" val = 1\n", | |
"\n", | |
" def foo(self):\n", | |
" A.val += 2\n", | |
"\n", | |
" def bar(self):\n", | |
" self.val += 1\n", | |
"\n", | |
"\n", | |
"a = A()\n", | |
"b = A()\n", | |
"\n", | |
"a.bar()\n", | |
"a.foo()\n", | |
"\n", | |
"c = A()\n", | |
"\n", | |
"print(a.val)\n", | |
"print(b.val)\n", | |
"print(c.val)" | |
], | |
"metadata": { | |
"id": "N22bl6BjH3RG", | |
"outputId": "e575fa4e-3424-4950-ef59-e6098f07ff06", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
} | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"2\n", | |
"3\n", | |
"3\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"Порядок следования классов при наследовании и методов, которые будут вызваны можно посмотреть с помощью метода `mro`" | |
], | |
"metadata": { | |
"id": "_UanOcCYXjFy" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"class E:\n", | |
" pass\n", | |
"\n", | |
"class D:\n", | |
" pass\n", | |
"\n", | |
"class B(D, E):\n", | |
" pass\n", | |
"\n", | |
"class C:\n", | |
" pass\n", | |
"\n", | |
"class A(B, C):\n", | |
" pass\n", | |
"\n", | |
"print(A.mro())" | |
], | |
"metadata": { | |
"id": "3XaEWAdbXq63", | |
"outputId": "83229194-f7dd-475f-9fe6-ad764aefd44c", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
} | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"[<class '__main__.A'>, <class '__main__.B'>, <class '__main__.D'>, <class '__main__.E'>, <class '__main__.C'>, <class 'object'>]\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"Наследование с одинаковыми **именами** методов" | |
], | |
"metadata": { | |
"id": "95r0VR-SYwH7" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"class EvenLengthMixin:\n", | |
" def even_length(self):\n", | |
" return len(self) % 2 == 0\n", | |
"\n", | |
"class MyList(list, EvenLengthMixin):\n", | |
" def pop(self):\n", | |
" x = super(MyList, self).pop() # всё равно что list.pop(self).\n", | |
" print(\"Last value is \", x) # super в данном случае будет просто искать метод \n", | |
" return x # среди предков класса и передаст self в качестве аргумента\n", | |
"\n", | |
"ml = MyList([1,2,4,17])\n", | |
"z = ml.pop()\n", | |
"print(z)\n", | |
"print(ml)" | |
], | |
"metadata": { | |
"id": "p0rh4fMxY0Bn", | |
"outputId": "86b5fa4d-e7db-4f5e-d94e-0be6de5938f7", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
} | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"Last value is 17\n", | |
"17\n", | |
"[1, 2, 4]\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"\n", | |
"\n", | |
"> **and** и **or** в python возвращают на самом деле не *True* или *False*, а значение последнего вычисленного аргумента. Например, 'a' **or** 'b' вернёт 'a', а 'a' **and** 'b' вернёт 'b'.\n", | |
"\n" | |
], | |
"metadata": { | |
"id": "Q-qEmOY-doDH" | |
} | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"# Стандартные средства" | |
], | |
"metadata": { | |
"id": "94fvelWKxFmc" | |
} | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"## Модули и импорт" | |
], | |
"metadata": { | |
"id": "u5eTLLgXxJgf" | |
} | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"Всё импортируется последовательно, кроме того, весь код, импортированный из модуля будет выполнен, если будет такая возможность. " | |
], | |
"metadata": { | |
"id": "1ggbmo3XxNbO" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"from sys import * # импортирует всё из модуля sys\n", | |
"\n", | |
"from math import fabs as abs # импортировали из модуля math функцию fabs с алиасом abs\n", | |
"\n", | |
"from sys import * # второй раз он не будет импортировать этот модуль, т.к. он уже импортирован" | |
], | |
"metadata": { | |
"id": "-2GGj5SFxZ4y" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"Если мы хотим посмотреть какие модули были импортированы, может использовать sys.modules, а sys.path покажет где мы их искали." | |
], | |
"metadata": { | |
"id": "JRGK4WcwxzNt" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"import sys\n", | |
"\n", | |
"print(sys.modules)\n", | |
"print(*sys.path)" | |
], | |
"metadata": { | |
"id": "TC2PTLNEyB7T", | |
"outputId": "6925f17a-2d02-4e55-c053-cb47cbde017d", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
} | |
}, | |
"execution_count": 1, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"{'sys': <module 'sys' (built-in)>, 'builtins': <module 'builtins' (built-in)>, '_frozen_importlib': <module 'importlib._bootstrap' (frozen)>, '_imp': <module '_imp' (built-in)>, '_thread': <module '_thread' (built-in)>, '_warnings': <module '_warnings' (built-in)>, '_weakref': <module '_weakref' (built-in)>, 'zipimport': <module 'zipimport' (built-in)>, '_frozen_importlib_external': <module 'importlib._bootstrap_external' (frozen)>, '_io': <module 'io' (built-in)>, 'marshal': <module 'marshal' (built-in)>, 'posix': <module 'posix' (built-in)>, 'encodings': <module 'encodings' from '/usr/lib/python3.7/encodings/__init__.py'>, 'codecs': <module 'codecs' from '/usr/lib/python3.7/codecs.py'>, '_codecs': <module '_codecs' (built-in)>, 'encodings.aliases': <module 'encodings.aliases' from '/usr/lib/python3.7/encodings/aliases.py'>, 'encodings.utf_8': <module 'encodings.utf_8' from '/usr/lib/python3.7/encodings/utf_8.py'>, '_signal': <module '_signal' (built-in)>, '__main__': <module '__main__'>, 'encodings.latin_1': <module 'encodings.latin_1' from '/usr/lib/python3.7/encodings/latin_1.py'>, 'io': <module 'io' from '/usr/lib/python3.7/io.py'>, 'abc': <module 'abc' from '/usr/lib/python3.7/abc.py'>, '_abc': <module '_abc' (built-in)>, '_bootlocale': <module '_bootlocale' from '/usr/lib/python3.7/_bootlocale.py'>, '_locale': <module '_locale' (built-in)>, 'warnings': <module 'warnings' from '/usr/lib/python3.7/warnings.py'>, 're': <module 're' from '/usr/lib/python3.7/re.py'>, 'enum': <module 'enum' from '/usr/lib/python3.7/enum.py'>, 'types': <module 'types' from '/usr/lib/python3.7/types.py'>, '_collections': <module '_collections' (built-in)>, 'sre_compile': <module 'sre_compile' from '/usr/lib/python3.7/sre_compile.py'>, '_sre': <module '_sre' (built-in)>, 'sre_parse': <module 'sre_parse' from '/usr/lib/python3.7/sre_parse.py'>, 'sre_constants': <module 'sre_constants' from '/usr/lib/python3.7/sre_constants.py'>, 'functools': <module 'functools' from '/usr/lib/python3.7/functools.py'>, '_functools': <module '_functools' (built-in)>, 'collections': <module 'collections' from '/usr/lib/python3.7/collections/__init__.py'>, '_collections_abc': <module '_collections_abc' from '/usr/lib/python3.7/_collections_abc.py'>, 'operator': <module 'operator' from '/usr/lib/python3.7/operator.py'>, '_operator': <module '_operator' (built-in)>, 'keyword': <module 'keyword' from '/usr/lib/python3.7/keyword.py'>, 'heapq': <module 'heapq' from '/usr/lib/python3.7/heapq.py'>, '_heapq': <module '_heapq' (built-in)>, 'itertools': <module 'itertools' (built-in)>, 'reprlib': <module 'reprlib' from '/usr/lib/python3.7/reprlib.py'>, 'copyreg': <module 'copyreg' from '/usr/lib/python3.7/copyreg.py'>, 'site': <module 'site' from '/usr/lib/python3.7/site.py'>, 'os': <module 'os' from '/usr/lib/python3.7/os.py'>, 'stat': <module 'stat' from '/usr/lib/python3.7/stat.py'>, '_stat': <module '_stat' (built-in)>, 'posixpath': <module 'posixpath' from '/usr/lib/python3.7/posixpath.py'>, 'genericpath': <module 'genericpath' from '/usr/lib/python3.7/genericpath.py'>, 'os.path': <module 'posixpath' from '/usr/lib/python3.7/posixpath.py'>, '_sitebuiltins': <module '_sitebuiltins' from '/usr/lib/python3.7/_sitebuiltins.py'>, 'importlib': <module 'importlib' from '/usr/lib/python3.7/importlib/__init__.py'>, 'importlib._bootstrap': <module 'importlib._bootstrap' (frozen)>, 'importlib._bootstrap_external': <module 'importlib._bootstrap_external' (frozen)>, 'importlib.util': <module 'importlib.util' from '/usr/lib/python3.7/importlib/util.py'>, 'importlib.abc': <module 'importlib.abc' from '/usr/lib/python3.7/importlib/abc.py'>, 'importlib.machinery': <module 'importlib.machinery' from '/usr/lib/python3.7/importlib/machinery.py'>, 'contextlib': <module 'contextlib' from '/usr/lib/python3.7/contextlib.py'>, 'google': <module 'google' (namespace)>, 'google.cloud': <module 'google.cloud' (namespace)>, 'google.logging': <module 'google.logging' (namespace)>, 'mpl_toolkits': <module 'mpl_toolkits' (namespace)>, 'sphinxcontrib': <module 'sphinxcontrib' (namespace)>, 'sitecustomize': <module 'sitecustomize' from '/usr/lib/python3.7/sitecustomize.py'>, 'runpy': <module 'runpy' from '/usr/lib/python3.7/runpy.py'>, 'pkgutil': <module 'pkgutil' from '/usr/lib/python3.7/pkgutil.py'>, 'weakref': <module 'weakref' from '/usr/lib/python3.7/weakref.py'>, '_weakrefset': <module '_weakrefset' from '/usr/lib/python3.7/_weakrefset.py'>, 'ipykernel': <module 'ipykernel' from '/usr/local/lib/python3.7/dist-packages/ipykernel/__init__.py'>, 'ipykernel._version': <module 'ipykernel._version' from '/usr/local/lib/python3.7/dist-packages/ipykernel/_version.py'>, 'ipykernel.connect': <module 'ipykernel.connect' from '/usr/local/lib/python3.7/dist-packages/ipykernel/connect.py'>, '__future__': <module '__future__' from '/usr/lib/python3.7/__future__.py'>, 'json': <module 'json' from '/usr/lib/python3.7/json/__init__.py'>, 'json.decoder': <module 'json.decoder' from '/usr/lib/python3.7/json/decoder.py'>, 'json.scanner': <module 'json.scanner' from '/usr/lib/python3.7/json/scanner.py'>, '_json': <module '_json' from '/usr/lib/python3.7/lib-dynload/_json.cpython-37m-x86_64-linux-gnu.so'>, 'json.encoder': <module 'json.encoder' from '/usr/lib/python3.7/json/encoder.py'>, 'subprocess': <module 'subprocess' from '/usr/lib/python3.7/subprocess.py'>, 'time': <module 'time' (built-in)>, 'signal': <module 'signal' from '/usr/lib/python3.7/signal.py'>, 'errno': <module 'errno' (built-in)>, '_posixsubprocess': <module '_posixsubprocess' (built-in)>, 'select': <module 'select' (built-in)>, 'selectors': <module 'selectors' from '/usr/lib/python3.7/selectors.py'>, 'collections.abc': <module 'collections.abc' from '/usr/lib/python3.7/collections/abc.py'>, 'math': <module 'math' (built-in)>, 'threading': <module 'threading' from '/usr/lib/python3.7/threading.py'>, 'traceback': <module 'traceback' from '/usr/lib/python3.7/traceback.py'>, 'linecache': <module 'linecache' from '/usr/lib/python3.7/linecache.py'>, 'tokenize': <module 'tokenize' from '/usr/lib/python3.7/tokenize.py'>, 'token': <module 'token' from '/usr/lib/python3.7/token.py'>, 'IPython': <module 'IPython' from '/usr/local/lib/python3.7/dist-packages/IPython/__init__.py'>, 'IPython.core': <module 'IPython.core' from '/usr/local/lib/python3.7/dist-packages/IPython/core/__init__.py'>, 'IPython.core.getipython': <module 'IPython.core.getipython' from '/usr/local/lib/python3.7/dist-packages/IPython/core/getipython.py'>, 'IPython.core.release': <module 'IPython.core.release' from '/usr/local/lib/python3.7/dist-packages/IPython/core/release.py'>, 'IPython.core.application': <module 'IPython.core.application' from '/usr/local/lib/python3.7/dist-packages/IPython/core/application.py'>, 'atexit': <module 'atexit' (built-in)>, 'copy': <module 'copy' from '/usr/lib/python3.7/copy.py'>, 'glob': <module 'glob' from '/usr/lib/python3.7/glob.py'>, 'fnmatch': <module 'fnmatch' from '/usr/lib/python3.7/fnmatch.py'>, 'logging': <module 'logging' from '/usr/lib/python3.7/logging/__init__.py'>, 'string': <module 'string' from '/usr/lib/python3.7/string.py'>, '_string': <module '_string' (built-in)>, 'shutil': <module 'shutil' from '/usr/lib/python3.7/shutil.py'>, 'zlib': <module 'zlib' (built-in)>, 'bz2': <module 'bz2' from '/usr/lib/python3.7/bz2.py'>, '_compression': <module '_compression' from '/usr/lib/python3.7/_compression.py'>, '_bz2': <module '_bz2' from '/usr/lib/python3.7/lib-dynload/_bz2.cpython-37m-x86_64-linux-gnu.so'>, 'lzma': <module 'lzma' from '/usr/lib/python3.7/lzma.py'>, '_lzma': <module '_lzma' from '/usr/lib/python3.7/lib-dynload/_lzma.cpython-37m-x86_64-linux-gnu.so'>, 'pwd': <module 'pwd' (built-in)>, 'grp': <module 'grp' (built-in)>, 'traitlets': <module 'traitlets' from '/usr/local/lib/python3.7/dist-packages/traitlets/__init__.py'>, 'traitlets.traitlets': <module 'traitlets.traitlets' from '/usr/local/lib/python3.7/dist-packages/traitlets/traitlets.py'>, 'ast': <module 'ast' from '/usr/lib/python3.7/ast.py'>, '_ast': <module '_ast' (built-in)>, 'inspect': <module 'inspect' from '/usr/lib/python3.7/inspect.py'>, 'dis': <module 'dis' from '/usr/lib/python3.7/dis.py'>, 'opcode': <module 'opcode' from '/usr/lib/python3.7/opcode.py'>, '_opcode': <module '_opcode' from '/usr/lib/python3.7/lib-dynload/_opcode.cpython-37m-x86_64-linux-gnu.so'>, 'traitlets.utils': <module 'traitlets.utils' from '/usr/local/lib/python3.7/dist-packages/traitlets/utils/__init__.py'>, 'traitlets.utils.getargspec': <module 'traitlets.utils.getargspec' from '/usr/local/lib/python3.7/dist-packages/traitlets/utils/getargspec.py'>, 'traitlets.utils.importstring': <module 'traitlets.utils.importstring' from '/usr/local/lib/python3.7/dist-packages/traitlets/utils/importstring.py'>, 'traitlets.utils.sentinel': <module 'traitlets.utils.sentinel' from '/usr/local/lib/python3.7/dist-packages/traitlets/utils/sentinel.py'>, 'traitlets.utils.bunch': <module 'traitlets.utils.bunch' from '/usr/local/lib/python3.7/dist-packages/traitlets/utils/bunch.py'>, 'traitlets.utils.descriptions': <module 'traitlets.utils.descriptions' from '/usr/local/lib/python3.7/dist-packages/traitlets/utils/descriptions.py'>, 'traitlets.utils.decorators': <module 'traitlets.utils.decorators' from '/usr/local/lib/python3.7/dist-packages/traitlets/utils/decorators.py'>, 'traitlets._version': <module 'traitlets._version' from '/usr/local/lib/python3.7/dist-packages/traitlets/_version.py'>, 'traitlets.config': <module 'traitlets.config' from '/usr/local/lib/python3.7/dist-packages/traitlets/config/__init__.py'>, 'traitlets.config.application': <module 'traitlets.config.application' from '/usr/local/lib/python3.7/dist-packages/traitlets/config/application.py'>, 'pprint': <module 'pprint' from '/usr/lib/python3.7/pprint.py'>, 'traitlets.config.configurable': <module 'traitlets.config.configurable' from '/usr/local/lib/python3.7/dist-packages/traitlets/config/configurable.py'>, 'traitlets.config.loader': <module 'traitlets.config.loader' from '/usr/local/lib/python3.7/dist-packages/traitlets/config/loader.py'>, 'argparse': <module 'argparse' from '/usr/lib/python3.7/argparse.py'>, 'gettext': <module 'gettext' from '/usr/lib/python3.7/gettext.py'>, 'locale': <module 'locale' from '/usr/lib/python3.7/locale.py'>, 'traitlets.utils.text': <module 'traitlets.utils.text' from '/usr/local/lib/python3.7/dist-packages/traitlets/utils/text.py'>, 'textwrap': <module 'textwrap' from '/usr/lib/python3.7/textwrap.py'>, 'IPython.core.crashhandler': <module 'IPython.core.crashhandler' from '/usr/local/lib/python3.7/dist-packages/IPython/core/crashhandler.py'>, 'IPython.core.ultratb': <module 'IPython.core.ultratb' from '/usr/local/lib/python3.7/dist-packages/IPython/core/ultratb.py'>, 'pydoc': <module 'pydoc' from '/usr/lib/python3.7/pydoc.py'>, 'platform': <module 'platform' from '/usr/lib/python3.7/platform.py'>, 'sysconfig': <module 'sysconfig' from '/usr/lib/python3.7/sysconfig.py'>, 'urllib': <module 'urllib' from '/usr/lib/python3.7/urllib/__init__.py'>, 'urllib.parse': <module 'urllib.parse' from '/usr/lib/python3.7/urllib/parse.py'>, '_sysconfigdata_m_x86_64-linux-gnu': <module '_sysconfigdata_m_x86_64-linux-gnu' from '/usr/lib/python3.7/_sysconfigdata_m_x86_64-linux-gnu.py'>, 'IPython.core.debugger': <module 'IPython.core.debugger' from '/usr/local/lib/python3.7/dist-packages/IPython/core/debugger.py'>, 'bdb': <module 'bdb' from '/usr/lib/python3.7/bdb.py'>, 'IPython.utils': <module 'IPython.utils' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/__init__.py'>, 'IPython.utils.PyColorize': <module 'IPython.utils.PyColorize' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/PyColorize.py'>, 'IPython.utils.coloransi': <module 'IPython.utils.coloransi' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/coloransi.py'>, 'IPython.utils.ipstruct': <module 'IPython.utils.ipstruct' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/ipstruct.py'>, 'IPython.utils.colorable': <module 'IPython.utils.colorable' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/colorable.py'>, 'pygments': <module 'pygments' from '/usr/local/lib/python3.7/dist-packages/pygments/__init__.py'>, 'IPython.utils.py3compat': <module 'IPython.utils.py3compat' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/py3compat.py'>, 'IPython.utils.encoding': <module 'IPython.utils.encoding' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/encoding.py'>, 'IPython.core.excolors': <module 'IPython.core.excolors' from '/usr/local/lib/python3.7/dist-packages/IPython/core/excolors.py'>, 'IPython.testing': <module 'IPython.testing' from '/usr/local/lib/python3.7/dist-packages/IPython/testing/__init__.py'>, 'IPython.testing.skipdoctest': <module 'IPython.testing.skipdoctest' from '/usr/local/lib/python3.7/dist-packages/IPython/testing/skipdoctest.py'>, 'pdb': <module 'pdb' from '/usr/lib/python3.7/pdb.py'>, 'cmd': <module 'cmd' from '/usr/lib/python3.7/cmd.py'>, 'code': <module 'code' from '/usr/lib/python3.7/code.py'>, 'codeop': <module 'codeop' from '/usr/lib/python3.7/codeop.py'>, 'IPython.core.display_trap': <module 'IPython.core.display_trap' from '/usr/local/lib/python3.7/dist-packages/IPython/core/display_trap.py'>, 'IPython.utils.path': <module 'IPython.utils.path' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/path.py'>, 'random': <module 'random' from '/usr/lib/python3.7/random.py'>, 'hashlib': <module 'hashlib' from '/usr/lib/python3.7/hashlib.py'>, '_hashlib': <module '_hashlib' from '/usr/lib/python3.7/lib-dynload/_hashlib.cpython-37m-x86_64-linux-gnu.so'>, '_blake2': <module '_blake2' (built-in)>, '_sha3': <module '_sha3' (built-in)>, 'bisect': <module 'bisect' from '/usr/lib/python3.7/bisect.py'>, '_bisect': <module '_bisect' (built-in)>, '_random': <module '_random' (built-in)>, 'IPython.utils.process': <module 'IPython.utils.process' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/process.py'>, 'IPython.utils._process_posix': <module 'IPython.utils._process_posix' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/_process_posix.py'>, 'pexpect': <module 'pexpect' from '/usr/local/lib/python3.7/dist-packages/pexpect/__init__.py'>, 'pexpect.exceptions': <module 'pexpect.exceptions' from '/usr/local/lib/python3.7/dist-packages/pexpect/exceptions.py'>, 'pexpect.utils': <module 'pexpect.utils' from '/usr/local/lib/python3.7/dist-packages/pexpect/utils.py'>, 'pexpect.expect': <module 'pexpect.expect' from '/usr/local/lib/python3.7/dist-packages/pexpect/expect.py'>, 'pexpect.pty_spawn': <module 'pexpect.pty_spawn' from '/usr/local/lib/python3.7/dist-packages/pexpect/pty_spawn.py'>, 'pty': <module 'pty' from '/usr/lib/python3.7/pty.py'>, 'tty': <module 'tty' from '/usr/lib/python3.7/tty.py'>, 'termios': <module 'termios' from '/usr/lib/python3.7/lib-dynload/termios.cpython-37m-x86_64-linux-gnu.so'>, 'ptyprocess': <module 'ptyprocess' from '/usr/local/lib/python3.7/dist-packages/ptyprocess/__init__.py'>, 'ptyprocess.ptyprocess': <module 'ptyprocess.ptyprocess' from '/usr/local/lib/python3.7/dist-packages/ptyprocess/ptyprocess.py'>, 'fcntl': <module 'fcntl' (built-in)>, 'resource': <module 'resource' from '/usr/lib/python3.7/lib-dynload/resource.cpython-37m-x86_64-linux-gnu.so'>, 'struct': <module 'struct' from '/usr/lib/python3.7/struct.py'>, '_struct': <module '_struct' (built-in)>, 'ptyprocess.util': <module 'ptyprocess.util' from '/usr/local/lib/python3.7/dist-packages/ptyprocess/util.py'>, 'pexpect.spawnbase': <module 'pexpect.spawnbase' from '/usr/local/lib/python3.7/dist-packages/pexpect/spawnbase.py'>, 'pexpect.run': <module 'pexpect.run' from '/usr/local/lib/python3.7/dist-packages/pexpect/run.py'>, 'IPython.utils._process_common': <module 'IPython.utils._process_common' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/_process_common.py'>, 'shlex': <module 'shlex' from '/usr/lib/python3.7/shlex.py'>, 'IPython.utils.decorators': <module 'IPython.utils.decorators' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/decorators.py'>, 'IPython.utils.data': <module 'IPython.utils.data' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/data.py'>, 'IPython.utils.terminal': <module 'IPython.utils.terminal' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/terminal.py'>, 'IPython.utils.sysinfo': <module 'IPython.utils.sysinfo' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/sysinfo.py'>, 'IPython.utils._sysinfo': <module 'IPython.utils._sysinfo' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/_sysinfo.py'>, 'IPython.core.profiledir': <module 'IPython.core.profiledir' from '/usr/local/lib/python3.7/dist-packages/IPython/core/profiledir.py'>, 'IPython.paths': <module 'IPython.paths' from '/usr/local/lib/python3.7/dist-packages/IPython/paths.py'>, 'tempfile': <module 'tempfile' from '/usr/lib/python3.7/tempfile.py'>, 'IPython.utils.importstring': <module 'IPython.utils.importstring' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/importstring.py'>, 'IPython.terminal': <module 'IPython.terminal' from '/usr/local/lib/python3.7/dist-packages/IPython/terminal/__init__.py'>, 'IPython.terminal.embed': <module 'IPython.terminal.embed' from '/usr/local/lib/python3.7/dist-packages/IPython/terminal/embed.py'>, 'IPython.core.compilerop': <module 'IPython.core.compilerop' from '/usr/local/lib/python3.7/dist-packages/IPython/core/compilerop.py'>, 'IPython.core.magic_arguments': <module 'IPython.core.magic_arguments' from '/usr/local/lib/python3.7/dist-packages/IPython/core/magic_arguments.py'>, 'IPython.core.error': <module 'IPython.core.error' from '/usr/local/lib/python3.7/dist-packages/IPython/core/error.py'>, 'IPython.utils.text': <module 'IPython.utils.text' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/text.py'>, 'pathlib': <module 'pathlib' from '/usr/lib/python3.7/pathlib.py'>, 'ntpath': <module 'ntpath' from '/usr/lib/python3.7/ntpath.py'>, 'IPython.core.magic': <module 'IPython.core.magic' from '/usr/local/lib/python3.7/dist-packages/IPython/core/magic.py'>, 'getopt': <module 'getopt' from '/usr/lib/python3.7/getopt.py'>, 'IPython.core.oinspect': <module 'IPython.core.oinspect' from '/usr/local/lib/python3.7/dist-packages/IPython/core/oinspect.py'>, 'IPython.core.page': <module 'IPython.core.page' from '/usr/local/lib/python3.7/dist-packages/IPython/core/page.py'>, 'IPython.core.display': <module 'IPython.core.display' from '/usr/local/lib/python3.7/dist-packages/IPython/core/display.py'>, 'binascii': <module 'binascii' (built-in)>, 'mimetypes': <module 'mimetypes' from '/usr/lib/python3.7/mimetypes.py'>, 'IPython.lib': <module 'IPython.lib' from '/usr/local/lib/python3.7/dist-packages/IPython/lib/__init__.py'>, 'IPython.lib.security': <module 'IPython.lib.security' from '/usr/local/lib/python3.7/dist-packages/IPython/lib/security.py'>, 'getpass': <module 'getpass' from '/usr/lib/python3.7/getpass.py'>, 'IPython.lib.pretty': <module 'IPython.lib.pretty' from '/usr/local/lib/python3.7/dist-packages/IPython/lib/pretty.py'>, 'datetime': <module 'datetime' from '/usr/lib/python3.7/datetime.py'>, '_datetime': <module '_datetime' (built-in)>, 'IPython.utils.openpy': <module 'IPython.utils.openpy' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/openpy.py'>, 'IPython.utils.dir2': <module 'IPython.utils.dir2' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/dir2.py'>, 'IPython.utils.wildcard': <module 'IPython.utils.wildcard' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/wildcard.py'>, 'pygments.lexers': <module 'pygments.lexers' from '/usr/local/lib/python3.7/dist-packages/pygments/lexers/__init__.py'>, 'pygments.lexers._mapping': <module 'pygments.lexers._mapping' from '/usr/local/lib/python3.7/dist-packages/pygments/lexers/_mapping.py'>, 'pygments.modeline': <module 'pygments.modeline' from '/usr/local/lib/python3.7/dist-packages/pygments/modeline.py'>, 'pygments.plugin': <module 'pygments.plugin' from '/usr/local/lib/python3.7/dist-packages/pygments/plugin.py'>, 'pygments.util': <module 'pygments.util' from '/usr/local/lib/python3.7/dist-packages/pygments/util.py'>, 'pygments.lexers.python': <module 'pygments.lexers.python' from '/usr/local/lib/python3.7/dist-packages/pygments/lexers/python.py'>, 'pygments.lexer': <module 'pygments.lexer' from '/usr/local/lib/python3.7/dist-packages/pygments/lexer.py'>, 'pygments.filter': <module 'pygments.filter' from '/usr/local/lib/python3.7/dist-packages/pygments/filter.py'>, 'pygments.filters': <module 'pygments.filters' from '/usr/local/lib/python3.7/dist-packages/pygments/filters/__init__.py'>, 'pygments.token': <module 'pygments.token' from '/usr/local/lib/python3.7/dist-packages/pygments/token.py'>, 'pygments.regexopt': <module 'pygments.regexopt' from '/usr/local/lib/python3.7/dist-packages/pygments/regexopt.py'>, 'pygments.unistring': <module 'pygments.unistring' from '/usr/local/lib/python3.7/dist-packages/pygments/unistring.py'>, 'pygments.formatters': <module 'pygments.formatters' from '/usr/local/lib/python3.7/dist-packages/pygments/formatters/__init__.py'>, 'pygments.formatters._mapping': <module 'pygments.formatters._mapping' from '/usr/local/lib/python3.7/dist-packages/pygments/formatters/_mapping.py'>, 'pygments.formatters.html': <module 'pygments.formatters.html' from '/usr/local/lib/python3.7/dist-packages/pygments/formatters/html.py'>, 'pygments.formatter': <module 'pygments.formatter' from '/usr/local/lib/python3.7/dist-packages/pygments/formatter.py'>, 'pygments.styles': <module 'pygments.styles' from '/usr/local/lib/python3.7/dist-packages/pygments/styles/__init__.py'>, 'IPython.core.inputtransformer2': <module 'IPython.core.inputtransformer2' from '/usr/local/lib/python3.7/dist-packages/IPython/core/inputtransformer2.py'>, 'typing': <module 'typing' from '/usr/lib/python3.7/typing.py'>, 'typing.io': <class 'typing.io'>, 'typing.re': <class 'typing.re'>, 'decorator': <module 'decorator' from '/usr/local/lib/python3.7/dist-packages/decorator.py'>, 'IPython.core.interactiveshell': <module 'IPython.core.interactiveshell' from '/usr/local/lib/python3.7/dist-packages/IPython/core/interactiveshell.py'>, 'asyncio': <module 'asyncio' from '/usr/lib/python3.7/asyncio/__init__.py'>, 'asyncio.base_events': <module 'asyncio.base_events' from '/usr/lib/python3.7/asyncio/base_events.py'>, 'concurrent': <module 'concurrent' from '/usr/lib/python3.7/concurrent/__init__.py'>, 'concurrent.futures': <module 'concurrent.futures' from '/usr/lib/python3.7/concurrent/futures/__init__.py'>, 'concurrent.futures._base': <module 'concurrent.futures._base' from '/usr/lib/python3.7/concurrent/futures/_base.py'>, 'socket': <module 'socket' from '/usr/lib/python3.7/socket.py'>, '_socket': <module '_socket' (built-in)>, 'ssl': <module 'ssl' from '/usr/lib/python3.7/ssl.py'>, '_ssl': <module '_ssl' from '/usr/lib/python3.7/lib-dynload/_ssl.cpython-37m-x86_64-linux-gnu.so'>, 'base64': <module 'base64' from '/usr/lib/python3.7/base64.py'>, 'asyncio.constants': <module 'asyncio.constants' from '/usr/lib/python3.7/asyncio/constants.py'>, 'asyncio.coroutines': <module 'asyncio.coroutines' from '/usr/lib/python3.7/asyncio/coroutines.py'>, 'asyncio.base_futures': <module 'asyncio.base_futures' from '/usr/lib/python3.7/asyncio/base_futures.py'>, 'asyncio.format_helpers': <module 'asyncio.format_helpers' from '/usr/lib/python3.7/asyncio/format_helpers.py'>, 'asyncio.log': <module 'asyncio.log' from '/usr/lib/python3.7/asyncio/log.py'>, 'asyncio.events': <module 'asyncio.events' from '/usr/lib/python3.7/asyncio/events.py'>, 'contextvars': <module 'contextvars' from '/usr/lib/python3.7/contextvars.py'>, '_contextvars': <module '_contextvars' from '/usr/lib/python3.7/lib-dynload/_contextvars.cpython-37m-x86_64-linux-gnu.so'>, 'asyncio.base_tasks': <module 'asyncio.base_tasks' from '/usr/lib/python3.7/asyncio/base_tasks.py'>, '_asyncio': <module '_asyncio' from '/usr/lib/python3.7/lib-dynload/_asyncio.cpython-37m-x86_64-linux-gnu.so'>, 'asyncio.futures': <module 'asyncio.futures' from '/usr/lib/python3.7/asyncio/futures.py'>, 'asyncio.protocols': <module 'asyncio.protocols' from '/usr/lib/python3.7/asyncio/protocols.py'>, 'asyncio.sslproto': <module 'asyncio.sslproto' from '/usr/lib/python3.7/asyncio/sslproto.py'>, 'asyncio.transports': <module 'asyncio.transports' from '/usr/lib/python3.7/asyncio/transports.py'>, 'asyncio.tasks': <module 'asyncio.tasks' from '/usr/lib/python3.7/asyncio/tasks.py'>, 'asyncio.locks': <module 'asyncio.locks' from '/usr/lib/python3.7/asyncio/locks.py'>, 'asyncio.runners': <module 'asyncio.runners' from '/usr/lib/python3.7/asyncio/runners.py'>, 'asyncio.queues': <module 'asyncio.queues' from '/usr/lib/python3.7/asyncio/queues.py'>, 'asyncio.streams': <module 'asyncio.streams' from '/usr/lib/python3.7/asyncio/streams.py'>, 'asyncio.subprocess': <module 'asyncio.subprocess' from '/usr/lib/python3.7/asyncio/subprocess.py'>, 'asyncio.unix_events': <module 'asyncio.unix_events' from '/usr/lib/python3.7/asyncio/unix_events.py'>, 'asyncio.base_subprocess': <module 'asyncio.base_subprocess' from '/usr/lib/python3.7/asyncio/base_subprocess.py'>, 'asyncio.selector_events': <module 'asyncio.selector_events' from '/usr/lib/python3.7/asyncio/selector_events.py'>, 'pickleshare': <module 'pickleshare' from '/usr/local/lib/python3.7/dist-packages/pickleshare.py'>, 'pickle': <module 'pickle' from '/usr/lib/python3.7/pickle.py'>, '_compat_pickle': <module '_compat_pickle' from '/usr/lib/python3.7/_compat_pickle.py'>, '_pickle': <module '_pickle' (built-in)>, 'IPython.core.prefilter': <module 'IPython.core.prefilter' from '/usr/local/lib/python3.7/dist-packages/IPython/core/prefilter.py'>, 'IPython.core.autocall': <module 'IPython.core.autocall' from '/usr/local/lib/python3.7/dist-packages/IPython/core/autocall.py'>, 'IPython.core.macro': <module 'IPython.core.macro' from '/usr/local/lib/python3.7/dist-packages/IPython/core/macro.py'>, 'IPython.core.splitinput': <module 'IPython.core.splitinput' from '/usr/local/lib/python3.7/dist-packages/IPython/core/splitinput.py'>, 'IPython.core.alias': <module 'IPython.core.alias' from '/usr/local/lib/python3.7/dist-packages/IPython/core/alias.py'>, 'IPython.core.builtin_trap': <module 'IPython.core.builtin_trap' from '/usr/local/lib/python3.7/dist-packages/IPython/core/builtin_trap.py'>, 'IPython.core.events': <module 'IPython.core.events' from '/usr/local/lib/python3.7/dist-packages/IPython/core/events.py'>, 'backcall': <module 'backcall' from '/usr/local/lib/python3.7/dist-packages/backcall/__init__.py'>, 'backcall.backcall': <module 'backcall.backcall' from '/usr/local/lib/python3.7/dist-packages/backcall/backcall.py'>, 'IPython.core.displayhook': <module 'IPython.core.displayhook' from '/usr/local/lib/python3.7/dist-packages/IPython/core/displayhook.py'>, 'IPython.core.displaypub': <module 'IPython.core.displaypub' from '/usr/local/lib/python3.7/dist-packages/IPython/core/displaypub.py'>, 'IPython.core.extensions': <module 'IPython.core.extensions' from '/usr/local/lib/python3.7/dist-packages/IPython/core/extensions.py'>, 'IPython.core.formatters': <module 'IPython.core.formatters' from '/usr/local/lib/python3.7/dist-packages/IPython/core/formatters.py'>, 'IPython.utils.sentinel': <module 'IPython.utils.sentinel' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/sentinel.py'>, 'IPython.core.history': <module 'IPython.core.history' from '/usr/local/lib/python3.7/dist-packages/IPython/core/history.py'>, 'sqlite3': <module 'sqlite3' from '/usr/lib/python3.7/sqlite3/__init__.py'>, 'sqlite3.dbapi2': <module 'sqlite3.dbapi2' from '/usr/lib/python3.7/sqlite3/dbapi2.py'>, '_sqlite3': <module '_sqlite3' from '/usr/lib/python3.7/lib-dynload/_sqlite3.cpython-37m-x86_64-linux-gnu.so'>, 'IPython.core.logger': <module 'IPython.core.logger' from '/usr/local/lib/python3.7/dist-packages/IPython/core/logger.py'>, 'IPython.core.payload': <module 'IPython.core.payload' from '/usr/local/lib/python3.7/dist-packages/IPython/core/payload.py'>, 'IPython.core.usage': <module 'IPython.core.usage' from '/usr/local/lib/python3.7/dist-packages/IPython/core/usage.py'>, 'IPython.display': <module 'IPython.display' from '/usr/local/lib/python3.7/dist-packages/IPython/display.py'>, 'IPython.lib.display': <module 'IPython.lib.display' from '/usr/local/lib/python3.7/dist-packages/IPython/lib/display.py'>, 'html': <module 'html' from '/usr/lib/python3.7/html/__init__.py'>, 'html.entities': <module 'html.entities' from '/usr/lib/python3.7/html/entities.py'>, 'IPython.utils.io': <module 'IPython.utils.io' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/io.py'>, 'IPython.utils.capture': <module 'IPython.utils.capture' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/capture.py'>, 'IPython.utils.strdispatch': <module 'IPython.utils.strdispatch' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/strdispatch.py'>, 'IPython.core.hooks': <module 'IPython.core.hooks' from '/usr/local/lib/python3.7/dist-packages/IPython/core/hooks.py'>, 'IPython.utils.syspathcontext': <module 'IPython.utils.syspathcontext' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/syspathcontext.py'>, 'IPython.utils.tempdir': <module 'IPython.utils.tempdir' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/tempdir.py'>, 'IPython.utils.contexts': <module 'IPython.utils.contexts' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/contexts.py'>, 'IPython.core.async_helpers': <module 'IPython.core.async_helpers' from '/usr/local/lib/python3.7/dist-packages/IPython/core/async_helpers.py'>, 'IPython.terminal.interactiveshell': <module 'IPython.terminal.interactiveshell' from '/usr/local/lib/python3.7/dist-packages/IPython/terminal/interactiveshell.py'>, 'prompt_toolkit': <module 'prompt_toolkit' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/__init__.py'>, 'prompt_toolkit.application': <module 'prompt_toolkit.application' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/application/__init__.py'>, 'prompt_toolkit.application.application': <module 'prompt_toolkit.application.application' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/application/application.py'>, 'six': <module 'six' from '/usr/local/lib/python3.7/dist-packages/six.py'>, 'prompt_toolkit.buffer': <module 'prompt_toolkit.buffer' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/buffer.py'>, 'six.moves': <module 'six.moves' (<six._SixMetaPathImporter object at 0x7f53c05a0210>)>, 'prompt_toolkit.application.current': <module 'prompt_toolkit.application.current' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/application/current.py'>, 'prompt_toolkit.eventloop': <module 'prompt_toolkit.eventloop' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/eventloop/__init__.py'>, 'prompt_toolkit.eventloop.async_generator': <module 'prompt_toolkit.eventloop.async_generator' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/eventloop/async_generator.py'>, 'queue': <module 'queue' from '/usr/lib/python3.7/queue.py'>, '_queue': <module '_queue' from '/usr/lib/python3.7/lib-dynload/_queue.cpython-37m-x86_64-linux-gnu.so'>, 'six.moves.queue': <module 'queue' from '/usr/lib/python3.7/queue.py'>, 'prompt_toolkit.eventloop.coroutine': <module 'prompt_toolkit.eventloop.coroutine' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/eventloop/coroutine.py'>, 'prompt_toolkit.eventloop.defaults': <module 'prompt_toolkit.eventloop.defaults' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/eventloop/defaults.py'>, 'prompt_toolkit.utils': <module 'prompt_toolkit.utils' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/utils.py'>, 'wcwidth': <module 'wcwidth' from '/usr/local/lib/python3.7/dist-packages/wcwidth/__init__.py'>, 'wcwidth.wcwidth': <module 'wcwidth.wcwidth' from '/usr/local/lib/python3.7/dist-packages/wcwidth/wcwidth.py'>, 'wcwidth.table_wide': <module 'wcwidth.table_wide' from '/usr/local/lib/python3.7/dist-packages/wcwidth/table_wide.py'>, 'wcwidth.table_zero': <module 'wcwidth.table_zero' from '/usr/local/lib/python3.7/dist-packages/wcwidth/table_zero.py'>, 'wcwidth.unicode_versions': <module 'wcwidth.unicode_versions' from '/usr/local/lib/python3.7/dist-packages/wcwidth/unicode_versions.py'>, 'prompt_toolkit.cache': <module 'prompt_toolkit.cache' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/cache.py'>, 'prompt_toolkit.eventloop.base': <module 'prompt_toolkit.eventloop.base' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/eventloop/base.py'>, 'prompt_toolkit.log': <module 'prompt_toolkit.log' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/log.py'>, 'prompt_toolkit.eventloop.future': <module 'prompt_toolkit.eventloop.future' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/eventloop/future.py'>, 'prompt_toolkit.eventloop.context': <module 'prompt_toolkit.eventloop.context' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/eventloop/context.py'>, 'prompt_toolkit.eventloop.event': <module 'prompt_toolkit.eventloop.event' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/eventloop/event.py'>, 'prompt_toolkit.application.run_in_terminal': <module 'prompt_toolkit.application.run_in_terminal' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/application/run_in_terminal.py'>, 'prompt_toolkit.auto_suggest': <module 'prompt_toolkit.auto_suggest' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/auto_suggest.py'>, 'prompt_toolkit.filters': <module 'prompt_toolkit.filters' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/filters/__init__.py'>, 'prompt_toolkit.filters.app': <module 'prompt_toolkit.filters.app' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/filters/app.py'>, 'prompt_toolkit.enums': <module 'prompt_toolkit.enums' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/enums.py'>, 'prompt_toolkit.filters.base': <module 'prompt_toolkit.filters.base' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/filters/base.py'>, 'prompt_toolkit.filters.cli': <module 'prompt_toolkit.filters.cli' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/filters/cli.py'>, 'prompt_toolkit.filters.utils': <module 'prompt_toolkit.filters.utils' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/filters/utils.py'>, 'prompt_toolkit.clipboard': <module 'prompt_toolkit.clipboard' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/clipboard/__init__.py'>, 'prompt_toolkit.clipboard.base': <module 'prompt_toolkit.clipboard.base' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/clipboard/base.py'>, 'prompt_toolkit.selection': <module 'prompt_toolkit.selection' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/selection.py'>, 'prompt_toolkit.clipboard.in_memory': <module 'prompt_toolkit.clipboard.in_memory' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/clipboard/in_memory.py'>, 'prompt_toolkit.completion': <module 'prompt_toolkit.completion' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/completion/__init__.py'>, 'prompt_toolkit.completion.base': <module 'prompt_toolkit.completion.base' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/completion/base.py'>, 'prompt_toolkit.completion.filesystem': <module 'prompt_toolkit.completion.filesystem' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/completion/filesystem.py'>, 'prompt_toolkit.completion.fuzzy_completer': <module 'prompt_toolkit.completion.fuzzy_completer' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/completion/fuzzy_completer.py'>, 'prompt_toolkit.document': <module 'prompt_toolkit.document' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/document.py'>, 'prompt_toolkit.completion.word_completer': <module 'prompt_toolkit.completion.word_completer' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/completion/word_completer.py'>, 'prompt_toolkit.history': <module 'prompt_toolkit.history' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/history.py'>, 'prompt_toolkit.search': <module 'prompt_toolkit.search' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/search.py'>, 'prompt_toolkit.key_binding': <module 'prompt_toolkit.key_binding' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/key_binding/__init__.py'>, 'prompt_toolkit.key_binding.key_bindings': <module 'prompt_toolkit.key_binding.key_bindings' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/key_binding/key_bindings.py'>, 'prompt_toolkit.keys': <module 'prompt_toolkit.keys' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/keys.py'>, 'prompt_toolkit.key_binding.vi_state': <module 'prompt_toolkit.key_binding.vi_state' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/key_binding/vi_state.py'>, 'prompt_toolkit.validation': <module 'prompt_toolkit.validation' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/validation.py'>, 'prompt_toolkit.input': <module 'prompt_toolkit.input' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/input/__init__.py'>, 'prompt_toolkit.input.base': <module 'prompt_toolkit.input.base' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/input/base.py'>, 'prompt_toolkit.input.defaults': <module 'prompt_toolkit.input.defaults' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/input/defaults.py'>, 'prompt_toolkit.input.typeahead': <module 'prompt_toolkit.input.typeahead' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/input/typeahead.py'>, 'prompt_toolkit.key_binding.bindings': <module 'prompt_toolkit.key_binding.bindings' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/key_binding/bindings/__init__.py'>, 'prompt_toolkit.key_binding.bindings.page_navigation': <module 'prompt_toolkit.key_binding.bindings.page_navigation' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/key_binding/bindings/page_navigation.py'>, 'prompt_toolkit.key_binding.bindings.scroll': <module 'prompt_toolkit.key_binding.bindings.scroll' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/key_binding/bindings/scroll.py'>, 'prompt_toolkit.key_binding.defaults': <module 'prompt_toolkit.key_binding.defaults' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/key_binding/defaults.py'>, 'prompt_toolkit.key_binding.bindings.basic': <module 'prompt_toolkit.key_binding.bindings.basic' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/key_binding/bindings/basic.py'>, 'prompt_toolkit.key_binding.key_processor': <module 'prompt_toolkit.key_binding.key_processor' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/key_binding/key_processor.py'>, 'prompt_toolkit.key_binding.bindings.named_commands': <module 'prompt_toolkit.key_binding.bindings.named_commands' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/key_binding/bindings/named_commands.py'>, 'prompt_toolkit.key_binding.bindings.completion': <module 'prompt_toolkit.key_binding.bindings.completion' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/key_binding/bindings/completion.py'>, 'prompt_toolkit.key_binding.bindings.cpr': <module 'prompt_toolkit.key_binding.bindings.cpr' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/key_binding/bindings/cpr.py'>, 'prompt_toolkit.key_binding.bindings.emacs': <module 'prompt_toolkit.key_binding.bindings.emacs' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/key_binding/bindings/emacs.py'>, 'prompt_toolkit.key_binding.bindings.mouse': <module 'prompt_toolkit.key_binding.bindings.mouse' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/key_binding/bindings/mouse.py'>, 'prompt_toolkit.layout': <module 'prompt_toolkit.layout' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/layout/__init__.py'>, 'prompt_toolkit.layout.containers': <module 'prompt_toolkit.layout.containers' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/layout/containers.py'>, 'prompt_toolkit.formatted_text': <module 'prompt_toolkit.formatted_text' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/formatted_text/__init__.py'>, 'prompt_toolkit.formatted_text.ansi': <module 'prompt_toolkit.formatted_text.ansi' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/formatted_text/ansi.py'>, 'prompt_toolkit.output': <module 'prompt_toolkit.output' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/output/__init__.py'>, 'prompt_toolkit.output.base': <module 'prompt_toolkit.output.base' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/output/base.py'>, 'prompt_toolkit.layout.screen': <module 'prompt_toolkit.layout.screen' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/layout/screen.py'>, 'prompt_toolkit.output.color_depth': <module 'prompt_toolkit.output.color_depth' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/output/color_depth.py'>, 'prompt_toolkit.output.defaults': <module 'prompt_toolkit.output.defaults' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/output/defaults.py'>, 'prompt_toolkit.output.vt100': <module 'prompt_toolkit.output.vt100' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/output/vt100.py'>, 'array': <module 'array' (built-in)>, 'prompt_toolkit.styles': <module 'prompt_toolkit.styles' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/styles/__init__.py'>, 'prompt_toolkit.styles.base': <module 'prompt_toolkit.styles.base' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/styles/base.py'>, 'prompt_toolkit.styles.defaults': <module 'prompt_toolkit.styles.defaults' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/styles/defaults.py'>, 'prompt_toolkit.styles.named_colors': <module 'prompt_toolkit.styles.named_colors' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/styles/named_colors.py'>, 'prompt_toolkit.styles.style': <module 'prompt_toolkit.styles.style' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/styles/style.py'>, 'prompt_toolkit.styles.pygments': <module 'prompt_toolkit.styles.pygments' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/styles/pygments.py'>, 'prompt_toolkit.styles.style_transformation': <module 'prompt_toolkit.styles.style_transformation' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/styles/style_transformation.py'>, 'colorsys': <module 'colorsys' from '/usr/lib/python3.7/colorsys.py'>, 'prompt_toolkit.formatted_text.base': <module 'prompt_toolkit.formatted_text.base' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/formatted_text/base.py'>, 'prompt_toolkit.formatted_text.html': <module 'prompt_toolkit.formatted_text.html' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/formatted_text/html.py'>, 'xml': <module 'xml' from '/usr/lib/python3.7/xml/__init__.py'>, 'xml.dom': <module 'xml.dom' from '/usr/lib/python3.7/xml/dom/__init__.py'>, 'xml.dom.domreg': <module 'xml.dom.domreg' from '/usr/lib/python3.7/xml/dom/domreg.py'>, 'xml.dom.minidom': <module 'xml.dom.minidom' from '/usr/lib/python3.7/xml/dom/minidom.py'>, 'xml.dom.minicompat': <module 'xml.dom.minicompat' from '/usr/lib/python3.7/xml/dom/minicompat.py'>, 'xml.dom.xmlbuilder': <module 'xml.dom.xmlbuilder' from '/usr/lib/python3.7/xml/dom/xmlbuilder.py'>, 'xml.dom.NodeFilter': <module 'xml.dom.NodeFilter' from '/usr/lib/python3.7/xml/dom/NodeFilter.py'>, 'prompt_toolkit.formatted_text.pygments': <module 'prompt_toolkit.formatted_text.pygments' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/formatted_text/pygments.py'>, 'prompt_toolkit.formatted_text.utils': <module 'prompt_toolkit.formatted_text.utils' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/formatted_text/utils.py'>, 'prompt_toolkit.mouse_events': <module 'prompt_toolkit.mouse_events' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/mouse_events.py'>, 'prompt_toolkit.layout.controls': <module 'prompt_toolkit.layout.controls' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/layout/controls.py'>, 'prompt_toolkit.lexers': <module 'prompt_toolkit.lexers' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/lexers/__init__.py'>, 'prompt_toolkit.lexers.base': <module 'prompt_toolkit.lexers.base' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/lexers/base.py'>, 'prompt_toolkit.lexers.pygments': <module 'prompt_toolkit.lexers.pygments' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/lexers/pygments.py'>, 'prompt_toolkit.layout.processors': <module 'prompt_toolkit.layout.processors' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/layout/processors.py'>, 'prompt_toolkit.layout.utils': <module 'prompt_toolkit.layout.utils' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/layout/utils.py'>, 'prompt_toolkit.layout.dimension': <module 'prompt_toolkit.layout.dimension' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/layout/dimension.py'>, 'prompt_toolkit.layout.margins': <module 'prompt_toolkit.layout.margins' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/layout/margins.py'>, 'prompt_toolkit.layout.layout': <module 'prompt_toolkit.layout.layout' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/layout/layout.py'>, 'prompt_toolkit.layout.menus': <module 'prompt_toolkit.layout.menus' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/layout/menus.py'>, 'prompt_toolkit.renderer': <module 'prompt_toolkit.renderer' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/renderer.py'>, 'prompt_toolkit.layout.mouse_handlers': <module 'prompt_toolkit.layout.mouse_handlers' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/layout/mouse_handlers.py'>, 'prompt_toolkit.key_binding.bindings.vi': <module 'prompt_toolkit.key_binding.bindings.vi' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/key_binding/bindings/vi.py'>, 'prompt_toolkit.input.vt100_parser': <module 'prompt_toolkit.input.vt100_parser' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/input/vt100_parser.py'>, 'prompt_toolkit.input.ansi_escape_sequences': <module 'prompt_toolkit.input.ansi_escape_sequences' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/input/ansi_escape_sequences.py'>, 'prompt_toolkit.key_binding.digraphs': <module 'prompt_toolkit.key_binding.digraphs' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/key_binding/digraphs.py'>, 'prompt_toolkit.key_binding.emacs_state': <module 'prompt_toolkit.key_binding.emacs_state' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/key_binding/emacs_state.py'>, 'prompt_toolkit.layout.dummy': <module 'prompt_toolkit.layout.dummy' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/layout/dummy.py'>, 'prompt_toolkit.application.dummy': <module 'prompt_toolkit.application.dummy' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/application/dummy.py'>, 'prompt_toolkit.shortcuts': <module 'prompt_toolkit.shortcuts' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/shortcuts/__init__.py'>, 'prompt_toolkit.shortcuts.dialogs': <module 'prompt_toolkit.shortcuts.dialogs' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/shortcuts/dialogs.py'>, 'prompt_toolkit.key_binding.bindings.focus': <module 'prompt_toolkit.key_binding.bindings.focus' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/key_binding/bindings/focus.py'>, 'prompt_toolkit.widgets': <module 'prompt_toolkit.widgets' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/widgets/__init__.py'>, 'prompt_toolkit.widgets.base': <module 'prompt_toolkit.widgets.base' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/widgets/base.py'>, 'prompt_toolkit.widgets.toolbars': <module 'prompt_toolkit.widgets.toolbars' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/widgets/toolbars.py'>, 'prompt_toolkit.widgets.dialogs': <module 'prompt_toolkit.widgets.dialogs' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/widgets/dialogs.py'>, 'prompt_toolkit.widgets.menus': <module 'prompt_toolkit.widgets.menus' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/widgets/menus.py'>, 'prompt_toolkit.shortcuts.progress_bar': <module 'prompt_toolkit.shortcuts.progress_bar' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/shortcuts/progress_bar/__init__.py'>, 'prompt_toolkit.shortcuts.progress_bar.base': <module 'prompt_toolkit.shortcuts.progress_bar.base' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/shortcuts/progress_bar/base.py'>, 'prompt_toolkit.shortcuts.progress_bar.formatters': <module 'prompt_toolkit.shortcuts.progress_bar.formatters' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/shortcuts/progress_bar/formatters.py'>, 'prompt_toolkit.shortcuts.prompt': <module 'prompt_toolkit.shortcuts.prompt' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/shortcuts/prompt.py'>, 'prompt_toolkit.key_binding.bindings.auto_suggest': <module 'prompt_toolkit.key_binding.bindings.auto_suggest' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/key_binding/bindings/auto_suggest.py'>, 'prompt_toolkit.key_binding.bindings.open_in_editor': <module 'prompt_toolkit.key_binding.bindings.open_in_editor' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/key_binding/bindings/open_in_editor.py'>, 'prompt_toolkit.shortcuts.utils': <module 'prompt_toolkit.shortcuts.utils' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/shortcuts/utils.py'>, 'prompt_toolkit.patch_stdout': <module 'prompt_toolkit.patch_stdout' from '/usr/local/lib/python3.7/dist-packages/prompt_toolkit/patch_stdout.py'>, 'pygments.style': <module 'pygments.style' from '/usr/local/lib/python3.7/dist-packages/pygments/style.py'>, 'IPython.terminal.debugger': <module 'IPython.terminal.debugger' from '/usr/local/lib/python3.7/dist-packages/IPython/terminal/debugger.py'>, 'IPython.core.completer': <module 'IPython.core.completer' from '/usr/local/lib/python3.7/dist-packages/IPython/core/completer.py'>, 'unicodedata': <module 'unicodedata' (built-in)>, 'IPython.core.latex_symbols': <module 'IPython.core.latex_symbols' from '/usr/local/lib/python3.7/dist-packages/IPython/core/latex_symbols.py'>, 'IPython.utils.generics': <module 'IPython.utils.generics' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/generics.py'>, 'IPython.terminal.ptutils': <module 'IPython.terminal.ptutils' from '/usr/local/lib/python3.7/dist-packages/IPython/terminal/ptutils.py'>, 'IPython.terminal.shortcuts': <module 'IPython.terminal.shortcuts' from '/usr/local/lib/python3.7/dist-packages/IPython/terminal/shortcuts.py'>, 'IPython.terminal.magics': <module 'IPython.terminal.magics' from '/usr/local/lib/python3.7/dist-packages/IPython/terminal/magics.py'>, 'IPython.lib.clipboard': <module 'IPython.lib.clipboard' from '/usr/local/lib/python3.7/dist-packages/IPython/lib/clipboard.py'>, 'IPython.terminal.pt_inputhooks': <module 'IPython.terminal.pt_inputhooks' from '/usr/local/lib/python3.7/dist-packages/IPython/terminal/pt_inputhooks/__init__.py'>, 'IPython.terminal.prompts': <module 'IPython.terminal.prompts' from '/usr/local/lib/python3.7/dist-packages/IPython/terminal/prompts.py'>, 'IPython.terminal.ipapp': <module 'IPython.terminal.ipapp' from '/usr/local/lib/python3.7/dist-packages/IPython/terminal/ipapp.py'>, 'IPython.core.magics': <module 'IPython.core.magics' from '/usr/local/lib/python3.7/dist-packages/IPython/core/magics/__init__.py'>, 'IPython.core.magics.auto': <module 'IPython.core.magics.auto' from '/usr/local/lib/python3.7/dist-packages/IPython/core/magics/auto.py'>, 'IPython.core.magics.basic': <module 'IPython.core.magics.basic' from '/usr/local/lib/python3.7/dist-packages/IPython/core/magics/basic.py'>, 'IPython.core.magics.code': <module 'IPython.core.magics.code' from '/usr/local/lib/python3.7/dist-packages/IPython/core/magics/code.py'>, 'urllib.request': <module 'urllib.request' from '/usr/lib/python3.7/urllib/request.py'>, 'email': <module 'email' from '/usr/lib/python3.7/email/__init__.py'>, 'http': <module 'http' from '/usr/lib/python3.7/http/__init__.py'>, 'http.client': <module 'http.client' from '/usr/lib/python3.7/http/client.py'>, 'email.parser': <module 'email.parser' from '/usr/lib/python3.7/email/parser.py'>, 'email.feedparser': <module 'email.feedparser' from '/usr/lib/python3.7/email/feedparser.py'>, 'email.errors': <module 'email.errors' from '/usr/lib/python3.7/email/errors.py'>, 'email._policybase': <module 'email._policybase' from '/usr/lib/python3.7/email/_policybase.py'>, 'email.header': <module 'email.header' from '/usr/lib/python3.7/email/header.py'>, 'email.quoprimime': <module 'email.quoprimime' from '/usr/lib/python3.7/email/quoprimime.py'>, 'email.base64mime': <module 'email.base64mime' from '/usr/lib/python3.7/email/base64mime.py'>, 'email.charset': <module 'email.charset' from '/usr/lib/python3.7/email/charset.py'>, 'email.encoders': <module 'email.encoders' from '/usr/lib/python3.7/email/encoders.py'>, 'quopri': <module 'quopri' from '/usr/lib/python3.7/quopri.py'>, 'email.utils': <module 'email.utils' from '/usr/lib/python3.7/email/utils.py'>, 'email._parseaddr': <module 'email._parseaddr' from '/usr/lib/python3.7/email/_parseaddr.py'>, 'calendar': <module 'calendar' from '/usr/lib/python3.7/calendar.py'>, 'email.message': <module 'email.message' from '/usr/lib/python3.7/email/message.py'>, 'uu': <module 'uu' from '/usr/lib/python3.7/uu.py'>, 'email._encoded_words': <module 'email._encoded_words' from '/usr/lib/python3.7/email/_encoded_words.py'>, 'email.iterators': <module 'email.iterators' from '/usr/lib/python3.7/email/iterators.py'>, 'urllib.error': <module 'urllib.error' from '/usr/lib/python3.7/urllib/error.py'>, 'urllib.response': <module 'urllib.response' from '/usr/lib/python3.7/urllib/response.py'>, 'IPython.core.magics.config': <module 'IPython.core.magics.config' from '/usr/local/lib/python3.7/dist-packages/IPython/core/magics/config.py'>, 'IPython.core.magics.display': <module 'IPython.core.magics.display' from '/usr/local/lib/python3.7/dist-packages/IPython/core/magics/display.py'>, 'IPython.core.magics.execution': <module 'IPython.core.magics.execution' from '/usr/local/lib/python3.7/dist-packages/IPython/core/magics/execution.py'>, 'gc': <module 'gc' (built-in)>, 'timeit': <module 'timeit' from '/usr/lib/python3.7/timeit.py'>, 'cProfile': <module 'cProfile' from '/usr/lib/python3.7/cProfile.py'>, '_lsprof': <module '_lsprof' from '/usr/lib/python3.7/lib-dynload/_lsprof.cpython-37m-x86_64-linux-gnu.so'>, 'profile': <module 'profile' from '/usr/lib/python3.7/profile.py'>, 'pstats': <module 'pstats' from '/usr/lib/python3.7/pstats.py'>, 'IPython.utils.module_paths': <module 'IPython.utils.module_paths' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/module_paths.py'>, 'IPython.utils.timing': <module 'IPython.utils.timing' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/timing.py'>, 'IPython.core.magics.extension': <module 'IPython.core.magics.extension' from '/usr/local/lib/python3.7/dist-packages/IPython/core/magics/extension.py'>, 'IPython.core.magics.history': <module 'IPython.core.magics.history' from '/usr/local/lib/python3.7/dist-packages/IPython/core/magics/history.py'>, 'IPython.core.magics.logging': <module 'IPython.core.magics.logging' from '/usr/local/lib/python3.7/dist-packages/IPython/core/magics/logging.py'>, 'IPython.core.magics.namespace': <module 'IPython.core.magics.namespace' from '/usr/local/lib/python3.7/dist-packages/IPython/core/magics/namespace.py'>, 'IPython.core.magics.osm': <module 'IPython.core.magics.osm' from '/usr/local/lib/python3.7/dist-packages/IPython/core/magics/osm.py'>, 'IPython.core.magics.packaging': <module 'IPython.core.magics.packaging' from '/usr/local/lib/python3.7/dist-packages/IPython/core/magics/packaging.py'>, 'IPython.core.magics.pylab': <module 'IPython.core.magics.pylab' from '/usr/local/lib/python3.7/dist-packages/IPython/core/magics/pylab.py'>, 'IPython.core.pylabtools': <module 'IPython.core.pylabtools' from '/usr/local/lib/python3.7/dist-packages/IPython/core/pylabtools.py'>, 'IPython.core.magics.script': <module 'IPython.core.magics.script' from '/usr/local/lib/python3.7/dist-packages/IPython/core/magics/script.py'>, 'IPython.lib.backgroundjobs': <module 'IPython.lib.backgroundjobs' from '/usr/local/lib/python3.7/dist-packages/IPython/lib/backgroundjobs.py'>, 'IPython.core.shellapp': <module 'IPython.core.shellapp' from '/usr/local/lib/python3.7/dist-packages/IPython/core/shellapp.py'>, 'IPython.extensions': <module 'IPython.extensions' from '/usr/local/lib/python3.7/dist-packages/IPython/extensions/__init__.py'>, 'IPython.extensions.storemagic': <module 'IPython.extensions.storemagic' from '/usr/local/lib/python3.7/dist-packages/IPython/extensions/storemagic.py'>, 'IPython.utils.frame': <module 'IPython.utils.frame' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/frame.py'>, 'ipython_genutils': <module 'ipython_genutils' from '/usr/local/lib/python3.7/dist-packages/ipython_genutils/__init__.py'>, 'ipython_genutils._version': <module 'ipython_genutils._version' from '/usr/local/lib/python3.7/dist-packages/ipython_genutils/_version.py'>, 'ipython_genutils.path': <module 'ipython_genutils.path' from '/usr/local/lib/python3.7/dist-packages/ipython_genutils/path.py'>, 'ipython_genutils.py3compat': <module 'ipython_genutils.py3compat' from '/usr/local/lib/python3.7/dist-packages/ipython_genutils/py3compat.py'>, 'ipython_genutils.encoding': <module 'ipython_genutils.encoding' from '/usr/local/lib/python3.7/dist-packages/ipython_genutils/encoding.py'>, 'jupyter_client': <module 'jupyter_client' from '/usr/local/lib/python3.7/dist-packages/jupyter_client/__init__.py'>, 'jupyter_client._version': <module 'jupyter_client._version' from '/usr/local/lib/python3.7/dist-packages/jupyter_client/_version.py'>, 'jupyter_client.connect': <module 'jupyter_client.connect' from '/usr/local/lib/python3.7/dist-packages/jupyter_client/connect.py'>, 'zmq': <module 'zmq' from '/usr/local/lib/python3.7/dist-packages/zmq/__init__.py'>, 'ctypes': <module 'ctypes' from '/usr/lib/python3.7/ctypes/__init__.py'>, '_ctypes': <module '_ctypes' from '/usr/lib/python3.7/lib-dynload/_ctypes.cpython-37m-x86_64-linux-gnu.so'>, 'ctypes._endian': <module 'ctypes._endian' from '/usr/lib/python3.7/ctypes/_endian.py'>, 'zmq.backend': <module 'zmq.backend' from '/usr/local/lib/python3.7/dist-packages/zmq/backend/__init__.py'>, 'zmq.backend.select': <module 'zmq.backend.select' from '/usr/local/lib/python3.7/dist-packages/zmq/backend/select.py'>, 'zmq.backend.cython': <module 'zmq.backend.cython' from '/usr/local/lib/python3.7/dist-packages/zmq/backend/cython/__init__.py'>, 'zmq.backend.cython._device': <module 'zmq.backend.cython._device' from '/usr/local/lib/python3.7/dist-packages/zmq/backend/cython/_device.cpython-37m-x86_64-linux-gnu.so'>, '_cython_0_29_32': <module '_cython_0_29_32'>, 'cython_runtime': <module 'cython_runtime'>, 'zmq.backend.cython.context': <module 'zmq.backend.cython.context' from '/usr/local/lib/python3.7/dist-packages/zmq/backend/cython/context.cpython-37m-x86_64-linux-gnu.so'>, 'zmq.error': <module 'zmq.error' from '/usr/local/lib/python3.7/dist-packages/zmq/error.py'>, 'zmq.backend.cython.socket': <module 'zmq.backend.cython.socket' from '/usr/local/lib/python3.7/dist-packages/zmq/backend/cython/socket.cpython-37m-x86_64-linux-gnu.so'>, 'zmq.backend.cython.message': <module 'zmq.backend.cython.message' from '/usr/local/lib/python3.7/dist-packages/zmq/backend/cython/message.cpython-37m-x86_64-linux-gnu.so'>, 'zmq.constants': <module 'zmq.constants' from '/usr/local/lib/python3.7/dist-packages/zmq/constants.py'>, 'zmq.backend.cython._poll': <module 'zmq.backend.cython._poll' from '/usr/local/lib/python3.7/dist-packages/zmq/backend/cython/_poll.cpython-37m-x86_64-linux-gnu.so'>, 'zmq.backend.cython._proxy_steerable': <module 'zmq.backend.cython._proxy_steerable' from '/usr/local/lib/python3.7/dist-packages/zmq/backend/cython/_proxy_steerable.cpython-37m-x86_64-linux-gnu.so'>, 'zmq.backend.cython._version': <module 'zmq.backend.cython._version' from '/usr/local/lib/python3.7/dist-packages/zmq/backend/cython/_version.cpython-37m-x86_64-linux-gnu.so'>, 'zmq.backend.cython.error': <module 'zmq.backend.cython.error' from '/usr/local/lib/python3.7/dist-packages/zmq/backend/cython/error.cpython-37m-x86_64-linux-gnu.so'>, 'zmq.backend.cython.utils': <module 'zmq.backend.cython.utils' from '/usr/local/lib/python3.7/dist-packages/zmq/backend/cython/utils.cpython-37m-x86_64-linux-gnu.so'>, 'zmq.sugar': <module 'zmq.sugar' from '/usr/local/lib/python3.7/dist-packages/zmq/sugar/__init__.py'>, 'zmq.sugar.context': <module 'zmq.sugar.context' from '/usr/local/lib/python3.7/dist-packages/zmq/sugar/context.py'>, 'zmq.sugar.attrsettr': <module 'zmq.sugar.attrsettr' from '/usr/local/lib/python3.7/dist-packages/zmq/sugar/attrsettr.py'>, 'zmq.sugar.socket': <module 'zmq.sugar.socket' from '/usr/local/lib/python3.7/dist-packages/zmq/sugar/socket.py'>, 'zmq._typing': <module 'zmq._typing' from '/usr/local/lib/python3.7/dist-packages/zmq/_typing.py'>, 'typing_extensions': <module 'typing_extensions' from '/usr/local/lib/python3.7/dist-packages/typing_extensions.py'>, 'zmq.utils': <module 'zmq.utils' from '/usr/local/lib/python3.7/dist-packages/zmq/utils/__init__.py'>, 'zmq.utils.jsonapi': <module 'zmq.utils.jsonapi' from '/usr/local/lib/python3.7/dist-packages/zmq/utils/jsonapi.py'>, 'zmq.sugar.poll': <module 'zmq.sugar.poll' from '/usr/local/lib/python3.7/dist-packages/zmq/sugar/poll.py'>, 'zmq.sugar.frame': <module 'zmq.sugar.frame' from '/usr/local/lib/python3.7/dist-packages/zmq/sugar/frame.py'>, 'zmq.sugar.tracker': <module 'zmq.sugar.tracker' from '/usr/local/lib/python3.7/dist-packages/zmq/sugar/tracker.py'>, 'zmq.sugar.version': <module 'zmq.sugar.version' from '/usr/local/lib/python3.7/dist-packages/zmq/sugar/version.py'>, 'zmq.sugar.stopwatch': <module 'zmq.sugar.stopwatch' from '/usr/local/lib/python3.7/dist-packages/zmq/sugar/stopwatch.py'>, 'jupyter_client.localinterfaces': <module 'jupyter_client.localinterfaces' from '/usr/local/lib/python3.7/dist-packages/jupyter_client/localinterfaces.py'>, 'jupyter_core': <module 'jupyter_core' from '/usr/local/lib/python3.7/dist-packages/jupyter_core/__init__.py'>, 'jupyter_core.version': <module 'jupyter_core.version' from '/usr/local/lib/python3.7/dist-packages/jupyter_core/version.py'>, 'jupyter_core.paths': <module 'jupyter_core.paths' from '/usr/local/lib/python3.7/dist-packages/jupyter_core/paths.py'>, 'jupyter_client.utils': <module 'jupyter_client.utils' from '/usr/local/lib/python3.7/dist-packages/jupyter_client/utils.py'>, 'jupyter_client.launcher': <module 'jupyter_client.launcher' from '/usr/local/lib/python3.7/dist-packages/jupyter_client/launcher.py'>, 'traitlets.log': <module 'traitlets.log' from '/usr/local/lib/python3.7/dist-packages/traitlets/log.py'>, 'jupyter_client.client': <module 'jupyter_client.client' from '/usr/local/lib/python3.7/dist-packages/jupyter_client/client.py'>, 'jupyter_client.channels': <module 'jupyter_client.channels' from '/usr/local/lib/python3.7/dist-packages/jupyter_client/channels.py'>, 'jupyter_client.channelsabc': <module 'jupyter_client.channelsabc' from '/usr/local/lib/python3.7/dist-packages/jupyter_client/channelsabc.py'>, 'jupyter_client.clientabc': <module 'jupyter_client.clientabc' from '/usr/local/lib/python3.7/dist-packages/jupyter_client/clientabc.py'>, 'jupyter_client.manager': <module 'jupyter_client.manager' from '/usr/local/lib/python3.7/dist-packages/jupyter_client/manager.py'>, 'jupyter_client.kernelspec': <module 'jupyter_client.kernelspec' from '/usr/local/lib/python3.7/dist-packages/jupyter_client/kernelspec.py'>, 'jupyter_client.managerabc': <module 'jupyter_client.managerabc' from '/usr/local/lib/python3.7/dist-packages/jupyter_client/managerabc.py'>, 'jupyter_client.blocking': <module 'jupyter_client.blocking' from '/usr/local/lib/python3.7/dist-packages/jupyter_client/blocking/__init__.py'>, 'jupyter_client.blocking.client': <module 'jupyter_client.blocking.client' from '/usr/local/lib/python3.7/dist-packages/jupyter_client/blocking/client.py'>, 'jupyter_client.blocking.channels': <module 'jupyter_client.blocking.channels' from '/usr/local/lib/python3.7/dist-packages/jupyter_client/blocking/channels.py'>, 'jupyter_client.asynchronous': <module 'jupyter_client.asynchronous' from '/usr/local/lib/python3.7/dist-packages/jupyter_client/asynchronous/__init__.py'>, 'jupyter_client.asynchronous.client': <module 'jupyter_client.asynchronous.client' from '/usr/local/lib/python3.7/dist-packages/jupyter_client/asynchronous/client.py'>, 'zmq.asyncio': <module 'zmq.asyncio' from '/usr/local/lib/python3.7/dist-packages/zmq/asyncio.py'>, 'zmq._future': <module 'zmq._future' from '/usr/local/lib/python3.7/dist-packages/zmq/_future.py'>, 'jupyter_client.asynchronous.channels': <module 'jupyter_client.asynchronous.channels' from '/usr/local/lib/python3.7/dist-packages/jupyter_client/asynchronous/channels.py'>, 'jupyter_client.multikernelmanager': <module 'jupyter_client.multikernelmanager' from '/usr/local/lib/python3.7/dist-packages/jupyter_client/multikernelmanager.py'>, 'uuid': <module 'uuid' from '/usr/lib/python3.7/uuid.py'>, 'ipykernel.kernelapp': <module 'ipykernel.kernelapp' from '/usr/local/lib/python3.7/dist-packages/ipykernel/kernelapp.py'>, 'tornado': <module 'tornado' from '/usr/local/lib/python3.7/dist-packages/tornado/__init__.py'>, 'tornado.ioloop': <module 'tornado.ioloop' from '/usr/local/lib/python3.7/dist-packages/tornado/ioloop.py'>, 'numbers': <module 'numbers' from '/usr/lib/python3.7/numbers.py'>, 'tornado.concurrent': <module 'tornado.concurrent' from '/usr/local/lib/python3.7/dist-packages/tornado/concurrent.py'>, 'tornado.log': <module 'tornado.log' from '/usr/local/lib/python3.7/dist-packages/tornado/log.py'>, 'logging.handlers': <module 'logging.handlers' from '/usr/lib/python3.7/logging/handlers.py'>, 'tornado.escape': <module 'tornado.escape' from '/usr/local/lib/python3.7/dist-packages/tornado/escape.py'>, 'tornado.util': <module 'tornado.util' from '/usr/local/lib/python3.7/dist-packages/tornado/util.py'>, 'tornado.speedups': <module 'tornado.speedups' from '/usr/local/lib/python3.7/dist-packages/tornado/speedups.cpython-37m-x86_64-linux-gnu.so'>, 'curses': <module 'curses' from '/usr/lib/python3.7/curses/__init__.py'>, '_curses': <module '_curses' from '/usr/lib/python3.7/lib-dynload/_curses.cpython-37m-x86_64-linux-gnu.so'>, 'tornado.stack_context': <module 'tornado.stack_context' from '/usr/local/lib/python3.7/dist-packages/tornado/stack_context.py'>, 'tornado.platform': <module 'tornado.platform' from '/usr/local/lib/python3.7/dist-packages/tornado/platform/__init__.py'>, 'tornado.platform.auto': <module 'tornado.platform.auto' from '/usr/local/lib/python3.7/dist-packages/tornado/platform/auto.py'>, 'tornado.platform.posix': <module 'tornado.platform.posix' from '/usr/local/lib/python3.7/dist-packages/tornado/platform/posix.py'>, 'tornado.platform.common': <module 'tornado.platform.common' from '/usr/local/lib/python3.7/dist-packages/tornado/platform/common.py'>, 'tornado.platform.interface': <module 'tornado.platform.interface' from '/usr/local/lib/python3.7/dist-packages/tornado/platform/interface.py'>, 'concurrent.futures.thread': <module 'concurrent.futures.thread' from '/usr/lib/python3.7/concurrent/futures/thread.py'>, 'zmq.eventloop': <module 'zmq.eventloop' from '/usr/local/lib/python3.7/dist-packages/zmq/eventloop/__init__.py'>, 'zmq.eventloop.ioloop': <module 'zmq.eventloop.ioloop' from '/usr/local/lib/python3.7/dist-packages/zmq/eventloop/ioloop.py'>, 'tornado.platform.asyncio': <module 'tornado.platform.asyncio' from '/usr/local/lib/python3.7/dist-packages/tornado/platform/asyncio.py'>, 'tornado.gen': <module 'tornado.gen' from '/usr/local/lib/python3.7/dist-packages/tornado/gen.py'>, 'zmq.eventloop.zmqstream': <module 'zmq.eventloop.zmqstream' from '/usr/local/lib/python3.7/dist-packages/zmq/eventloop/zmqstream.py'>, 'ipython_genutils.importstring': <module 'ipython_genutils.importstring' from '/usr/local/lib/python3.7/dist-packages/ipython_genutils/importstring.py'>, 'ipykernel.iostream': <module 'ipykernel.iostream' from '/usr/local/lib/python3.7/dist-packages/ipykernel/iostream.py'>, 'imp': <module 'imp' from '/usr/lib/python3.7/imp.py'>, 'jupyter_client.session': <module 'jupyter_client.session' from '/usr/local/lib/python3.7/dist-packages/jupyter_client/session.py'>, 'hmac': <module 'hmac' from '/usr/lib/python3.7/hmac.py'>, 'jupyter_client.jsonutil': <module 'jupyter_client.jsonutil' from '/usr/local/lib/python3.7/dist-packages/jupyter_client/jsonutil.py'>, 'dateutil': <module 'dateutil' from '/usr/local/lib/python3.7/dist-packages/dateutil/__init__.py'>, 'dateutil._version': <module 'dateutil._version' from '/usr/local/lib/python3.7/dist-packages/dateutil/_version.py'>, 'dateutil.parser': <module 'dateutil.parser' from '/usr/local/lib/python3.7/dist-packages/dateutil/parser/__init__.py'>, 'dateutil.parser._parser': <module 'dateutil.parser._parser' from '/usr/local/lib/python3.7/dist-packages/dateutil/parser/_parser.py'>, 'decimal': <module 'decimal' from '/usr/lib/python3.7/decimal.py'>, '_decimal': <module '_decimal' from '/usr/lib/python3.7/lib-dynload/_decimal.cpython-37m-x86_64-linux-gnu.so'>, 'dateutil.relativedelta': <module 'dateutil.relativedelta' from '/usr/local/lib/python3.7/dist-packages/dateutil/relativedelta.py'>, 'dateutil._common': <module 'dateutil._common' from '/usr/local/lib/python3.7/dist-packages/dateutil/_common.py'>, 'dateutil.tz': <module 'dateutil.tz' from '/usr/local/lib/python3.7/dist-packages/dateutil/tz/__init__.py'>, 'dateutil.tz.tz': <module 'dateutil.tz.tz' from '/usr/local/lib/python3.7/dist-packages/dateutil/tz/tz.py'>, 'dateutil.tz._common': <module 'dateutil.tz._common' from '/usr/local/lib/python3.7/dist-packages/dateutil/tz/_common.py'>, 'dateutil.tz._factories': <module 'dateutil.tz._factories' from '/usr/local/lib/python3.7/dist-packages/dateutil/tz/_factories.py'>, 'dateutil.parser.isoparser': <module 'dateutil.parser.isoparser' from '/usr/local/lib/python3.7/dist-packages/dateutil/parser/isoparser.py'>, '_strptime': <module '_strptime' from '/usr/lib/python3.7/_strptime.py'>, 'jupyter_client.adapter': <module 'jupyter_client.adapter' from '/usr/local/lib/python3.7/dist-packages/jupyter_client/adapter.py'>, 'ipykernel.heartbeat': <module 'ipykernel.heartbeat' from '/usr/local/lib/python3.7/dist-packages/ipykernel/heartbeat.py'>, 'ipykernel.ipkernel': <module 'ipykernel.ipkernel' from '/usr/local/lib/python3.7/dist-packages/ipykernel/ipkernel.py'>, 'IPython.utils.tokenutil': <module 'IPython.utils.tokenutil' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/tokenutil.py'>, 'ipykernel.comm': <module 'ipykernel.comm' from '/usr/local/lib/python3.7/dist-packages/ipykernel/comm/__init__.py'>, 'ipykernel.comm.manager': <module 'ipykernel.comm.manager' from '/usr/local/lib/python3.7/dist-packages/ipykernel/comm/manager.py'>, 'ipykernel.comm.comm': <module 'ipykernel.comm.comm' from '/usr/local/lib/python3.7/dist-packages/ipykernel/comm/comm.py'>, 'ipykernel.kernelbase': <module 'ipykernel.kernelbase' from '/usr/local/lib/python3.7/dist-packages/ipykernel/kernelbase.py'>, 'tornado.queues': <module 'tornado.queues' from '/usr/local/lib/python3.7/dist-packages/tornado/queues.py'>, 'tornado.locks': <module 'tornado.locks' from '/usr/local/lib/python3.7/dist-packages/tornado/locks.py'>, 'ipykernel.jsonutil': <module 'ipykernel.jsonutil' from '/usr/local/lib/python3.7/dist-packages/ipykernel/jsonutil.py'>, 'ipykernel.zmqshell': <module 'ipykernel.zmqshell' from '/usr/local/lib/python3.7/dist-packages/ipykernel/zmqshell.py'>, 'IPython.core.payloadpage': <module 'IPython.core.payloadpage' from '/usr/local/lib/python3.7/dist-packages/IPython/core/payloadpage.py'>, 'ipykernel.displayhook': <module 'ipykernel.displayhook' from '/usr/local/lib/python3.7/dist-packages/ipykernel/displayhook.py'>, 'ipykernel.eventloops': <module 'ipykernel.eventloops' from '/usr/local/lib/python3.7/dist-packages/ipykernel/eventloops.py'>, 'distutils': <module 'distutils' from '/usr/lib/python3.7/distutils/__init__.py'>, 'distutils.version': <module 'distutils.version' from '/usr/lib/python3.7/distutils/version.py'>, 'ipykernel.parentpoller': <module 'ipykernel.parentpoller' from '/usr/local/lib/python3.7/dist-packages/ipykernel/parentpoller.py'>, 'google.colab': <module 'google.colab' from '/usr/local/lib/python3.7/dist-packages/google/colab/__init__.py'>, 'google.colab._import_hooks': <module 'google.colab._import_hooks' from '/usr/local/lib/python3.7/dist-packages/google/colab/_import_hooks/__init__.py'>, 'google.colab._import_hooks._altair': <module 'google.colab._import_hooks._altair' from '/usr/local/lib/python3.7/dist-packages/google/colab/_import_hooks/_altair.py'>, 'google.colab._import_hooks._bokeh': <module 'google.colab._import_hooks._bokeh' from '/usr/local/lib/python3.7/dist-packages/google/colab/_import_hooks/_bokeh.py'>, 'google.colab._import_hooks._cv2': <module 'google.colab._import_hooks._cv2' from '/usr/local/lib/python3.7/dist-packages/google/colab/_import_hooks/_cv2.py'>, 'google.colab._import_hooks._pydrive': <module 'google.colab._import_hooks._pydrive' from '/usr/local/lib/python3.7/dist-packages/google/colab/_import_hooks/_pydrive.py'>, 'google.colab._import_magics': <module 'google.colab._import_magics' from '/usr/local/lib/python3.7/dist-packages/google/colab/_import_magics.py'>, 'google.colab._installation_commands': <module 'google.colab._installation_commands' from '/usr/local/lib/python3.7/dist-packages/google/colab/_installation_commands.py'>, 'google.colab._interactive_table_hint_button': <module 'google.colab._interactive_table_hint_button' from '/usr/local/lib/python3.7/dist-packages/google/colab/_interactive_table_hint_button.py'>, 'google.colab.data_table': <module 'google.colab.data_table' from '/usr/local/lib/python3.7/dist-packages/google/colab/data_table.py'>, 'google.colab._interactive_table_helper': <module 'google.colab._interactive_table_helper' from '/usr/local/lib/python3.7/dist-packages/google/colab/_interactive_table_helper.py'>, 'IPython.utils.traitlets': <module 'IPython.utils.traitlets' from '/usr/local/lib/python3.7/dist-packages/IPython/utils/traitlets.py'>, 'google.colab.output': <module 'google.colab.output' from '/usr/local/lib/python3.7/dist-packages/google/colab/output/__init__.py'>, 'google.colab.output._area': <module 'google.colab.output._area' from '/usr/local/lib/python3.7/dist-packages/google/colab/output/_area.py'>, 'google.colab.output._js_builder': <module 'google.colab.output._js_builder' from '/usr/local/lib/python3.7/dist-packages/google/colab/output/_js_builder.py'>, 'google.colab.output._js': <module 'google.colab.output._js' from '/usr/local/lib/python3.7/dist-packages/google/colab/output/_js.py'>, 'google.colab._ipython': <module 'google.colab._ipython' from '/usr/local/lib/python3.7/dist-packages/google/colab/_ipython.py'>, 'google.colab._message': <module 'google.colab._message' from '/usr/local/lib/python3.7/dist-packages/google/colab/_message.py'>, 'google.colab.errors': <module 'google.colab.errors' from '/usr/local/lib/python3.7/dist-packages/google/colab/errors.py'>, 'google.colab.output._publish': <module 'google.colab.output._publish' from '/usr/local/lib/python3.7/dist-packages/google/colab/output/_publish.py'>, 'google.colab.output._tags': <module 'google.colab.output._tags' from '/usr/local/lib/python3.7/dist-packages/google/colab/output/_tags.py'>, 'google.colab.output._util': <module 'google.colab.output._util' from '/usr/local/lib/python3.7/dist-packages/google/colab/output/_util.py'>, 'google.colab.output._widgets': <module 'google.colab.output._widgets' from '/usr/local/lib/python3.7/dist-packages/google/colab/output/_widgets.py'>, 'google.colab._reprs': <module 'google.colab._reprs' from '/usr/local/lib/python3.7/dist-packages/google/colab/_reprs.py'>, 'google.colab._shell_customizations': <module 'google.colab._shell_customizations' from '/usr/local/lib/python3.7/dist-packages/google/colab/_shell_customizations.py'>, 'google.colab._system_commands': <module 'google.colab._system_commands' from '/usr/local/lib/python3.7/dist-packages/google/colab/_system_commands.py'>, 'google.colab._tensorflow_magics': <module 'google.colab._tensorflow_magics' from '/usr/local/lib/python3.7/dist-packages/google/colab/_tensorflow_magics.py'>, 'google.colab.auth': <module 'google.colab.auth' from '/usr/local/lib/python3.7/dist-packages/google/colab/auth.py'>, 'google.colab.files': <module 'google.colab.files' from '/usr/local/lib/python3.7/dist-packages/google/colab/files.py'>, 'http.server': <module 'http.server' from '/usr/lib/python3.7/http/server.py'>, 'socketserver': <module 'socketserver' from '/usr/lib/python3.7/socketserver.py'>, 'google.colab.drive': <module 'google.colab.drive' from '/usr/local/lib/python3.7/dist-packages/google/colab/drive.py'>, 'pexpect.popen_spawn': <module 'pexpect.popen_spawn' from '/usr/local/lib/python3.7/dist-packages/pexpect/popen_spawn.py'>, 'psutil': <module 'psutil' from '/usr/local/lib/python3.7/dist-packages/psutil/__init__.py'>, 'psutil._common': <module 'psutil._common' from '/usr/local/lib/python3.7/dist-packages/psutil/_common.py'>, 'psutil._compat': <module 'psutil._compat' from '/usr/local/lib/python3.7/dist-packages/psutil/_compat.py'>, 'psutil._exceptions': <module 'psutil._exceptions' from '/usr/local/lib/python3.7/dist-packages/psutil/_exceptions.py'>, 'psutil._pslinux': <module 'psutil._pslinux' from '/usr/local/lib/python3.7/dist-packages/psutil/_pslinux.py'>, 'psutil._psposix': <module 'psutil._psposix' from '/usr/local/lib/python3.7/dist-packages/psutil/_psposix.py'>, 'psutil._psutil_linux': <module 'psutil._psutil_linux' from '/usr/local/lib/python3.7/dist-packages/psutil/_psutil_linux.cpython-37m-x86_64-linux-gnu.so'>, 'psutil._psutil_posix': <module 'psutil._psutil_posix' from '/usr/local/lib/python3.7/dist-packages/psutil/_psutil_posix.cpython-37m-x86_64-linux-gnu.so'>, 'google.colab.runtime': <module 'google.colab.runtime' from '/usr/local/lib/python3.7/dist-packages/google/colab/runtime.py'>, 'httplib2': <module 'httplib2' from '/usr/local/lib/python3.7/dist-packages/httplib2/__init__.py'>, 'gzip': <module 'gzip' from '/usr/lib/python3.7/gzip.py'>, 'socks': <module 'socks' from '/usr/local/lib/python3.7/dist-packages/socks.py'>, 'httplib2.iri2uri': <module 'httplib2.iri2uri' from '/usr/local/lib/python3.7/dist-packages/httplib2/iri2uri.py'>, 'httplib2.certs': <module 'httplib2.certs' from '/usr/local/lib/python3.7/dist-packages/httplib2/certs.py'>, 'certifi': <module 'certifi' from '/usr/local/lib/python3.7/dist-packages/certifi/__init__.py'>, 'certifi.core': <module 'certifi.core' from '/usr/local/lib/python3.7/dist-packages/certifi/core.py'>, 'importlib.resources': <module 'importlib.resources' from '/usr/lib/python3.7/importlib/resources.py'>, 'google.colab.snippets': <module 'google.colab.snippets' from '/usr/local/lib/python3.7/dist-packages/google/colab/snippets.py'>, 'google.colab.widgets': <module 'google.colab.widgets' from '/usr/local/lib/python3.7/dist-packages/google/colab/widgets/__init__.py'>, 'google.colab.widgets._grid': <module 'google.colab.widgets._grid' from '/usr/local/lib/python3.7/dist-packages/google/colab/widgets/_grid.py'>, 'google.colab.widgets._widget': <module 'google.colab.widgets._widget' from '/usr/local/lib/python3.7/dist-packages/google/colab/widgets/_widget.py'>, 'google.colab.widgets._tabbar': <module 'google.colab.widgets._tabbar' from '/usr/local/lib/python3.7/dist-packages/google/colab/widgets/_tabbar.py'>, 'google.colab._kernel': <module 'google.colab._kernel' from '/usr/local/lib/python3.7/dist-packages/google/colab/_kernel.py'>, 'google.colab._shell': <module 'google.colab._shell' from '/usr/local/lib/python3.7/dist-packages/google/colab/_shell.py'>, 'google.colab._history': <module 'google.colab._history' from '/usr/local/lib/python3.7/dist-packages/google/colab/_history.py'>, 'google.colab._inspector': <module 'google.colab._inspector' from '/usr/local/lib/python3.7/dist-packages/google/colab/_inspector.py'>, 'astor': <module 'astor' from '/usr/local/lib/python3.7/dist-packages/astor/__init__.py'>, 'astor.code_gen': <module 'astor.code_gen' from '/usr/local/lib/python3.7/dist-packages/astor/code_gen.py'>, 'astor.op_util': <module 'astor.op_util' from '/usr/local/lib/python3.7/dist-packages/astor/op_util.py'>, 'astor.node_util': <module 'astor.node_util' from '/usr/local/lib/python3.7/dist-packages/astor/node_util.py'>, 'astor.string_repr': <module 'astor.string_repr' from '/usr/local/lib/python3.7/dist-packages/astor/string_repr.py'>, 'astor.source_repr': <module 'astor.source_repr' from '/usr/local/lib/python3.7/dist-packages/astor/source_repr.py'>, 'astor.file_util': <module 'astor.file_util' from '/usr/local/lib/python3.7/dist-packages/astor/file_util.py'>, 'astor.tree_walk': <module 'astor.tree_walk' from '/usr/local/lib/python3.7/dist-packages/astor/tree_walk.py'>, 'google.colab._pip': <module 'google.colab._pip' from '/usr/local/lib/python3.7/dist-packages/google/colab/_pip.py'>, 'IPython.core.inputsplitter': <module 'IPython.core.inputsplitter' from '/usr/local/lib/python3.7/dist-packages/IPython/core/inputsplitter.py'>, 'IPython.core.inputtransformer': <module 'IPython.core.inputtransformer' from '/usr/local/lib/python3.7/dist-packages/IPython/core/inputtransformer.py'>, 'encodings.idna': <module 'encodings.idna' from '/usr/lib/python3.7/encodings/idna.py'>, 'stringprep': <module 'stringprep' from '/usr/lib/python3.7/stringprep.py'>, 'faulthandler': <module 'faulthandler' (built-in)>, 'ipykernel.datapub': <module 'ipykernel.datapub' from '/usr/local/lib/python3.7/dist-packages/ipykernel/datapub.py'>, 'ipykernel.serialize': <module 'ipykernel.serialize' from '/usr/local/lib/python3.7/dist-packages/ipykernel/serialize.py'>, 'ipykernel.pickleutil': <module 'ipykernel.pickleutil' from '/usr/local/lib/python3.7/dist-packages/ipykernel/pickleutil.py'>, 'ipykernel.codeutil': <module 'ipykernel.codeutil' from '/usr/local/lib/python3.7/dist-packages/ipykernel/codeutil.py'>, 'IPython.core.completerlib': <module 'IPython.core.completerlib' from '/usr/local/lib/python3.7/dist-packages/IPython/core/completerlib.py'>, 'matplotlib': <module 'matplotlib' from '/usr/local/lib/python3.7/dist-packages/matplotlib/__init__.py'>, 'matplotlib.cbook': <module 'matplotlib.cbook' from '/usr/local/lib/python3.7/dist-packages/matplotlib/cbook/__init__.py'>, 'numpy': <module 'numpy' from '/usr/local/lib/python3.7/dist-packages/numpy/__init__.py'>, 'numpy._globals': <module 'numpy._globals' from '/usr/local/lib/python3.7/dist-packages/numpy/_globals.py'>, 'numpy.__config__': <module 'numpy.__config__' from '/usr/local/lib/python3.7/dist-packages/numpy/__config__.py'>, 'numpy._version': <module 'numpy._version' from '/usr/local/lib/python3.7/dist-packages/numpy/_version.py'>, 'numpy._distributor_init': <module 'numpy._distributor_init' from '/usr/local/lib/python3.7/dist-packages/numpy/_distributor_init.py'>, 'numpy.core': <module 'numpy.core' from '/usr/local/lib/python3.7/dist-packages/numpy/core/__init__.py'>, 'numpy.version': <module 'numpy.version' from '/usr/local/lib/python3.7/dist-packages/numpy/version.py'>, 'numpy.core.multiarray': <module 'numpy.core.multiarray' from '/usr/local/lib/python3.7/dist-packages/numpy/core/multiarray.py'>, 'numpy.core.overrides': <module 'numpy.core.overrides' from '/usr/local/lib/python3.7/dist-packages/numpy/core/overrides.py'>, 'numpy.core._multiarray_umath': <module 'numpy.core._multiarray_umath' from '/usr/local/lib/python3.7/dist-packages/numpy/core/_multiarray_umath.cpython-37m-x86_64-linux-gnu.so'>, 'numpy.compat': <module 'numpy.compat' from '/usr/local/lib/python3.7/dist-packages/numpy/compat/__init__.py'>, 'numpy.compat._inspect': <module 'numpy.compat._inspect' from '/usr/local/lib/python3.7/dist-packages/numpy/compat/_inspect.py'>, 'numpy.compat.py3k': <module 'numpy.compat.py3k' from '/usr/local/lib/python3.7/dist-packages/numpy/compat/py3k.py'>, 'numpy.core.umath': <module 'numpy.core.umath' from '/usr/local/lib/python3.7/dist-packages/numpy/core/umath.py'>, 'numpy.core.numerictypes': <module 'numpy.core.numerictypes' from '/usr/local/lib/python3.7/dist-packages/numpy/core/numerictypes.py'>, 'numpy.core._string_helpers': <module 'numpy.core._string_helpers' from '/usr/local/lib/python3.7/dist-packages/numpy/core/_string_helpers.py'>, 'numpy.core._type_aliases': <module 'numpy.core._type_aliases' from '/usr/local/lib/python3.7/dist-packages/numpy/core/_type_aliases.py'>, 'numpy.core._dtype': <module 'numpy.core._dtype' from '/usr/local/lib/python3.7/dist-packages/numpy/core/_dtype.py'>, 'numpy.core.numeric': <module 'numpy.core.numeric' from '/usr/local/lib/python3.7/dist-packages/numpy/core/numeric.py'>, 'numpy.core.shape_base': <module 'numpy.core.shape_base' from '/usr/local/lib/python3.7/dist-packages/numpy/core/shape_base.py'>, 'numpy.core.fromnumeric': <module 'numpy.core.fromnumeric' from '/usr/local/lib/python3.7/dist-packages/numpy/core/fromnumeric.py'>, 'numpy.core._methods': <module 'numpy.core._methods' from '/usr/local/lib/python3.7/dist-packages/numpy/core/_methods.py'>, 'numpy.core._exceptions': <module 'numpy.core._exceptions' from '/usr/local/lib/python3.7/dist-packages/numpy/core/_exceptions.py'>, 'numpy.core._ufunc_config': <module 'numpy.core._ufunc_config' from '/usr/local/lib/python3.7/dist-packages/numpy/core/_ufunc_config.py'>, 'numpy.core.arrayprint': <module 'numpy.core.arrayprint' from '/usr/local/lib/python3.7/dist-packages/numpy/core/arrayprint.py'>, 'numpy.core._asarray': <module 'numpy.core._asarray' from '/usr/local/lib/python3.7/dist-packages/numpy/core/_asarray.py'>, 'numpy.core.defchararray': <module 'numpy.core.defchararray' from '/usr/local/lib/python3.7/dist-packages/numpy/core/defchararray.py'>, 'numpy.core.records': <module 'numpy.core.records' from '/usr/local/lib/python3.7/dist-packages/numpy/core/records.py'>, 'numpy.core.memmap': <module 'numpy.core.memmap' from '/usr/local/lib/python3.7/dist-packages/numpy/core/memmap.py'>, 'numpy.core.function_base': <module 'numpy.core.function_base' from '/usr/local/lib/python3.7/dist-packages/numpy/core/function_base.py'>, 'numpy.core.machar': <module 'numpy.core.machar' from '/usr/local/lib/python3.7/dist-packages/numpy/core/machar.py'>, 'numpy.core.getlimits': <module 'numpy.core.getlimits' from '/usr/local/lib/python3.7/dist-packages/numpy/core/getlimits.py'>, 'numpy.core.einsumfunc': <module 'numpy.core.einsumfunc' from '/usr/local/lib/python3.7/dist-packages/numpy/core/einsumfunc.py'>, 'numpy.core._add_newdocs': <module 'numpy.core._add_newdocs' from '/usr/local/lib/python3.7/dist-packages/numpy/core/_add_newdocs.py'>, 'numpy.core._multiarray_tests': <module 'numpy.core._multiarray_tests' from '/usr/local/lib/python3.7/dist-packages/numpy/core/_multiarray_tests.cpython-37m-x86_64-linux-gnu.so'>, 'numpy.core._add_newdocs_scalars': <module 'numpy.core._add_newdocs_scalars' from '/usr/local/lib/python3.7/dist-packages/numpy/core/_add_newdocs_scalars.py'>, 'numpy.core._dtype_ctypes': <module 'numpy.core._dtype_ctypes' from '/usr/local/lib/python3.7/dist-packages/numpy/core/_dtype_ctypes.py'>, 'numpy.core._internal': <module 'numpy.core._internal' from '/usr/local/lib/python3.7/dist-packages/numpy/core/_internal.py'>, 'numpy._pytesttester': <module 'numpy._pytesttester' from '/usr/local/lib/python3.7/dist-packages/numpy/_pytesttester.py'>, 'numpy.lib': <module 'numpy.lib' from '/usr/local/lib/python3.7/dist-packages/numpy/lib/__init__.py'>, 'numpy.lib.mixins': <module 'numpy.lib.mixins' from '/usr/local/lib/python3.7/dist-packages/numpy/lib/mixins.py'>, 'numpy.lib.scimath': <module 'numpy.lib.scimath' from '/usr/local/lib/python3.7/dist-packages/numpy/lib/scimath.py'>, 'numpy.lib.type_check': <module 'numpy.lib.type_check' from '/usr/local/lib/python3.7/dist-packages/numpy/lib/type_check.py'>, 'numpy.lib.ufunclike': <module 'numpy.lib.ufunclike' from '/usr/local/lib/python3.7/dist-packages/numpy/lib/ufunclike.py'>, 'numpy.lib.index_tricks': <module 'numpy.lib.index_tricks' from '/usr/local/lib/python3.7/dist-packages/numpy/lib/index_tricks.py'>, 'numpy.matrixlib': <module 'numpy.matrixlib' from '/usr/local/lib/python3.7/dist-packages/numpy/matrixlib/__init__.py'>, 'numpy.matrixlib.defmatrix': <module 'numpy.matrixlib.defmatrix' from '/usr/local/lib/python3.7/dist-packages/numpy/matrixlib/defmatrix.py'>, 'numpy.linalg': <module 'numpy.linalg' from '/usr/local/lib/python3.7/dist-packages/numpy/linalg/__init__.py'>, 'numpy.linalg.linalg': <module 'numpy.linalg.linalg' from '/usr/local/lib/python3.7/dist-packages/numpy/linalg/linalg.py'>, 'numpy.lib.twodim_base': <module 'numpy.lib.twodim_base' from '/usr/local/lib/python3.7/dist-packages/numpy/lib/twodim_base.py'>, 'numpy.lib.stride_tricks': <module 'numpy.lib.stride_tricks' from '/usr/local/lib/python3.7/dist-packages/numpy/lib/stride_tricks.py'>, 'numpy.linalg.lapack_lite': <module 'numpy.linalg.lapack_lite' from '/usr/local/lib/python3.7/dist-packages/numpy/linalg/lapack_lite.cpython-37m-x86_64-linux-gnu.so'>, 'numpy.linalg._umath_linalg': <module 'numpy.linalg._umath_linalg' from '/usr/local/lib/python3.7/dist-packages/numpy/linalg/_umath_linalg.cpython-37m-x86_64-linux-gnu.so'>, 'numpy.lib.function_base': <module 'numpy.lib.function_base' from '/usr/local/lib/python3.7/dist-packages/numpy/lib/function_base.py'>, 'numpy.lib.histograms': <module 'numpy.lib.histograms' from '/usr/local/lib/python3.7/dist-packages/numpy/lib/histograms.py'>, 'numpy.lib.nanfunctions': <module 'numpy.lib.nanfunctions' from '/usr/local/lib/python3.7/dist-packages/numpy/lib/nanfunctions.py'>, 'numpy.lib.shape_base': <module 'numpy.lib.shape_base' from '/usr/local/lib/python3.7/dist-packages/numpy/lib/shape_base.py'>, 'numpy.lib.polynomial': <module 'numpy.lib.polynomial' from '/usr/local/lib/python3.7/dist-packages/numpy/lib/polynomial.py'>, 'numpy.lib.utils': <module 'numpy.lib.utils' from '/usr/local/lib/python3.7/dist-packages/numpy/lib/utils.py'>, 'numpy.lib.arraysetops': <module 'numpy.lib.arraysetops' from '/usr/local/lib/python3.7/dist-packages/numpy/lib/arraysetops.py'>, 'numpy.lib.npyio': <module 'numpy.lib.npyio' from '/usr/local/lib/python3.7/dist-packages/numpy/lib/npyio.py'>, 'numpy.lib.format': <module 'numpy.lib.format' from '/usr/local/lib/python3.7/dist-packages/numpy/lib/format.py'>, 'numpy.lib._datasource': <module 'numpy.lib._datasource' from '/usr/local/lib/python3.7/dist-packages/numpy/lib/_datasource.py'>, 'numpy.lib._iotools': <module 'numpy.lib._iotools' from '/usr/local/lib/python3.7/dist-packages/numpy/lib/_iotools.py'>, 'numpy.lib.arrayterator': <module 'numpy.lib.arrayterator' from '/usr/local/lib/python3.7/dist-packages/numpy/lib/arrayterator.py'>, 'numpy.lib.arraypad': <module 'numpy.lib.arraypad' from '/usr/local/lib/python3.7/dist-packages/numpy/lib/arraypad.py'>, 'numpy.lib._version': <module 'numpy.lib._version' from '/usr/local/lib/python3.7/dist-packages/numpy/lib/_version.py'>, 'numpy.fft': <module 'numpy.fft' from '/usr/local/lib/python3.7/dist-packages/numpy/fft/__init__.py'>, 'numpy.fft._pocketfft': <module 'numpy.fft._pocketfft' from '/usr/local/lib/python3.7/dist-packages/numpy/fft/_pocketfft.py'>, 'numpy.fft._pocketfft_internal': <module 'numpy.fft._pocketfft_internal' from '/usr/local/lib/python3.7/dist-packages/numpy/fft/_pocketfft_internal.cpython-37m-x86_64-linux-gnu.so'>, 'numpy.fft.helper': <module 'numpy.fft.helper' from '/usr/local/lib/python3.7/dist-packages/numpy/fft/helper.py'>, 'numpy.polynomial': <module 'numpy.polynomial' from '/usr/local/lib/python3.7/dist-packages/numpy/polynomial/__init__.py'>, 'numpy.polynomial.polynomial': <module 'numpy.polynomial.polynomial' from '/usr/local/lib/python3.7/dist-packages/numpy/polynomial/polynomial.py'>, 'numpy.polynomial.polyutils': <module 'numpy.polynomial.polyutils' from '/usr/local/lib/python3.7/dist-packages/numpy/polynomial/polyutils.py'>, 'numpy.polynomial._polybase': <module 'numpy.polynomial._polybase' from '/usr/local/lib/python3.7/dist-packages/numpy/polynomial/_polybase.py'>, 'numpy.polynomial.chebyshev': <module 'numpy.polynomial.chebyshev' from '/usr/local/lib/python3.7/dist-packages/numpy/polynomial/chebyshev.py'>, 'numpy.polynomial.legendre': <module 'numpy.polynomial.legendre' from '/usr/local/lib/python3.7/dist-packages/numpy/polynomial/legendre.py'>, 'numpy.polynomial.hermite': <module 'numpy.polynomial.hermite' from '/usr/local/lib/python3.7/dist-packages/numpy/polynomial/hermite.py'>, 'numpy.polynomial.hermite_e': <module 'numpy.polynomial.hermite_e' from '/usr/local/lib/python3.7/dist-packages/numpy/polynomial/hermite_e.py'>, 'numpy.polynomial.laguerre': <module 'numpy.polynomial.laguerre' from '/usr/local/lib/python3.7/dist-packages/numpy/polynomial/laguerre.py'>, 'numpy.random': <module 'numpy.random' from '/usr/local/lib/python3.7/dist-packages/numpy/random/__init__.py'>, 'numpy.random._pickle': <module 'numpy.random._pickle' from '/usr/local/lib/python3.7/dist-packages/numpy/random/_pickle.py'>, 'numpy.random.mtrand': <module 'numpy.random.mtrand' from '/usr/local/lib/python3.7/dist-packages/numpy/random/mtrand.cpython-37m-x86_64-linux-gnu.so'>, 'numpy.random.bit_generator': <module 'numpy.random.bit_generator' from '/usr/local/lib/python3.7/dist-packages/numpy/random/bit_generator.cpython-37m-x86_64-linux-gnu.so'>, '_cython_0_29_24': <module '_cython_0_29_24'>, 'numpy.random._common': <module 'numpy.random._common' from '/usr/local/lib/python3.7/dist-packages/numpy/random/_common.cpython-37m-x86_64-linux-gnu.so'>, 'secrets': <module 'secrets' from '/usr/lib/python3.7/secrets.py'>, 'numpy.random._bounded_integers': <module 'numpy.random._bounded_integers' from '/usr/local/lib/python3.7/dist-packages/numpy/random/_bounded_integers.cpython-37m-x86_64-linux-gnu.so'>, 'numpy.random._mt19937': <module 'numpy.random._mt19937' from '/usr/local/lib/python3.7/dist-packages/numpy/random/_mt19937.cpython-37m-x86_64-linux-gnu.so'>, 'numpy.random._philox': <module 'numpy.random._philox' from '/usr/local/lib/python3.7/dist-packages/numpy/random/_philox.cpython-37m-x86_64-linux-gnu.so'>, 'numpy.random._pcg64': <module 'numpy.random._pcg64' from '/usr/local/lib/python3.7/dist-packages/numpy/random/_pcg64.cpython-37m-x86_64-linux-gnu.so'>, 'numpy.random._sfc64': <module 'numpy.random._sfc64' from '/usr/local/lib/python3.7/dist-packages/numpy/random/_sfc64.cpython-37m-x86_64-linux-gnu.so'>, 'numpy.random._generator': <module 'numpy.random._generator' from '/usr/local/lib/python3.7/dist-packages/numpy/random/_generator.cpython-37m-x86_64-linux-gnu.so'>, 'numpy.ctypeslib': <module 'numpy.ctypeslib' from '/usr/local/lib/python3.7/dist-packages/numpy/ctypeslib.py'>, 'numpy.ma': <module 'numpy.ma' from '/usr/local/lib/python3.7/dist-packages/numpy/ma/__init__.py'>, 'numpy.ma.core': <module 'numpy.ma.core' from '/usr/local/lib/python3.7/dist-packages/numpy/ma/core.py'>, 'numpy.ma.extras': <module 'numpy.ma.extras' from '/usr/local/lib/python3.7/dist-packages/numpy/ma/extras.py'>, 'matplotlib.cbook.deprecation': <module 'matplotlib.cbook.deprecation' from '/usr/local/lib/python3.7/dist-packages/matplotlib/cbook/deprecation.py'>, 'matplotlib.rcsetup': <module 'matplotlib.rcsetup' from '/usr/local/lib/python3.7/dist-packages/matplotlib/rcsetup.py'>, 'matplotlib.fontconfig_pattern': <module 'matplotlib.fontconfig_pattern' from '/usr/local/lib/python3.7/dist-packages/matplotlib/fontconfig_pattern.py'>, 'pyparsing': <module 'pyparsing' from '/usr/local/lib/python3.7/dist-packages/pyparsing/__init__.py'>, 'pyparsing.util': <module 'pyparsing.util' from '/usr/local/lib/python3.7/dist-packages/pyparsing/util.py'>, 'pyparsing.exceptions': <module 'pyparsing.exceptions' from '/usr/local/lib/python3.7/dist-packages/pyparsing/exceptions.py'>, 'pyparsing.unicode': <module 'pyparsing.unicode' from '/usr/local/lib/python3.7/dist-packages/pyparsing/unicode.py'>, 'pyparsing.actions': <module 'pyparsing.actions' from '/usr/local/lib/python3.7/dist-packages/pyparsing/actions.py'>, 'pyparsing.core': <module 'pyparsing.core' from '/usr/local/lib/python3.7/dist-packages/pyparsing/core.py'>, 'pyparsing.results': <module 'pyparsing.results' from '/usr/local/lib/python3.7/dist-packages/pyparsing/results.py'>, 'pyparsing.helpers': <module 'pyparsing.helpers' from '/usr/local/lib/python3.7/dist-packages/pyparsing/helpers.py'>, 'pyparsing.testing': <module 'pyparsing.testing' from '/usr/local/lib/python3.7/dist-packages/pyparsing/testing.py'>, 'pyparsing.common': <module 'pyparsing.common' from '/usr/local/lib/python3.7/dist-packages/pyparsing/common.py'>, 'matplotlib.colors': <module 'matplotlib.colors' from '/usr/local/lib/python3.7/dist-packages/matplotlib/colors.py'>, 'matplotlib.docstring': <module 'matplotlib.docstring' from '/usr/local/lib/python3.7/dist-packages/matplotlib/docstring.py'>, 'matplotlib._color_data': <module 'matplotlib._color_data' from '/usr/local/lib/python3.7/dist-packages/matplotlib/_color_data.py'>, 'cycler': <module 'cycler' from '/usr/local/lib/python3.7/dist-packages/cycler.py'>, 'matplotlib._version': <module 'matplotlib._version' from '/usr/local/lib/python3.7/dist-packages/matplotlib/_version.py'>, 'matplotlib.ft2font': <module 'matplotlib.ft2font' from '/usr/local/lib/python3.7/dist-packages/matplotlib/ft2font.cpython-37m-x86_64-linux-gnu.so'>, 'kiwisolver': <module 'kiwisolver' from '/usr/local/lib/python3.7/dist-packages/kiwisolver/__init__.py'>, 'kiwisolver._cext': <module 'kiwisolver._cext' from '/usr/local/lib/python3.7/dist-packages/kiwisolver/_cext.cpython-37m-x86_64-linux-gnu.so'>, 'matplotlib.pyplot': <module 'matplotlib.pyplot' from '/usr/local/lib/python3.7/dist-packages/matplotlib/pyplot.py'>, 'matplotlib.colorbar': <module 'matplotlib.colorbar' from '/usr/local/lib/python3.7/dist-packages/matplotlib/colorbar.py'>, 'matplotlib.artist': <module 'matplotlib.artist' from '/usr/local/lib/python3.7/dist-packages/matplotlib/artist.py'>, 'matplotlib.path': <module 'matplotlib.path' from '/usr/local/lib/python3.7/dist-packages/matplotlib/path.py'>, 'matplotlib._path': <module 'matplotlib._path' from '/usr/local/lib/python3.7/dist-packages/matplotlib/_path.cpython-37m-x86_64-linux-gnu.so'>, 'matplotlib.transforms': <module 'matplotlib.transforms' from '/usr/local/lib/python3.7/dist-packages/matplotlib/transforms.py'>, 'matplotlib.collections': <module 'matplotlib.collections' from '/usr/local/lib/python3.7/dist-packages/matplotlib/collections.py'>, 'matplotlib.cm': <module 'matplotlib.cm' from '/usr/local/lib/python3.7/dist-packages/matplotlib/cm.py'>, 'matplotlib._cm': <module 'matplotlib._cm' from '/usr/local/lib/python3.7/dist-packages/matplotlib/_cm.py'>, 'matplotlib._cm_listed': <module 'matplotlib._cm_listed' from '/usr/local/lib/python3.7/dist-packages/matplotlib/_cm_listed.py'>, 'matplotlib.lines': <module 'matplotlib.lines' from '/usr/local/lib/python3.7/dist-packages/matplotlib/lines.py'>, 'matplotlib.markers': <module 'matplotlib.markers' from '/usr/local/lib/python3.7/dist-packages/matplotlib/markers.py'>, 'matplotlib.contour': <module 'matplotlib.contour' from '/usr/local/lib/python3.7/dist-packages/matplotlib/contour.py'>, 'matplotlib.ticker': <module 'matplotlib.ticker' from '/usr/local/lib/python3.7/dist-packages/matplotlib/ticker.py'>, 'matplotlib.font_manager': <module 'matplotlib.font_manager' from '/usr/local/lib/python3.7/dist-packages/matplotlib/font_manager.py'>, 'matplotlib.afm': <module 'matplotlib.afm' from '/usr/local/lib/python3.7/dist-packages/matplotlib/afm.py'>, 'matplotlib._mathtext_data': <module 'matplotlib._mathtext_data' from '/usr/local/lib/python3.7/dist-packages/matplotlib/_mathtext_data.py'>, 'matplotlib.text': <module 'matplotlib.text' from '/usr/local/lib/python3.7/dist-packages/matplotlib/text.py'>, 'matplotlib.patches': <module 'matplotlib.patches' from '/usr/local/lib/python3.7/dist-packages/matplotlib/patches.py'>, 'matplotlib.bezier': <module 'matplotlib.bezier' from '/usr/local/lib/python3.7/dist-packages/matplotlib/bezier.py'>, 'matplotlib.textpath': <module 'matplotlib.textpath' from '/usr/local/lib/python3.7/dist-packages/matplotlib/textpath.py'>, 'matplotlib._text_layout': <module 'matplotlib._text_layout' from '/usr/local/lib/python3.7/dist-packages/matplotlib/_text_layout.py'>, 'matplotlib.dviread': <module 'matplotlib.dviread' from '/usr/local/lib/python3.7/dist-packages/matplotlib/dviread.py'>, 'matplotlib.mathtext': <module 'matplotlib.mathtext' from '/usr/local/lib/python3.7/dist-packages/matplotlib/mathtext.py'>, 'matplotlib.texmanager': <module 'matplotlib.texmanager' from '/usr/local/lib/python3.7/dist-packages/matplotlib/texmanager.py'>, 'matplotlib.blocking_input': <module 'matplotlib.blocking_input' from '/usr/local/lib/python3.7/dist-packages/matplotlib/blocking_input.py'>, 'matplotlib.gridspec': <module 'matplotlib.gridspec' from '/usr/local/lib/python3.7/dist-packages/matplotlib/gridspec.py'>, 'matplotlib._pylab_helpers': <module 'matplotlib._pylab_helpers' from '/usr/local/lib/python3.7/dist-packages/matplotlib/_pylab_helpers.py'>, 'matplotlib.tight_layout': <module 'matplotlib.tight_layout' from '/usr/local/lib/python3.7/dist-packages/matplotlib/tight_layout.py'>, 'matplotlib._layoutbox': <module 'matplotlib._layoutbox' from '/usr/local/lib/python3.7/dist-packages/matplotlib/_layoutbox.py'>, 'matplotlib._constrained_layout': <module 'matplotlib._constrained_layout' from '/usr/local/lib/python3.7/dist-packages/matplotlib/_constrained_layout.py'>, 'matplotlib.image': <module 'matplotlib.image' from '/usr/local/lib/python3.7/dist-packages/matplotlib/image.py'>, 'matplotlib.backend_bases': <module 'matplotlib.backend_bases' from '/usr/local/lib/python3.7/dist-packages/matplotlib/backend_bases.py'>, 'matplotlib.backend_tools': <module 'matplotlib.backend_tools' from '/usr/local/lib/python3.7/dist-packages/matplotlib/backend_tools.py'>, 'matplotlib.tight_bbox': <module 'matplotlib.tight_bbox' from '/usr/local/lib/python3.7/dist-packages/matplotlib/tight_bbox.py'>, 'matplotlib.widgets': <module 'matplotlib.widgets' from '/usr/local/lib/python3.7/dist-packages/matplotlib/widgets.py'>, 'PIL': <module 'PIL' from '/usr/local/lib/python3.7/dist-packages/PIL/__init__.py'>, 'PIL._version': <module 'PIL._version' from '/usr/local/lib/python3.7/dist-packages/PIL/_version.py'>, 'matplotlib._image': <module 'matplotlib._image' from '/usr/local/lib/python3.7/dist-packages/matplotlib/_image.cpython-37m-x86_64-linux-gnu.so'>, 'matplotlib.style': <module 'matplotlib.style' from '/usr/local/lib/python3.7/dist-packages/matplotlib/style/__init__.py'>, 'matplotlib.style.core': <module 'matplotlib.style.core' from '/usr/local/lib/python3.7/dist-packages/matplotlib/style/core.py'>, 'matplotlib.figure': <module 'matplotlib.figure' from '/usr/local/lib/python3.7/dist-packages/matplotlib/figure.py'>, 'matplotlib.backends': <module 'matplotlib.backends' from '/usr/local/lib/python3.7/dist-packages/matplotlib/backends/__init__.py'>, 'matplotlib.projections': <module 'matplotlib.projections' from '/usr/local/lib/python3.7/dist-packages/matplotlib/projections/__init__.py'>, 'matplotlib.axes': <module 'matplotlib.axes' from '/usr/local/lib/python3.7/dist-packages/matplotlib/axes/__init__.py'>, 'matplotlib.axes._subplots': <module 'matplotlib.axes._subplots' from '/usr/local/lib/python3.7/dist-packages/matplotlib/axes/_subplots.py'>, 'matplotlib.axes._axes': <module 'matplotlib.axes._axes' from '/usr/local/lib/python3.7/dist-packages/matplotlib/axes/_axes.py'>, 'matplotlib.category': <module 'matplotlib.category' from '/usr/local/lib/python3.7/dist-packages/matplotlib/category.py'>, 'matplotlib.units': <module 'matplotlib.units' from '/usr/local/lib/python3.7/dist-packages/matplotlib/units.py'>, 'matplotlib.dates': <module 'matplotlib.dates' from '/usr/local/lib/python3.7/dist-packages/matplotlib/dates.py'>, 'dateutil.rrule': <module 'dateutil.rrule' from '/usr/local/lib/python3.7/dist-packages/dateutil/rrule.py'>, 'matplotlib.legend': <module 'matplotlib.legend' from '/usr/local/lib/python3.7/dist-packages/matplotlib/legend.py'>, 'matplotlib.offsetbox': <module 'matplotlib.offsetbox' from '/usr/local/lib/python3.7/dist-packages/matplotlib/offsetbox.py'>, 'matplotlib.container': <module 'matplotlib.container' from '/usr/local/lib/python3.7/dist-packages/matplotlib/container.py'>, 'matplotlib.legend_handler': <module 'matplotlib.legend_handler' from '/usr/local/lib/python3.7/dist-packages/matplotlib/legend_handler.py'>, 'matplotlib.mlab': <module 'matplotlib.mlab' from '/usr/local/lib/python3.7/dist-packages/matplotlib/mlab.py'>, 'csv': <module 'csv' from '/usr/lib/python3.7/csv.py'>, '_csv': <module '_csv' from '/usr/lib/python3.7/lib-dynload/_csv.cpython-37m-x86_64-linux-gnu.so'>, 'matplotlib.quiver': <module 'matplotlib.quiver' from '/usr/local/lib/python3.7/dist-packages/matplotlib/quiver.py'>, 'matplotlib.stackplot': <module 'matplotlib.stackplot' from '/usr/local/lib/python3.7/dist-packages/matplotlib/stackplot.py'>, 'matplotlib.streamplot': <module 'matplotlib.streamplot' from '/usr/local/lib/python3.7/dist-packages/matplotlib/streamplot.py'>, 'matplotlib.table': <module 'matplotlib.table' from '/usr/local/lib/python3.7/dist-packages/matplotlib/table.py'>, 'matplotlib.tri': <module 'matplotlib.tri' from '/usr/local/lib/python3.7/dist-packages/matplotlib/tri/__init__.py'>, 'matplotlib.tri.triangulation': <module 'matplotlib.tri.triangulation' from '/usr/local/lib/python3.7/dist-packages/matplotlib/tri/triangulation.py'>, 'matplotlib.tri.tricontour': <module 'matplotlib.tri.tricontour' from '/usr/local/lib/python3.7/dist-packages/matplotlib/tri/tricontour.py'>, 'matplotlib.tri.tritools': <module 'matplotlib.tri.tritools' from '/usr/local/lib/python3.7/dist-packages/matplotlib/tri/tritools.py'>, 'matplotlib.tri.trifinder': <module 'matplotlib.tri.trifinder' from '/usr/local/lib/python3.7/dist-packages/matplotlib/tri/trifinder.py'>, 'matplotlib.tri.triinterpolate': <module 'matplotlib.tri.triinterpolate' from '/usr/local/lib/python3.7/dist-packages/matplotlib/tri/triinterpolate.py'>, 'matplotlib.tri.trirefine': <module 'matplotlib.tri.trirefine' from '/usr/local/lib/python3.7/dist-packages/matplotlib/tri/trirefine.py'>, 'matplotlib.tri.tripcolor': <module 'matplotlib.tri.tripcolor' from '/usr/local/lib/python3.7/dist-packages/matplotlib/tri/tripcolor.py'>, 'matplotlib.tri.triplot': <module 'matplotlib.tri.triplot' from '/usr/local/lib/python3.7/dist-packages/matplotlib/tri/triplot.py'>, 'matplotlib.axes._base': <module 'matplotlib.axes._base' from '/usr/local/lib/python3.7/dist-packages/matplotlib/axes/_base.py'>, 'matplotlib.axis': <module 'matplotlib.axis' from '/usr/local/lib/python3.7/dist-packages/matplotlib/axis.py'>, 'matplotlib.scale': <module 'matplotlib.scale' from '/usr/local/lib/python3.7/dist-packages/matplotlib/scale.py'>, 'matplotlib.spines': <module 'matplotlib.spines' from '/usr/local/lib/python3.7/dist-packages/matplotlib/spines.py'>, 'matplotlib.axes._secondary_axes': <module 'matplotlib.axes._secondary_axes' from '/usr/local/lib/python3.7/dist-packages/matplotlib/axes/_secondary_axes.py'>, 'matplotlib.projections.geo': <module 'matplotlib.projections.geo' from '/usr/local/lib/python3.7/dist-packages/matplotlib/projections/geo.py'>, 'matplotlib.projections.polar': <module 'matplotlib.projections.polar' from '/usr/local/lib/python3.7/dist-packages/matplotlib/projections/polar.py'>, 'mpl_toolkits.mplot3d': <module 'mpl_toolkits.mplot3d' from '/usr/local/lib/python3.7/dist-packages/mpl_toolkits/mplot3d/__init__.py'>, 'mpl_toolkits.mplot3d.axes3d': <module 'mpl_toolkits.mplot3d.axes3d' from '/usr/local/lib/python3.7/dist-packages/mpl_toolkits/mplot3d/axes3d.py'>, 'mpl_toolkits.mplot3d.art3d': <module 'mpl_toolkits.mplot3d.art3d' from '/usr/local/lib/python3.7/dist-packages/mpl_toolkits/mplot3d/art3d.py'>, 'mpl_toolkits.mplot3d.proj3d': <module 'mpl_toolkits.mplot3d.proj3d' from '/usr/local/lib/python3.7/dist-packages/mpl_toolkits/mplot3d/proj3d.py'>, 'mpl_toolkits.mplot3d.axis3d': <module 'mpl_toolkits.mplot3d.axis3d' from '/usr/local/lib/python3.7/dist-packages/mpl_toolkits/mplot3d/axis3d.py'>, 'ipykernel.pylab': <module 'ipykernel.pylab' from '/usr/local/lib/python3.7/dist-packages/ipykernel/pylab/__init__.py'>, 'ipykernel.pylab.backend_inline': <module 'ipykernel.pylab.backend_inline' from '/usr/local/lib/python3.7/dist-packages/ipykernel/pylab/backend_inline.py'>, 'matplotlib.backends.backend_agg': <module 'matplotlib.backends.backend_agg' from '/usr/local/lib/python3.7/dist-packages/matplotlib/backends/backend_agg.py'>, 'matplotlib.backends._backend_agg': <module 'matplotlib.backends._backend_agg' from '/usr/local/lib/python3.7/dist-packages/matplotlib/backends/_backend_agg.cpython-37m-x86_64-linux-gnu.so'>, 'PIL.Image': <module 'PIL.Image' from '/usr/local/lib/python3.7/dist-packages/PIL/Image.py'>, 'PIL.ImageMode': <module 'PIL.ImageMode' from '/usr/local/lib/python3.7/dist-packages/PIL/ImageMode.py'>, 'PIL.TiffTags': <module 'PIL.TiffTags' from '/usr/local/lib/python3.7/dist-packages/PIL/TiffTags.py'>, 'PIL._binary': <module 'PIL._binary' from '/usr/local/lib/python3.7/dist-packages/PIL/_binary.py'>, 'PIL._util': <module 'PIL._util' from '/usr/local/lib/python3.7/dist-packages/PIL/_util.py'>, 'PIL._imaging': <module 'PIL._imaging' from '/usr/local/lib/python3.7/dist-packages/PIL/_imaging.cpython-37m-x86_64-linux-gnu.so'>, 'cffi': <module 'cffi' from '/usr/local/lib/python3.7/dist-packages/cffi/__init__.py'>, 'cffi.api': <module 'cffi.api' from '/usr/local/lib/python3.7/dist-packages/cffi/api.py'>, 'cffi.lock': <module 'cffi.lock' from '/usr/local/lib/python3.7/dist-packages/cffi/lock.py'>, 'cffi.error': <module 'cffi.error' from '/usr/local/lib/python3.7/dist-packages/cffi/error.py'>, 'cffi.model': <module 'cffi.model' from '/usr/local/lib/python3.7/dist-packages/cffi/model.py'>, 'ipykernel.pylab.config': <module 'ipykernel.pylab.config' from '/usr/local/lib/python3.7/dist-packages/ipykernel/pylab/config.py'>, 'storemagic': <module 'storemagic' from '/usr/local/lib/python3.7/dist-packages/IPython/extensions/storemagic.py'>, 'google.colab._debugpy': <module 'google.colab._debugpy' from '/usr/local/lib/python3.7/dist-packages/google/colab/_debugpy.py'>, 'debugpy': <module 'debugpy' from '/usr/local/lib/python3.7/dist-packages/debugpy/__init__.py'>, 'debugpy._version': <module 'debugpy._version' from '/usr/local/lib/python3.7/dist-packages/debugpy/_version.py'>, 'debugpy.common': <module 'debugpy.common' from '/usr/local/lib/python3.7/dist-packages/debugpy/common/__init__.py'>, 'debugpy.common.compat': <module 'debugpy.common.compat' from '/usr/local/lib/python3.7/dist-packages/debugpy/common/compat.py'>, 'debugpy.common.fmt': <module 'debugpy.common.fmt' from '/usr/local/lib/python3.7/dist-packages/debugpy/common/fmt.py'>, 'debugpy.common.json': <module 'debugpy.common.json' from '/usr/local/lib/python3.7/dist-packages/debugpy/common/json.py'>, 'google.colab._debugpy_repr': <module 'google.colab._debugpy_repr' from '/usr/local/lib/python3.7/dist-packages/google/colab/_debugpy_repr.py'>, 'google.colab._variable_inspector': <module '__main__'>, 'portpicker': <module 'portpicker' from '/usr/local/lib/python3.7/dist-packages/portpicker.py'>, 'debugpy.server': <module 'debugpy.server' from '/usr/local/lib/python3.7/dist-packages/debugpy/server/__init__.py'>, 'debugpy._vendored': <module 'debugpy._vendored' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/__init__.py'>, 'debugpy._vendored._util': <module 'debugpy._vendored._util' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/_util.py'>, 'debugpy._vendored.force_pydevd': <module 'debugpy._vendored.force_pydevd' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/force_pydevd.py'>, '_pydevd_bundle': <module '_pydevd_bundle' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/__init__.py'>, '_pydevd_bundle.pydevd_constants': <module '_pydevd_bundle.pydevd_constants' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_constants.py'>, 'encodings.ascii': <module 'encodings.ascii' from '/usr/lib/python3.7/encodings/ascii.py'>, '_pydevd_bundle.pydevd_vm_type': <module '_pydevd_bundle.pydevd_vm_type' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vm_type.py'>, '_pydev_imps': <module '_pydev_imps' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydev_imps/__init__.py'>, '_pydev_imps._pydev_saved_modules': <module '_pydev_imps._pydev_saved_modules' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydev_imps/_pydev_saved_modules.py'>, 'xmlrpc': <module 'xmlrpc' from '/usr/lib/python3.7/xmlrpc/__init__.py'>, 'xmlrpc.client': <module 'xmlrpc.client' from '/usr/lib/python3.7/xmlrpc/client.py'>, 'xml.parsers': <module 'xml.parsers' from '/usr/lib/python3.7/xml/parsers/__init__.py'>, 'xml.parsers.expat': <module 'xml.parsers.expat' from '/usr/lib/python3.7/xml/parsers/expat.py'>, 'pyexpat.errors': <module 'pyexpat.errors'>, 'pyexpat.model': <module 'pyexpat.model'>, 'pyexpat': <module 'pyexpat' (built-in)>, 'xml.parsers.expat.model': <module 'pyexpat.model'>, 'xml.parsers.expat.errors': <module 'pyexpat.errors'>, 'xmlrpc.server': <module 'xmlrpc.server' from '/usr/lib/python3.7/xmlrpc/server.py'>, '_pydev_bundle': <module '_pydev_bundle' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydev_bundle/__init__.py'>, '_pydev_runfiles': <module '_pydev_runfiles' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydev_runfiles/__init__.py'>, '_pydevd_frame_eval': <module '_pydevd_frame_eval' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_frame_eval/__init__.py'>, 'pydev_ipython': <module 'pydev_ipython' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/pydev_ipython/__init__.py'>, 'pydevd_concurrency_analyser': <module 'pydevd_concurrency_analyser' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/pydevd_concurrency_analyser/__init__.py'>, 'pydevd_plugins': <module 'pydevd_plugins' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/pydevd_plugins/__init__.py'>, 'pkg_resources': <module 'pkg_resources' from '/usr/local/lib/python3.7/dist-packages/pkg_resources/__init__.py'>, 'zipfile': <module 'zipfile' from '/usr/lib/python3.7/zipfile.py'>, 'plistlib': <module 'plistlib' from '/usr/lib/python3.7/plistlib.py'>, 'pkg_resources.extern': <module 'pkg_resources.extern' from '/usr/local/lib/python3.7/dist-packages/pkg_resources/extern/__init__.py'>, 'pkg_resources._vendor': <module 'pkg_resources._vendor' from '/usr/local/lib/python3.7/dist-packages/pkg_resources/_vendor/__init__.py'>, 'pkg_resources._vendor.appdirs': <module 'pkg_resources.extern.appdirs' (<pkg_resources.extern.VendorImporter object at 0x7f53af93f310>)>, 'pkg_resources.extern.appdirs': <module 'pkg_resources.extern.appdirs' (<pkg_resources.extern.VendorImporter object at 0x7f53af93f310>)>, 'pkg_resources._vendor.packaging': <module 'pkg_resources.extern.packaging' (<pkg_resources.extern.VendorImporter object at 0x7f53af93f310>)>, 'pkg_resources._vendor.packaging.__about__': <module 'pkg_resources._vendor.packaging.__about__' from '/usr/local/lib/python3.7/dist-packages/pkg_resources/_vendor/packaging/__about__.py'>, 'pkg_resources.extern.packaging': <module 'pkg_resources.extern.packaging' (<pkg_resources.extern.VendorImporter object at 0x7f53af93f310>)>, 'pkg_resources.extern.packaging.version': <module 'pkg_resources.extern.packaging.version' from '/usr/local/lib/python3.7/dist-packages/pkg_resources/_vendor/packaging/version.py'>, 'pkg_resources.extern.packaging._structures': <module 'pkg_resources.extern.packaging._structures' from '/usr/local/lib/python3.7/dist-packages/pkg_resources/_vendor/packaging/_structures.py'>, 'pkg_resources.extern.packaging._typing': <module 'pkg_resources.extern.packaging._typing' from '/usr/local/lib/python3.7/dist-packages/pkg_resources/_vendor/packaging/_typing.py'>, 'pkg_resources.extern.packaging.specifiers': <module 'pkg_resources.extern.packaging.specifiers' from '/usr/local/lib/python3.7/dist-packages/pkg_resources/_vendor/packaging/specifiers.py'>, 'pkg_resources.extern.packaging._compat': <module 'pkg_resources.extern.packaging._compat' from '/usr/local/lib/python3.7/dist-packages/pkg_resources/_vendor/packaging/_compat.py'>, 'pkg_resources.extern.packaging.utils': <module 'pkg_resources.extern.packaging.utils' from '/usr/local/lib/python3.7/dist-packages/pkg_resources/_vendor/packaging/utils.py'>, 'pkg_resources.extern.packaging.requirements': <module 'pkg_resources.extern.packaging.requirements' from '/usr/local/lib/python3.7/dist-packages/pkg_resources/_vendor/packaging/requirements.py'>, 'pkg_resources._vendor.pyparsing': <module 'pkg_resources.extern.pyparsing' (<pkg_resources.extern.VendorImporter object at 0x7f53af93f310>)>, 'pkg_resources.extern.pyparsing': <module 'pkg_resources.extern.pyparsing' (<pkg_resources.extern.VendorImporter object at 0x7f53af93f310>)>, 'pkg_resources.extern.packaging.markers': <module 'pkg_resources.extern.packaging.markers' from '/usr/local/lib/python3.7/dist-packages/pkg_resources/_vendor/packaging/markers.py'>, 'pydevd': <module 'pydevd' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/pydevd.py'>, 'pydevd_file_utils': <module 'pydevd_file_utils' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/pydevd_file_utils.py'>, '_pydev_bundle.pydev_log': <module '_pydev_bundle.pydev_log' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydev_bundle/pydev_log.py'>, '_pydev_bundle._pydev_filesystem_encoding': <module '_pydev_bundle._pydev_filesystem_encoding' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_filesystem_encoding.py'>, '_pydevd_bundle.pydevd_comm_constants': <module '_pydevd_bundle.pydevd_comm_constants' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm_constants.py'>, '_pydev_bundle.pydev_imports': <module '_pydev_bundle.pydev_imports' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydev_bundle/pydev_imports.py'>, '_pydev_imps._pydev_execfile': <module '_pydev_imps._pydev_execfile' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydev_imps/_pydev_execfile.py'>, '_pydevd_bundle.pydevd_exec2': <module '_pydevd_bundle.pydevd_exec2' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_exec2.py'>, '_pydev_bundle.pydev_is_thread_alive': <module '_pydev_bundle.pydev_is_thread_alive' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydev_bundle/pydev_is_thread_alive.py'>, '_pydev_bundle.pydev_override': <module '_pydev_bundle.pydev_override' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydev_bundle/pydev_override.py'>, '_pydevd_bundle.pydevd_extension_utils': <module '_pydevd_bundle.pydevd_extension_utils' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_utils.py'>, 'pydevd_plugins.extensions': <module 'pydevd_plugins.extensions' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/pydevd_plugins/extensions/__init__.py'>, '_pydevd_bundle.pydevd_frame_utils': <module '_pydevd_bundle.pydevd_frame_utils' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame_utils.py'>, '_pydevd_bundle.pydevd_filtering': <module '_pydevd_bundle.pydevd_filtering' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_filtering.py'>, '_pydevd_bundle.pydevd_io': <module '_pydevd_bundle.pydevd_io' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_io.py'>, '_pydevd_bundle.pydevd_utils': <module '_pydevd_bundle.pydevd_utils' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_utils.py'>, '_pydev_bundle.pydev_console_utils': <module '_pydev_bundle.pydev_console_utils' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydev_bundle/pydev_console_utils.py'>, '_pydev_bundle._pydev_calltip_util': <module '_pydev_bundle._pydev_calltip_util' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_calltip_util.py'>, '_pydev_bundle._pydev_imports_tipper': <module '_pydev_bundle._pydev_imports_tipper' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_imports_tipper.py'>, '_pydev_bundle._pydev_tipper_common': <module '_pydev_bundle._pydev_tipper_common' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_tipper_common.py'>, '_pydevd_bundle.pydevd_vars': <module '_pydevd_bundle.pydevd_vars' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py'>, '_pydevd_bundle.pydevd_xml': <module '_pydevd_bundle.pydevd_xml' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_xml.py'>, '_pydevd_bundle.pydevd_resolver': <module '_pydevd_bundle.pydevd_resolver' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_resolver.py'>, '_pydevd_bundle.pydevd_safe_repr': <module '_pydevd_bundle.pydevd_safe_repr' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_safe_repr.py'>, '_pydevd_bundle.pydevd_extension_api': <module '_pydevd_bundle.pydevd_extension_api' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_api.py'>, '_pydevd_bundle.pydevd_thread_lifecycle': <module '_pydevd_bundle.pydevd_thread_lifecycle' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_thread_lifecycle.py'>, '_pydevd_bundle.pydevd_additional_thread_info': <module '_pydevd_bundle.pydevd_additional_thread_info' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info.py'>, '_pydevd_bundle.pydevd_cython_wrapper': <module '_pydevd_bundle.pydevd_cython_wrapper' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython_wrapper.py'>, '_pydevd_bundle.pydevd_cython': <module '_pydevd_bundle.pydevd_cython' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.cpython-37m-x86_64-linux-gnu.so'>, '_cython_0_29_21': <module '_cython_0_29_21'>, '_pydevd_bundle.pydevd_dont_trace': <module '_pydevd_bundle.pydevd_dont_trace' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace.py'>, '_pydevd_bundle.pydevd_save_locals': <module '_pydevd_bundle.pydevd_save_locals' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_save_locals.py'>, '_pydevd_bundle.pydevd_timeout': <module '_pydevd_bundle.pydevd_timeout' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_timeout.py'>, '_pydevd_bundle.pydevd_daemon_thread': <module '_pydevd_bundle.pydevd_daemon_thread' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py'>, 'pydevd_tracing': <module 'pydevd_tracing' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/pydevd_tracing.py'>, '_pydev_bundle.pydev_monkey': <module '_pydev_bundle.pydev_monkey' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey.py'>, '_pydevd_bundle.pydevd_breakpoints': <module '_pydevd_bundle.pydevd_breakpoints' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_breakpoints.py'>, '_pydevd_bundle.pydevd_import_class': <module '_pydevd_bundle.pydevd_import_class' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_import_class.py'>, '_pydevd_bundle.pydevd_defaults': <module '_pydevd_bundle.pydevd_defaults' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_defaults.py'>, '_pydevd_bundle.pydevd_custom_frames': <module '_pydevd_bundle.pydevd_custom_frames' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_custom_frames.py'>, '_pydevd_bundle.pydevd_dont_trace_files': <module '_pydevd_bundle.pydevd_dont_trace_files' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace_files.py'>, '_pydevd_bundle.pydevd_net_command_factory_xml': <module '_pydevd_bundle.pydevd_net_command_factory_xml' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_xml.py'>, '_pydevd_bundle.pydevd_net_command': <module '_pydevd_bundle.pydevd_net_command' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command.py'>, '_pydev_bundle._pydev_completer': <module '_pydev_bundle._pydev_completer' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_completer.py'>, 'pydevconsole': <module 'pydevconsole' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/pydevconsole.py'>, '_pydev_bundle.pydev_umd': <module '_pydev_bundle.pydev_umd' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydev_bundle/pydev_umd.py'>, '_pydevd_bundle.pydevd_trace_dispatch': <module '_pydevd_bundle.pydevd_trace_dispatch' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch.py'>, '_pydevd_bundle.pydevd_additional_thread_info_regular': <module '_pydevd_bundle.pydevd_additional_thread_info_regular' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info_regular.py'>, '_pydevd_bundle.pydevd_frame': <module '_pydevd_bundle.pydevd_frame' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame.py'>, '_pydevd_frame_eval.pydevd_frame_eval_main': <module '_pydevd_frame_eval.pydevd_frame_eval_main' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_main.py'>, '_pydevd_bundle.pydevd_source_mapping': <module '_pydevd_bundle.pydevd_source_mapping' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_source_mapping.py'>, 'pydevd_concurrency_analyser.pydevd_concurrency_logger': <module 'pydevd_concurrency_analyser.pydevd_concurrency_logger' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/pydevd_concurrency_analyser/pydevd_concurrency_logger.py'>, 'pydevd_concurrency_analyser.pydevd_thread_wrappers': <module 'pydevd_concurrency_analyser.pydevd_thread_wrappers' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/pydevd_concurrency_analyser/pydevd_thread_wrappers.py'>, '_pydevd_bundle.pydevd_comm': <module '_pydevd_bundle.pydevd_comm' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py'>, '_pydevd_bundle._debug_adapter': <module '_pydevd_bundle._debug_adapter' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__init__.py'>, '_pydevd_bundle._debug_adapter.pydevd_schema': <module '_pydevd_bundle._debug_adapter.pydevd_schema' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema.py'>, '_pydevd_bundle._debug_adapter.pydevd_base_schema': <module '_pydevd_bundle._debug_adapter.pydevd_base_schema' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_base_schema.py'>, '_pydevd_bundle._debug_adapter.pydevd_schema_log': <module '_pydevd_bundle._debug_adapter.pydevd_schema_log' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema_log.py'>, '_pydevd_bundle.pydevd_console': <module '_pydevd_bundle.pydevd_console' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_console.py'>, '_pydevd_bundle.pydevd_process_net_command_json': <module '_pydevd_bundle.pydevd_process_net_command_json' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command_json.py'>, '_pydevd_bundle.pydevd_api': <module '_pydevd_bundle.pydevd_api' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_api.py'>, '_pydevd_bundle.pydevd_net_command_factory_json': <module '_pydevd_bundle.pydevd_net_command_factory_json' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_json.py'>, '_pydevd_bundle.pydevd_collect_bytecode_info': <module '_pydevd_bundle.pydevd_collect_bytecode_info' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_collect_bytecode_info.py'>, '_pydevd_bundle.pydevd_json_debug_options': <module '_pydevd_bundle.pydevd_json_debug_options' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_json_debug_options.py'>, '_pydevd_bundle.pydevd_process_net_command': <module '_pydevd_bundle.pydevd_process_net_command' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command.py'>, '_pydevd_bundle.pydevd_traceproperty': <module '_pydevd_bundle.pydevd_traceproperty' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_traceproperty.py'>, '_pydevd_bundle.pydevd_suspended_frames': <module '_pydevd_bundle.pydevd_suspended_frames' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_suspended_frames.py'>, '_pydevd_bundle.pydevd_plugin_utils': <module '_pydevd_bundle.pydevd_plugin_utils' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_plugin_utils.py'>, '_pydevd_bundle.pydevd_trace_api': <module '_pydevd_bundle.pydevd_trace_api' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_api.py'>, 'pydevd_plugins.django_debug': <module 'pydevd_plugins.django_debug' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/pydevd_plugins/django_debug.py'>, 'pydevd_plugins.jinja2_debug': <module 'pydevd_plugins.jinja2_debug' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/pydevd_plugins/jinja2_debug.py'>, 'pydevd_plugins.extensions.types': <module 'pydevd_plugins.extensions.types' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/__init__.py'>, 'pydevd_plugins.extensions.types.pydevd_plugin_numpy_types': <module 'pydevd_plugins.extensions.types.pydevd_plugin_numpy_types' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_numpy_types.py'>, 'pydevd_plugins.extensions.types.pydevd_helpers': <module 'pydevd_plugins.extensions.types.pydevd_helpers' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_helpers.py'>, 'pydevd_plugins.extensions.types.pydevd_plugins_django_form_str': <module 'pydevd_plugins.extensions.types.pydevd_plugins_django_form_str' from '/usr/local/lib/python3.7/dist-packages/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugins_django_form_str.py'>, 'debugpy.server.api': <module 'debugpy.server.api' from '/usr/local/lib/python3.7/dist-packages/debugpy/server/api.py'>, 'debugpy.adapter': <module 'debugpy.adapter' from '/usr/local/lib/python3.7/dist-packages/debugpy/adapter/__init__.py'>, 'debugpy.common.log': <module 'debugpy.common.log' from '/usr/local/lib/python3.7/dist-packages/debugpy/common/log.py'>, 'debugpy.common.timestamp': <module 'debugpy.common.timestamp' from '/usr/local/lib/python3.7/dist-packages/debugpy/common/timestamp.py'>, 'debugpy.common.util': <module 'debugpy.common.util' from '/usr/local/lib/python3.7/dist-packages/debugpy/common/util.py'>, 'debugpy.common.sockets': <module 'debugpy.common.sockets' from '/usr/local/lib/python3.7/dist-packages/debugpy/common/sockets.py'>, 'encodings.hex_codec': <module 'encodings.hex_codec' from '/usr/lib/python3.7/encodings/hex_codec.py'>}\n", | |
"/content /env/python /usr/lib/python37.zip /usr/lib/python3.7 /usr/lib/python3.7/lib-dynload /usr/local/lib/python3.7/dist-packages /usr/lib/python3/dist-packages /usr/local/lib/python3.7/dist-packages/IPython/extensions /root/.ipython\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"Чтобы какие-то переменные и функции были недоступны для импорта у нас есть две опции: не включать их в `__all__`, или поставить `_` перед в начало имени." | |
], | |
"metadata": { | |
"id": "-DV8q7hKyK9w" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"_GREETINGS = 'Hello world' # при импортировании * эта переменная не будет доступна\n", | |
"\n", | |
"def some_func():\n", | |
" pass\n", | |
"\n", | |
"__all__ = ['some_func'] # будут доступны только те, что перечислены в списке" | |
], | |
"metadata": { | |
"id": "eyl5daSNyZjL" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"Пакеты это просто папки с наборами .py файлов в которых есть `__init__`.py файл, который и будет выполнен при импорте пакета." | |
], | |
"metadata": { | |
"id": "x2Oa9eNyzFJY" | |
} | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment