Hacker News new | ask | show | jobs
by touisteur 2060 days ago
All I hope is that they'll think about corporate firewalls and provide a simple way to mirror the whole thing (including their gnat-subscriber-only & tools&libs versions). Or at least provide some kind of Web page with all the download links for the transitive dependencies for a package...

PYPI kills me everytime I need to run any ML stuff, and I wish there was a systematic page to d/l all transitive dependencies (at least from requirements files and maybe setup.py static interpretation...)

2 comments

You could create a zip of the contents of site-packages and add that your PYTHONPATH.

Look for the metadata.json, in the dist-info directory

   {
      "requires": [
        "chardet (>=3.0.2,<4)",
        "idna (>=2.5,<3)",
        "urllib3 (!=1.25.1,<1.26,!=1.25.0,>=1.21.1)",
        "certifi (>=2017.4.17)"
      ]
    }
which I see isn't in all dist-info dirs.

You could also look at

    pip download --no-binary ':all:' --src src requests
It will download the source archives for those package and its deps. I think what you want is within reach. My email is profile, feel free to ask questions.
Thanks for the ideas. I had a free AWS instance doing uplink tshark capture during pip install and generated a page with links to all the dependencies (upgrade to a tar of all those later, when discovered the cache option for pip). But I let the instance go when it wasn't free anymore. Yes I'm cheap.
You can grab and build the index from here [0], and add your own indices (with varying priorities).

But if you want to actually proxy the individual download files, you'll need to iterate over the index files themselves, download them, and change their locations, which isn't overly difficult, but seems a bit beyond scope of a community index.

[0] https://github.com/alire-project/alire-index

Thanks for this, shakna.

As I'm trying to upgrade our whole bash-monster GNAT+gnatcoll+lal+florist+gtkada+younameit to the latest GNAT PRO continuous delivery, I wish I could just let some better tool do this...