pystand 2.11__py3-none-any.whl → 2.12__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pystand
3
- Version: 2.11
3
+ Version: 2.12
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
@@ -27,8 +27,8 @@ provided:
27
27
  |Command |Description |
28
28
  |---------|----------------------------------------------------------------------|
29
29
  |`install`|Install one or more versions from a python-build-standalone release |
30
- |`update` |Update one, more, or all versions to another release |
31
- |`remove` |Remove/uninstall one, more, or all versions |
30
+ |`update` (or `upgrade`) |Update one, more, or all versions to another release |
31
+ |`remove` (or `uninstall`) |Remove/uninstall one, more, or all versions |
32
32
  |`list` |List installed versions and show which have an update available |
33
33
  |`show` |Show versions available from a release |
34
34
  |`path` |Show path prefix to installed version base directory |
@@ -0,0 +1,6 @@
1
+ pystand.py,sha256=l-ecHjOFK35q5EiZY-FMufu_C_jz7wUom2EvVtSTAiw,36826
2
+ pystand-2.12.dist-info/METADATA,sha256=F1TMDKy9Invr4mCU08z1-yWEpL0SFHJQFBRnAak-7yU,24843
3
+ pystand-2.12.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
4
+ pystand-2.12.dist-info/entry_points.txt,sha256=DG4ps3I3nni1bubV1tXs6u8FARgkdbAYaEAzZD4RAo8,41
5
+ pystand-2.12.dist-info/top_level.txt,sha256=NoWUh19UQymAJLHTCdxMnVwV6Teftef5fzyF3OWLyNY,8
6
+ pystand-2.12.dist-info/RECORD,,
pystand.py CHANGED
@@ -460,6 +460,30 @@ def purge_unused_releases(args: Namespace) -> None:
460
460
  if path.name not in keep:
461
461
  rm_path(path)
462
462
 
463
+ def show_list(args: Namespace) -> None:
464
+ 'Show a list of available releases'
465
+ releases = {r: d for r, d in fetch_tags()}
466
+ cached = set(p.name for p in args._releases.iterdir())
467
+ for release in sorted(cached.union(releases)):
468
+ if args.re_match and not re.search(args.re_match, release):
469
+ continue
470
+
471
+ if dt_str := releases.get(release):
472
+ dts = datetime.fromisoformat(dt_str).astimezone().isoformat(
473
+ sep='_', timespec='minutes')
474
+ else:
475
+ dts = '......................'
476
+
477
+ if release in cached:
478
+ ddir = args._downloads / release
479
+ count = len(list(ddir.iterdir())) if ddir.exists() else 0
480
+ app = f' cached + {count} downloaded files' \
481
+ if count > 0 else ' cached'
482
+ else:
483
+ app = ''
484
+
485
+ print(f'{release} {dts}{app}')
486
+
463
487
  class COMMAND:
464
488
  'Base class for all commands'
465
489
  commands = []
@@ -896,25 +920,18 @@ class _show(COMMAND):
896
920
  'matching this regular expression pattern')
897
921
 
898
922
  @staticmethod
899
- def run(args: Namespace) -> None:
923
+ def run(args: Namespace) -> str | None:
900
924
  if args.all and args.list:
901
925
  args.parser.error('Can not specify --all with --list.')
902
926
 
903
927
  if args.list:
904
- for title, datestr in fetch_tags():
905
- if args.re_match and not re.search(args.re_match, title):
906
- continue
907
-
908
- dts = datetime.fromisoformat(datestr).astimezone().isoformat(
909
- sep='_', timespec='minutes')
910
- print(title, dts)
911
-
912
- return
928
+ show_list(args)
929
+ return None
913
930
 
914
931
  release = get_release_tag(args)
915
932
  files = get_release_files(args, release, 'cpython')
916
933
  if not files:
917
- sys.exit(f'Error: release "{release}" not found.')
934
+ return f'Error: release "{release}" not found.'
918
935
 
919
936
  installed = {}
920
937
  for vdir in iter_versions(args):
@@ -1,6 +0,0 @@
1
- pystand.py,sha256=6yFhPrfS19fvrqxZKujgfWvbE0BxlKyexaX2-uXVD8E,36230
2
- pystand-2.11.dist-info/METADATA,sha256=Be4WcqhlUAXtn_PbXtG1hAlklpEQ3bspNTvhuKuOTJg,24843
3
- pystand-2.11.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
4
- pystand-2.11.dist-info/entry_points.txt,sha256=DG4ps3I3nni1bubV1tXs6u8FARgkdbAYaEAzZD4RAo8,41
5
- pystand-2.11.dist-info/top_level.txt,sha256=NoWUh19UQymAJLHTCdxMnVwV6Teftef5fzyF3OWLyNY,8
6
- pystand-2.11.dist-info/RECORD,,
File without changes