# Stable PyPI URL? (or “Where in the World is yamlcore?”)

**URL:** <https://discuss.python.org/t/stable-pypi-url-or-where-in-the-world-is-yamlcore/67582>\
**Category:** User Feedback\
**Created:** [October 11, 2024, 3:24pm UTC](https://discuss.python.org/t/stable-pypi-url-or-where-in-the-world-is-yamlcore/67582 "2024-10-11T15:24:49Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![mcepl](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/mcepl/32/24095_2.png) [@mcepl](https://discuss.python.org/u/mcepl)\
**Post date:** [October 11, 2024, 3:24pm UTC](https://discuss.python.org/t/stable-pypi-url-or-where-in-the-world-is-yamlcore/67582/1 "2024-10-11T15:24:49Z")

</div>

As a packager of Python packages for a large Linux distro (openSUSE), I rely heavily on the stable URLs on PyPI in the form `https://files.pythonhosted.org/packages/{first-letter}/{name}/{name}-{version}.tar.gz`. Is this alias still supported? The Web interface uses some unexpectable like `https://files.pythonhosted.org/packages/eb/d4/113dfc4c85f945de13b045a20eca50be5f6efa33342d9a9bd6162d26b288/yamlcore-0.0.4.tar.gz`, whereas I would like to use `https://files.pythonhosted.org/packages/y/yamlcore/yamlcore-0.0.4.tar.gz`, which however gives me just 404.

Any idea what do I do wrong?

---

<div class="post-metadata">

**Author:** ![EWDurbin](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/ewdurbin/32/3103_2.png) [@EWDurbin](https://discuss.python.org/u/EWDurbin)\
**Post date:** [October 11, 2024, 3:34pm UTC](https://discuss.python.org/t/stable-pypi-url-or-where-in-the-world-is-yamlcore/67582/2 "2024-10-11T15:34:14Z")

</div>

[Integration guide - Warehouse documentation](https://warehouse.pypa.io/api-reference/integration-guide.html#querying-pypi-for-package-urls) covers the options for determining file download URLs.

Your best bet is to query the JSON API, but a helper does exist with some caveats. Namely that the file name portion of the URL must be exact ([capitalization](https://github.com/pypi/conveyor/issues/32), [underscores/hypens](https://github.com/pypi/conveyor/issues/22), etc…).

---

<div class="post-metadata">

**Author:** ![Standre](https://avatars.discourse-cdn.com/v4/letter/s/f05b48/32.png) [@Standre](https://discuss.python.org/u/Standre)\
**Post date:** [October 11, 2024, 7:14pm UTC](https://discuss.python.org/t/stable-pypi-url-or-where-in-the-world-is-yamlcore/67582/3 "2024-10-11T19:14:02Z")

</div>

source distributions are found under `/source/`, i.e.:  
`https://files.pythonhosted.org/packages/source/y/yamlcore/yamlcore-0.0.4.tar.gz`  
wheels are under the python tag:  
`https://files.pythonhosted.org/packages/py3/y/yamlcore/yamlcore-0.0.4-py3-none-any.whl`

---

<div class="post-metadata">

**Author:** ![mcepl](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/mcepl/32/24095_2.png) [@mcepl](https://discuss.python.org/u/mcepl)\
**Post date:** [October 12, 2024, 6:22pm UTC](https://discuss.python.org/t/stable-pypi-url-or-where-in-the-world-is-yamlcore/67582/4 "2024-10-12T18:22:21Z")

</div>

Oh, lovely, `sed` change in the couple of thousand packages!
