pystand 2.3__py3-none-any.whl → 2.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pystand-2.3.dist-info → pystand-2.4.dist-info}/METADATA +162 -44
- pystand-2.4.dist-info/RECORD +6 -0
- pystand.py +14 -8
- pystand-2.3.dist-info/RECORD +0 -6
- {pystand-2.3.dist-info → pystand-2.4.dist-info}/WHEEL +0 -0
- {pystand-2.3.dist-info → pystand-2.4.dist-info}/entry_points.txt +0 -0
- {pystand-2.3.dist-info → pystand-2.4.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: pystand
|
3
|
-
Version: 2.
|
3
|
+
Version: 2.4
|
4
4
|
Summary: Install Python versions from python-build-standalone project
|
5
5
|
Author-email: Mark Blakeney <mark.blakeney@bullet-systems.net>
|
6
6
|
License: GPLv3
|
@@ -140,9 +140,9 @@ https://github.com/indygreg/python-build-standalone.
|
|
140
140
|
options:
|
141
141
|
-h, --help show this help message and exit
|
142
142
|
-D DISTRIBUTION, --distribution DISTRIBUTION
|
143
|
-
python-build-standalone distribution. Default is
|
144
|
-
|
145
|
-
|
143
|
+
python-build-standalone distribution. Default is
|
144
|
+
"x86_64-unknown-linux-gnu-install_only_stripped" for
|
145
|
+
this host.
|
146
146
|
-P PREFIX_DIR, --prefix-dir PREFIX_DIR
|
147
147
|
specify prefix dir for storing versions. Default is
|
148
148
|
"$HOME/.local/share/pystand"
|
@@ -264,18 +264,21 @@ options:
|
|
264
264
|
### Command `show`
|
265
265
|
|
266
266
|
```
|
267
|
-
usage: pystand show [-h] [-a] [
|
267
|
+
usage: pystand show [-h] [-r RELEASE] [-a] [re_match]
|
268
268
|
|
269
269
|
Show versions available from a release.
|
270
270
|
|
271
271
|
positional arguments:
|
272
|
-
|
273
|
-
|
272
|
+
re_match show only versions+distributions matching this regular
|
273
|
+
expression pattern
|
274
274
|
|
275
275
|
options:
|
276
|
-
-h, --help
|
277
|
-
-
|
278
|
-
|
276
|
+
-h, --help show this help message and exit
|
277
|
+
-r RELEASE, --release RELEASE
|
278
|
+
python-build-standalone YYYYMMDD release to show (e.g.
|
279
|
+
20240415), default is latest release
|
280
|
+
-a, --all show all available distributions for each version from
|
281
|
+
the release
|
279
282
|
```
|
280
283
|
|
281
284
|
### Command `path`
|
@@ -320,35 +323,6 @@ To uninstall:
|
|
320
323
|
$ pipx uninstall pystand
|
321
324
|
```
|
322
325
|
|
323
|
-
## Installing Other Builds/Distributions
|
324
|
-
|
325
|
-
The _`install_only_stripped`_ build of each distribution is installed by
|
326
|
-
default. See description of distributions/builds
|
327
|
-
[here](https://gregoryszorc.com/docs/python-build-standalone/main/running.html#obtaining-distributions).
|
328
|
-
However, you can choose to install other distributions/builds. E.g. If
|
329
|
-
we use a standard modern Linux x86_64 machine as an example, the default
|
330
|
-
distribution is _`x86_64-unknown-linux-gnu-install_only_stripped`_ and
|
331
|
-
the versions for these are installed by default at
|
332
|
-
`~/.local/share/pystand/<version>`.
|
333
|
-
|
334
|
-
However, let's say you want to experiment with the new free-threaded
|
335
|
-
3.13 build, installed to a different directory. E.g.:
|
336
|
-
|
337
|
-
```sh
|
338
|
-
$ mkdir ./3.13-freethreaded
|
339
|
-
$ cd ./3.13-freethreaded
|
340
|
-
|
341
|
-
$ pystand -P. -D x86_64-unknown-linux-gnu-freethreaded+lto-full install 3.13
|
342
|
-
$ ./3.13/bin/python -V
|
343
|
-
Python 3.13.0
|
344
|
-
|
345
|
-
$ pystand -P . list
|
346
|
-
3.13.0 @ 20241016 distribution="x86_64_v4-unknown-linux-gnu-freethreaded+lto-full"
|
347
|
-
```
|
348
|
-
|
349
|
-
Note you can set a different default distribution by specifying
|
350
|
-
`--distribution` as a [default option](#command-default-options).
|
351
|
-
|
352
326
|
## Extrapolation of Python Versions
|
353
327
|
|
354
328
|
For all commands except the `path` command, `pystand` extrapolates
|
@@ -407,6 +381,150 @@ $ uv venv -p $(pystand path 3.12.2)
|
|
407
381
|
$ uv venv -p $(pystand path -r 3.12)
|
408
382
|
```
|
409
383
|
|
384
|
+
## Installing Other Builds/Distributions
|
385
|
+
|
386
|
+
The _`install_only_stripped`_ distribution build is installed by default
|
387
|
+
for your running machine architecture. See description of
|
388
|
+
distributions/builds
|
389
|
+
[here](https://gregoryszorc.com/docs/python-build-standalone/main/running.html#obtaining-distributions).
|
390
|
+
However, you can choose to install other distributions/builds (even for
|
391
|
+
other architectures). E.g. If we use a standard modern Linux x86_64
|
392
|
+
machine as an example, the default distribution is
|
393
|
+
_`x86_64-unknown-linux-gnu-install_only_stripped`_ and the versions for
|
394
|
+
these are installed by default at `~/.local/share/pystand/<version>`.
|
395
|
+
|
396
|
+
However, let's say you want to experiment with the new free-threaded
|
397
|
+
3.13 build, installed to a different directory. E.g.:
|
398
|
+
|
399
|
+
```sh
|
400
|
+
$ mkdir ./3.13-freethreaded
|
401
|
+
$ cd ./3.13-freethreaded
|
402
|
+
|
403
|
+
$ pystand -P. -D x86_64-unknown-linux-gnu-freethreaded+lto-full install 3.13
|
404
|
+
$ ./3.13/bin/python -V
|
405
|
+
Python 3.13.0
|
406
|
+
|
407
|
+
$ pystand -P . list
|
408
|
+
3.13.0 @ 20241016 distribution="x86_64_v4-unknown-linux-gnu-freethreaded+lto-full"
|
409
|
+
```
|
410
|
+
|
411
|
+
Note you can set a different default distribution by specifying
|
412
|
+
`--distribution` as a [default option](#command-default-options).
|
413
|
+
|
414
|
+
### Searching for Available Versions and Distributions
|
415
|
+
|
416
|
+
The `show` command can be used to search for distributions as seen in the
|
417
|
+
following examples.
|
418
|
+
|
419
|
+
```sh
|
420
|
+
|
421
|
+
List all the versions installed on this system (at the default location):
|
422
|
+
|
423
|
+
```sh
|
424
|
+
$ pystand list
|
425
|
+
3.8.20 @ 20241002 distribution="x86_64-unknown-linux-gnu-install_only_stripped"
|
426
|
+
3.9.20 @ 20241016 distribution="x86_64-unknown-linux-gnu-install_only_stripped"
|
427
|
+
3.12.7 @ 20241016 distribution="x86_64-unknown-linux-gnu-install_only_stripped"
|
428
|
+
3.13.0 @ 20241016 distribution="x86_64-unknown-linux-gnu-install_only_stripped"
|
429
|
+
```
|
430
|
+
|
431
|
+
The above shows versions 3.9, 3.12, and 3.13 are installed from the latest
|
432
|
+
release 20241016. Version 3.8 is installed from the previous release
|
433
|
+
20241002 (and is not available in the latest release otherwise it would
|
434
|
+
be shown with an update message).
|
435
|
+
|
436
|
+
Now show all available versions from the latest release:
|
437
|
+
|
438
|
+
```sh
|
439
|
+
$ pystand show
|
440
|
+
3.9.20 @ 20241016 distribution="x86_64-unknown-linux-gnu-install_only_stripped" (installed)
|
441
|
+
3.10.15 @ 20241016 distribution="x86_64-unknown-linux-gnu-install_only_stripped"
|
442
|
+
3.11.10 @ 20241016 distribution="x86_64-unknown-linux-gnu-install_only_stripped"
|
443
|
+
3.12.7 @ 20241016 distribution="x86_64-unknown-linux-gnu-install_only_stripped" (installed)
|
444
|
+
3.13.0 @ 20241016 distribution="x86_64-unknown-linux-gnu-install_only_stripped" (installed)
|
445
|
+
```
|
446
|
+
|
447
|
+
We can see that versions 3.9, 3.12, and 3.13 are already installed (as
|
448
|
+
we also knew from list output), and that 3.10 and 3.11 are also available.
|
449
|
+
|
450
|
+
What is available from the previous release 20241002?
|
451
|
+
|
452
|
+
```sh
|
453
|
+
$ pystand show -r 20241002
|
454
|
+
3.8.20 @ 20241002 distribution="x86_64-unknown-linux-gnu-install_only_stripped" (installed)
|
455
|
+
3.9.20 @ 20241002 distribution="x86_64-unknown-linux-gnu-install_only_stripped"
|
456
|
+
3.10.15 @ 20241002 distribution="x86_64-unknown-linux-gnu-install_only_stripped"
|
457
|
+
3.11.10 @ 20241002 distribution="x86_64-unknown-linux-gnu-install_only_stripped"
|
458
|
+
3.12.7 @ 20241002 distribution="x86_64-unknown-linux-gnu-install_only_stripped"
|
459
|
+
3.13.0rc3 @ 20241002 distribution="x86_64-unknown-linux-gnu-install_only_stripped"
|
460
|
+
```
|
461
|
+
|
462
|
+
Let's install one of the threaded builds of Python 3.13. We can use the
|
463
|
+
`-a/-all` option to show all available distributions and then give the
|
464
|
+
`show` command a [regular
|
465
|
+
expression](https://en.wikipedia.org/wiki/Regular_expression) to filter
|
466
|
+
the output (this is really just a shorthand for piping the output of
|
467
|
+
`show -a` to grep). E.g.:
|
468
|
+
|
469
|
+
```sh
|
470
|
+
$ pystand show -a 3.13.*x86_64.*unknown-linux-gnu.*thread
|
471
|
+
3.13.0 @ 20241016 distribution="x86_64-unknown-linux-gnu-freethreaded+debug-full"
|
472
|
+
3.13.0 @ 20241016 distribution="x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full"
|
473
|
+
3.13.0 @ 20241016 distribution="x86_64-unknown-linux-gnu-freethreaded+pgo-full"
|
474
|
+
3.13.0 @ 20241016 distribution="x86_64_v2-unknown-linux-gnu-freethreaded+debug-full"
|
475
|
+
3.13.0 @ 20241016 distribution="x86_64_v2-unknown-linux-gnu-freethreaded+pgo+lto-full"
|
476
|
+
3.13.0 @ 20241016 distribution="x86_64_v2-unknown-linux-gnu-freethreaded+pgo-full"
|
477
|
+
3.13.0 @ 20241016 distribution="x86_64_v3-unknown-linux-gnu-freethreaded+debug-full"
|
478
|
+
3.13.0 @ 20241016 distribution="x86_64_v3-unknown-linux-gnu-freethreaded+pgo+lto-full"
|
479
|
+
3.13.0 @ 20241016 distribution="x86_64_v3-unknown-linux-gnu-freethreaded+pgo-full"
|
480
|
+
3.13.0 @ 20241016 distribution="x86_64_v4-unknown-linux-gnu-freethreaded+debug-full"
|
481
|
+
3.13.0 @ 20241016 distribution="x86_64_v4-unknown-linux-gnu-freethreaded+lto-full"
|
482
|
+
3.13.0 @ 20241016 distribution="x86_64_v4-unknown-linux-gnu-freethreaded+noopt-full"
|
483
|
+
```
|
484
|
+
|
485
|
+
So let's install the
|
486
|
+
`x86_64_v3-unknown-linux-gnu-freethreaded+pgo+lto-full` build of Python
|
487
|
+
3.13 (to the default location):
|
488
|
+
|
489
|
+
```sh
|
490
|
+
$ pystand -D x86_64_v3-unknown-linux-gnu-freethreaded+pgo+lto-full install 3.13
|
491
|
+
Version "3.13.0" is already installed.
|
492
|
+
```
|
493
|
+
|
494
|
+
An error is given because the version is already installed. We can
|
495
|
+
overwrite that with the `-f/--force` option:
|
496
|
+
|
497
|
+
```sh
|
498
|
+
$ pystand -D x86_64_v3-unknown-linux-gnu-freethreaded+pgo+lto-full install -f 3.13
|
499
|
+
Version 3.13.0 @ 20241016 installed.
|
500
|
+
```
|
501
|
+
|
502
|
+
Now we can see the new version distribution is installed:
|
503
|
+
|
504
|
+
```sh
|
505
|
+
|
506
|
+
$ pystand list
|
507
|
+
3.8.20 @ 20241002 distribution="x86_64-unknown-linux-gnu-install_only_stripped"
|
508
|
+
3.9.20 @ 20241016 distribution="x86_64-unknown-linux-gnu-install_only_stripped"
|
509
|
+
3.12.7 @ 20241016 distribution="x86_64-unknown-linux-gnu-install_only_stripped"
|
510
|
+
3.13.0 @ 20241016 distribution="x86_64_v3-unknown-linux-gnu-freethreaded+pgo+lto-full"
|
511
|
+
|
512
|
+
$ pystand show
|
513
|
+
3.9.20 @ 20241016 distribution="x86_64-unknown-linux-gnu-install_only_stripped" (installed)
|
514
|
+
3.10.15 @ 20241016 distribution="x86_64-unknown-linux-gnu-install_only_stripped"
|
515
|
+
3.11.10 @ 20241016 distribution="x86_64-unknown-linux-gnu-install_only_stripped"
|
516
|
+
3.12.7 @ 20241016 distribution="x86_64-unknown-linux-gnu-install_only_stripped" (installed)
|
517
|
+
3.13.0 @ 20241016 distribution="x86_64-unknown-linux-gnu-install_only_stripped"
|
518
|
+
3.13.0 @ 20241016 distribution="x86_64_v3-unknown-linux-gnu-freethreaded+pgo+lto-full" (installed)
|
519
|
+
```
|
520
|
+
|
521
|
+
Note that `pystand` caches all downloaded files (at least for a period
|
522
|
+
specified by `--purge-days`) so you can easily switch between different
|
523
|
+
versions/distributions quite quickly. You can also choose to install any
|
524
|
+
distribution/build in a specific directory using the `-P/--prefix-dir`
|
525
|
+
global option if you want to keep different distributions separate and
|
526
|
+
available in parallel.
|
527
|
+
|
410
528
|
## Command Default Options
|
411
529
|
|
412
530
|
You can add default global options to a personal configuration file
|
@@ -423,11 +541,11 @@ as defaults.
|
|
423
541
|
|
424
542
|
## Github API Rate Limiting
|
425
543
|
|
426
|
-
This tool minimises and caches Github API responses
|
427
|
-
[`python-build-standalone`][pbs] repository. However, if you
|
428
|
-
many different versions particularly across various releases,
|
429
|
-
get rate limited by Github so the command
|
430
|
-
"backoff" messages reported. You can create a Github access token to
|
544
|
+
This tool minimises and caches Github API responses and file downloads
|
545
|
+
from the [`python-build-standalone`][pbs] repository. However, if you
|
546
|
+
install many different versions particularly across various releases,
|
547
|
+
you may get rate limited by Github so the command can block and you will
|
548
|
+
see "backoff" messages reported. You can create a Github access token to
|
431
549
|
gain increased rate limits. Create a token in your Github account under
|
432
550
|
`Settings -> Developer settings -> Personal access tokens`. Specify the
|
433
551
|
token on the command line with `--github-access-token`, or set that as a
|
@@ -0,0 +1,6 @@
|
|
1
|
+
pystand.py,sha256=DGbYpdOu54cMuasq0hpcSfhn8vNhT-dDll4Xx6Xx628,33340
|
2
|
+
pystand-2.4.dist-info/METADATA,sha256=GdWm913Z7KD50Wq7gsHPR5COHU1fZhSuONSYFBf_H5c,24353
|
3
|
+
pystand-2.4.dist-info/WHEEL,sha256=R06PA3UVYHThwHvxuRWMqaGcr-PuniXahwjmQRFMEkY,91
|
4
|
+
pystand-2.4.dist-info/entry_points.txt,sha256=DG4ps3I3nni1bubV1tXs6u8FARgkdbAYaEAzZD4RAo8,41
|
5
|
+
pystand-2.4.dist-info/top_level.txt,sha256=NoWUh19UQymAJLHTCdxMnVwV6Teftef5fzyF3OWLyNY,8
|
6
|
+
pystand-2.4.dist-info/RECORD,,
|
pystand.py
CHANGED
@@ -529,8 +529,8 @@ def main() -> str | None:
|
|
529
529
|
# Set up main/global arguments
|
530
530
|
opt.add_argument('-D', '--distribution',
|
531
531
|
help=f'{REPO} distribution. '
|
532
|
-
f'Default is
|
533
|
-
'for this
|
532
|
+
f'Default is "{distro_help}" '
|
533
|
+
'for this host.')
|
534
534
|
opt.add_argument('-P', '--prefix-dir', default=prefix_dir,
|
535
535
|
help='specify prefix dir for storing '
|
536
536
|
'versions. Default is "%(default)s"')
|
@@ -827,12 +827,15 @@ class _show(COMMAND):
|
|
827
827
|
'Show versions available from a release.'
|
828
828
|
@staticmethod
|
829
829
|
def init(parser: ArgumentParser) -> None:
|
830
|
-
parser.add_argument('-
|
831
|
-
help='also show all available distributions for '
|
832
|
-
'each version from the release')
|
833
|
-
parser.add_argument('release', nargs='?',
|
830
|
+
parser.add_argument('-r', '--release',
|
834
831
|
help=f'{REPO} YYYYMMDD release to show (e.g. '
|
835
832
|
f'{SAMPL_RELEASE}), default is latest release')
|
833
|
+
parser.add_argument('-a', '--all', action='store_true',
|
834
|
+
help='show all available distributions for '
|
835
|
+
'each version from the release')
|
836
|
+
parser.add_argument('re_match', nargs='?',
|
837
|
+
help='show only versions+distributions '
|
838
|
+
'matching this regular expression pattern')
|
836
839
|
|
837
840
|
@staticmethod
|
838
841
|
def run(args: Namespace) -> None:
|
@@ -859,8 +862,11 @@ class _show(COMMAND):
|
|
859
862
|
if distribution == args._distribution:
|
860
863
|
installable = True
|
861
864
|
|
862
|
-
|
863
|
-
|
865
|
+
if not args.re_match or \
|
866
|
+
re.search(args.re_match,
|
867
|
+
f'{version}+{distribution}'):
|
868
|
+
print(f'{fmt(version, release)} '
|
869
|
+
f'distribution="{distribution}"{app}')
|
864
870
|
if not installable:
|
865
871
|
print(f'Warning: no distribution="{args._distribution}" '
|
866
872
|
'versions found in ' f'release "{release}".')
|
pystand-2.3.dist-info/RECORD
DELETED
@@ -1,6 +0,0 @@
|
|
1
|
-
pystand.py,sha256=3T4RUzfjXZUeKkgOlObw7vD4_DwZXqveouQT61y1O30,33019
|
2
|
-
pystand-2.3.dist-info/METADATA,sha256=TsiLEZYSRV9HPdFQOyPYlqoNG-mQ9kvuU8hLJ1ZwhIM,18759
|
3
|
-
pystand-2.3.dist-info/WHEEL,sha256=R06PA3UVYHThwHvxuRWMqaGcr-PuniXahwjmQRFMEkY,91
|
4
|
-
pystand-2.3.dist-info/entry_points.txt,sha256=DG4ps3I3nni1bubV1tXs6u8FARgkdbAYaEAzZD4RAo8,41
|
5
|
-
pystand-2.3.dist-info/top_level.txt,sha256=NoWUh19UQymAJLHTCdxMnVwV6Teftef5fzyF3OWLyNY,8
|
6
|
-
pystand-2.3.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|