uv/scripts
Meitar Reihan d2693dab87
add helper script to download the needed files to mirror for UV_PYTHON_INSTALL_MIRROR (#8548)
## Summary

I added `crates/uv-python/create-mirror.py` to make it easy to download
all the needed files to create a mirror for Python distributions in an
offline environment.

the script also has an option to iterate over the git history of the
`download-metadata.json` to make sure we have all the files needed for
all the uv versions


## Test Plan

```
uv run create-mirror.py --from-all-history --os linux --arch x86_64 --name cpython
2024-10-25 01:31:12,973 - INFO - Starting download of 466 files.
Downloading: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 466/466 [06:11<00:00,  1.26file/s]
Successfully downloaded: 466
now you can run UV_PYTHON_INSTALL_MIRROR='file:///home/meitar/dev/uv/crates/uv-python/mirror' uv python install
```
then checked (the `unshare` command make sure that the process don't
have any netwok)
```
UV_PYTHON_INSTALL_MIRROR=file:///home/meitar/dev/uv/crates/uv-python/mirror sudo -E unshare -n /home/meitar/.local/bin/uv python install 3.13
Searching for Python versions matching: Python 3.13
Installed Python 3.13.0 in 2.91s
 + cpython-3.13.0-linux-x86_64-gnu
```

---------

Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2024-12-04 01:41:19 +00:00
..
benchmark Update `BENCHMARKS.md` (#6258) 2024-08-20 16:42:57 +00:00
links Add test case for wheel installation with different path (#4396) 2024-06-19 09:39:55 -05:00
packages Build backend: Default excludes (#9552) 2024-12-01 14:09:55 +01:00
popular_packages Use sets rather than vectors for lockfile requirements (#6107) 2024-08-15 13:00:35 +00:00
publish Upload: All metadata incl. PEP 639 (#9442) 2024-11-27 00:25:08 +01:00
requirements Add bad backtracking test cases for (#8171) 2024-10-14 20:54:08 +00:00
scenarios Implement PEP 440-compliant local version semantics (#8797) 2024-11-07 14:29:54 -06:00
workspaces Skip files when detecting workspace members (#5735) 2024-08-02 19:44:43 +00:00
check_cache_compat.py Set absolute URLs prior to uploading to PyPI (#5038) 2024-07-13 17:29:21 +00:00
check_embedded_python.py Set absolute URLs prior to uploading to PyPI (#5038) 2024-07-13 17:29:21 +00:00
check_system_python.py Allow explicitly requesting an system interpreter version in `check_system_python` (#7306) 2024-09-11 19:41:42 +00:00
create-python-mirror.py add helper script to download the needed files to mirror for UV_PYTHON_INSTALL_MIRROR (#8548) 2024-12-04 01:41:19 +00:00
release.sh Remove the preview changelog (#6259) 2024-08-20 16:47:46 +00:00
sync_scenarios.sh Add shellcheck CI (#7888) 2024-10-08 13:58:00 -05:00
transform_readme.py Fix benchmark image in documentation (#5102) 2024-07-16 13:54:06 +00:00
update_schemastore.py Update SchemaStore script (#5024) 2024-07-12 17:49:38 -04:00
uv-run-remote-script-test.py Pin rich==13.7.1 for --exclude-newer in tests (#7713) 2024-09-26 11:54:50 -04:00