├── .gitignore ├── requirements.txt ├── .env ├── Pipfile ├── make_json_from_mat.py ├── README.md ├── download_images.py └── Pipfile.lock /.gitignore: -------------------------------------------------------------------------------- 1 | .ipynb_checkpoints 2 | data-v1.0.tar 3 | raw/* -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | asyncio 2 | aiohttp 3 | tqdm 4 | pandas 5 | scipy -------------------------------------------------------------------------------- /.env: -------------------------------------------------------------------------------- 1 | export DATASET_ROOT="${HOME}/datasets/PaperDoll" 2 | export PIPENV_PIPFILE="${DATASET_ROOT}/Pipfile" -------------------------------------------------------------------------------- /Pipfile: -------------------------------------------------------------------------------- 1 | [[source]] 2 | name = "pypi" 3 | url = "https://pypi.org/simple" 4 | verify_ssl = true 5 | 6 | [dev-packages] 7 | 8 | [packages] 9 | asyncio = "*" 10 | aiohttp = "*" 11 | tqdm = "*" 12 | pandas = "*" 13 | scipy = "*" 14 | 15 | [requires] 16 | python_version = "3.6" 17 | -------------------------------------------------------------------------------- /make_json_from_mat.py: -------------------------------------------------------------------------------- 1 | import os 2 | import json 3 | 4 | from tqdm import tqdm 5 | from scipy.io import loadmat 6 | import pandas as pd 7 | 8 | 9 | def main(): 10 | mat_file = './data/paperdoll_dataset.mat' 11 | f = loadmat(mat_file) 12 | labels = f['labels'][0] 13 | samples = f['samples'][0] 14 | 15 | # make labels/categories.tsv 16 | sr_ctg = pd.Series([label[0] for label in labels]) 17 | sr_ctg.index = sr_ctg.index+1 18 | df_ctg = sr_ctg.reset_index() 19 | df_ctg.columns = ['category_id', 'category'] 20 | 21 | out_file = './labels/categories.tsv' 22 | out_dir = os.path.dirname(out_file) 23 | if not os.path.isdir(out_dir): 24 | os.makedirs(out_dir) 25 | df_ctg.to_csv(out_file, index=False, sep='\t') 26 | 27 | # make labels/paperdoll.json 28 | d = [{ 29 | "snap_id": int(sample[0][0, 0]), 30 | "snap_url": sample[1][0], 31 | "post_url": sample[2][0], 32 | "items": [ 33 | { 34 | "category_id": int(tag_id), 35 | "category": tag 36 | } 37 | for tag_id, tag 38 | in list(zip( 39 | sample[3][0].tolist(), 40 | sr_ctg[sample[3][0]].tolist(), 41 | )) 42 | ] 43 | } for sample in tqdm(samples)] 44 | 45 | out_file = './labels/paperdoll.json' 46 | out_dir = os.path.dirname(out_file) 47 | if not os.path.isdir(out_dir): 48 | os.makedirs(out_dir) 49 | with open(out_file, 'w') as f: 50 | json.dump(d, f, indent=4) 51 | 52 | 53 | if __name__=="__main__": 54 | main() -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Paper Doll Dataset 2 | 3 | This dataset is proposed in the paper, [(K. Yamaguchi, M. Hadi Kiapour, & T. L. Berg. 2013) Paper Doll Parsing: Retrieving Similar Styles to Parse Clothing Items.](http://vision.is.tohoku.ac.jp/~kyamagu/papers/yamaguchi2013paper.pdf). 4 | 5 | https://github.com/kyamagu/paperdoll 6 | 7 | 8 | ## Dataset Schema 9 | 10 | - `data/paperdoll_dataset.mat`: 568,340 snap image urls with categories 11 | - 53 categories 12 | - `data/fashionista_v0.2.mat`: 685 snap images and segmentation maps 13 | - `truths` (struct array): ground truth annotatation 14 | - `predictions` (struct array): predicted parsing results 15 | - `test_index`: samples used for training 16 | 17 | 18 | See the [official page](http://vision.is.tohoku.ac.jp/~kyamagu/ja/research/paperdoll/)'s **Data foramt** for the original schema of the mat files. 19 | 20 | Our json schema is the followings. 21 | 22 | - `labels/paperdoll.json` 23 | - 568,340 samples 24 | - `snap_id` (int): starts from 1 25 | - `snap_url` (str): image url 26 | - `post_url` (str): post page url including the snap 27 | - `items` 28 | - `category_id` (int): 1 to 53 29 | - `category` (str) 30 | - `labels/categories.tsv` 31 | - `category_id` (int): 1 to 53 32 | - `category` (str) 33 | 34 | 35 | ## Setup 36 | 37 | ``` 38 | pipenv sync 39 | ``` 40 | 41 | or 42 | 43 | ``` 44 | pip install -r requirements.txt 45 | ``` 46 | 47 | ``` 48 | cd $DATASET_ROOT/raw 49 | wget http://vision.cs.stonybrook.edu/~kyamagu/paperdoll/data-v1.0.tar 50 | tar xvf data-v1.0.tar 51 | ``` 52 | 53 | ``` 54 | wget https://github.com/kyamagu/paperdoll/raw/master/data/chictopia/chictopia.sql.gz 55 | gunzip -c chictopia.sql.gz | sqlite3 chictopia.sqlite3 56 | ``` 57 | 58 | ``` 59 | python mat2json_paperdoll.py 60 | ``` 61 | 62 | the followings will be made from `data/paperdoll_dataset.mat`. 63 | 64 | - `labels/paperdoll.json` 65 | - `labels/categories.tsv` 66 | 67 | ``` 68 | python download_images.py 69 | ``` 70 | 71 | If time out occurs, 72 | 73 | - increase `-r` (the number of requests) more than 100 (default) 74 | - increase `-t` (the time to wait until time out) more than 180\[s\] (default) -------------------------------------------------------------------------------- /download_images.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | import os 5 | import random 6 | import argparse 7 | 8 | import asyncio 9 | import aiohttp 10 | from tqdm import tqdm 11 | import pandas as pd 12 | 13 | # get content and write it to file 14 | def write_to_file(file, content): 15 | with open(file, 'wb') as f: 16 | f.write(content) 17 | 18 | 19 | # a helper coroutine to perform GET requests: 20 | async def get(*args, **kwargs): 21 | async with aiohttp.ClientSession() as session: 22 | try: 23 | async with session.get(*args, **kwargs) as res: 24 | tqdm.write('{}'.format(res.status)) 25 | return await res.content.read() 26 | except: 27 | return None 28 | 29 | 30 | async def download_file(url, file, seconds): 31 | # this routine is protected by a semaphore 32 | with await sem: 33 | timeout = aiohttp.ClientTimeout(total=seconds) 34 | content = await get(url, timeout=timeout) 35 | 36 | if content is not None: 37 | write_to_file(file, content) 38 | else: 39 | tqdm.write('Error or Time out: {}'.format(file)) 40 | 41 | ''' 42 | make nice progressbar 43 | install it by using `pip install tqdm` 44 | ''' 45 | async def wait_with_progressbar(coros): 46 | coros = [await f 47 | for f in tqdm(asyncio.as_completed(coros), total=len(coros))] 48 | return await coros 49 | 50 | 51 | if __name__=="__main__": 52 | parser = argparse.ArgumentParser() 53 | parser.add_argument( 54 | '-r', '--num_requests', 55 | type=int, 56 | default=100) 57 | parser.add_argument( 58 | '-t', 59 | type=int, 60 | default=180, 61 | help='seconds to wait until time out') 62 | args = parser.parse_args() 63 | 64 | img_dir = './test_images' 65 | if not os.path.isdir(img_dir): 66 | os.makedirs(img_dir) 67 | 68 | df = pd.read_json("./labels/paperdoll.json")[['snap_url','snap_id']] 69 | df['img_file'] = df.apply(lambda row: 70 | os.path.join( 71 | img_dir, 72 | '{}.jpg'.format(row['snap_id'])), 73 | axis=1) 74 | df = df[df['img_file'].apply(lambda file: 75 | not os.path.exists(file))] 76 | df = df[['snap_url', 'img_file']] 77 | 78 | 79 | # avoid to many requests(coros) the same time. 80 | # limit them by setting semaphores (simultaneous requests) 81 | sem = asyncio.Semaphore(args.num_requests) 82 | 83 | coros = [download_file(url, img_file, args.t) 84 | for _, url, img_file in df.itertuples()] 85 | eloop = asyncio.get_event_loop() 86 | #eloop.run_until_complete(asyncio.wait(coros)) 87 | eloop.run_until_complete(wait_with_progressbar(coros)) 88 | eloop.close() -------------------------------------------------------------------------------- /Pipfile.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_meta": { 3 | "hash": { 4 | "sha256": "38a6eb33c729a126ca150caaab1e2b149d77e05a910badb68d0d79980abf0e80" 5 | }, 6 | "pipfile-spec": 6, 7 | "requires": { 8 | "python_version": "3.6" 9 | }, 10 | "sources": [ 11 | { 12 | "name": "pypi", 13 | "url": "https://pypi.org/simple", 14 | "verify_ssl": true 15 | } 16 | ] 17 | }, 18 | "default": { 19 | "aiohttp": { 20 | "hashes": [ 21 | "sha256:00d198585474299c9c3b4f1d5de1a576cc230d562abc5e4a0e81d71a20a6ca55", 22 | "sha256:0155af66de8c21b8dba4992aaeeabf55503caefae00067a3b1139f86d0ec50ed", 23 | "sha256:09654a9eca62d1bd6d64aa44db2498f60a5c1e0ac4750953fdd79d5c88955e10", 24 | "sha256:199f1d106e2b44b6dacdf6f9245493c7d716b01d0b7fbe1959318ba4dc64d1f5", 25 | "sha256:296f30dedc9f4b9e7a301e5cc963012264112d78a1d3094cd83ef148fdf33ca1", 26 | "sha256:368ed312550bd663ce84dc4b032a962fcb3c7cae099dbbd48663afc305e3b939", 27 | "sha256:40d7ea570b88db017c51392349cf99b7aefaaddd19d2c78368aeb0bddde9d390", 28 | "sha256:629102a193162e37102c50713e2e31dc9a2fe7ac5e481da83e5bb3c0cee700aa", 29 | "sha256:6d5ec9b8948c3d957e75ea14d41e9330e1ac3fed24ec53766c780f82805140dc", 30 | "sha256:87331d1d6810214085a50749160196391a712a13336cd02ce1c3ea3d05bcf8d5", 31 | "sha256:9a02a04bbe581c8605ac423ba3a74999ec9d8bce7ae37977a3d38680f5780b6d", 32 | "sha256:9c4c83f4fa1938377da32bc2d59379025ceeee8e24b89f72fcbccd8ca22dc9bf", 33 | "sha256:9cddaff94c0135ee627213ac6ca6d05724bfe6e7a356e5e09ec57bd3249510f6", 34 | "sha256:a25237abf327530d9561ef751eef9511ab56fd9431023ca6f4803f1994104d72", 35 | "sha256:a5cbd7157b0e383738b8e29d6e556fde8726823dae0e348952a61742b21aeb12", 36 | "sha256:a97a516e02b726e089cffcde2eea0d3258450389bbac48cbe89e0f0b6e7b0366", 37 | "sha256:acc89b29b5f4e2332d65cd1b7d10c609a75b88ef8925d487a611ca788432dfa4", 38 | "sha256:b05bd85cc99b06740aad3629c2585bda7b83bd86e080b44ba47faf905fdf1300", 39 | "sha256:c2bec436a2b5dafe5eaeb297c03711074d46b6eb236d002c13c42f25c4a8ce9d", 40 | "sha256:cc619d974c8c11fe84527e4b5e1c07238799a8c29ea1c1285149170524ba9303", 41 | "sha256:d4392defd4648badaa42b3e101080ae3313e8f4787cb517efd3f5b8157eaefd6", 42 | "sha256:e1c3c582ee11af7f63a34a46f0448fca58e59889396ffdae1f482085061a2889" 43 | ], 44 | "index": "pypi", 45 | "version": "==3.5.4" 46 | }, 47 | "async-timeout": { 48 | "hashes": [ 49 | "sha256:0c3c816a028d47f659d6ff5c745cb2acf1f966da1fe5c19c77a70282b25f4c5f", 50 | "sha256:4291ca197d287d274d0b6cb5d6f8f8f82d434ed288f962539ff18cc9012f9ea3" 51 | ], 52 | "version": "==3.0.1" 53 | }, 54 | "asyncio": { 55 | "hashes": [ 56 | "sha256:83360ff8bc97980e4ff25c964c7bd3923d333d177aa4f7fb736b019f26c7cb41", 57 | "sha256:b62c9157d36187eca799c378e572c969f0da87cd5fc42ca372d92cdb06e7e1de", 58 | "sha256:c46a87b48213d7464f22d9a497b9eef8c1928b68320a2fa94240f969f6fec08c", 59 | "sha256:c4d18b22701821de07bd6aea8b53d21449ec0ec5680645e5317062ea21817d2d" 60 | ], 61 | "index": "pypi", 62 | "version": "==3.4.3" 63 | }, 64 | "attrs": { 65 | "hashes": [ 66 | "sha256:69c0dbf2ed392de1cb5ec704444b08a5ef81680a61cb899dc08127123af36a79", 67 | "sha256:f0b870f674851ecbfbbbd364d6b5cbdff9dcedbc7f3f5e18a6891057f21fe399" 68 | ], 69 | "version": "==19.1.0" 70 | }, 71 | "chardet": { 72 | "hashes": [ 73 | "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae", 74 | "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691" 75 | ], 76 | "version": "==3.0.4" 77 | }, 78 | "idna": { 79 | "hashes": [ 80 | "sha256:c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407", 81 | "sha256:ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c" 82 | ], 83 | "version": "==2.8" 84 | }, 85 | "idna-ssl": { 86 | "hashes": [ 87 | "sha256:a933e3bb13da54383f9e8f35dc4f9cb9eb9b3b78c6b36f311254d6d0d92c6c7c" 88 | ], 89 | "markers": "python_version < '3.7'", 90 | "version": "==1.1.0" 91 | }, 92 | "multidict": { 93 | "hashes": [ 94 | "sha256:024b8129695a952ebd93373e45b5d341dbb87c17ce49637b34000093f243dd4f", 95 | "sha256:041e9442b11409be5e4fc8b6a97e4bcead758ab1e11768d1e69160bdde18acc3", 96 | "sha256:045b4dd0e5f6121e6f314d81759abd2c257db4634260abcfe0d3f7083c4908ef", 97 | "sha256:047c0a04e382ef8bd74b0de01407e8d8632d7d1b4db6f2561106af812a68741b", 98 | "sha256:068167c2d7bbeebd359665ac4fff756be5ffac9cda02375b5c5a7c4777038e73", 99 | "sha256:148ff60e0fffa2f5fad2eb25aae7bef23d8f3b8bdaf947a65cdbe84a978092bc", 100 | "sha256:1d1c77013a259971a72ddaa83b9f42c80a93ff12df6a4723be99d858fa30bee3", 101 | "sha256:1d48bc124a6b7a55006d97917f695effa9725d05abe8ee78fd60d6588b8344cd", 102 | "sha256:31dfa2fc323097f8ad7acd41aa38d7c614dd1960ac6681745b6da124093dc351", 103 | "sha256:34f82db7f80c49f38b032c5abb605c458bac997a6c3142e0d6c130be6fb2b941", 104 | "sha256:3d5dd8e5998fb4ace04789d1d008e2bb532de501218519d70bb672c4c5a2fc5d", 105 | "sha256:4a6ae52bd3ee41ee0f3acf4c60ceb3f44e0e3bc52ab7da1c2b2aa6703363a3d1", 106 | "sha256:4b02a3b2a2f01d0490dd39321c74273fed0568568ea0e7ea23e02bd1fb10a10b", 107 | "sha256:4b843f8e1dd6a3195679d9838eb4670222e8b8d01bc36c9894d6c3538316fa0a", 108 | "sha256:5de53a28f40ef3c4fd57aeab6b590c2c663de87a5af76136ced519923d3efbb3", 109 | "sha256:61b2b33ede821b94fa99ce0b09c9ece049c7067a33b279f343adfe35108a4ea7", 110 | "sha256:6a3a9b0f45fd75dc05d8e93dc21b18fc1670135ec9544d1ad4acbcf6b86781d0", 111 | "sha256:76ad8e4c69dadbb31bad17c16baee61c0d1a4a73bed2590b741b2e1a46d3edd0", 112 | "sha256:7ba19b777dc00194d1b473180d4ca89a054dd18de27d0ee2e42a103ec9b7d014", 113 | "sha256:7c1b7eab7a49aa96f3db1f716f0113a8a2e93c7375dd3d5d21c4941f1405c9c5", 114 | "sha256:7fc0eee3046041387cbace9314926aa48b681202f8897f8bff3809967a049036", 115 | "sha256:8ccd1c5fff1aa1427100ce188557fc31f1e0a383ad8ec42c559aabd4ff08802d", 116 | "sha256:8e08dd76de80539d613654915a2f5196dbccc67448df291e69a88712ea21e24a", 117 | "sha256:c18498c50c59263841862ea0501da9f2b3659c00db54abfbf823a80787fde8ce", 118 | "sha256:c49db89d602c24928e68c0d510f4fcf8989d77defd01c973d6cbe27e684833b1", 119 | "sha256:ce20044d0317649ddbb4e54dab3c1bcc7483c78c27d3f58ab3d0c7e6bc60d26a", 120 | "sha256:d1071414dd06ca2eafa90c85a079169bfeb0e5f57fd0b45d44c092546fcd6fd9", 121 | "sha256:d3be11ac43ab1a3e979dac80843b42226d5d3cccd3986f2e03152720a4297cd7", 122 | "sha256:db603a1c235d110c860d5f39988ebc8218ee028f07a7cbc056ba6424372ca31b" 123 | ], 124 | "version": "==4.5.2" 125 | }, 126 | "numpy": { 127 | "hashes": [ 128 | "sha256:0778076e764e146d3078b17c24c4d89e0ecd4ac5401beff8e1c87879043a0633", 129 | "sha256:141c7102f20abe6cf0d54c4ced8d565b86df4d3077ba2343b61a6db996cefec7", 130 | "sha256:14270a1ee8917d11e7753fb54fc7ffd1934f4d529235beec0b275e2ccf00333b", 131 | "sha256:27e11c7a8ec9d5838bc59f809bfa86efc8a4fd02e58960fa9c49d998e14332d5", 132 | "sha256:2a04dda79606f3d2f760384c38ccd3d5b9bb79d4c8126b67aff5eb09a253763e", 133 | "sha256:3c26010c1b51e1224a3ca6b8df807de6e95128b0908c7e34f190e7775455b0ca", 134 | "sha256:52c40f1a4262c896420c6ea1c6fda62cf67070e3947e3307f5562bd783a90336", 135 | "sha256:6e4f8d9e8aa79321657079b9ac03f3cf3fd067bf31c1cca4f56d49543f4356a5", 136 | "sha256:7242be12a58fec245ee9734e625964b97cf7e3f2f7d016603f9e56660ce479c7", 137 | "sha256:7dc253b542bfd4b4eb88d9dbae4ca079e7bf2e2afd819ee18891a43db66c60c7", 138 | "sha256:94f5bd885f67bbb25c82d80184abbf7ce4f6c3c3a41fbaa4182f034bba803e69", 139 | "sha256:a89e188daa119ffa0d03ce5123dee3f8ffd5115c896c2a9d4f0dbb3d8b95bfa3", 140 | "sha256:ad3399da9b0ca36e2f24de72f67ab2854a62e623274607e37e0ce5f5d5fa9166", 141 | "sha256:b0348be89275fd1d4c44ffa39530c41a21062f52299b1e3ee7d1c61f060044b8", 142 | "sha256:b5554368e4ede1856121b0dfa35ce71768102e4aa55e526cb8de7f374ff78722", 143 | "sha256:cbddc56b2502d3f87fda4f98d948eb5b11f36ff3902e17cb6cc44727f2200525", 144 | "sha256:d79f18f41751725c56eceab2a886f021d70fd70a6188fd386e29a045945ffc10", 145 | "sha256:dc2ca26a19ab32dc475dbad9dfe723d3a64c835f4c23f625c2b6566ca32b9f29", 146 | "sha256:dd9bcd4f294eb0633bb33d1a74febdd2b9018b8b8ed325f861fffcd2c7660bb8", 147 | "sha256:e8baab1bc7c9152715844f1faca6744f2416929de10d7639ed49555a85549f52", 148 | "sha256:ec31fe12668af687b99acf1567399632a7c47b0e17cfb9ae47c098644ef36797", 149 | "sha256:f12b4f7e2d8f9da3141564e6737d79016fe5336cc92de6814eba579744f65b0a", 150 | "sha256:f58ac38d5ca045a377b3b377c84df8175ab992c970a53332fa8ac2373df44ff7" 151 | ], 152 | "version": "==1.16.4" 153 | }, 154 | "pandas": { 155 | "hashes": [ 156 | "sha256:071e42b89b57baa17031af8c6b6bbd2e9a5c68c595bc6bf9adabd7a9ed125d3b", 157 | "sha256:17450e25ae69e2e6b303817bdf26b2cd57f69595d8550a77c308be0cd0fd58fa", 158 | "sha256:17916d818592c9ec891cbef2e90f98cc85e0f1e89ed0924c9b5220dc3209c846", 159 | "sha256:2538f099ab0e9f9c9d09bbcd94b47fd889bad06dc7ae96b1ed583f1dc1a7a822", 160 | "sha256:366f30710172cb45a6b4f43b66c220653b1ea50303fbbd94e50571637ffb9167", 161 | "sha256:42e5ad741a0d09232efbc7fc648226ed93306551772fc8aecc6dce9f0e676794", 162 | "sha256:4e718e7f395ba5bfe8b6f6aaf2ff1c65a09bb77a36af6394621434e7cc813204", 163 | "sha256:4f919f409c433577a501e023943e582c57355d50a724c589e78bc1d551a535a2", 164 | "sha256:4fe0d7e6438212e839fc5010c78b822664f1a824c0d263fd858f44131d9166e2", 165 | "sha256:5149a6db3e74f23dc3f5a216c2c9ae2e12920aa2d4a5b77e44e5b804a5f93248", 166 | "sha256:627594338d6dd995cfc0bacd8e654cd9e1252d2a7c959449228df6740d737eb8", 167 | "sha256:83c702615052f2a0a7fb1dd289726e29ec87a27272d775cb77affe749cca28f8", 168 | "sha256:8c872f7fdf3018b7891e1e3e86c55b190e6c5cee70cab771e8f246c855001296", 169 | "sha256:90f116086063934afd51e61a802a943826d2aac572b2f7d55caaac51c13db5b5", 170 | "sha256:a3352bacac12e1fc646213b998bce586f965c9d431773d9e91db27c7c48a1f7d", 171 | "sha256:bcdd06007cca02d51350f96debe51331dec429ac8f93930a43eb8fb5639e3eb5", 172 | "sha256:c1bd07ebc15285535f61ddd8c0c75d0d6293e80e1ee6d9a8d73f3f36954342d0", 173 | "sha256:c9a4b7c55115eb278c19aa14b34fcf5920c8fe7797a09b7b053ddd6195ea89b3", 174 | "sha256:cc8fc0c7a8d5951dc738f1c1447f71c43734244453616f32b8aa0ef6013a5dfb", 175 | "sha256:d7b460bc316064540ce0c41c1438c416a40746fd8a4fb2999668bf18f3c4acf1" 176 | ], 177 | "index": "pypi", 178 | "version": "==0.24.2" 179 | }, 180 | "python-dateutil": { 181 | "hashes": [ 182 | "sha256:7e6584c74aeed623791615e26efd690f29817a27c73085b78e4bad02493df2fb", 183 | "sha256:c89805f6f4d64db21ed966fda138f8a5ed7a4fdbc1a8ee329ce1b74e3c74da9e" 184 | ], 185 | "version": "==2.8.0" 186 | }, 187 | "pytz": { 188 | "hashes": [ 189 | "sha256:303879e36b721603cc54604edcac9d20401bdbe31e1e4fdee5b9f98d5d31dfda", 190 | "sha256:d747dd3d23d77ef44c6a3526e274af6efeb0a6f1afd5a69ba4d5be4098c8e141" 191 | ], 192 | "version": "==2019.1" 193 | }, 194 | "scipy": { 195 | "hashes": [ 196 | "sha256:03b1e0775edbe6a4c64effb05fff2ce1429b76d29d754aa5ee2d848b60033351", 197 | "sha256:09d008237baabf52a5d4f5a6fcf9b3c03408f3f61a69c404472a16861a73917e", 198 | "sha256:10325f0ffac2400b1ec09537b7e403419dcd25d9fee602a44e8a32119af9079e", 199 | "sha256:1db9f964ed9c52dc5bd6127f0dd90ac89791daa690a5665cc01eae185912e1ba", 200 | "sha256:409846be9d6bdcbd78b9e5afe2f64b2da5a923dd7c1cd0615ce589489533fdbb", 201 | "sha256:4907040f62b91c2e170359c3d36c000af783f0fa1516a83d6c1517cde0af5340", 202 | "sha256:6c0543f2fdd38dee631fb023c0f31c284a532d205590b393d72009c14847f5b1", 203 | "sha256:826b9f5fbb7f908a13aa1efd4b7321e36992f5868d5d8311c7b40cf9b11ca0e7", 204 | "sha256:a7695a378c2ce402405ea37b12c7a338a8755e081869bd6b95858893ceb617ae", 205 | "sha256:a84c31e8409b420c3ca57fd30c7589378d6fdc8d155d866a7f8e6e80dec6fd06", 206 | "sha256:adadeeae5500de0da2b9e8dd478520d0a9945b577b2198f2462555e68f58e7ef", 207 | "sha256:b283a76a83fe463c9587a2c88003f800e08c3929dfbeba833b78260f9c209785", 208 | "sha256:c19a7389ab3cd712058a8c3c9ffd8d27a57f3d84b9c91a931f542682bb3d269d", 209 | "sha256:c3bb4bd2aca82fb498247deeac12265921fe231502a6bc6edea3ee7fe6c40a7a", 210 | "sha256:c5ea60ece0c0c1c849025bfc541b60a6751b491b6f11dd9ef37ab5b8c9041921", 211 | "sha256:db61a640ca20f237317d27bc658c1fc54c7581ff7f6502d112922dc285bdabee" 212 | ], 213 | "index": "pypi", 214 | "version": "==1.3.0" 215 | }, 216 | "six": { 217 | "hashes": [ 218 | "sha256:3350809f0555b11f552448330d0b52d5f24c91a322ea4a15ef22629740f3761c", 219 | "sha256:d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73" 220 | ], 221 | "version": "==1.12.0" 222 | }, 223 | "tqdm": { 224 | "hashes": [ 225 | "sha256:14a285392c32b6f8222ecfbcd217838f88e11630affe9006cd0e94c7eff3cb61", 226 | "sha256:25d4c0ea02a305a688e7e9c2cdc8f862f989ef2a4701ab28ee963295f5b109ab" 227 | ], 228 | "index": "pypi", 229 | "version": "==4.32.2" 230 | }, 231 | "typing-extensions": { 232 | "hashes": [ 233 | "sha256:2ed632b30bb54fc3941c382decfd0ee4148f5c591651c9272473fea2c6397d95", 234 | "sha256:b1edbbf0652660e32ae780ac9433f4231e7339c7f9a8057d0f042fcbcea49b87", 235 | "sha256:d8179012ec2c620d3791ca6fe2bf7979d979acdbef1fca0bc56b37411db682ed" 236 | ], 237 | "markers": "python_version < '3.7'", 238 | "version": "==3.7.4" 239 | }, 240 | "yarl": { 241 | "hashes": [ 242 | "sha256:024ecdc12bc02b321bc66b41327f930d1c2c543fa9a561b39861da9388ba7aa9", 243 | "sha256:2f3010703295fbe1aec51023740871e64bb9664c789cba5a6bdf404e93f7568f", 244 | "sha256:3890ab952d508523ef4881457c4099056546593fa05e93da84c7250516e632eb", 245 | "sha256:3e2724eb9af5dc41648e5bb304fcf4891adc33258c6e14e2a7414ea32541e320", 246 | "sha256:5badb97dd0abf26623a9982cd448ff12cb39b8e4c94032ccdedf22ce01a64842", 247 | "sha256:73f447d11b530d860ca1e6b582f947688286ad16ca42256413083d13f260b7a0", 248 | "sha256:7ab825726f2940c16d92aaec7d204cfc34ac26c0040da727cf8ba87255a33829", 249 | "sha256:b25de84a8c20540531526dfbb0e2d2b648c13fd5dd126728c496d7c3fea33310", 250 | "sha256:c6e341f5a6562af74ba55205dbd56d248daf1b5748ec48a0200ba227bb9e33f4", 251 | "sha256:c9bb7c249c4432cd47e75af3864bc02d26c9594f49c82e2a28624417f0ae63b8", 252 | "sha256:e060906c0c585565c718d1c3841747b61c5439af2211e185f6739a9412dfbde1" 253 | ], 254 | "version": "==1.3.0" 255 | } 256 | }, 257 | "develop": {} 258 | } 259 | --------------------------------------------------------------------------------