├── .gitignore ├── README.md ├── Week2 ├── PDFMiner │ ├── README.md │ ├── main.py │ ├── poetry.lock │ ├── pyproject.toml │ └── simple1.pdf ├── PyLyrics │ ├── README.md │ ├── main.py │ ├── poetry.lock │ └── pyproject.toml └── Streamlit │ ├── README.md │ ├── main.py │ ├── poetry.lock │ └── pyproject.toml └── Week3 ├── pipenv-demo ├── Pipfile └── Pipfile.lock └── poetry-demo ├── README.rst ├── poetry.lock ├── poetry_demo └── __init__.py ├── pyproject.toml └── tests ├── __init__.py └── test_poetry_demo.py /.gitignore: -------------------------------------------------------------------------------- 1 | Week3/venv-demo/ -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # `can python do that` 3 | 4 | Hey everyone, I wanted to start a new series in [DEV](https://dev.to/) with name can python do that. 5 | 6 | This series aims to cover python libraries which are amazing and beginner friendly. As a part of this series I will include 3 libraries every week. 7 | 8 | This repository will include 9 | - Demo Codes (if available) 10 | - Short note on the library 11 | 12 | ## Repository structure 13 | Every folder will be named with `Week `, and inside that there would be sub folders with `Library` names. 14 | For example, say `Week 2`, I discussed about *Streamlit*, *PyLyrics*, *PDFMiner* 15 | 16 | ``` 17 | can-python-do-that 18 | │ README.md 19 | | 20 | └───Streamlit 21 | │ │ main.py 22 | │ │ poetry.lock 23 | | | poetry.toml 24 | | | README.md 25 | │ │ 26 | └───PyLyrics 27 | │ │ main.py 28 | │ │ poetry.lock 29 | | | poetry.toml 30 | | | README.md 31 | │ │ 32 | └───PDFMiner 33 | │ │ main.py 34 | │ │ poetry.lock 35 | | | poetry.toml 36 | | | README.md 37 | │ │ 38 | ``` 39 | 40 | ## How to run the codes in the folder 41 | Every folder uses [poetry](https://python-poetry.org/) as packaging and dependency manager. 42 | 43 | ### Installing dependencies 44 | 45 | ```bash 46 | poetry install 47 | ``` 48 | 49 | ### Running the shell within the virtual environment 50 | ```bash 51 | poetry shell 52 | ``` 53 | ### Exiting the environment 54 | ```bash 55 | exit 56 | ``` 57 | 58 | ## Links to the Weekly Posts 59 | 60 | | Week Number | Link to the post | 61 | |-------------|------------------| 62 | | 1 | [Post](https://dev.to/gillarohith/wow-can-python-do-that-53ih) | 63 | | 2 | [Post](https://dev.to/gillarohith/wow-can-python-do-that-2-54lj) | 64 | 65 | 66 | 67 | Follow me so that you won't miss new posts under this series. 68 | 69 | 70 | Rohith Gilla's DEV Profile 71 | 72 | 73 | Peace ✌🏻 74 | 75 | Rohith Gilla 76 | 77 | P.S: Please start the project repository if you like it. 78 | [![HitCount](http://hits.dwyl.com/Rohithgillla12/can-python-do-that.svg)](http://hits.dwyl.com/Rohithgillla12/can-python-do-that) 79 | -------------------------------------------------------------------------------- /Week2/PDFMiner/README.md: -------------------------------------------------------------------------------- 1 | ## [PDFMiner](https://github.com/pdfminer/pdfminer.six) -------------------------------------------------------------------------------- /Week2/PDFMiner/main.py: -------------------------------------------------------------------------------- 1 | from io import StringIO 2 | 3 | from pdfminer.converter import TextConverter 4 | from pdfminer.layout import LAParams 5 | from pdfminer.pdfdocument import PDFDocument 6 | from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter 7 | from pdfminer.pdfpage import PDFPage 8 | from pdfminer.pdfparser import PDFParser 9 | 10 | output_string = StringIO() 11 | with open('simple1.pdf', 'rb') as in_file: 12 | parser = PDFParser(in_file) 13 | doc = PDFDocument(parser) 14 | rsrcmgr = PDFResourceManager() 15 | device = TextConverter(rsrcmgr, output_string, laparams=LAParams()) 16 | interpreter = PDFPageInterpreter(rsrcmgr, device) 17 | for page in PDFPage.create_pages(doc): 18 | interpreter.process_page(page) 19 | 20 | print(output_string.getvalue()) 21 | -------------------------------------------------------------------------------- /Week2/PDFMiner/poetry.lock: -------------------------------------------------------------------------------- 1 | [[package]] 2 | category = "dev" 3 | description = "Universal encoding detector for Python 2 and 3" 4 | marker = "python_version > \"3.0\"" 5 | name = "chardet" 6 | optional = false 7 | python-versions = "*" 8 | version = "3.0.4" 9 | 10 | [[package]] 11 | category = "dev" 12 | description = "PDF parser and analyzer" 13 | name = "pdfminer.six" 14 | optional = false 15 | python-versions = ">=3.4" 16 | version = "20200517" 17 | 18 | [package.dependencies] 19 | pycryptodome = "*" 20 | sortedcontainers = "*" 21 | 22 | [package.dependencies.chardet] 23 | python = ">=3.1" 24 | version = "*" 25 | 26 | [package.extras] 27 | dev = ["nose", "tox"] 28 | docs = ["sphinx", "sphinx-argparse"] 29 | 30 | [[package]] 31 | category = "dev" 32 | description = "Cryptographic library for Python" 33 | name = "pycryptodome" 34 | optional = false 35 | python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 36 | version = "3.9.7" 37 | 38 | [[package]] 39 | category = "dev" 40 | description = "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set" 41 | name = "sortedcontainers" 42 | optional = false 43 | python-versions = "*" 44 | version = "2.1.0" 45 | 46 | [metadata] 47 | content-hash = "12872b5cf4d53c97574b85225fba3fbc3668c4aadb76ddf309a9f4ee4df34586" 48 | python-versions = "^3.7" 49 | 50 | [metadata.files] 51 | chardet = [ 52 | {file = "chardet-3.0.4-py2.py3-none-any.whl", hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"}, 53 | {file = "chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"}, 54 | ] 55 | "pdfminer.six" = [ 56 | {file = "pdfminer.six-20200517-py3-none-any.whl", hash = "sha256:de532975eeb38248d9efc871718bd477c0e97afc22dff1f85afe926a604897ab"}, 57 | {file = "pdfminer.six-20200517.tar.gz", hash = "sha256:429a099d2ca76cedff79652e17cfc37d7751a26d50f30af0fa791a69f68a3ddc"}, 58 | ] 59 | pycryptodome = [ 60 | {file = "pycryptodome-3.9.7-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:0e10f352ccbbcb5bb2dc4ecaf106564e65702a717d72ab260f9ac4c19753cfc2"}, 61 | {file = "pycryptodome-3.9.7-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:9c739b7795ccf2ef1fdad8d44e539a39ad300ee6786e804ea7f0c6a786eb5343"}, 62 | {file = "pycryptodome-3.9.7-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9977086e0f93adb326379897437373871b80501e1d176fec63c7f46fb300c862"}, 63 | {file = "pycryptodome-3.9.7-cp27-cp27m-win32.whl", hash = "sha256:83295a3fb5cf50c48631eb5b440cb5e9832d8c14d81d1d45f4497b67a9987de8"}, 64 | {file = "pycryptodome-3.9.7-cp27-cp27m-win_amd64.whl", hash = "sha256:b1e332587b3b195542e77681389c296e1837ca01240399d88803a075447d3557"}, 65 | {file = "pycryptodome-3.9.7-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:9378c309aec1f8cd8bad361ed0816a440151b97a2a3f6ffdaba1d1a1fb76873a"}, 66 | {file = "pycryptodome-3.9.7-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:d4f94368ce2d65873a87ad867eb3bf63f4ba81eb97a9ee66d38c2b71ce5a7439"}, 67 | {file = "pycryptodome-3.9.7-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:f655addaaaa9974108d4808f4150652589cada96074c87115c52e575bfcd87d5"}, 68 | {file = "pycryptodome-3.9.7-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:9a94fca11fdc161460bd8659c15b6adef45c1b20da86402256eaf3addfaab324"}, 69 | {file = "pycryptodome-3.9.7-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:ea83bcd9d6c03248ebd46e71ac313858e0afd5aa2fa81478c0e653242f3eb476"}, 70 | {file = "pycryptodome-3.9.7-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:07024fc364869eae8d6ac0d316e089956e6aeffe42dbdcf44fe1320d96becf7f"}, 71 | {file = "pycryptodome-3.9.7-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:426c188c83c10df71f053e04b4003b1437bae5cb37606440e498b00f160d71d0"}, 72 | {file = "pycryptodome-3.9.7-cp35-cp35m-win32.whl", hash = "sha256:d61b012baa8c2b659e9890011358455c0019a4108536b811602d2f638c40802a"}, 73 | {file = "pycryptodome-3.9.7-cp35-cp35m-win_amd64.whl", hash = "sha256:1f4752186298caf2e9ff5354f2e694d607ca7342aa313a62005235d46e28cf04"}, 74 | {file = "pycryptodome-3.9.7-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:767ad0fb5d23efc36a4d5c2fc608ac603f3de028909bcf59abc943e0d0bc5a36"}, 75 | {file = "pycryptodome-3.9.7-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:2fbc472e0b567318fe2052281d5a8c0ae70099b446679815f655e9fbc18c3a65"}, 76 | {file = "pycryptodome-3.9.7-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:9230fcb5d948c3fb40049bace4d33c5d254f8232c2c0bba05d2570aea3ba4520"}, 77 | {file = "pycryptodome-3.9.7-cp36-cp36m-win32.whl", hash = "sha256:8f06556a8f7ea7b1e42eff39726bb0dca1c251205debae64e6eebea3cd7b438a"}, 78 | {file = "pycryptodome-3.9.7-cp36-cp36m-win_amd64.whl", hash = "sha256:d6e1bc5c94873bec742afe2dfadce0d20445b18e75c47afc0c115b19e5dd38dd"}, 79 | {file = "pycryptodome-3.9.7-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:3ec3dc2f80f71fd0c955ce48b81bfaf8914c6f63a41a738f28885a1c4892968a"}, 80 | {file = "pycryptodome-3.9.7-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:cff31f5a8977534f255f729d5d2467526f2b10563a30bbdade92223e0bf264bd"}, 81 | {file = "pycryptodome-3.9.7-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ed5761b37615a1f222c5345bbf45272ae2cf8c7dff88a4f53a1e9f977cbb6d95"}, 82 | {file = "pycryptodome-3.9.7-cp37-cp37m-win32.whl", hash = "sha256:f011cd0062e54658b7086a76f8cf0f4222812acc66e219e196ea2d0a8849d0ed"}, 83 | {file = "pycryptodome-3.9.7-cp37-cp37m-win_amd64.whl", hash = "sha256:626c0a1d4d83ec6303f970a17158114f75c3ba1736f7f2983f7b40a265861bd8"}, 84 | {file = "pycryptodome-3.9.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8be56bde3312e022d9d1d6afa124556460ad5c844c2fc63642f6af723c098d35"}, 85 | {file = "pycryptodome-3.9.7-cp38-cp38-manylinux1_i686.whl", hash = "sha256:c818dc1f3eace93ee50c2b6b5c2becf7c418fa5dd1ba6fc0ef7db279ea21d5e4"}, 86 | {file = "pycryptodome-3.9.7-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:09b6d6bcc01a4eb1a2b4deeff5aa602a108ec5aed8ac75ae554f97d1d7f0a5ad"}, 87 | {file = "pycryptodome-3.9.7-cp38-cp38-win32.whl", hash = "sha256:7ac729d9091ed5478af2b4a4f44f5335a98febbc008af619e4569a59fe503e40"}, 88 | {file = "pycryptodome-3.9.7-cp38-cp38-win_amd64.whl", hash = "sha256:c109a26a21f21f695d369ff9b87f5d43e0d6c768d8384e10bc74142bed2e092e"}, 89 | {file = "pycryptodome-3.9.7.tar.gz", hash = "sha256:f1add21b6d179179b3c177c33d18a2186a09cc0d3af41ff5ed3f377360b869f2"}, 90 | ] 91 | sortedcontainers = [ 92 | {file = "sortedcontainers-2.1.0-py2.py3-none-any.whl", hash = "sha256:d9e96492dd51fae31e60837736b38fe42a187b5404c16606ff7ee7cd582d4c60"}, 93 | {file = "sortedcontainers-2.1.0.tar.gz", hash = "sha256:974e9a32f56b17c1bac2aebd9dcf197f3eb9cd30553c5852a3187ad162e1a03a"}, 94 | ] 95 | -------------------------------------------------------------------------------- /Week2/PDFMiner/pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.poetry] 2 | name = "pdfminer" 3 | version = "0.1.0" 4 | description = "" 5 | authors = ["Rohithgilla12 "] 6 | 7 | [tool.poetry.dependencies] 8 | python = "^3.7" 9 | 10 | [tool.poetry.dev-dependencies] 11 | "pdfminer.six" = "^20200517" 12 | 13 | [build-system] 14 | requires = ["poetry>=0.12"] 15 | build-backend = "poetry.masonry.api" 16 | -------------------------------------------------------------------------------- /Week2/PDFMiner/simple1.pdf: -------------------------------------------------------------------------------- 1 | %PDF-1.4 2 | 1 0 obj 3 | << 4 | /Type /Catalog 5 | /Outlines 2 0 R 6 | /Pages 3 0 R 7 | >> 8 | endobj 9 | 2 0 obj 10 | << 11 | /Type /Outlines 12 | /Count 0 13 | >> 14 | endobj 15 | 3 0 obj 16 | << 17 | /Type /Pages 18 | /Kids [ 4 0 R ] 19 | /Count 1 20 | >> 21 | endobj 22 | 4 0 obj 23 | << 24 | /Type /Page 25 | /Parent 3 0 R 26 | /MediaBox [ 0 0 612 792 ] 27 | /Contents 5 0 R 28 | /Resources << 29 | /ProcSet 6 0 R 30 | /Font << /F1 7 0 R >> 31 | >> 32 | >> 33 | endobj 34 | 5 0 obj 35 | << /Length 86 >> 36 | stream 37 | BT 38 | /F1 24 Tf 39 | 100 700 Td 40 | 0 Tw 0 Tc [ (Hello ) -4166 (World) ] TJ 41 | 0 -100 Td 42 | 100 Tw 0 Tc (Hello World) Tj 43 | 0 -100 Td 44 | 100 Tw 10 Tc (Hello World) Tj 45 | 0 -100 Td 46 | 0 Tw 0 Tc [ (H) -416 (e) -416 (l) -416 (l) -416 (o) -416 ( ) -416 -4166 (W) -416 (o) -416 (r) -416 (l) -416 (d) ] TJ 47 | ET 48 | endstream 49 | endobj 50 | 6 0 obj 51 | [ /PDF /Text ] 52 | endobj 53 | 7 0 obj 54 | << 55 | /Type /Font 56 | /Subtype /Type1 57 | /Name /F1 58 | /BaseFont /Helvetica 59 | /Encoding /MacRomanEncoding 60 | >> 61 | endobj 62 | 63 | trailer 64 | << 65 | /Size 8 66 | /Root 1 0 R 67 | >> 68 | %%EOF 69 | -------------------------------------------------------------------------------- /Week2/PyLyrics/README.md: -------------------------------------------------------------------------------- 1 | ## [PyLyrics](https://pypi.org/project/PyLyrics/) -------------------------------------------------------------------------------- /Week2/PyLyrics/main.py: -------------------------------------------------------------------------------- 1 | from PyLyrics import * 2 | 3 | albums = PyLyrics.getAlbums(singer='Eminem') 4 | for a in albums: 5 | print(a) 6 | 7 | print(PyLyrics.getLyrics('Eminem', 'Venom')) 8 | -------------------------------------------------------------------------------- /Week2/PyLyrics/poetry.lock: -------------------------------------------------------------------------------- 1 | [[package]] 2 | category = "dev" 3 | description = "Screen-scraping library" 4 | name = "beautifulsoup4" 5 | optional = false 6 | python-versions = "*" 7 | version = "4.9.1" 8 | 9 | [package.dependencies] 10 | soupsieve = [">1.2", "<2.0"] 11 | 12 | [package.extras] 13 | html5lib = ["html5lib"] 14 | lxml = ["lxml"] 15 | 16 | [[package]] 17 | category = "dev" 18 | description = "Python package for providing Mozilla's CA Bundle." 19 | name = "certifi" 20 | optional = false 21 | python-versions = "*" 22 | version = "2020.4.5.1" 23 | 24 | [[package]] 25 | category = "dev" 26 | description = "Universal encoding detector for Python 2 and 3" 27 | name = "chardet" 28 | optional = false 29 | python-versions = "*" 30 | version = "3.0.4" 31 | 32 | [[package]] 33 | category = "dev" 34 | description = "Internationalized Domain Names in Applications (IDNA)" 35 | name = "idna" 36 | optional = false 37 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 38 | version = "2.9" 39 | 40 | [[package]] 41 | category = "dev" 42 | description = "Pythonic Implementation of lyrics.wikia.com" 43 | name = "pylyrics" 44 | optional = false 45 | python-versions = "*" 46 | version = "1.1.0" 47 | 48 | [package.dependencies] 49 | beautifulsoup4 = "*" 50 | requests = "*" 51 | 52 | [[package]] 53 | category = "dev" 54 | description = "Python HTTP for Humans." 55 | name = "requests" 56 | optional = false 57 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 58 | version = "2.23.0" 59 | 60 | [package.dependencies] 61 | certifi = ">=2017.4.17" 62 | chardet = ">=3.0.2,<4" 63 | idna = ">=2.5,<3" 64 | urllib3 = ">=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26" 65 | 66 | [package.extras] 67 | security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"] 68 | socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7)", "win-inet-pton"] 69 | 70 | [[package]] 71 | category = "dev" 72 | description = "A modern CSS selector implementation for Beautiful Soup." 73 | name = "soupsieve" 74 | optional = false 75 | python-versions = "*" 76 | version = "1.9.6" 77 | 78 | [[package]] 79 | category = "dev" 80 | description = "HTTP library with thread-safe connection pooling, file post, and more." 81 | name = "urllib3" 82 | optional = false 83 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" 84 | version = "1.25.9" 85 | 86 | [package.extras] 87 | brotli = ["brotlipy (>=0.6.0)"] 88 | secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "pyOpenSSL (>=0.14)", "ipaddress"] 89 | socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7,<2.0)"] 90 | 91 | [metadata] 92 | content-hash = "751ad707051c97b39365d10c6667301b3dfb3a0f7fdfee4d7454d6c69a3ba193" 93 | python-versions = "^3.7" 94 | 95 | [metadata.files] 96 | beautifulsoup4 = [ 97 | {file = "beautifulsoup4-4.9.1-py2-none-any.whl", hash = "sha256:e718f2342e2e099b640a34ab782407b7b676f47ee272d6739e60b8ea23829f2c"}, 98 | {file = "beautifulsoup4-4.9.1-py3-none-any.whl", hash = "sha256:a6237df3c32ccfaee4fd201c8f5f9d9df619b93121d01353a64a73ce8c6ef9a8"}, 99 | {file = "beautifulsoup4-4.9.1.tar.gz", hash = "sha256:73cc4d115b96f79c7d77c1c7f7a0a8d4c57860d1041df407dd1aae7f07a77fd7"}, 100 | ] 101 | certifi = [ 102 | {file = "certifi-2020.4.5.1-py2.py3-none-any.whl", hash = "sha256:1d987a998c75633c40847cc966fcf5904906c920a7f17ef374f5aa4282abd304"}, 103 | {file = "certifi-2020.4.5.1.tar.gz", hash = "sha256:51fcb31174be6e6664c5f69e3e1691a2d72a1a12e90f872cbdb1567eb47b6519"}, 104 | ] 105 | chardet = [ 106 | {file = "chardet-3.0.4-py2.py3-none-any.whl", hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"}, 107 | {file = "chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"}, 108 | ] 109 | idna = [ 110 | {file = "idna-2.9-py2.py3-none-any.whl", hash = "sha256:a068a21ceac8a4d63dbfd964670474107f541babbd2250d61922f029858365fa"}, 111 | {file = "idna-2.9.tar.gz", hash = "sha256:7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb"}, 112 | ] 113 | pylyrics = [ 114 | {file = "PyLyrics-1.1.0.zip", hash = "sha256:c5f36e8ef0ed3b487a9242ce34c19f9684e418a5bbffd5d367dc1d1604b4cd0b"}, 115 | ] 116 | requests = [ 117 | {file = "requests-2.23.0-py2.py3-none-any.whl", hash = "sha256:43999036bfa82904b6af1d99e4882b560e5e2c68e5c4b0aa03b655f3d7d73fee"}, 118 | {file = "requests-2.23.0.tar.gz", hash = "sha256:b3f43d496c6daba4493e7c431722aeb7dbc6288f52a6e04e7b6023b0247817e6"}, 119 | ] 120 | soupsieve = [ 121 | {file = "soupsieve-1.9.6-py2.py3-none-any.whl", hash = "sha256:feb1e937fa26a69e08436aad4a9037cd7e1d4c7212909502ba30701247ff8abd"}, 122 | {file = "soupsieve-1.9.6.tar.gz", hash = "sha256:7985bacc98c34923a439967c1a602dc4f1e15f923b6fcf02344184f86cc7efaa"}, 123 | ] 124 | urllib3 = [ 125 | {file = "urllib3-1.25.9-py2.py3-none-any.whl", hash = "sha256:88206b0eb87e6d677d424843ac5209e3fb9d0190d0ee169599165ec25e9d9115"}, 126 | {file = "urllib3-1.25.9.tar.gz", hash = "sha256:3018294ebefce6572a474f0604c2021e33b3fd8006ecd11d62107a5d2a963527"}, 127 | ] 128 | -------------------------------------------------------------------------------- /Week2/PyLyrics/pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.poetry] 2 | name = "pylyrics-demo" 3 | version = "0.1.0" 4 | description = "" 5 | authors = ["Rohithgilla12 "] 6 | 7 | [tool.poetry.dependencies] 8 | python = "^3.7" 9 | 10 | [tool.poetry.dev-dependencies] 11 | pylyrics = "^1.1.0" 12 | 13 | [build-system] 14 | requires = ["poetry>=0.12"] 15 | build-backend = "poetry.masonry.api" 16 | -------------------------------------------------------------------------------- /Week2/Streamlit/README.md: -------------------------------------------------------------------------------- 1 | ## [Streamlit](https://www.streamlit.io/) 2 | 3 | 4 | -------------------------------------------------------------------------------- /Week2/Streamlit/main.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | import altair as alt 3 | import streamlit as st 4 | 5 | 6 | @st.cache 7 | def get_UN_data(): 8 | AWS_BUCKET_URL = "https://streamlit-demo-data.s3-us-west-2.amazonaws.com" 9 | df = pd.read_csv(AWS_BUCKET_URL + "/agri.csv.gz") 10 | return df.set_index("Region") 11 | 12 | 13 | try: 14 | df = get_UN_data() 15 | except urllib.error.URLError as e: 16 | st.error( 17 | """ 18 | **This demo requires internet access.** 19 | 20 | Connection error: %s 21 | """ 22 | % e.reason 23 | ) 24 | 25 | 26 | countries = st.multiselect( 27 | "Choose countries", list(df.index), ["India", "United States of America"] 28 | ) 29 | if not countries: 30 | st.error("Please select at least one country.") 31 | 32 | data = df.loc[countries] 33 | data /= 1000000.0 34 | st.write("### Gross Agricultural Production ($B)", data.sort_index()) 35 | 36 | data = data.T.reset_index() 37 | data = pd.melt(data, id_vars=["index"]).rename( 38 | columns={"index": "year", "value": "Gross Agricultural Product ($B)"} 39 | ) 40 | chart = ( 41 | alt.Chart(data) 42 | .mark_area(opacity=0.3) 43 | .encode( 44 | x="year:T", 45 | y=alt.Y("Gross Agricultural Product ($B):Q", stack=None), 46 | color="Region:N", 47 | ) 48 | ) 49 | st.altair_chart(chart, use_container_width=True) 50 | -------------------------------------------------------------------------------- /Week2/Streamlit/poetry.lock: -------------------------------------------------------------------------------- 1 | [[package]] 2 | category = "dev" 3 | description = "Altair: A declarative statistical visualization library for Python." 4 | name = "altair" 5 | optional = false 6 | python-versions = ">=3.6" 7 | version = "4.1.0" 8 | 9 | [package.dependencies] 10 | entrypoints = "*" 11 | jinja2 = "*" 12 | jsonschema = "*" 13 | numpy = "*" 14 | pandas = ">=0.18" 15 | toolz = "*" 16 | 17 | [package.extras] 18 | dev = ["black", "docutils", "ipython", "flake8", "pytest", "sphinx", "m2r", "vega-datasets", "recommonmark"] 19 | 20 | [[package]] 21 | category = "dev" 22 | description = "Disable App Nap on OS X 10.9" 23 | marker = "python_version >= \"3.4\" and sys_platform == \"darwin\" or python_version >= \"3.4\" and platform_system == \"Darwin\"" 24 | name = "appnope" 25 | optional = false 26 | python-versions = "*" 27 | version = "0.1.0" 28 | 29 | [[package]] 30 | category = "dev" 31 | description = "Read/rewrite/write Python ASTs" 32 | name = "astor" 33 | optional = false 34 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" 35 | version = "0.8.1" 36 | 37 | [[package]] 38 | category = "dev" 39 | description = "Classes Without Boilerplate" 40 | name = "attrs" 41 | optional = false 42 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 43 | version = "19.3.0" 44 | 45 | [package.extras] 46 | azure-pipelines = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "pytest-azurepipelines"] 47 | dev = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "sphinx", "pre-commit"] 48 | docs = ["sphinx", "zope.interface"] 49 | tests = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"] 50 | 51 | [[package]] 52 | category = "dev" 53 | description = "Specifications for callback functions passed in to an API" 54 | marker = "python_version >= \"3.4\"" 55 | name = "backcall" 56 | optional = false 57 | python-versions = "*" 58 | version = "0.1.0" 59 | 60 | [[package]] 61 | category = "dev" 62 | description = "Base58 and Base58Check implementation" 63 | name = "base58" 64 | optional = false 65 | python-versions = ">=3.5" 66 | version = "2.0.0" 67 | 68 | [[package]] 69 | category = "dev" 70 | description = "An easy safelist-based HTML-sanitizing tool." 71 | name = "bleach" 72 | optional = false 73 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 74 | version = "3.1.5" 75 | 76 | [package.dependencies] 77 | packaging = "*" 78 | six = ">=1.9.0" 79 | webencodings = "*" 80 | 81 | [[package]] 82 | category = "dev" 83 | description = "Fast, simple object-to-object and broadcast signaling" 84 | name = "blinker" 85 | optional = false 86 | python-versions = "*" 87 | version = "1.4" 88 | 89 | [[package]] 90 | category = "dev" 91 | description = "The AWS SDK for Python" 92 | name = "boto3" 93 | optional = false 94 | python-versions = "*" 95 | version = "1.13.23" 96 | 97 | [package.dependencies] 98 | botocore = ">=1.16.23,<1.17.0" 99 | jmespath = ">=0.7.1,<1.0.0" 100 | s3transfer = ">=0.3.0,<0.4.0" 101 | 102 | [[package]] 103 | category = "dev" 104 | description = "Low-level, data-driven core of boto 3." 105 | name = "botocore" 106 | optional = false 107 | python-versions = "*" 108 | version = "1.16.23" 109 | 110 | [package.dependencies] 111 | docutils = ">=0.10,<0.16" 112 | jmespath = ">=0.7.1,<1.0.0" 113 | python-dateutil = ">=2.1,<3.0.0" 114 | 115 | [package.dependencies.urllib3] 116 | python = "<3.4.0 || >=3.5.0" 117 | version = ">=1.20,<1.26" 118 | 119 | [[package]] 120 | category = "dev" 121 | description = "Extensible memoizing collections and decorators" 122 | name = "cachetools" 123 | optional = false 124 | python-versions = "~=3.5" 125 | version = "4.1.0" 126 | 127 | [[package]] 128 | category = "dev" 129 | description = "Python package for providing Mozilla's CA Bundle." 130 | name = "certifi" 131 | optional = false 132 | python-versions = "*" 133 | version = "2020.4.5.1" 134 | 135 | [[package]] 136 | category = "dev" 137 | description = "Universal encoding detector for Python 2 and 3" 138 | name = "chardet" 139 | optional = false 140 | python-versions = "*" 141 | version = "3.0.4" 142 | 143 | [[package]] 144 | category = "dev" 145 | description = "Composable command line interface toolkit" 146 | name = "click" 147 | optional = false 148 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 149 | version = "7.1.2" 150 | 151 | [[package]] 152 | category = "dev" 153 | description = "Cross-platform colored terminal text." 154 | marker = "python_version >= \"3.4\" and sys_platform == \"win32\"" 155 | name = "colorama" 156 | optional = false 157 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 158 | version = "0.4.3" 159 | 160 | [[package]] 161 | category = "dev" 162 | description = "Decorators for Humans" 163 | name = "decorator" 164 | optional = false 165 | python-versions = ">=2.6, !=3.0.*, !=3.1.*" 166 | version = "4.4.2" 167 | 168 | [[package]] 169 | category = "dev" 170 | description = "XML bomb protection for Python stdlib modules" 171 | name = "defusedxml" 172 | optional = false 173 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 174 | version = "0.6.0" 175 | 176 | [[package]] 177 | category = "dev" 178 | description = "Docutils -- Python Documentation Utilities" 179 | name = "docutils" 180 | optional = false 181 | python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" 182 | version = "0.15.2" 183 | 184 | [[package]] 185 | category = "dev" 186 | description = "Discover and load entry points from installed packages." 187 | name = "entrypoints" 188 | optional = false 189 | python-versions = ">=2.7" 190 | version = "0.3" 191 | 192 | [[package]] 193 | category = "dev" 194 | description = "enum/enum34 compatibility package" 195 | name = "enum-compat" 196 | optional = false 197 | python-versions = "*" 198 | version = "0.0.3" 199 | 200 | [[package]] 201 | category = "dev" 202 | description = "Internationalized Domain Names in Applications (IDNA)" 203 | name = "idna" 204 | optional = false 205 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 206 | version = "2.9" 207 | 208 | [[package]] 209 | category = "dev" 210 | description = "Read metadata from Python packages" 211 | marker = "python_version < \"3.8\"" 212 | name = "importlib-metadata" 213 | optional = false 214 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" 215 | version = "1.6.0" 216 | 217 | [package.dependencies] 218 | zipp = ">=0.5" 219 | 220 | [package.extras] 221 | docs = ["sphinx", "rst.linker"] 222 | testing = ["packaging", "importlib-resources"] 223 | 224 | [[package]] 225 | category = "dev" 226 | description = "IPython Kernel for Jupyter" 227 | name = "ipykernel" 228 | optional = false 229 | python-versions = ">=3.5" 230 | version = "5.3.0" 231 | 232 | [package.dependencies] 233 | appnope = "*" 234 | ipython = ">=5.0.0" 235 | jupyter-client = "*" 236 | tornado = ">=4.2" 237 | traitlets = ">=4.1.0" 238 | 239 | [package.extras] 240 | test = ["pytest (!=5.3.4)", "pytest-cov", "flaky", "nose"] 241 | 242 | [[package]] 243 | category = "dev" 244 | description = "IPython: Productive Interactive Computing" 245 | marker = "python_version >= \"3.3\"" 246 | name = "ipython" 247 | optional = false 248 | python-versions = ">=3.6" 249 | version = "7.15.0" 250 | 251 | [package.dependencies] 252 | appnope = "*" 253 | backcall = "*" 254 | colorama = "*" 255 | decorator = "*" 256 | jedi = ">=0.10" 257 | pexpect = "*" 258 | pickleshare = "*" 259 | prompt-toolkit = ">=2.0.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.1.0" 260 | pygments = "*" 261 | setuptools = ">=18.5" 262 | traitlets = ">=4.2" 263 | 264 | [package.extras] 265 | all = ["Sphinx (>=1.3)", "ipykernel", "ipyparallel", "ipywidgets", "nbconvert", "nbformat", "nose (>=0.10.1)", "notebook", "numpy (>=1.14)", "pygments", "qtconsole", "requests", "testpath"] 266 | doc = ["Sphinx (>=1.3)"] 267 | kernel = ["ipykernel"] 268 | nbconvert = ["nbconvert"] 269 | nbformat = ["nbformat"] 270 | notebook = ["notebook", "ipywidgets"] 271 | parallel = ["ipyparallel"] 272 | qtconsole = ["qtconsole"] 273 | test = ["nose (>=0.10.1)", "requests", "testpath", "pygments", "nbformat", "ipykernel", "numpy (>=1.14)"] 274 | 275 | [[package]] 276 | category = "dev" 277 | description = "Vestigial utilities from IPython" 278 | name = "ipython-genutils" 279 | optional = false 280 | python-versions = "*" 281 | version = "0.2.0" 282 | 283 | [[package]] 284 | category = "dev" 285 | description = "IPython HTML widgets for Jupyter" 286 | name = "ipywidgets" 287 | optional = false 288 | python-versions = "*" 289 | version = "7.5.1" 290 | 291 | [package.dependencies] 292 | ipykernel = ">=4.5.1" 293 | nbformat = ">=4.2.0" 294 | traitlets = ">=4.3.1" 295 | widgetsnbextension = ">=3.5.0,<3.6.0" 296 | 297 | [package.dependencies.ipython] 298 | python = ">=3.3" 299 | version = ">=4.0.0" 300 | 301 | [package.extras] 302 | test = ["pytest (>=3.6.0)", "pytest-cov", "mock"] 303 | 304 | [[package]] 305 | category = "dev" 306 | description = "An autocompletion tool for Python that can be used for text editors." 307 | marker = "python_version >= \"3.4\"" 308 | name = "jedi" 309 | optional = false 310 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 311 | version = "0.17.0" 312 | 313 | [package.dependencies] 314 | parso = ">=0.7.0" 315 | 316 | [package.extras] 317 | qa = ["flake8 (3.7.9)"] 318 | testing = ["colorama", "docopt", "pytest (>=3.9.0,<5.0.0)"] 319 | 320 | [[package]] 321 | category = "dev" 322 | description = "A very fast and expressive template engine." 323 | name = "jinja2" 324 | optional = false 325 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 326 | version = "2.11.2" 327 | 328 | [package.dependencies] 329 | MarkupSafe = ">=0.23" 330 | 331 | [package.extras] 332 | i18n = ["Babel (>=0.8)"] 333 | 334 | [[package]] 335 | category = "dev" 336 | description = "JSON Matching Expressions" 337 | name = "jmespath" 338 | optional = false 339 | python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" 340 | version = "0.10.0" 341 | 342 | [[package]] 343 | category = "dev" 344 | description = "An implementation of JSON Schema validation for Python" 345 | name = "jsonschema" 346 | optional = false 347 | python-versions = "*" 348 | version = "3.2.0" 349 | 350 | [package.dependencies] 351 | attrs = ">=17.4.0" 352 | pyrsistent = ">=0.14.0" 353 | setuptools = "*" 354 | six = ">=1.11.0" 355 | 356 | [package.dependencies.importlib-metadata] 357 | python = "<3.8" 358 | version = "*" 359 | 360 | [package.extras] 361 | format = ["idna", "jsonpointer (>1.13)", "rfc3987", "strict-rfc3339", "webcolors"] 362 | format_nongpl = ["idna", "jsonpointer (>1.13)", "webcolors", "rfc3986-validator (>0.1.0)", "rfc3339-validator"] 363 | 364 | [[package]] 365 | category = "dev" 366 | description = "Jupyter protocol implementation and client libraries" 367 | name = "jupyter-client" 368 | optional = false 369 | python-versions = ">=3.5" 370 | version = "6.1.3" 371 | 372 | [package.dependencies] 373 | jupyter-core = ">=4.6.0" 374 | python-dateutil = ">=2.1" 375 | pyzmq = ">=13" 376 | tornado = ">=4.1" 377 | traitlets = "*" 378 | 379 | [package.extras] 380 | test = ["ipykernel", "ipython", "mock", "pytest"] 381 | 382 | [[package]] 383 | category = "dev" 384 | description = "Jupyter core package. A base package on which Jupyter projects rely." 385 | name = "jupyter-core" 386 | optional = false 387 | python-versions = "!=3.0,!=3.1,!=3.2,!=3.3,!=3.4,>=2.7" 388 | version = "4.6.3" 389 | 390 | [package.dependencies] 391 | pywin32 = ">=1.0" 392 | traitlets = "*" 393 | 394 | [[package]] 395 | category = "dev" 396 | description = "Safely add untrusted strings to HTML/XML markup." 397 | name = "markupsafe" 398 | optional = false 399 | python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" 400 | version = "1.1.1" 401 | 402 | [[package]] 403 | category = "dev" 404 | description = "The fastest markdown parser in pure Python" 405 | name = "mistune" 406 | optional = false 407 | python-versions = "*" 408 | version = "0.8.4" 409 | 410 | [[package]] 411 | category = "dev" 412 | description = "Converting Jupyter Notebooks" 413 | name = "nbconvert" 414 | optional = false 415 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 416 | version = "5.6.1" 417 | 418 | [package.dependencies] 419 | bleach = "*" 420 | defusedxml = "*" 421 | entrypoints = ">=0.2.2" 422 | jinja2 = ">=2.4" 423 | jupyter-core = "*" 424 | mistune = ">=0.8.1,<2" 425 | nbformat = ">=4.4" 426 | pandocfilters = ">=1.4.1" 427 | pygments = "*" 428 | testpath = "*" 429 | traitlets = ">=4.2" 430 | 431 | [package.extras] 432 | all = ["pytest", "pytest-cov", "ipykernel", "jupyter-client (>=5.3.1)", "ipywidgets (>=7)", "pebble", "tornado (>=4.0)", "sphinx (>=1.5.1)", "sphinx-rtd-theme", "nbsphinx (>=0.2.12)", "sphinxcontrib-github-alt", "ipython", "mock"] 433 | docs = ["sphinx (>=1.5.1)", "sphinx-rtd-theme", "nbsphinx (>=0.2.12)", "sphinxcontrib-github-alt", "ipython", "jupyter-client (>=5.3.1)"] 434 | execute = ["jupyter-client (>=5.3.1)"] 435 | serve = ["tornado (>=4.0)"] 436 | test = ["pytest", "pytest-cov", "ipykernel", "jupyter-client (>=5.3.1)", "ipywidgets (>=7)", "pebble", "mock"] 437 | 438 | [[package]] 439 | category = "dev" 440 | description = "The Jupyter Notebook format" 441 | name = "nbformat" 442 | optional = false 443 | python-versions = ">=3.5" 444 | version = "5.0.6" 445 | 446 | [package.dependencies] 447 | ipython-genutils = "*" 448 | jsonschema = ">=2.4,<2.5.0 || >2.5.0" 449 | jupyter-core = "*" 450 | traitlets = ">=4.1" 451 | 452 | [package.extras] 453 | test = ["testpath", "pytest", "pytest-cov"] 454 | 455 | [[package]] 456 | category = "dev" 457 | description = "A web-based notebook environment for interactive computing" 458 | name = "notebook" 459 | optional = false 460 | python-versions = ">=3.5" 461 | version = "6.0.3" 462 | 463 | [package.dependencies] 464 | Send2Trash = "*" 465 | ipykernel = "*" 466 | ipython-genutils = "*" 467 | jinja2 = "*" 468 | jupyter-client = ">=5.3.4" 469 | jupyter-core = ">=4.6.1" 470 | nbconvert = "*" 471 | nbformat = "*" 472 | prometheus-client = "*" 473 | pyzmq = ">=17" 474 | terminado = ">=0.8.1" 475 | tornado = ">=5.0" 476 | traitlets = ">=4.2.1" 477 | 478 | [package.extras] 479 | test = ["nose", "coverage", "requests", "nose-warnings-filters", "nbval", "nose-exclude", "selenium", "pytest", "pytest-cov", "nose-exclude"] 480 | 481 | [[package]] 482 | category = "dev" 483 | description = "NumPy is the fundamental package for array computing with Python." 484 | name = "numpy" 485 | optional = false 486 | python-versions = ">=3.5" 487 | version = "1.18.5" 488 | 489 | [[package]] 490 | category = "dev" 491 | description = "Core utilities for Python packages" 492 | name = "packaging" 493 | optional = false 494 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 495 | version = "20.4" 496 | 497 | [package.dependencies] 498 | pyparsing = ">=2.0.2" 499 | six = "*" 500 | 501 | [[package]] 502 | category = "dev" 503 | description = "Powerful data structures for data analysis, time series, and statistics" 504 | name = "pandas" 505 | optional = false 506 | python-versions = ">=3.6.1" 507 | version = "1.0.4" 508 | 509 | [package.dependencies] 510 | numpy = ">=1.13.3" 511 | python-dateutil = ">=2.6.1" 512 | pytz = ">=2017.2" 513 | 514 | [package.extras] 515 | test = ["pytest (>=4.0.2)", "pytest-xdist", "hypothesis (>=3.58)"] 516 | 517 | [[package]] 518 | category = "dev" 519 | description = "Utilities for writing pandoc filters in python" 520 | name = "pandocfilters" 521 | optional = false 522 | python-versions = "*" 523 | version = "1.4.2" 524 | 525 | [[package]] 526 | category = "dev" 527 | description = "A Python Parser" 528 | marker = "python_version >= \"3.4\"" 529 | name = "parso" 530 | optional = false 531 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 532 | version = "0.7.0" 533 | 534 | [package.extras] 535 | testing = ["docopt", "pytest (>=3.0.7)"] 536 | 537 | [[package]] 538 | category = "dev" 539 | description = "File system general utilities" 540 | name = "pathtools" 541 | optional = false 542 | python-versions = "*" 543 | version = "0.1.2" 544 | 545 | [[package]] 546 | category = "dev" 547 | description = "Pexpect allows easy control of interactive console applications." 548 | marker = "python_version >= \"3.4\" and sys_platform != \"win32\"" 549 | name = "pexpect" 550 | optional = false 551 | python-versions = "*" 552 | version = "4.8.0" 553 | 554 | [package.dependencies] 555 | ptyprocess = ">=0.5" 556 | 557 | [[package]] 558 | category = "dev" 559 | description = "Tiny 'shelve'-like database with concurrency support" 560 | marker = "python_version >= \"3.4\"" 561 | name = "pickleshare" 562 | optional = false 563 | python-versions = "*" 564 | version = "0.7.5" 565 | 566 | [[package]] 567 | category = "dev" 568 | description = "Python Imaging Library (Fork)" 569 | name = "pillow" 570 | optional = false 571 | python-versions = ">=3.5" 572 | version = "7.1.2" 573 | 574 | [[package]] 575 | category = "dev" 576 | description = "Python client for the Prometheus monitoring system." 577 | name = "prometheus-client" 578 | optional = false 579 | python-versions = "*" 580 | version = "0.8.0" 581 | 582 | [package.extras] 583 | twisted = ["twisted"] 584 | 585 | [[package]] 586 | category = "dev" 587 | description = "Library for building powerful interactive command lines in Python" 588 | marker = "python_version >= \"3.4\"" 589 | name = "prompt-toolkit" 590 | optional = false 591 | python-versions = ">=3.6.1" 592 | version = "3.0.5" 593 | 594 | [package.dependencies] 595 | wcwidth = "*" 596 | 597 | [[package]] 598 | category = "dev" 599 | description = "Protocol Buffers" 600 | name = "protobuf" 601 | optional = false 602 | python-versions = "*" 603 | version = "3.12.2" 604 | 605 | [package.dependencies] 606 | setuptools = "*" 607 | six = ">=1.9" 608 | 609 | [[package]] 610 | category = "dev" 611 | description = "Run a subprocess in a pseudo terminal" 612 | marker = "python_version >= \"3.4\" and sys_platform != \"win32\" or os_name != \"nt\"" 613 | name = "ptyprocess" 614 | optional = false 615 | python-versions = "*" 616 | version = "0.6.0" 617 | 618 | [[package]] 619 | category = "dev" 620 | description = "Widget for deck.gl maps" 621 | name = "pydeck" 622 | optional = false 623 | python-versions = "*" 624 | version = "0.4.0b1" 625 | 626 | [package.dependencies] 627 | ipywidgets = ">=7.0.0" 628 | jinja2 = ">=2.10.1" 629 | numpy = ">=1.16.4" 630 | traitlets = ">=4.3.2" 631 | 632 | [package.dependencies.ipykernel] 633 | python = ">=3.4" 634 | version = ">=5.1.2" 635 | 636 | [package.extras] 637 | testing = ["pytest"] 638 | 639 | [[package]] 640 | category = "dev" 641 | description = "Pygments is a syntax highlighting package written in Python." 642 | name = "pygments" 643 | optional = false 644 | python-versions = ">=3.5" 645 | version = "2.6.1" 646 | 647 | [[package]] 648 | category = "dev" 649 | description = "Python parsing module" 650 | name = "pyparsing" 651 | optional = false 652 | python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" 653 | version = "2.4.7" 654 | 655 | [[package]] 656 | category = "dev" 657 | description = "Persistent/Functional/Immutable data structures" 658 | name = "pyrsistent" 659 | optional = false 660 | python-versions = "*" 661 | version = "0.16.0" 662 | 663 | [package.dependencies] 664 | six = "*" 665 | 666 | [[package]] 667 | category = "dev" 668 | description = "Extensions to the standard Python datetime module" 669 | name = "python-dateutil" 670 | optional = false 671 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" 672 | version = "2.8.1" 673 | 674 | [package.dependencies] 675 | six = ">=1.5" 676 | 677 | [[package]] 678 | category = "dev" 679 | description = "World timezone definitions, modern and historical" 680 | name = "pytz" 681 | optional = false 682 | python-versions = "*" 683 | version = "2020.1" 684 | 685 | [[package]] 686 | category = "dev" 687 | description = "Python for Window Extensions" 688 | marker = "python_version >= \"3.4\" and sys_platform == \"win32\" or sys_platform == \"win32\"" 689 | name = "pywin32" 690 | optional = false 691 | python-versions = "*" 692 | version = "227" 693 | 694 | [[package]] 695 | category = "dev" 696 | description = "Python bindings for the winpty library" 697 | marker = "os_name == \"nt\"" 698 | name = "pywinpty" 699 | optional = false 700 | python-versions = "*" 701 | version = "0.5.7" 702 | 703 | [[package]] 704 | category = "dev" 705 | description = "Python bindings for 0MQ" 706 | name = "pyzmq" 707 | optional = false 708 | python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*" 709 | version = "19.0.1" 710 | 711 | [[package]] 712 | category = "dev" 713 | description = "Python HTTP for Humans." 714 | name = "requests" 715 | optional = false 716 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 717 | version = "2.23.0" 718 | 719 | [package.dependencies] 720 | certifi = ">=2017.4.17" 721 | chardet = ">=3.0.2,<4" 722 | idna = ">=2.5,<3" 723 | urllib3 = ">=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26" 724 | 725 | [package.extras] 726 | security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"] 727 | socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7)", "win-inet-pton"] 728 | 729 | [[package]] 730 | category = "dev" 731 | description = "An Amazon S3 Transfer Manager" 732 | name = "s3transfer" 733 | optional = false 734 | python-versions = "*" 735 | version = "0.3.3" 736 | 737 | [package.dependencies] 738 | botocore = ">=1.12.36,<2.0a.0" 739 | 740 | [[package]] 741 | category = "dev" 742 | description = "Send file to trash natively under Mac OS X, Windows and Linux." 743 | name = "send2trash" 744 | optional = false 745 | python-versions = "*" 746 | version = "1.5.0" 747 | 748 | [[package]] 749 | category = "dev" 750 | description = "Python 2 and 3 compatibility utilities" 751 | name = "six" 752 | optional = false 753 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" 754 | version = "1.15.0" 755 | 756 | [[package]] 757 | category = "dev" 758 | description = "Frontend library for machine learning engineers" 759 | name = "streamlit" 760 | optional = false 761 | python-versions = ">=3.6" 762 | version = "0.61.0" 763 | 764 | [package.dependencies] 765 | altair = ">=3.2.0" 766 | astor = "*" 767 | base58 = "*" 768 | blinker = "*" 769 | boto3 = "*" 770 | botocore = ">=1.13.44" 771 | cachetools = ">=4.0" 772 | click = ">=7.0" 773 | enum-compat = "*" 774 | numpy = "*" 775 | packaging = "*" 776 | pandas = ">=0.21.0" 777 | pillow = ">=6.2.0" 778 | protobuf = ">=3.6.0" 779 | pydeck = ">=0.1.dev5" 780 | python-dateutil = "*" 781 | requests = "*" 782 | toml = "*" 783 | tornado = ">=5.0,<6.0" 784 | tzlocal = "*" 785 | validators = "*" 786 | watchdog = "*" 787 | 788 | [[package]] 789 | category = "dev" 790 | description = "Terminals served to xterm.js using Tornado websockets" 791 | name = "terminado" 792 | optional = false 793 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 794 | version = "0.8.3" 795 | 796 | [package.dependencies] 797 | ptyprocess = "*" 798 | pywinpty = ">=0.5" 799 | tornado = ">=4" 800 | 801 | [[package]] 802 | category = "dev" 803 | description = "Test utilities for code working with files and commands" 804 | name = "testpath" 805 | optional = false 806 | python-versions = "*" 807 | version = "0.4.4" 808 | 809 | [package.extras] 810 | test = ["pathlib2"] 811 | 812 | [[package]] 813 | category = "dev" 814 | description = "Python Library for Tom's Obvious, Minimal Language" 815 | name = "toml" 816 | optional = false 817 | python-versions = "*" 818 | version = "0.10.1" 819 | 820 | [[package]] 821 | category = "dev" 822 | description = "List processing tools and functional utilities" 823 | name = "toolz" 824 | optional = false 825 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 826 | version = "0.10.0" 827 | 828 | [[package]] 829 | category = "dev" 830 | description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." 831 | name = "tornado" 832 | optional = false 833 | python-versions = ">= 2.7, !=3.0.*, !=3.1.*, !=3.2.*, != 3.3.*" 834 | version = "5.1.1" 835 | 836 | [[package]] 837 | category = "dev" 838 | description = "Traitlets Python config system" 839 | name = "traitlets" 840 | optional = false 841 | python-versions = "*" 842 | version = "4.3.3" 843 | 844 | [package.dependencies] 845 | decorator = "*" 846 | ipython-genutils = "*" 847 | six = "*" 848 | 849 | [package.extras] 850 | test = ["pytest", "mock"] 851 | 852 | [[package]] 853 | category = "dev" 854 | description = "tzinfo object for the local timezone" 855 | name = "tzlocal" 856 | optional = false 857 | python-versions = "*" 858 | version = "2.1" 859 | 860 | [package.dependencies] 861 | pytz = "*" 862 | 863 | [[package]] 864 | category = "dev" 865 | description = "HTTP library with thread-safe connection pooling, file post, and more." 866 | name = "urllib3" 867 | optional = false 868 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" 869 | version = "1.25.9" 870 | 871 | [package.extras] 872 | brotli = ["brotlipy (>=0.6.0)"] 873 | secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "pyOpenSSL (>=0.14)", "ipaddress"] 874 | socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7,<2.0)"] 875 | 876 | [[package]] 877 | category = "dev" 878 | description = "Python Data Validation for Humans™." 879 | name = "validators" 880 | optional = false 881 | python-versions = "*" 882 | version = "0.15.0" 883 | 884 | [package.dependencies] 885 | decorator = ">=3.4.0" 886 | six = ">=1.4.0" 887 | 888 | [package.extras] 889 | test = ["pytest (>=2.2.3)", "flake8 (>=2.4.0)", "isort (>=4.2.2)"] 890 | 891 | [[package]] 892 | category = "dev" 893 | description = "Filesystem events monitoring" 894 | name = "watchdog" 895 | optional = false 896 | python-versions = "*" 897 | version = "0.10.2" 898 | 899 | [package.dependencies] 900 | pathtools = ">=0.1.1" 901 | 902 | [package.extras] 903 | watchmedo = ["PyYAML (>=3.10)", "argh (>=0.24.1)"] 904 | 905 | [[package]] 906 | category = "dev" 907 | description = "Measures the displayed width of unicode strings in a terminal" 908 | marker = "python_version >= \"3.4\"" 909 | name = "wcwidth" 910 | optional = false 911 | python-versions = "*" 912 | version = "0.2.3" 913 | 914 | [[package]] 915 | category = "dev" 916 | description = "Character encoding aliases for legacy web content" 917 | name = "webencodings" 918 | optional = false 919 | python-versions = "*" 920 | version = "0.5.1" 921 | 922 | [[package]] 923 | category = "dev" 924 | description = "IPython HTML widgets for Jupyter" 925 | name = "widgetsnbextension" 926 | optional = false 927 | python-versions = "*" 928 | version = "3.5.1" 929 | 930 | [package.dependencies] 931 | notebook = ">=4.4.1" 932 | 933 | [[package]] 934 | category = "dev" 935 | description = "Backport of pathlib-compatible object wrapper for zip files" 936 | marker = "python_version < \"3.8\"" 937 | name = "zipp" 938 | optional = false 939 | python-versions = ">=3.6" 940 | version = "3.1.0" 941 | 942 | [package.extras] 943 | docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"] 944 | testing = ["jaraco.itertools", "func-timeout"] 945 | 946 | [metadata] 947 | content-hash = "9bd80dc47a4cfe18060ae272961a119e739bdfd643ec55ba479f8c4035d63ef7" 948 | python-versions = "^3.7" 949 | 950 | [metadata.files] 951 | altair = [ 952 | {file = "altair-4.1.0-py3-none-any.whl", hash = "sha256:7748841a1bea8354173d1140bef6d3b58bea21d201f562528e9599ea384feb7f"}, 953 | {file = "altair-4.1.0.tar.gz", hash = "sha256:3edd30d4f4bb0a37278b72578e7e60bc72045a8e6704179e2f4738e35bc12931"}, 954 | ] 955 | appnope = [ 956 | {file = "appnope-0.1.0-py2.py3-none-any.whl", hash = "sha256:5b26757dc6f79a3b7dc9fab95359328d5747fcb2409d331ea66d0272b90ab2a0"}, 957 | {file = "appnope-0.1.0.tar.gz", hash = "sha256:8b995ffe925347a2138d7ac0fe77155e4311a0ea6d6da4f5128fe4b3cbe5ed71"}, 958 | ] 959 | astor = [ 960 | {file = "astor-0.8.1-py2.py3-none-any.whl", hash = "sha256:070a54e890cefb5b3739d19f30f5a5ec840ffc9c50ffa7d23cc9fc1a38ebbfc5"}, 961 | {file = "astor-0.8.1.tar.gz", hash = "sha256:6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e"}, 962 | ] 963 | attrs = [ 964 | {file = "attrs-19.3.0-py2.py3-none-any.whl", hash = "sha256:08a96c641c3a74e44eb59afb61a24f2cb9f4d7188748e76ba4bb5edfa3cb7d1c"}, 965 | {file = "attrs-19.3.0.tar.gz", hash = "sha256:f7b7ce16570fe9965acd6d30101a28f62fb4a7f9e926b3bbc9b61f8b04247e72"}, 966 | ] 967 | backcall = [ 968 | {file = "backcall-0.1.0.tar.gz", hash = "sha256:38ecd85be2c1e78f77fd91700c76e14667dc21e2713b63876c0eb901196e01e4"}, 969 | {file = "backcall-0.1.0.zip", hash = "sha256:bbbf4b1e5cd2bdb08f915895b51081c041bac22394fdfcfdfbe9f14b77c08bf2"}, 970 | ] 971 | base58 = [ 972 | {file = "base58-2.0.0-py3-none-any.whl", hash = "sha256:4c7f5687da771b519cf86b3236250e7c3543368c576404c9fe2d992a287666e0"}, 973 | {file = "base58-2.0.0.tar.gz", hash = "sha256:c83584a8b917dc52dd634307137f2ad2721a9efb4f1de32fc7eaaaf87844177e"}, 974 | ] 975 | bleach = [ 976 | {file = "bleach-3.1.5-py2.py3-none-any.whl", hash = "sha256:2bce3d8fab545a6528c8fa5d9f9ae8ebc85a56da365c7f85180bfe96a35ef22f"}, 977 | {file = "bleach-3.1.5.tar.gz", hash = "sha256:3c4c520fdb9db59ef139915a5db79f8b51bc2a7257ea0389f30c846883430a4b"}, 978 | ] 979 | blinker = [ 980 | {file = "blinker-1.4.tar.gz", hash = "sha256:471aee25f3992bd325afa3772f1063dbdbbca947a041b8b89466dc00d606f8b6"}, 981 | ] 982 | boto3 = [ 983 | {file = "boto3-1.13.23-py2.py3-none-any.whl", hash = "sha256:e974e7a3bbdbd6a73ffc07bea5fa0c0744a5a8b87dcca94702597176e3de465e"}, 984 | {file = "boto3-1.13.23.tar.gz", hash = "sha256:bcaa88b2f81b88741c47da52f3414c876236700441df87b6198f860e6a200d6f"}, 985 | ] 986 | botocore = [ 987 | {file = "botocore-1.16.23-py2.py3-none-any.whl", hash = "sha256:7778957bdc9a25dd33bb4383ebd6d45a8570a2cbff03d1edf430fdacec2b7437"}, 988 | {file = "botocore-1.16.23.tar.gz", hash = "sha256:5831068c9b49b4c91b0733e0ec784a7733d8732359d73c67a07a0b0868433cae"}, 989 | ] 990 | cachetools = [ 991 | {file = "cachetools-4.1.0-py3-none-any.whl", hash = "sha256:de5d88f87781602201cde465d3afe837546663b168e8b39df67411b0bf10cefc"}, 992 | {file = "cachetools-4.1.0.tar.gz", hash = "sha256:1d057645db16ca7fe1f3bd953558897603d6f0b9c51ed9d11eb4d071ec4e2aab"}, 993 | ] 994 | certifi = [ 995 | {file = "certifi-2020.4.5.1-py2.py3-none-any.whl", hash = "sha256:1d987a998c75633c40847cc966fcf5904906c920a7f17ef374f5aa4282abd304"}, 996 | {file = "certifi-2020.4.5.1.tar.gz", hash = "sha256:51fcb31174be6e6664c5f69e3e1691a2d72a1a12e90f872cbdb1567eb47b6519"}, 997 | ] 998 | chardet = [ 999 | {file = "chardet-3.0.4-py2.py3-none-any.whl", hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"}, 1000 | {file = "chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"}, 1001 | ] 1002 | click = [ 1003 | {file = "click-7.1.2-py2.py3-none-any.whl", hash = "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"}, 1004 | {file = "click-7.1.2.tar.gz", hash = "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a"}, 1005 | ] 1006 | colorama = [ 1007 | {file = "colorama-0.4.3-py2.py3-none-any.whl", hash = "sha256:7d73d2a99753107a36ac6b455ee49046802e59d9d076ef8e47b61499fa29afff"}, 1008 | {file = "colorama-0.4.3.tar.gz", hash = "sha256:e96da0d330793e2cb9485e9ddfd918d456036c7149416295932478192f4436a1"}, 1009 | ] 1010 | decorator = [ 1011 | {file = "decorator-4.4.2-py2.py3-none-any.whl", hash = "sha256:41fa54c2a0cc4ba648be4fd43cff00aedf5b9465c9bf18d64325bc225f08f760"}, 1012 | {file = "decorator-4.4.2.tar.gz", hash = "sha256:e3a62f0520172440ca0dcc823749319382e377f37f140a0b99ef45fecb84bfe7"}, 1013 | ] 1014 | defusedxml = [ 1015 | {file = "defusedxml-0.6.0-py2.py3-none-any.whl", hash = "sha256:6687150770438374ab581bb7a1b327a847dd9c5749e396102de3fad4e8a3ef93"}, 1016 | {file = "defusedxml-0.6.0.tar.gz", hash = "sha256:f684034d135af4c6cbb949b8a4d2ed61634515257a67299e5f940fbaa34377f5"}, 1017 | ] 1018 | docutils = [ 1019 | {file = "docutils-0.15.2-py2-none-any.whl", hash = "sha256:9e4d7ecfc600058e07ba661411a2b7de2fd0fafa17d1a7f7361cd47b1175c827"}, 1020 | {file = "docutils-0.15.2-py3-none-any.whl", hash = "sha256:6c4f696463b79f1fb8ba0c594b63840ebd41f059e92b31957c46b74a4599b6d0"}, 1021 | {file = "docutils-0.15.2.tar.gz", hash = "sha256:a2aeea129088da402665e92e0b25b04b073c04b2dce4ab65caaa38b7ce2e1a99"}, 1022 | ] 1023 | entrypoints = [ 1024 | {file = "entrypoints-0.3-py2.py3-none-any.whl", hash = "sha256:589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19"}, 1025 | {file = "entrypoints-0.3.tar.gz", hash = "sha256:c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451"}, 1026 | ] 1027 | enum-compat = [ 1028 | {file = "enum-compat-0.0.3.tar.gz", hash = "sha256:3677daabed56a6f724451d585662253d8fb4e5569845aafa8bb0da36b1a8751e"}, 1029 | {file = "enum_compat-0.0.3-py3-none-any.whl", hash = "sha256:88091b617c7fc3bbbceae50db5958023c48dc40b50520005aa3bf27f8f7ea157"}, 1030 | ] 1031 | idna = [ 1032 | {file = "idna-2.9-py2.py3-none-any.whl", hash = "sha256:a068a21ceac8a4d63dbfd964670474107f541babbd2250d61922f029858365fa"}, 1033 | {file = "idna-2.9.tar.gz", hash = "sha256:7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb"}, 1034 | ] 1035 | importlib-metadata = [ 1036 | {file = "importlib_metadata-1.6.0-py2.py3-none-any.whl", hash = "sha256:2a688cbaa90e0cc587f1df48bdc97a6eadccdcd9c35fb3f976a09e3b5016d90f"}, 1037 | {file = "importlib_metadata-1.6.0.tar.gz", hash = "sha256:34513a8a0c4962bc66d35b359558fd8a5e10cd472d37aec5f66858addef32c1e"}, 1038 | ] 1039 | ipykernel = [ 1040 | {file = "ipykernel-5.3.0-py3-none-any.whl", hash = "sha256:a8362e3ae365023ca458effe93b026b8cdadc0b73ff3031472128dd8a2cf0289"}, 1041 | {file = "ipykernel-5.3.0.tar.gz", hash = "sha256:731adb3f2c4ebcaff52e10a855ddc87670359a89c9c784d711e62d66fccdafae"}, 1042 | ] 1043 | ipython = [ 1044 | {file = "ipython-7.15.0-py3-none-any.whl", hash = "sha256:1b85d65632211bf5d3e6f1406f3393c8c429a47d7b947b9a87812aa5bce6595c"}, 1045 | {file = "ipython-7.15.0.tar.gz", hash = "sha256:0ef1433879816a960cd3ae1ae1dc82c64732ca75cec8dab5a4e29783fb571d0e"}, 1046 | ] 1047 | ipython-genutils = [ 1048 | {file = "ipython_genutils-0.2.0-py2.py3-none-any.whl", hash = "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8"}, 1049 | {file = "ipython_genutils-0.2.0.tar.gz", hash = "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"}, 1050 | ] 1051 | ipywidgets = [ 1052 | {file = "ipywidgets-7.5.1-py2.py3-none-any.whl", hash = "sha256:13ffeca438e0c0f91ae583dc22f50379b9d6b28390ac7be8b757140e9a771516"}, 1053 | {file = "ipywidgets-7.5.1.tar.gz", hash = "sha256:e945f6e02854a74994c596d9db83444a1850c01648f1574adf144fbbabe05c97"}, 1054 | ] 1055 | jedi = [ 1056 | {file = "jedi-0.17.0-py2.py3-none-any.whl", hash = "sha256:cd60c93b71944d628ccac47df9a60fec53150de53d42dc10a7fc4b5ba6aae798"}, 1057 | {file = "jedi-0.17.0.tar.gz", hash = "sha256:df40c97641cb943661d2db4c33c2e1ff75d491189423249e989bcea4464f3030"}, 1058 | ] 1059 | jinja2 = [ 1060 | {file = "Jinja2-2.11.2-py2.py3-none-any.whl", hash = "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035"}, 1061 | {file = "Jinja2-2.11.2.tar.gz", hash = "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0"}, 1062 | ] 1063 | jmespath = [ 1064 | {file = "jmespath-0.10.0-py2.py3-none-any.whl", hash = "sha256:cdf6525904cc597730141d61b36f2e4b8ecc257c420fa2f4549bac2c2d0cb72f"}, 1065 | {file = "jmespath-0.10.0.tar.gz", hash = "sha256:b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9"}, 1066 | ] 1067 | jsonschema = [ 1068 | {file = "jsonschema-3.2.0-py2.py3-none-any.whl", hash = "sha256:4e5b3cf8216f577bee9ce139cbe72eca3ea4f292ec60928ff24758ce626cd163"}, 1069 | {file = "jsonschema-3.2.0.tar.gz", hash = "sha256:c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a"}, 1070 | ] 1071 | jupyter-client = [ 1072 | {file = "jupyter_client-6.1.3-py3-none-any.whl", hash = "sha256:cde8e83aab3ec1c614f221ae54713a9a46d3bf28292609d2db1b439bef5a8c8e"}, 1073 | {file = "jupyter_client-6.1.3.tar.gz", hash = "sha256:3a32fa4d0b16d1c626b30c3002a62dfd86d6863ed39eaba3f537fade197bb756"}, 1074 | ] 1075 | jupyter-core = [ 1076 | {file = "jupyter_core-4.6.3-py2.py3-none-any.whl", hash = "sha256:a4ee613c060fe5697d913416fc9d553599c05e4492d58fac1192c9a6844abb21"}, 1077 | {file = "jupyter_core-4.6.3.tar.gz", hash = "sha256:394fd5dd787e7c8861741880bdf8a00ce39f95de5d18e579c74b882522219e7e"}, 1078 | ] 1079 | markupsafe = [ 1080 | {file = "MarkupSafe-1.1.1-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161"}, 1081 | {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"}, 1082 | {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183"}, 1083 | {file = "MarkupSafe-1.1.1-cp27-cp27m-win32.whl", hash = "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b"}, 1084 | {file = "MarkupSafe-1.1.1-cp27-cp27m-win_amd64.whl", hash = "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e"}, 1085 | {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f"}, 1086 | {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1"}, 1087 | {file = "MarkupSafe-1.1.1-cp34-cp34m-macosx_10_6_intel.whl", hash = "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5"}, 1088 | {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1"}, 1089 | {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735"}, 1090 | {file = "MarkupSafe-1.1.1-cp34-cp34m-win32.whl", hash = "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21"}, 1091 | {file = "MarkupSafe-1.1.1-cp34-cp34m-win_amd64.whl", hash = "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235"}, 1092 | {file = "MarkupSafe-1.1.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b"}, 1093 | {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f"}, 1094 | {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905"}, 1095 | {file = "MarkupSafe-1.1.1-cp35-cp35m-win32.whl", hash = "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1"}, 1096 | {file = "MarkupSafe-1.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d"}, 1097 | {file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff"}, 1098 | {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473"}, 1099 | {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e"}, 1100 | {file = "MarkupSafe-1.1.1-cp36-cp36m-win32.whl", hash = "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66"}, 1101 | {file = "MarkupSafe-1.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5"}, 1102 | {file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d"}, 1103 | {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e"}, 1104 | {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6"}, 1105 | {file = "MarkupSafe-1.1.1-cp37-cp37m-win32.whl", hash = "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2"}, 1106 | {file = "MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c"}, 1107 | {file = "MarkupSafe-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15"}, 1108 | {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2"}, 1109 | {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42"}, 1110 | {file = "MarkupSafe-1.1.1-cp38-cp38-win32.whl", hash = "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b"}, 1111 | {file = "MarkupSafe-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"}, 1112 | {file = "MarkupSafe-1.1.1.tar.gz", hash = "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"}, 1113 | ] 1114 | mistune = [ 1115 | {file = "mistune-0.8.4-py2.py3-none-any.whl", hash = "sha256:88a1051873018da288eee8538d476dffe1262495144b33ecb586c4ab266bb8d4"}, 1116 | {file = "mistune-0.8.4.tar.gz", hash = "sha256:59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e"}, 1117 | ] 1118 | nbconvert = [ 1119 | {file = "nbconvert-5.6.1-py2.py3-none-any.whl", hash = "sha256:f0d6ec03875f96df45aa13e21fd9b8450c42d7e1830418cccc008c0df725fcee"}, 1120 | {file = "nbconvert-5.6.1.tar.gz", hash = "sha256:21fb48e700b43e82ba0e3142421a659d7739b65568cc832a13976a77be16b523"}, 1121 | ] 1122 | nbformat = [ 1123 | {file = "nbformat-5.0.6-py3-none-any.whl", hash = "sha256:276343c78a9660ab2a63c28cc33da5f7c58c092b3f3a40b6017ae2ce6689320d"}, 1124 | {file = "nbformat-5.0.6.tar.gz", hash = "sha256:049af048ed76b95c3c44043620c17e56bc001329e07f83fec4f177f0e3d7b757"}, 1125 | ] 1126 | notebook = [ 1127 | {file = "notebook-6.0.3-py3-none-any.whl", hash = "sha256:3edc616c684214292994a3af05eaea4cc043f6b4247d830f3a2f209fa7639a80"}, 1128 | {file = "notebook-6.0.3.tar.gz", hash = "sha256:47a9092975c9e7965ada00b9a20f0cf637d001db60d241d479f53c0be117ad48"}, 1129 | ] 1130 | numpy = [ 1131 | {file = "numpy-1.18.5-cp35-cp35m-macosx_10_9_intel.whl", hash = "sha256:e91d31b34fc7c2c8f756b4e902f901f856ae53a93399368d9a0dc7be17ed2ca0"}, 1132 | {file = "numpy-1.18.5-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:7d42ab8cedd175b5ebcb39b5208b25ba104842489ed59fbb29356f671ac93583"}, 1133 | {file = "numpy-1.18.5-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:a78e438db8ec26d5d9d0e584b27ef25c7afa5a182d1bf4d05e313d2d6d515271"}, 1134 | {file = "numpy-1.18.5-cp35-cp35m-win32.whl", hash = "sha256:a87f59508c2b7ceb8631c20630118cc546f1f815e034193dc72390db038a5cb3"}, 1135 | {file = "numpy-1.18.5-cp35-cp35m-win_amd64.whl", hash = "sha256:965df25449305092b23d5145b9bdaeb0149b6e41a77a7d728b1644b3c99277c1"}, 1136 | {file = "numpy-1.18.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:ac792b385d81151bae2a5a8adb2b88261ceb4976dbfaaad9ce3a200e036753dc"}, 1137 | {file = "numpy-1.18.5-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:ef627986941b5edd1ed74ba89ca43196ed197f1a206a3f18cc9faf2fb84fd675"}, 1138 | {file = "numpy-1.18.5-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:f718a7949d1c4f622ff548c572e0c03440b49b9531ff00e4ed5738b459f011e8"}, 1139 | {file = "numpy-1.18.5-cp36-cp36m-win32.whl", hash = "sha256:4064f53d4cce69e9ac613256dc2162e56f20a4e2d2086b1956dd2fcf77b7fac5"}, 1140 | {file = "numpy-1.18.5-cp36-cp36m-win_amd64.whl", hash = "sha256:b03b2c0badeb606d1232e5f78852c102c0a7989d3a534b3129e7856a52f3d161"}, 1141 | {file = "numpy-1.18.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a7acefddf994af1aeba05bbbafe4ba983a187079f125146dc5859e6d817df824"}, 1142 | {file = "numpy-1.18.5-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:cd49930af1d1e49a812d987c2620ee63965b619257bd76eaaa95870ca08837cf"}, 1143 | {file = "numpy-1.18.5-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:b39321f1a74d1f9183bf1638a745b4fd6fe80efbb1f6b32b932a588b4bc7695f"}, 1144 | {file = "numpy-1.18.5-cp37-cp37m-win32.whl", hash = "sha256:cae14a01a159b1ed91a324722d746523ec757357260c6804d11d6147a9e53e3f"}, 1145 | {file = "numpy-1.18.5-cp37-cp37m-win_amd64.whl", hash = "sha256:0172304e7d8d40e9e49553901903dc5f5a49a703363ed756796f5808a06fc233"}, 1146 | {file = "numpy-1.18.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e15b382603c58f24265c9c931c9a45eebf44fe2e6b4eaedbb0d025ab3255228b"}, 1147 | {file = "numpy-1.18.5-cp38-cp38-manylinux1_i686.whl", hash = "sha256:3676abe3d621fc467c4c1469ee11e395c82b2d6b5463a9454e37fe9da07cd0d7"}, 1148 | {file = "numpy-1.18.5-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:4674f7d27a6c1c52a4d1aa5f0881f1eff840d2206989bae6acb1c7668c02ebfb"}, 1149 | {file = "numpy-1.18.5-cp38-cp38-win32.whl", hash = "sha256:9c9d6531bc1886454f44aa8f809268bc481295cf9740827254f53c30104f074a"}, 1150 | {file = "numpy-1.18.5-cp38-cp38-win_amd64.whl", hash = "sha256:3dd6823d3e04b5f223e3e265b4a1eae15f104f4366edd409e5a5e413a98f911f"}, 1151 | {file = "numpy-1.18.5.zip", hash = "sha256:34e96e9dae65c4839bd80012023aadd6ee2ccb73ce7fdf3074c62f301e63120b"}, 1152 | ] 1153 | packaging = [ 1154 | {file = "packaging-20.4-py2.py3-none-any.whl", hash = "sha256:998416ba6962ae7fbd6596850b80e17859a5753ba17c32284f67bfff33784181"}, 1155 | {file = "packaging-20.4.tar.gz", hash = "sha256:4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d556079f8"}, 1156 | ] 1157 | pandas = [ 1158 | {file = "pandas-1.0.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:1f6fcf0404626ca0475715da045a878c7062ed39bc859afc4ccf0ba0a586a0aa"}, 1159 | {file = "pandas-1.0.4-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:bab51855f8b318ef39c2af2c11095f45a10b74cbab4e3c8199efcc5af314c648"}, 1160 | {file = "pandas-1.0.4-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:2a8b6c28607e3f3c344fe3e9b3cd76d2bf9f59bc8c0f2e582e3728b80e1786dc"}, 1161 | {file = "pandas-1.0.4-cp36-cp36m-win32.whl", hash = "sha256:034185bb615dc96d08fa13aacba8862949db19d5e7804d6ee242d086f07bcc46"}, 1162 | {file = "pandas-1.0.4-cp36-cp36m-win_amd64.whl", hash = "sha256:a647e44ba1b3344ebc5991c8aafeb7cca2b930010923657a273b41d86ae225c4"}, 1163 | {file = "pandas-1.0.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:698e26372dba93f3aeb09cd7da2bb6dd6ade248338cfe423792c07116297f8f4"}, 1164 | {file = "pandas-1.0.4-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:2bc2ff52091a6ac481cc75d514f06227dc1b10887df1eb72d535475e7b825e31"}, 1165 | {file = "pandas-1.0.4-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:519678882fd0587410ece91e3ff7f73ad6ded60f6fcb8aa7bcc85c1dc20ecac6"}, 1166 | {file = "pandas-1.0.4-cp37-cp37m-win32.whl", hash = "sha256:51e0abe6e9f5096d246232b461649b0aa627f46de8f6344597ca908f2240cbaa"}, 1167 | {file = "pandas-1.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:415e4d52fcfd68c3d8f1851cef4d947399232741cc994c8f6aa5e6a9f2e4b1d8"}, 1168 | {file = "pandas-1.0.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9b7f1933e3226cc16129cf2093338d63ace5c85db7c9588e3e1ac5c1937ad5"}, 1169 | {file = "pandas-1.0.4-cp38-cp38-manylinux1_i686.whl", hash = "sha256:982cda36d1773076a415ec62766b3c0a21cdbae84525135bdb8f460c489bb5dd"}, 1170 | {file = "pandas-1.0.4-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:29b4cfee5df2bc885607b8f016e901e63df7ffc8f00209000471778f46cc6678"}, 1171 | {file = "pandas-1.0.4-cp38-cp38-win32.whl", hash = "sha256:1fc963ba33c299973e92d45466e576d11f28611f3549469aec4a35658ef9f4cc"}, 1172 | {file = "pandas-1.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:83af85c8e539a7876d23b78433d90f6a0e8aa913e37320785cf3888c946ee874"}, 1173 | {file = "pandas-1.0.4.tar.gz", hash = "sha256:b35d625282baa7b51e82e52622c300a1ca9f786711b2af7cbe64f1e6831f4126"}, 1174 | ] 1175 | pandocfilters = [ 1176 | {file = "pandocfilters-1.4.2.tar.gz", hash = "sha256:b3dd70e169bb5449e6bc6ff96aea89c5eea8c5f6ab5e207fc2f521a2cf4a0da9"}, 1177 | ] 1178 | parso = [ 1179 | {file = "parso-0.7.0-py2.py3-none-any.whl", hash = "sha256:158c140fc04112dc45bca311633ae5033c2c2a7b732fa33d0955bad8152a8dd0"}, 1180 | {file = "parso-0.7.0.tar.gz", hash = "sha256:908e9fae2144a076d72ae4e25539143d40b8e3eafbaeae03c1bfe226f4cdf12c"}, 1181 | ] 1182 | pathtools = [ 1183 | {file = "pathtools-0.1.2.tar.gz", hash = "sha256:7c35c5421a39bb82e58018febd90e3b6e5db34c5443aaaf742b3f33d4655f1c0"}, 1184 | ] 1185 | pexpect = [ 1186 | {file = "pexpect-4.8.0-py2.py3-none-any.whl", hash = "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937"}, 1187 | {file = "pexpect-4.8.0.tar.gz", hash = "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c"}, 1188 | ] 1189 | pickleshare = [ 1190 | {file = "pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"}, 1191 | {file = "pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"}, 1192 | ] 1193 | pillow = [ 1194 | {file = "Pillow-7.1.2-cp35-cp35m-macosx_10_10_intel.whl", hash = "sha256:ae2b270f9a0b8822b98655cb3a59cdb1bd54a34807c6c56b76dd2e786c3b7db3"}, 1195 | {file = "Pillow-7.1.2-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:d23e2aa9b969cf9c26edfb4b56307792b8b374202810bd949effd1c6e11ebd6d"}, 1196 | {file = "Pillow-7.1.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:b532bcc2f008e96fd9241177ec580829dee817b090532f43e54074ecffdcd97f"}, 1197 | {file = "Pillow-7.1.2-cp35-cp35m-win32.whl", hash = "sha256:12e4bad6bddd8546a2f9771485c7e3d2b546b458ae8ff79621214119ac244523"}, 1198 | {file = "Pillow-7.1.2-cp35-cp35m-win_amd64.whl", hash = "sha256:9744350687459234867cbebfe9df8f35ef9e1538f3e729adbd8fde0761adb705"}, 1199 | {file = "Pillow-7.1.2-cp36-cp36m-macosx_10_10_x86_64.whl", hash = "sha256:f54be399340aa602066adb63a86a6a5d4f395adfdd9da2b9a0162ea808c7b276"}, 1200 | {file = "Pillow-7.1.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:1f694e28c169655c50bb89a3fa07f3b854d71eb47f50783621de813979ba87f3"}, 1201 | {file = "Pillow-7.1.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:f784aad988f12c80aacfa5b381ec21fd3f38f851720f652b9f33facc5101cf4d"}, 1202 | {file = "Pillow-7.1.2-cp36-cp36m-win32.whl", hash = "sha256:b37bb3bd35edf53125b0ff257822afa6962649995cbdfde2791ddb62b239f891"}, 1203 | {file = "Pillow-7.1.2-cp36-cp36m-win_amd64.whl", hash = "sha256:b67a6c47ed963c709ed24566daa3f95a18f07d3831334da570c71da53d97d088"}, 1204 | {file = "Pillow-7.1.2-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:eaa83729eab9c60884f362ada982d3a06beaa6cc8b084cf9f76cae7739481dfa"}, 1205 | {file = "Pillow-7.1.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:f46e0e024346e1474083c729d50de909974237c72daca05393ee32389dabe457"}, 1206 | {file = "Pillow-7.1.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:0e2a3bceb0fd4e0cb17192ae506d5f082b309ffe5fc370a5667959c9b2f85fa3"}, 1207 | {file = "Pillow-7.1.2-cp37-cp37m-win32.whl", hash = "sha256:ccc9ad2460eb5bee5642eaf75a0438d7f8887d484490d5117b98edd7f33118b7"}, 1208 | {file = "Pillow-7.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:b943e71c2065ade6fef223358e56c167fc6ce31c50bc7a02dd5c17ee4338e8ac"}, 1209 | {file = "Pillow-7.1.2-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:04766c4930c174b46fd72d450674612ab44cca977ebbcc2dde722c6933290107"}, 1210 | {file = "Pillow-7.1.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:f455efb7a98557412dc6f8e463c1faf1f1911ec2432059fa3e582b6000fc90e2"}, 1211 | {file = "Pillow-7.1.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:ee94fce8d003ac9fd206496f2707efe9eadcb278d94c271f129ab36aa7181344"}, 1212 | {file = "Pillow-7.1.2-cp38-cp38-win32.whl", hash = "sha256:4b02b9c27fad2054932e89f39703646d0c543f21d3cc5b8e05434215121c28cd"}, 1213 | {file = "Pillow-7.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:3d25dd8d688f7318dca6d8cd4f962a360ee40346c15893ae3b95c061cdbc4079"}, 1214 | {file = "Pillow-7.1.2-pp373-pypy36_pp73-win32.whl", hash = "sha256:0f01e63c34f0e1e2580cc0b24e86a5ccbbfa8830909a52ee17624c4193224cd9"}, 1215 | {file = "Pillow-7.1.2-py3.8-macosx-10.9-x86_64.egg", hash = "sha256:70e3e0d99a0dcda66283a185f80697a9b08806963c6149c8e6c5f452b2aa59c0"}, 1216 | {file = "Pillow-7.1.2.tar.gz", hash = "sha256:a0b49960110bc6ff5fead46013bcb8825d101026d466f3a4de3476defe0fb0dd"}, 1217 | ] 1218 | prometheus-client = [ 1219 | {file = "prometheus_client-0.8.0-py2.py3-none-any.whl", hash = "sha256:983c7ac4b47478720db338f1491ef67a100b474e3bc7dafcbaefb7d0b8f9b01c"}, 1220 | {file = "prometheus_client-0.8.0.tar.gz", hash = "sha256:c6e6b706833a6bd1fd51711299edee907857be10ece535126a158f911ee80915"}, 1221 | ] 1222 | prompt-toolkit = [ 1223 | {file = "prompt_toolkit-3.0.5-py3-none-any.whl", hash = "sha256:df7e9e63aea609b1da3a65641ceaf5bc7d05e0a04de5bd45d05dbeffbabf9e04"}, 1224 | {file = "prompt_toolkit-3.0.5.tar.gz", hash = "sha256:563d1a4140b63ff9dd587bda9557cffb2fe73650205ab6f4383092fb882e7dc8"}, 1225 | ] 1226 | protobuf = [ 1227 | {file = "protobuf-3.12.2-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:e1464a4a2cf12f58f662c8e6421772c07947266293fb701cb39cd9c1e183f63c"}, 1228 | {file = "protobuf-3.12.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:6f349adabf1c004aba53f7b4633459f8ca8a09654bf7e69b509c95a454755776"}, 1229 | {file = "protobuf-3.12.2-cp35-cp35m-macosx_10_9_intel.whl", hash = "sha256:be04fe14ceed7f8641e30f36077c1a654ff6f17d0c7a5283b699d057d150d82a"}, 1230 | {file = "protobuf-3.12.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:f4b73736108a416c76c17a8a09bc73af3d91edaa26c682aaa460ef91a47168d3"}, 1231 | {file = "protobuf-3.12.2-cp35-cp35m-win32.whl", hash = "sha256:5524c7020eb1fb7319472cb75c4c3206ef18b34d6034d2ee420a60f99cddeb07"}, 1232 | {file = "protobuf-3.12.2-cp35-cp35m-win_amd64.whl", hash = "sha256:bff02030bab8b969f4de597543e55bd05e968567acb25c0a87495a31eb09e925"}, 1233 | {file = "protobuf-3.12.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:c9ca9f76805e5a637605f171f6c4772fc4a81eced4e2f708f79c75166a2c99ea"}, 1234 | {file = "protobuf-3.12.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:304e08440c4a41a0f3592d2a38934aad6919d692bb0edfb355548786728f9a5e"}, 1235 | {file = "protobuf-3.12.2-cp36-cp36m-win32.whl", hash = "sha256:b5a114ea9b7fc90c2cc4867a866512672a47f66b154c6d7ee7e48ddb68b68122"}, 1236 | {file = "protobuf-3.12.2-cp36-cp36m-win_amd64.whl", hash = "sha256:85b94d2653b0fdf6d879e39d51018bf5ccd86c81c04e18a98e9888694b98226f"}, 1237 | {file = "protobuf-3.12.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a7ab28a8f1f043c58d157bceb64f80e4d2f7f1b934bc7ff5e7f7a55a337ea8b0"}, 1238 | {file = "protobuf-3.12.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:eafe9fa19fcefef424ee089fb01ac7177ff3691af7cc2ae8791ae523eb6ca907"}, 1239 | {file = "protobuf-3.12.2-cp37-cp37m-win32.whl", hash = "sha256:612bc97e42b22af10ba25e4140963fbaa4c5181487d163f4eb55b0b15b3dfcd2"}, 1240 | {file = "protobuf-3.12.2-cp37-cp37m-win_amd64.whl", hash = "sha256:e72736dd822748b0721f41f9aaaf6a5b6d5cfc78f6c8690263aef8bba4457f0e"}, 1241 | {file = "protobuf-3.12.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:87535dc2d2ef007b9d44e309d2b8ea27a03d2fa09556a72364d706fcb7090828"}, 1242 | {file = "protobuf-3.12.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:50b5fee674878b14baea73b4568dc478c46a31dd50157a5b5d2f71138243b1a9"}, 1243 | {file = "protobuf-3.12.2-py2.py3-none-any.whl", hash = "sha256:a96f8fc625e9ff568838e556f6f6ae8eca8b4837cdfb3f90efcb7c00e342a2eb"}, 1244 | {file = "protobuf-3.12.2.tar.gz", hash = "sha256:49ef8ab4c27812a89a76fa894fe7a08f42f2147078392c0dee51d4a444ef6df5"}, 1245 | ] 1246 | ptyprocess = [ 1247 | {file = "ptyprocess-0.6.0-py2.py3-none-any.whl", hash = "sha256:d7cc528d76e76342423ca640335bd3633420dc1366f258cb31d05e865ef5ca1f"}, 1248 | {file = "ptyprocess-0.6.0.tar.gz", hash = "sha256:923f299cc5ad920c68f2bc0bc98b75b9f838b93b599941a6b63ddbc2476394c0"}, 1249 | ] 1250 | pydeck = [ 1251 | {file = "pydeck-0.4.0b1-py2.py3-none-any.whl", hash = "sha256:25918a3659c31bb5e499421305447651393d3d7be8f0b7c5df5b15155b99d25e"}, 1252 | {file = "pydeck-0.4.0b1.tar.gz", hash = "sha256:92dc57ebd2a0a3ff09a71d05855ea680400f16edf7b1acbe53a5890a95c89019"}, 1253 | ] 1254 | pygments = [ 1255 | {file = "Pygments-2.6.1-py3-none-any.whl", hash = "sha256:ff7a40b4860b727ab48fad6360eb351cc1b33cbf9b15a0f689ca5353e9463324"}, 1256 | {file = "Pygments-2.6.1.tar.gz", hash = "sha256:647344a061c249a3b74e230c739f434d7ea4d8b1d5f3721bc0f3558049b38f44"}, 1257 | ] 1258 | pyparsing = [ 1259 | {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"}, 1260 | {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, 1261 | ] 1262 | pyrsistent = [ 1263 | {file = "pyrsistent-0.16.0.tar.gz", hash = "sha256:28669905fe725965daa16184933676547c5bb40a5153055a8dee2a4bd7933ad3"}, 1264 | ] 1265 | python-dateutil = [ 1266 | {file = "python-dateutil-2.8.1.tar.gz", hash = "sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c"}, 1267 | {file = "python_dateutil-2.8.1-py2.py3-none-any.whl", hash = "sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a"}, 1268 | ] 1269 | pytz = [ 1270 | {file = "pytz-2020.1-py2.py3-none-any.whl", hash = "sha256:a494d53b6d39c3c6e44c3bec237336e14305e4f29bbf800b599253057fbb79ed"}, 1271 | {file = "pytz-2020.1.tar.gz", hash = "sha256:c35965d010ce31b23eeb663ed3cc8c906275d6be1a34393a1d73a41febf4a048"}, 1272 | ] 1273 | pywin32 = [ 1274 | {file = "pywin32-227-cp27-cp27m-win32.whl", hash = "sha256:371fcc39416d736401f0274dd64c2302728c9e034808e37381b5e1b22be4a6b0"}, 1275 | {file = "pywin32-227-cp27-cp27m-win_amd64.whl", hash = "sha256:4cdad3e84191194ea6d0dd1b1b9bdda574ff563177d2adf2b4efec2a244fa116"}, 1276 | {file = "pywin32-227-cp35-cp35m-win32.whl", hash = "sha256:f4c5be1a293bae0076d93c88f37ee8da68136744588bc5e2be2f299a34ceb7aa"}, 1277 | {file = "pywin32-227-cp35-cp35m-win_amd64.whl", hash = "sha256:a929a4af626e530383a579431b70e512e736e9588106715215bf685a3ea508d4"}, 1278 | {file = "pywin32-227-cp36-cp36m-win32.whl", hash = "sha256:300a2db938e98c3e7e2093e4491439e62287d0d493fe07cce110db070b54c0be"}, 1279 | {file = "pywin32-227-cp36-cp36m-win_amd64.whl", hash = "sha256:9b31e009564fb95db160f154e2aa195ed66bcc4c058ed72850d047141b36f3a2"}, 1280 | {file = "pywin32-227-cp37-cp37m-win32.whl", hash = "sha256:47a3c7551376a865dd8d095a98deba954a98f326c6fe3c72d8726ca6e6b15507"}, 1281 | {file = "pywin32-227-cp37-cp37m-win_amd64.whl", hash = "sha256:31f88a89139cb2adc40f8f0e65ee56a8c585f629974f9e07622ba80199057511"}, 1282 | {file = "pywin32-227-cp38-cp38-win32.whl", hash = "sha256:7f18199fbf29ca99dff10e1f09451582ae9e372a892ff03a28528a24d55875bc"}, 1283 | {file = "pywin32-227-cp38-cp38-win_amd64.whl", hash = "sha256:7c1ae32c489dc012930787f06244426f8356e129184a02c25aef163917ce158e"}, 1284 | {file = "pywin32-227-cp39-cp39-win32.whl", hash = "sha256:c054c52ba46e7eb6b7d7dfae4dbd987a1bb48ee86debe3f245a2884ece46e295"}, 1285 | {file = "pywin32-227-cp39-cp39-win_amd64.whl", hash = "sha256:f27cec5e7f588c3d1051651830ecc00294f90728d19c3bf6916e6dba93ea357c"}, 1286 | ] 1287 | pywinpty = [ 1288 | {file = "pywinpty-0.5.7-cp27-cp27m-win32.whl", hash = "sha256:b358cb552c0f6baf790de375fab96524a0498c9df83489b8c23f7f08795e966b"}, 1289 | {file = "pywinpty-0.5.7-cp27-cp27m-win_amd64.whl", hash = "sha256:1e525a4de05e72016a7af27836d512db67d06a015aeaf2fa0180f8e6a039b3c2"}, 1290 | {file = "pywinpty-0.5.7-cp35-cp35m-win32.whl", hash = "sha256:2740eeeb59297593a0d3f762269b01d0285c1b829d6827445fcd348fb47f7e70"}, 1291 | {file = "pywinpty-0.5.7-cp35-cp35m-win_amd64.whl", hash = "sha256:33df97f79843b2b8b8bc5c7aaf54adec08cc1bae94ee99dfb1a93c7a67704d95"}, 1292 | {file = "pywinpty-0.5.7-cp36-cp36m-win32.whl", hash = "sha256:e854211df55d107f0edfda8a80b39dfc87015bef52a8fe6594eb379240d81df2"}, 1293 | {file = "pywinpty-0.5.7-cp36-cp36m-win_amd64.whl", hash = "sha256:dbd838de92de1d4ebf0dce9d4d5e4fc38d0b7b1de837947a18b57a882f219139"}, 1294 | {file = "pywinpty-0.5.7-cp37-cp37m-win32.whl", hash = "sha256:5fb2c6c6819491b216f78acc2c521b9df21e0f53b9a399d58a5c151a3c4e2a2d"}, 1295 | {file = "pywinpty-0.5.7-cp37-cp37m-win_amd64.whl", hash = "sha256:dd22c8efacf600730abe4a46c1388355ce0d4ab75dc79b15d23a7bd87bf05b48"}, 1296 | {file = "pywinpty-0.5.7-cp38-cp38-win_amd64.whl", hash = "sha256:8fc5019ff3efb4f13708bd3b5ad327589c1a554cb516d792527361525a7cb78c"}, 1297 | {file = "pywinpty-0.5.7.tar.gz", hash = "sha256:2d7e9c881638a72ffdca3f5417dd1563b60f603e1b43e5895674c2a1b01f95a0"}, 1298 | ] 1299 | pyzmq = [ 1300 | {file = "pyzmq-19.0.1-cp27-cp27m-macosx_10_9_intel.whl", hash = "sha256:58688a2dfa044fad608a8e70ba8d019d0b872ec2acd75b7b5e37da8905605891"}, 1301 | {file = "pyzmq-19.0.1-cp27-cp27m-win32.whl", hash = "sha256:87c78f6936e2654397ca2979c1d323ee4a889eef536cc77a938c6b5be33351a7"}, 1302 | {file = "pyzmq-19.0.1-cp27-cp27m-win_amd64.whl", hash = "sha256:97b6255ae77328d0e80593681826a0479cb7bac0ba8251b4dd882f5145a2293a"}, 1303 | {file = "pyzmq-19.0.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:15b4cb21118f4589c4db8be4ac12b21c8b4d0d42b3ee435d47f686c32fe2e91f"}, 1304 | {file = "pyzmq-19.0.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:931339ac2000d12fe212e64f98ce291e81a7ec6c73b125f17cf08415b753c087"}, 1305 | {file = "pyzmq-19.0.1-cp35-cp35m-macosx_10_9_intel.whl", hash = "sha256:2a88b8fabd9cc35bd59194a7723f3122166811ece8b74018147a4ed8489e6421"}, 1306 | {file = "pyzmq-19.0.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:bafd651b557dd81d89bd5f9c678872f3e7b7255c1c751b78d520df2caac80230"}, 1307 | {file = "pyzmq-19.0.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:8952f6ba6ae598e792703f3134af5a01af8f5c7cf07e9a148f05a12b02412cea"}, 1308 | {file = "pyzmq-19.0.1-cp35-cp35m-win32.whl", hash = "sha256:54aa24fd60c4262286fc64ca632f9e747c7cc3a3a1144827490e1dc9b8a3a960"}, 1309 | {file = "pyzmq-19.0.1-cp35-cp35m-win_amd64.whl", hash = "sha256:dcbc3f30c11c60d709c30a213dc56e88ac016fe76ac6768e64717bd976072566"}, 1310 | {file = "pyzmq-19.0.1-cp36-cp36m-macosx_10_9_intel.whl", hash = "sha256:6ca519309703e95d55965735a667809bbb65f52beda2fdb6312385d3e7a6d234"}, 1311 | {file = "pyzmq-19.0.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:4ee0bfd82077a3ff11c985369529b12853a4064320523f8e5079b630f9551448"}, 1312 | {file = "pyzmq-19.0.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:ba6f24431b569aec674ede49cad197cad59571c12deed6ad8e3c596da8288217"}, 1313 | {file = "pyzmq-19.0.1-cp36-cp36m-win32.whl", hash = "sha256:956775444d01331c7eb412c5fb9bb62130dfaac77e09f32764ea1865234e2ca9"}, 1314 | {file = "pyzmq-19.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b08780e3a55215873b3b8e6e7ca8987f14c902a24b6ac081b344fd430d6ca7cd"}, 1315 | {file = "pyzmq-19.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:21f7d91f3536f480cb2c10d0756bfa717927090b7fb863e6323f766e5461ee1c"}, 1316 | {file = "pyzmq-19.0.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:bfff5ffff051f5aa47ba3b379d87bd051c3196b0c8a603e8b7ed68a6b4f217ec"}, 1317 | {file = "pyzmq-19.0.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:07fb8fe6826a229dada876956590135871de60dbc7de5a18c3bcce2ed1f03c98"}, 1318 | {file = "pyzmq-19.0.1-cp37-cp37m-win32.whl", hash = "sha256:342fb8a1dddc569bc361387782e8088071593e7eaf3e3ecf7d6bd4976edff112"}, 1319 | {file = "pyzmq-19.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:faee2604f279d31312bc455f3d024f160b6168b9c1dde22bf62d8c88a4deca8e"}, 1320 | {file = "pyzmq-19.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5b9d21fc56c8aacd2e6d14738021a9d64f3f69b30578a99325a728e38a349f85"}, 1321 | {file = "pyzmq-19.0.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:af0c02cf49f4f9eedf38edb4f3b6bb621d83026e7e5d76eb5526cc5333782fd6"}, 1322 | {file = "pyzmq-19.0.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:5f1f2eb22aab606f808163eb1d537ac9a0ba4283fbeb7a62eb48d9103cf015c2"}, 1323 | {file = "pyzmq-19.0.1-cp38-cp38-win32.whl", hash = "sha256:f9d7e742fb0196992477415bb34366c12e9bb9a0699b8b3f221ff93b213d7bec"}, 1324 | {file = "pyzmq-19.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:5b99c2ae8089ef50223c28bac57510c163bfdff158c9e90764f812b94e69a0e6"}, 1325 | {file = "pyzmq-19.0.1-pp27-pypy_73-macosx_10_9_x86_64.whl", hash = "sha256:cf5d689ba9513b9753959164cf500079383bc18859f58bf8ce06d8d4bef2b054"}, 1326 | {file = "pyzmq-19.0.1-pp36-pypy36_pp73-macosx_10_9_x86_64.whl", hash = "sha256:aaa8b40b676576fd7806839a5de8e6d5d1b74981e6376d862af6c117af2a3c10"}, 1327 | {file = "pyzmq-19.0.1.tar.gz", hash = "sha256:13a5638ab24d628a6ade8f794195e1a1acd573496c3b85af2f1183603b7bf5e0"}, 1328 | ] 1329 | requests = [ 1330 | {file = "requests-2.23.0-py2.py3-none-any.whl", hash = "sha256:43999036bfa82904b6af1d99e4882b560e5e2c68e5c4b0aa03b655f3d7d73fee"}, 1331 | {file = "requests-2.23.0.tar.gz", hash = "sha256:b3f43d496c6daba4493e7c431722aeb7dbc6288f52a6e04e7b6023b0247817e6"}, 1332 | ] 1333 | s3transfer = [ 1334 | {file = "s3transfer-0.3.3-py2.py3-none-any.whl", hash = "sha256:2482b4259524933a022d59da830f51bd746db62f047d6eb213f2f8855dcb8a13"}, 1335 | {file = "s3transfer-0.3.3.tar.gz", hash = "sha256:921a37e2aefc64145e7b73d50c71bb4f26f46e4c9f414dc648c6245ff92cf7db"}, 1336 | ] 1337 | send2trash = [ 1338 | {file = "Send2Trash-1.5.0-py3-none-any.whl", hash = "sha256:f1691922577b6fa12821234aeb57599d887c4900b9ca537948d2dac34aea888b"}, 1339 | {file = "Send2Trash-1.5.0.tar.gz", hash = "sha256:60001cc07d707fe247c94f74ca6ac0d3255aabcb930529690897ca2a39db28b2"}, 1340 | ] 1341 | six = [ 1342 | {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, 1343 | {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, 1344 | ] 1345 | streamlit = [ 1346 | {file = "streamlit-0.61.0-py2.py3-none-any.whl", hash = "sha256:81cd72bed91501b36a0f5f4ac60f6f78c43912eef84128c985e9cc17e1dfd343"}, 1347 | ] 1348 | terminado = [ 1349 | {file = "terminado-0.8.3-py2.py3-none-any.whl", hash = "sha256:a43dcb3e353bc680dd0783b1d9c3fc28d529f190bc54ba9a229f72fe6e7a54d7"}, 1350 | {file = "terminado-0.8.3.tar.gz", hash = "sha256:4804a774f802306a7d9af7322193c5390f1da0abb429e082a10ef1d46e6fb2c2"}, 1351 | ] 1352 | testpath = [ 1353 | {file = "testpath-0.4.4-py2.py3-none-any.whl", hash = "sha256:bfcf9411ef4bf3db7579063e0546938b1edda3d69f4e1fb8756991f5951f85d4"}, 1354 | {file = "testpath-0.4.4.tar.gz", hash = "sha256:60e0a3261c149755f4399a1fff7d37523179a70fdc3abdf78de9fc2604aeec7e"}, 1355 | ] 1356 | toml = [ 1357 | {file = "toml-0.10.1-py2.py3-none-any.whl", hash = "sha256:bda89d5935c2eac546d648028b9901107a595863cb36bae0c73ac804a9b4ce88"}, 1358 | {file = "toml-0.10.1.tar.gz", hash = "sha256:926b612be1e5ce0634a2ca03470f95169cf16f939018233a670519cb4ac58b0f"}, 1359 | ] 1360 | toolz = [ 1361 | {file = "toolz-0.10.0.tar.gz", hash = "sha256:08fdd5ef7c96480ad11c12d472de21acd32359996f69a5259299b540feba4560"}, 1362 | ] 1363 | tornado = [ 1364 | {file = "tornado-5.1.1-cp35-cp35m-win32.whl", hash = "sha256:732e836008c708de2e89a31cb2fa6c0e5a70cb60492bee6f1ea1047500feaf7f"}, 1365 | {file = "tornado-5.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:0662d28b1ca9f67108c7e3b77afabfb9c7e87bde174fbda78186ecedc2499a9d"}, 1366 | {file = "tornado-5.1.1-cp36-cp36m-win32.whl", hash = "sha256:8154ec22c450df4e06b35f131adc4f2f3a12ec85981a203301d310abf580500f"}, 1367 | {file = "tornado-5.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:d4b3e5329f572f055b587efc57d29bd051589fb5a43ec8898c77a47ec2fa2bbb"}, 1368 | {file = "tornado-5.1.1-cp37-cp37m-win32.whl", hash = "sha256:e5f2585afccbff22390cddac29849df463b252b711aa2ce7c5f3f342a5b3b444"}, 1369 | {file = "tornado-5.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:8e9d728c4579682e837c92fdd98036bd5cdefa1da2aaf6acf26947e6dd0c01c5"}, 1370 | {file = "tornado-5.1.1.tar.gz", hash = "sha256:4e5158d97583502a7e2739951553cbd88a72076f152b4b11b64b9a10c4c49409"}, 1371 | ] 1372 | traitlets = [ 1373 | {file = "traitlets-4.3.3-py2.py3-none-any.whl", hash = "sha256:70b4c6a1d9019d7b4f6846832288f86998aa3b9207c6821f3578a6a6a467fe44"}, 1374 | {file = "traitlets-4.3.3.tar.gz", hash = "sha256:d023ee369ddd2763310e4c3eae1ff649689440d4ae59d7485eb4cfbbe3e359f7"}, 1375 | ] 1376 | tzlocal = [ 1377 | {file = "tzlocal-2.1-py2.py3-none-any.whl", hash = "sha256:e2cb6c6b5b604af38597403e9852872d7f534962ae2954c7f35efcb1ccacf4a4"}, 1378 | {file = "tzlocal-2.1.tar.gz", hash = "sha256:643c97c5294aedc737780a49d9df30889321cbe1204eac2c2ec6134035a92e44"}, 1379 | ] 1380 | urllib3 = [ 1381 | {file = "urllib3-1.25.9-py2.py3-none-any.whl", hash = "sha256:88206b0eb87e6d677d424843ac5209e3fb9d0190d0ee169599165ec25e9d9115"}, 1382 | {file = "urllib3-1.25.9.tar.gz", hash = "sha256:3018294ebefce6572a474f0604c2021e33b3fd8006ecd11d62107a5d2a963527"}, 1383 | ] 1384 | validators = [ 1385 | {file = "validators-0.15.0.tar.gz", hash = "sha256:31e8bb01b48b48940a021b8a9576b840f98fa06b91762ef921d02cb96d38727a"}, 1386 | ] 1387 | watchdog = [ 1388 | {file = "watchdog-0.10.2.tar.gz", hash = "sha256:c560efb643faed5ef28784b2245cf8874f939569717a4a12826a173ac644456b"}, 1389 | ] 1390 | wcwidth = [ 1391 | {file = "wcwidth-0.2.3-py2.py3-none-any.whl", hash = "sha256:980fbf4f3c196c0f329cdcd1e84c554d6a211f18e252e525a0cf4223154a41d6"}, 1392 | {file = "wcwidth-0.2.3.tar.gz", hash = "sha256:edbc2b718b4db6cdf393eefe3a420183947d6aa312505ce6754516f458ff8830"}, 1393 | ] 1394 | webencodings = [ 1395 | {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, 1396 | {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, 1397 | ] 1398 | widgetsnbextension = [ 1399 | {file = "widgetsnbextension-3.5.1-py2.py3-none-any.whl", hash = "sha256:bd314f8ceb488571a5ffea6cc5b9fc6cba0adaf88a9d2386b93a489751938bcd"}, 1400 | {file = "widgetsnbextension-3.5.1.tar.gz", hash = "sha256:079f87d87270bce047512400efd70238820751a11d2d8cb137a5a5bdbaf255c7"}, 1401 | ] 1402 | zipp = [ 1403 | {file = "zipp-3.1.0-py3-none-any.whl", hash = "sha256:aa36550ff0c0b7ef7fa639055d797116ee891440eac1a56f378e2d3179e0320b"}, 1404 | {file = "zipp-3.1.0.tar.gz", hash = "sha256:c599e4d75c98f6798c509911d08a22e6c021d074469042177c8c86fb92eefd96"}, 1405 | ] 1406 | -------------------------------------------------------------------------------- /Week2/Streamlit/pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.poetry] 2 | name = "streamlit-demo" 3 | version = "0.1.0" 4 | description = "" 5 | authors = ["Rohithgilla12 "] 6 | 7 | [tool.poetry.dependencies] 8 | python = "^3.7" 9 | 10 | [tool.poetry.dev-dependencies] 11 | streamlit = "^0.61.0" 12 | 13 | [build-system] 14 | requires = ["poetry>=0.12"] 15 | build-backend = "poetry.masonry.api" 16 | -------------------------------------------------------------------------------- /Week3/pipenv-demo/Pipfile: -------------------------------------------------------------------------------- 1 | [[source]] 2 | name = "pypi" 3 | url = "https://pypi.org/simple" 4 | verify_ssl = true 5 | 6 | [dev-packages] 7 | 8 | [packages] 9 | requests = "*" 10 | 11 | [requires] 12 | python_version = "3.7" 13 | -------------------------------------------------------------------------------- /Week3/pipenv-demo/Pipfile.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_meta": { 3 | "hash": { 4 | "sha256": "bb57e0d7853b45999e47c163c46b95bc2fde31c527d8d7b5b5539dc979444a6d" 5 | }, 6 | "pipfile-spec": 6, 7 | "requires": { 8 | "python_version": "3.7" 9 | }, 10 | "sources": [ 11 | { 12 | "name": "pypi", 13 | "url": "https://pypi.org/simple", 14 | "verify_ssl": true 15 | } 16 | ] 17 | }, 18 | "default": { 19 | "certifi": { 20 | "hashes": [ 21 | "sha256:5ad7e9a056d25ffa5082862e36f119f7f7cec6457fa07ee2f8c339814b80c9b1", 22 | "sha256:9cd41137dc19af6a5e03b630eefe7d1f458d964d406342dd3edf625839b944cc" 23 | ], 24 | "version": "==2020.4.5.2" 25 | }, 26 | "chardet": { 27 | "hashes": [ 28 | "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae", 29 | "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691" 30 | ], 31 | "version": "==3.0.4" 32 | }, 33 | "idna": { 34 | "hashes": [ 35 | "sha256:7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb", 36 | "sha256:a068a21ceac8a4d63dbfd964670474107f541babbd2250d61922f029858365fa" 37 | ], 38 | "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", 39 | "version": "==2.9" 40 | }, 41 | "requests": { 42 | "hashes": [ 43 | "sha256:43999036bfa82904b6af1d99e4882b560e5e2c68e5c4b0aa03b655f3d7d73fee", 44 | "sha256:b3f43d496c6daba4493e7c431722aeb7dbc6288f52a6e04e7b6023b0247817e6" 45 | ], 46 | "index": "pypi", 47 | "version": "==2.23.0" 48 | }, 49 | "urllib3": { 50 | "hashes": [ 51 | "sha256:3018294ebefce6572a474f0604c2021e33b3fd8006ecd11d62107a5d2a963527", 52 | "sha256:88206b0eb87e6d677d424843ac5209e3fb9d0190d0ee169599165ec25e9d9115" 53 | ], 54 | "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'", 55 | "version": "==1.25.9" 56 | } 57 | }, 58 | "develop": {} 59 | } 60 | -------------------------------------------------------------------------------- /Week3/poetry-demo/README.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rohithgilla12/can-python-do-that/5f16203313adf0c67e71546af471ef2e82e9f321/Week3/poetry-demo/README.rst -------------------------------------------------------------------------------- /Week3/poetry-demo/poetry.lock: -------------------------------------------------------------------------------- 1 | [[package]] 2 | category = "dev" 3 | description = "Atomic file writes." 4 | marker = "sys_platform == \"win32\"" 5 | name = "atomicwrites" 6 | optional = false 7 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 8 | version = "1.4.0" 9 | 10 | [[package]] 11 | category = "dev" 12 | description = "Classes Without Boilerplate" 13 | name = "attrs" 14 | optional = false 15 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 16 | version = "19.3.0" 17 | 18 | [package.extras] 19 | azure-pipelines = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "pytest-azurepipelines"] 20 | dev = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "sphinx", "pre-commit"] 21 | docs = ["sphinx", "zope.interface"] 22 | tests = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"] 23 | 24 | [[package]] 25 | category = "dev" 26 | description = "Cross-platform colored terminal text." 27 | marker = "sys_platform == \"win32\"" 28 | name = "colorama" 29 | optional = false 30 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 31 | version = "0.4.3" 32 | 33 | [[package]] 34 | category = "dev" 35 | description = "Read metadata from Python packages" 36 | marker = "python_version < \"3.8\"" 37 | name = "importlib-metadata" 38 | optional = false 39 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" 40 | version = "1.6.1" 41 | 42 | [package.dependencies] 43 | zipp = ">=0.5" 44 | 45 | [package.extras] 46 | docs = ["sphinx", "rst.linker"] 47 | testing = ["packaging", "pep517", "importlib-resources (>=1.3)"] 48 | 49 | [[package]] 50 | category = "dev" 51 | description = "More routines for operating on iterables, beyond itertools" 52 | name = "more-itertools" 53 | optional = false 54 | python-versions = ">=3.5" 55 | version = "8.3.0" 56 | 57 | [[package]] 58 | category = "dev" 59 | description = "Core utilities for Python packages" 60 | name = "packaging" 61 | optional = false 62 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 63 | version = "20.4" 64 | 65 | [package.dependencies] 66 | pyparsing = ">=2.0.2" 67 | six = "*" 68 | 69 | [[package]] 70 | category = "dev" 71 | description = "plugin and hook calling mechanisms for python" 72 | name = "pluggy" 73 | optional = false 74 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 75 | version = "0.13.1" 76 | 77 | [package.dependencies] 78 | [package.dependencies.importlib-metadata] 79 | python = "<3.8" 80 | version = ">=0.12" 81 | 82 | [package.extras] 83 | dev = ["pre-commit", "tox"] 84 | 85 | [[package]] 86 | category = "dev" 87 | description = "library with cross-python path, ini-parsing, io, code, log facilities" 88 | name = "py" 89 | optional = false 90 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 91 | version = "1.8.1" 92 | 93 | [[package]] 94 | category = "dev" 95 | description = "Python parsing module" 96 | name = "pyparsing" 97 | optional = false 98 | python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" 99 | version = "2.4.7" 100 | 101 | [[package]] 102 | category = "dev" 103 | description = "pytest: simple powerful testing with Python" 104 | name = "pytest" 105 | optional = false 106 | python-versions = ">=3.5" 107 | version = "5.4.3" 108 | 109 | [package.dependencies] 110 | atomicwrites = ">=1.0" 111 | attrs = ">=17.4.0" 112 | colorama = "*" 113 | more-itertools = ">=4.0.0" 114 | packaging = "*" 115 | pluggy = ">=0.12,<1.0" 116 | py = ">=1.5.0" 117 | wcwidth = "*" 118 | 119 | [package.dependencies.importlib-metadata] 120 | python = "<3.8" 121 | version = ">=0.12" 122 | 123 | [package.extras] 124 | checkqa-mypy = ["mypy (v0.761)"] 125 | testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] 126 | 127 | [[package]] 128 | category = "main" 129 | description = "Python bindings for Selenium" 130 | name = "selenium" 131 | optional = false 132 | python-versions = "*" 133 | version = "3.141.0" 134 | 135 | [package.dependencies] 136 | urllib3 = "*" 137 | 138 | [[package]] 139 | category = "dev" 140 | description = "Python 2 and 3 compatibility utilities" 141 | name = "six" 142 | optional = false 143 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" 144 | version = "1.15.0" 145 | 146 | [[package]] 147 | category = "main" 148 | description = "HTTP library with thread-safe connection pooling, file post, and more." 149 | name = "urllib3" 150 | optional = false 151 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" 152 | version = "1.25.9" 153 | 154 | [package.extras] 155 | brotli = ["brotlipy (>=0.6.0)"] 156 | secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "pyOpenSSL (>=0.14)", "ipaddress"] 157 | socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7,<2.0)"] 158 | 159 | [[package]] 160 | category = "dev" 161 | description = "Measures the displayed width of unicode strings in a terminal" 162 | name = "wcwidth" 163 | optional = false 164 | python-versions = "*" 165 | version = "0.2.4" 166 | 167 | [[package]] 168 | category = "dev" 169 | description = "Backport of pathlib-compatible object wrapper for zip files" 170 | marker = "python_version < \"3.8\"" 171 | name = "zipp" 172 | optional = false 173 | python-versions = ">=3.6" 174 | version = "3.1.0" 175 | 176 | [package.extras] 177 | docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"] 178 | testing = ["jaraco.itertools", "func-timeout"] 179 | 180 | [metadata] 181 | content-hash = "e028bdb0bb6cd1870b113c43972ab9620ebe87882819750c6a4a63b663972d20" 182 | python-versions = "^3.7" 183 | 184 | [metadata.files] 185 | atomicwrites = [ 186 | {file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"}, 187 | {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"}, 188 | ] 189 | attrs = [ 190 | {file = "attrs-19.3.0-py2.py3-none-any.whl", hash = "sha256:08a96c641c3a74e44eb59afb61a24f2cb9f4d7188748e76ba4bb5edfa3cb7d1c"}, 191 | {file = "attrs-19.3.0.tar.gz", hash = "sha256:f7b7ce16570fe9965acd6d30101a28f62fb4a7f9e926b3bbc9b61f8b04247e72"}, 192 | ] 193 | colorama = [ 194 | {file = "colorama-0.4.3-py2.py3-none-any.whl", hash = "sha256:7d73d2a99753107a36ac6b455ee49046802e59d9d076ef8e47b61499fa29afff"}, 195 | {file = "colorama-0.4.3.tar.gz", hash = "sha256:e96da0d330793e2cb9485e9ddfd918d456036c7149416295932478192f4436a1"}, 196 | ] 197 | importlib-metadata = [ 198 | {file = "importlib_metadata-1.6.1-py2.py3-none-any.whl", hash = "sha256:15ec6c0fd909e893e3a08b3a7c76ecb149122fb14b7efe1199ddd4c7c57ea958"}, 199 | {file = "importlib_metadata-1.6.1.tar.gz", hash = "sha256:0505dd08068cfec00f53a74a0ad927676d7757da81b7436a6eefe4c7cf75c545"}, 200 | ] 201 | more-itertools = [ 202 | {file = "more-itertools-8.3.0.tar.gz", hash = "sha256:558bb897a2232f5e4f8e2399089e35aecb746e1f9191b6584a151647e89267be"}, 203 | {file = "more_itertools-8.3.0-py3-none-any.whl", hash = "sha256:7818f596b1e87be009031c7653d01acc46ed422e6656b394b0f765ce66ed4982"}, 204 | ] 205 | packaging = [ 206 | {file = "packaging-20.4-py2.py3-none-any.whl", hash = "sha256:998416ba6962ae7fbd6596850b80e17859a5753ba17c32284f67bfff33784181"}, 207 | {file = "packaging-20.4.tar.gz", hash = "sha256:4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d556079f8"}, 208 | ] 209 | pluggy = [ 210 | {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, 211 | {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, 212 | ] 213 | py = [ 214 | {file = "py-1.8.1-py2.py3-none-any.whl", hash = "sha256:c20fdd83a5dbc0af9efd622bee9a5564e278f6380fffcacc43ba6f43db2813b0"}, 215 | {file = "py-1.8.1.tar.gz", hash = "sha256:5e27081401262157467ad6e7f851b7aa402c5852dbcb3dae06768434de5752aa"}, 216 | ] 217 | pyparsing = [ 218 | {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"}, 219 | {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, 220 | ] 221 | pytest = [ 222 | {file = "pytest-5.4.3-py3-none-any.whl", hash = "sha256:5c0db86b698e8f170ba4582a492248919255fcd4c79b1ee64ace34301fb589a1"}, 223 | {file = "pytest-5.4.3.tar.gz", hash = "sha256:7979331bfcba207414f5e1263b5a0f8f521d0f457318836a7355531ed1a4c7d8"}, 224 | ] 225 | selenium = [ 226 | {file = "selenium-3.141.0-py2.py3-none-any.whl", hash = "sha256:2d7131d7bc5a5b99a2d9b04aaf2612c411b03b8ca1b1ee8d3de5845a9be2cb3c"}, 227 | {file = "selenium-3.141.0.tar.gz", hash = "sha256:deaf32b60ad91a4611b98d8002757f29e6f2c2d5fcaf202e1c9ad06d6772300d"}, 228 | ] 229 | six = [ 230 | {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, 231 | {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, 232 | ] 233 | urllib3 = [ 234 | {file = "urllib3-1.25.9-py2.py3-none-any.whl", hash = "sha256:88206b0eb87e6d677d424843ac5209e3fb9d0190d0ee169599165ec25e9d9115"}, 235 | {file = "urllib3-1.25.9.tar.gz", hash = "sha256:3018294ebefce6572a474f0604c2021e33b3fd8006ecd11d62107a5d2a963527"}, 236 | ] 237 | wcwidth = [ 238 | {file = "wcwidth-0.2.4-py2.py3-none-any.whl", hash = "sha256:79375666b9954d4a1a10739315816324c3e73110af9d0e102d906fdb0aec009f"}, 239 | {file = "wcwidth-0.2.4.tar.gz", hash = "sha256:8c6b5b6ee1360b842645f336d9e5d68c55817c26d3050f46b235ef2bc650e48f"}, 240 | ] 241 | zipp = [ 242 | {file = "zipp-3.1.0-py3-none-any.whl", hash = "sha256:aa36550ff0c0b7ef7fa639055d797116ee891440eac1a56f378e2d3179e0320b"}, 243 | {file = "zipp-3.1.0.tar.gz", hash = "sha256:c599e4d75c98f6798c509911d08a22e6c021d074469042177c8c86fb92eefd96"}, 244 | ] 245 | -------------------------------------------------------------------------------- /Week3/poetry-demo/poetry_demo/__init__.py: -------------------------------------------------------------------------------- 1 | __version__ = '0.1.0' 2 | -------------------------------------------------------------------------------- /Week3/poetry-demo/pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.poetry] 2 | name = "poetry-demo" 3 | version = "0.1.0" 4 | description = "" 5 | authors = ["Rohithgilla12 "] 6 | 7 | [tool.poetry.dependencies] 8 | python = "^3.7" 9 | selenium = "^3.141.0" 10 | 11 | [tool.poetry.dev-dependencies] 12 | pytest = "^5.2" 13 | 14 | [build-system] 15 | requires = ["poetry>=0.12"] 16 | build-backend = "poetry.masonry.api" 17 | -------------------------------------------------------------------------------- /Week3/poetry-demo/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rohithgilla12/can-python-do-that/5f16203313adf0c67e71546af471ef2e82e9f321/Week3/poetry-demo/tests/__init__.py -------------------------------------------------------------------------------- /Week3/poetry-demo/tests/test_poetry_demo.py: -------------------------------------------------------------------------------- 1 | from poetry_demo import __version__ 2 | 3 | 4 | def test_version(): 5 | assert __version__ == '0.1.0' 6 | --------------------------------------------------------------------------------