Closed beckermr closed 1 week ago
Here is an example url and response:
In [6]: resp = requests.get("https://pypi.org/simple/21cmfast/", headers={"Accept": "application/vnd.pypi.simple.v1+json"})
In [7]: resp.json()
Out[7]:
{'alternate-locations': [],
'files': [{'core-metadata': False,
'data-dist-info-metadata': False,
'filename': '21cmFAST-3.0.0.dev0.tar.gz',
'hashes': {'sha256': '6e09cdae319fecc03a63c80a697c7e7a391282ee061cb058559f3066a7f411fb'},
'provenance': None,
'requires-python': None,
'size': 403902,
'upload-time': '2019-09-19T22:38:25.124584Z',
'url': 'https://files.pythonhosted.org/packages/a6/c3/d9e689c04d140ba9dea3ef23de736770584aac9b31fc20682fc53a262f2f/21cmFAST-3.0.0.dev0.tar.gz',
'yanked': False},
{'core-metadata': False,
'data-dist-info-metadata': False,
'filename': '21cmFAST-3.0.0.dev1.tar.gz',
'hashes': {'sha256': '80fe3a98b0637f757040fb235fd15b1f0c83b7348ecee3605b54c3b6a49143c0'},
'provenance': None,
'requires-python': None,
'size': 1873662,
'upload-time': '2020-01-30T22:22:35.255388Z',
'url': 'https://files.pythonhosted.org/packages/f9/31/10a3c1367690fe5ac93c838d910f37b52d336239bd7def0a3caab51630c3/21cmFAST-3.0.0.dev1.tar.gz',
'yanked': False},
{'core-metadata': False,
'data-dist-info-metadata': False,
'filename': '21cmFAST-3.0.0.dev2.tar.gz',
'hashes': {'sha256': 'f9cf52d482e3fbd3c9c91a7b9eb578f74fbaf0ac469260984346b5dbe6c57f92'},
'provenance': None,
'requires-python': None,
'size': 2815225,
'upload-time': '2020-02-24T18:46:39.893951Z',
'url': 'https://files.pythonhosted.org/packages/46/48/718df716f62e9291d5684c41ebe509881abf20442318edf45b3f247c0f89/21cmFAST-3.0.0.dev2.tar.gz',
'yanked': False},
{'core-metadata': False,
'data-dist-info-metadata': False,
'filename': '21cmFAST-3.0.0.dev3.tar.gz',
'hashes': {'sha256': 'fd20fd4cf78831e920b6c05afd30cdde700630d94f301aed56d15e4bc3c9246e'},
'provenance': None,
'requires-python': None,
'size': 633847,
'upload-time': '2020-06-03T13:52:02.069010Z',
'url': 'https://files.pythonhosted.org/packages/cd/7a/ed564bfa676380cee9377508531dcd0d91a6e522f953aca050c986a73411/21cmFAST-3.0.0.dev3.tar.gz',
'yanked': False},
{'core-metadata': False,
'data-dist-info-metadata': False,
'filename': '21cmFAST-3.0.0.dev4.tar.gz',
'hashes': {'sha256': 'ee1682a2959b6f9183f2b8ce6d2e219597d74ac28f83f0e307680e02446d0cfa'},
'provenance': None,
'requires-python': None,
'size': 634360,
'upload-time': '2020-06-03T14:23:19.581239Z',
'url': 'https://files.pythonhosted.org/packages/cb/16/784382eb6cb655e4e901e7035fa4c368403eaf05751685b545225c192079/21cmFAST-3.0.0.dev4.tar.gz',
'yanked': False},
{'core-metadata': False,
'data-dist-info-metadata': False,
'filename': '21cmFAST-3.0.0.dev5.tar.gz',
'hashes': {'sha256': '0acf356e74ad8a2254f6c729b06b98f4b6cdde0b838e46c614d9ae68f8e56791'},
'provenance': None,
'requires-python': None,
'size': 634295,
'upload-time': '2020-06-03T15:27:49.753582Z',
'url': 'https://files.pythonhosted.org/packages/9e/d8/ba8ac5eb2130c9d28c52ac7a41668fc74bf3377313ff01b6c4a8079303fd/21cmFAST-3.0.0.dev5.tar.gz',
'yanked': False},
{'core-metadata': False,
'data-dist-info-metadata': False,
'filename': '21cmFAST-3.0.0.dev6.tar.gz',
'hashes': {'sha256': '9c70c9c935c8635c65bf33367886db2286cc765cfe255cdd6adddcad5b3f6421'},
'provenance': None,
'requires-python': None,
'size': 747286,
'upload-time': '2020-06-23T04:35:44.536628Z',
'url': 'https://files.pythonhosted.org/packages/78/47/7a7a12189f044ae7f59707b84b72b3fc81370b76b5520ee80376ccd115fb/21cmFAST-3.0.0.dev6.tar.gz',
'yanked': False},
{'core-metadata': False,
'data-dist-info-metadata': False,
'filename': '21cmFAST-3.0.0.dev7.tar.gz',
'hashes': {'sha256': '46f36255c96f322a6bf9f0ca01be0a15a32abf5a1ca1930009360a391af6b016'},
'provenance': None,
'requires-python': None,
'size': 759568,
'upload-time': '2020-07-17T16:18:44.755514Z',
'url': 'https://files.pythonhosted.org/packages/cc/dd/e5463683148b4988439c1f7dd305ed705296e3d48fe7788587a2eb353f64/21cmFAST-3.0.0.dev7.tar.gz',
'yanked': False},
{'core-metadata': False,
'data-dist-info-metadata': False,
'filename': '21cmFAST-3.0.0.tar.gz',
'hashes': {'sha256': '0cbf453a6835e4aff807dcd995e576cd88e530e7dcb53226c880a2fc779be326'},
'provenance': None,
'requires-python': None,
'size': 759599,
'upload-time': '2020-07-21T15:39:11.596339Z',
'url': 'https://files.pythonhosted.org/packages/2c/93/ac62761221e2b1ca1f11a5ef672f4161ba51bab734d3d720beaa866a671f/21cmFAST-3.0.0.tar.gz',
'yanked': False},
{'core-metadata': False,
'data-dist-info-metadata': False,
'filename': '21cmFAST-3.0.1.tar.gz',
'hashes': {'sha256': 'fd4d42bd77f005008a44599e98c8632c5323247cd2e6ad07989b109ed5224999'},
'provenance': None,
'requires-python': None,
'size': 758795,
'upload-time': '2020-07-28T13:57:09.201129Z',
'url': 'https://files.pythonhosted.org/packages/f3/e8/3b0fbf100cb04ff1fe3f9c57728baee653f8ab015386e4607cccf0bc1a89/21cmFAST-3.0.1.tar.gz',
'yanked': False},
{'core-metadata': False,
'data-dist-info-metadata': False,
'filename': '21cmFAST-3.0.2.dev0.tar.gz',
'hashes': {'sha256': '8d2c324b3ee9ab27d24e8d06a2c18c2f80f5f984253e5bd58e2afe0a1c0e826a'},
'provenance': None,
'requires-python': None,
'size': 758944,
'upload-time': '2020-07-28T19:51:07.624171Z',
'url': 'https://files.pythonhosted.org/packages/2e/19/d44f5fcb584b7214187cd2e671ff32a0c81e90af6d82c43f6330a5fd329c/21cmFAST-3.0.2.dev0.tar.gz',
'yanked': False},
{'core-metadata': False,
'data-dist-info-metadata': False,
'filename': '21cmFAST-3.0.2.tar.gz',
'hashes': {'sha256': '6e88960d134e98e4719343d853c63fc3c691438b57b2863f7834f07fae9eab4f'},
'provenance': None,
'requires-python': None,
'size': 758869,
'upload-time': '2020-07-29T05:35:47.962959Z',
'url': 'https://files.pythonhosted.org/packages/59/68/a4a09864ce1856837996c53b00b8fe73ddf4316b373746ed9eacc38c040b/21cmFAST-3.0.2.tar.gz',
'yanked': False},
{'core-metadata': False,
'data-dist-info-metadata': False,
'filename': '21cmFAST-3.0.3.tar.gz',
'hashes': {'sha256': '71e9f8dcdf44da474db27027beab1c6bd1d6fe78782df5782ec6e38ddc424c46'},
'provenance': None,
'requires-python': None,
'size': 821835,
'upload-time': '2020-10-20T00:01:47.821274Z',
'url': 'https://files.pythonhosted.org/packages/46/49/ec23ec0127b2984a7dbfe89c69010b8d6bf6ec72c4fee3ed4466059e15a3/21cmFAST-3.0.3.tar.gz',
'yanked': False},
{'core-metadata': False,
'data-dist-info-metadata': False,
'filename': '21cmFAST-3.1.0.tar.gz',
'hashes': {'sha256': 'b015ddb2779a8b3e794bd7f3fff0e89c03a281bbb6fa8fb56c4ba70fd617c530'},
'provenance': None,
'requires-python': None,
'size': 4088073,
'upload-time': '2021-06-13T23:26:26.214024Z',
'url': 'https://files.pythonhosted.org/packages/73/f2/694c234bc38c6013aef1667d92ca3c0ef5c7d36e801d79810050d4642ce4/21cmFAST-3.1.0.tar.gz',
'yanked': False},
{'core-metadata': False,
'data-dist-info-metadata': False,
'filename': '21cmFAST-3.1.1.tar.gz',
'hashes': {'sha256': 'b3d163d2ef5226fd1140fbc14a0189b26ef4965d5ad601e6e9ce8f4ae521417d'},
'provenance': None,
'requires-python': None,
'size': 4670303,
'upload-time': '2021-06-14T04:19:04.096897Z',
'url': 'https://files.pythonhosted.org/packages/6e/1e/c3af5e76ac6ddbf782bc291017daf3c312e889ff5e11c6ef983e7da7e3b0/21cmFAST-3.1.1.tar.gz',
'yanked': False},
{'core-metadata': False,
'data-dist-info-metadata': False,
'filename': '21cmFAST-3.1.2.tar.gz',
'hashes': {'sha256': '514ba441cd435662e1adf4a7eee03dbcf1784665a6e66e8f4156074ab473704b'},
'provenance': None,
'requires-python': None,
'size': 4682370,
'upload-time': '2021-07-16T16:45:31.105231Z',
'url': 'https://files.pythonhosted.org/packages/f5/a9/7aab4016f6bb2510cf21ea0eb2a90f410c118d99c1754ee7ee18b9a2b9fe/21cmFAST-3.1.2.tar.gz',
'yanked': False},
{'core-metadata': False,
'data-dist-info-metadata': False,
'filename': '21cmFAST-3.1.3.tar.gz',
'hashes': {'sha256': '4c3243534f1e66c2ad600a7836b20aef13ad159f3d93b5c3751308b2671ed0a9'},
'provenance': None,
'requires-python': None,
'size': 4686793,
'upload-time': '2021-10-28T23:29:42.205512Z',
'url': 'https://files.pythonhosted.org/packages/c2/de/ddd6b6046f5059ff69f05ee1c4e12a021f748267dc503d3b7a1d400c7e23/21cmFAST-3.1.3.tar.gz',
'yanked': False},
{'core-metadata': False,
'data-dist-info-metadata': False,
'filename': '21cmFAST-3.1.4.tar.gz',
'hashes': {'sha256': 'b76cc0e7afe90712b17fbc400b789e0908bfc0c411c71db9b583a76fda7f20a5'},
'provenance': None,
'requires-python': None,
'size': 4686108,
'upload-time': '2022-02-21T18:56:16.053907Z',
'url': 'https://files.pythonhosted.org/packages/f0/9e/8a707427766ea2a35e9af0472a63fe9023bbf0e0dd1294ae40b059443109/21cmFAST-3.1.4.tar.gz',
'yanked': False},
{'core-metadata': False,
'data-dist-info-metadata': False,
'filename': '21cmFAST-3.1.5.tar.gz',
'hashes': {'sha256': '4f71526cf3b24865111cb79828c16af2b5ee1e0f8301b3f5f245d64fa6cba871'},
'provenance': None,
'requires-python': None,
'size': 4686277,
'upload-time': '2022-04-28T22:28:03.248413Z',
'url': 'https://files.pythonhosted.org/packages/bd/0e/b18fa777ed207c9954ecd170430096765b8877755db390483e48bad355fc/21cmFAST-3.1.5.tar.gz',
'yanked': False},
{'core-metadata': False,
'data-dist-info-metadata': False,
'filename': '21cmFAST-3.2.0.tar.gz',
'hashes': {'sha256': 'e7d50d38cf60002df94aea9865fef1e26bc0dcfdffe42ffef5ce48d1166e5551'},
'provenance': None,
'requires-python': None,
'size': 4687436,
'upload-time': '2022-07-13T18:38:58.610696Z',
'url': 'https://files.pythonhosted.org/packages/5a/72/81b2e98570bd150c692ddffa927f5b61a994df4ee7f9ef9b9c80de050b69/21cmFAST-3.2.0.tar.gz',
'yanked': False},
{'core-metadata': False,
'data-dist-info-metadata': False,
'filename': '21cmFAST-3.3.0.tar.gz',
'hashes': {'sha256': 'f95d21f0cf0fa9479b6c109fb779cf58d89ac68a6267269d47937a34a4a99f73'},
'provenance': None,
'requires-python': None,
'size': 9493359,
'upload-time': '2023-05-18T15:39:38.515501Z',
'url': 'https://files.pythonhosted.org/packages/03/1c/f49a63d493dae73eea2496e70976aeed017dfdf2f914b219979ecf6e5397/21cmFAST-3.3.0.tar.gz',
'yanked': False},
{'core-metadata': False,
'data-dist-info-metadata': False,
'filename': '21cmFAST-3.3.1.tar.gz',
'hashes': {'sha256': '96f5809d111a8a137c25758fa3f41586ea44cecba7ae191518767895afc7b3c6'},
'provenance': None,
'requires-python': None,
'size': 9492751,
'upload-time': '2023-05-25T00:23:02.255448Z',
'url': 'https://files.pythonhosted.org/packages/ff/4d/31054be4d51bab853d654b011a7649d15dec9ac1667ea9b8860b13333f23/21cmFAST-3.3.1.tar.gz',
'yanked': False},
{'core-metadata': False,
'data-dist-info-metadata': False,
'filename': '21cmfast-3.4.0.tar.gz',
'hashes': {'sha256': 'aff3b5a2adb30ad9a6c2274461901686606e9fdb5e3ff7040cbdf22755d7469f'},
'provenance': None,
'requires-python': None,
'size': 13149833,
'upload-time': '2024-08-08T11:51:22.987606Z',
'url': 'https://files.pythonhosted.org/packages/29/47/cb3202f60d07c21652956c74d16f6bc025b0347ece336ff73784efec5e41/21cmfast-3.4.0.tar.gz',
'yanked': False}],
'meta': {'_last-serial': 24483722, 'api-version': '1.3'},
'name': '21cmfast',
'versions': ['3.0.0.dev0',
'3.0.0.dev1',
'3.0.0.dev2',
'3.0.0.dev3',
'3.0.0.dev4',
'3.0.0.dev5',
'3.0.0.dev6',
'3.0.0.dev7',
'3.0.0',
'3.0.1',
'3.0.2.dev0',
'3.0.2',
'3.0.3',
'3.1.0',
'3.1.1',
'3.1.2',
'3.1.3',
'3.1.4',
'3.1.5',
'3.2.0',
'3.3.0',
'3.3.1',
'3.4.0']}
Many version updates fail because their canonical download urls for pypi do not work. We can use the simple json api to get the project's download url and hash: https://warehouse.pypa.io/api-reference/legacy.html#get--simple--project--