pystand 1.10__py3-none-any.whl → 1.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.
- {pystand-1.10.dist-info → pystand-1.12.dist-info}/METADATA +4 -4
- pystand-1.12.dist-info/RECORD +6 -0
- {pystand-1.10.dist-info → pystand-1.12.dist-info}/WHEEL +1 -1
- pystand.py +40 -29
- pystand-1.10.dist-info/RECORD +0 -6
- {pystand-1.10.dist-info → pystand-1.12.dist-info}/entry_points.txt +0 -0
- {pystand-1.10.dist-info → pystand-1.12.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: pystand
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.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
|
@@ -155,7 +155,7 @@ options:
|
|
155
155
|
rate limiting.
|
156
156
|
--no-strip do not use or create stripped binaries
|
157
157
|
--no-extra-strip do not restrip already stripped source binaries
|
158
|
-
-V
|
158
|
+
-V, --version just show pystand version
|
159
159
|
|
160
160
|
Commands:
|
161
161
|
{install,update,remove,list,show,path}
|
@@ -280,8 +280,8 @@ usage: pystand path [-h] [-p] [version]
|
|
280
280
|
Show path prefix to installed version base directory.
|
281
281
|
|
282
282
|
positional arguments:
|
283
|
-
version version to return path for, or latest
|
284
|
-
not specified
|
283
|
+
version version to return path for, or latest installed version
|
284
|
+
if not specified
|
285
285
|
|
286
286
|
options:
|
287
287
|
-h, --help show this help message and exit
|
@@ -0,0 +1,6 @@
|
|
1
|
+
pystand.py,sha256=lWNyCZTLNNmh6OoKrAG7pKCqOaoZollVpCWbAHrCxeM,32450
|
2
|
+
pystand-1.12.dist-info/METADATA,sha256=VV3aLNNThQ0p06Hk_MWTN79jZ4MaKCgF273oMuRrZBE,15923
|
3
|
+
pystand-1.12.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
4
|
+
pystand-1.12.dist-info/entry_points.txt,sha256=DG4ps3I3nni1bubV1tXs6u8FARgkdbAYaEAzZD4RAo8,41
|
5
|
+
pystand-1.12.dist-info/top_level.txt,sha256=NoWUh19UQymAJLHTCdxMnVwV6Teftef5fzyF3OWLyNY,8
|
6
|
+
pystand-1.12.dist-info/RECORD,,
|
pystand.py
CHANGED
@@ -167,11 +167,11 @@ class VersionMatcher:
|
|
167
167
|
version += '.'
|
168
168
|
|
169
169
|
# Only allow upgrade of formal release to another formal
|
170
|
-
# release
|
170
|
+
# release.
|
171
171
|
for full_version in self.seq:
|
172
172
|
if full_version.startswith(version):
|
173
|
-
if not upgrade \
|
174
|
-
or is_release_version(full_version)
|
173
|
+
if not upgrade or not is_release \
|
174
|
+
or is_release_version(full_version):
|
175
175
|
return full_version
|
176
176
|
|
177
177
|
return None
|
@@ -529,8 +529,8 @@ def main() -> str | None:
|
|
529
529
|
help='do not use or create stripped binaries')
|
530
530
|
opt.add_argument('--no-extra-strip', action='store_true',
|
531
531
|
help='do not restrip already stripped source binaries')
|
532
|
-
opt.add_argument('-V', action='store_true',
|
533
|
-
help=f'show {PROG} version')
|
532
|
+
opt.add_argument('-V', '--version', action='store_true',
|
533
|
+
help=f'just show {PROG} version')
|
534
534
|
cmd = opt.add_subparsers(title='Commands', dest='cmdname')
|
535
535
|
|
536
536
|
# Add each command ..
|
@@ -569,12 +569,12 @@ def main() -> str | None:
|
|
569
569
|
|
570
570
|
args = opt.parse_args(shlex.split(cnflines) + sys.argv[1:])
|
571
571
|
|
572
|
-
if args.V:
|
573
|
-
print(get_version())
|
574
|
-
|
575
572
|
if 'func' not in args:
|
576
|
-
if
|
577
|
-
|
573
|
+
if args.version:
|
574
|
+
print(get_version())
|
575
|
+
return None
|
576
|
+
|
577
|
+
opt.print_help()
|
578
578
|
return None
|
579
579
|
|
580
580
|
distribution = args.distribution or distro_default
|
@@ -670,11 +670,11 @@ class _update(COMMAND):
|
|
670
670
|
if not (data := get_json(args._versions / version / args._data)):
|
671
671
|
continue
|
672
672
|
|
673
|
-
release
|
674
|
-
if release == release_target:
|
673
|
+
if (release := data.get('release')) == release_target:
|
675
674
|
continue
|
676
675
|
|
677
|
-
nextver
|
676
|
+
if not (nextver := matcher.match(version, upgrade=True)):
|
677
|
+
continue
|
678
678
|
|
679
679
|
distribution = data.get('distribution')
|
680
680
|
if not distribution or distribution not in files.get(nextver, {}):
|
@@ -768,23 +768,31 @@ class _list(COMMAND):
|
|
768
768
|
app = ''
|
769
769
|
if release_target and release != release_target:
|
770
770
|
nextver = matcher.match(version, upgrade=True)
|
771
|
-
|
772
|
-
if nextver != version and new_vdir.exists():
|
771
|
+
if not nextver:
|
773
772
|
if args.verbose:
|
774
|
-
|
775
|
-
|
776
|
-
|
777
|
-
f'update because {fmt(nextver, nrelease)} '\
|
778
|
-
'is already installed.'
|
773
|
+
app = ' not eligible for update because '\
|
774
|
+
f'release {release_target} does not provide '\
|
775
|
+
'this version.'
|
779
776
|
else:
|
780
|
-
|
781
|
-
|
782
|
-
|
783
|
-
|
784
|
-
|
785
|
-
|
786
|
-
|
787
|
-
|
777
|
+
new_vdir = args._versions / nextver
|
778
|
+
if nextver != version and new_vdir.exists():
|
779
|
+
if args.verbose:
|
780
|
+
nrelease = get_json(
|
781
|
+
new_vdir / args._data).get('release', '?')
|
782
|
+
app = f' not eligible for '\
|
783
|
+
f'update because {fmt(nextver, nrelease)} '\
|
784
|
+
'is already installed.'
|
785
|
+
else:
|
786
|
+
# May not be updatable if newer release does not support
|
787
|
+
# this same distribution anymore
|
788
|
+
if nextver and distribution in files.get(nextver, {}):
|
789
|
+
upd = ' updatable to '\
|
790
|
+
f'{fmt(nextver, release_target)}'
|
791
|
+
elif args.verbose:
|
792
|
+
app = ' not eligible for update because '\
|
793
|
+
f'{fmt(nextver, release_target)} does '\
|
794
|
+
'not provide '\
|
795
|
+
f'distribution="{distribution}".'
|
788
796
|
|
789
797
|
print(f'{fmt(version, release)}{upd} '
|
790
798
|
f'distribution="{distribution}"{app}')
|
@@ -841,12 +849,15 @@ class _path(COMMAND):
|
|
841
849
|
help='return full path to python executable')
|
842
850
|
parser.add_argument('version', nargs='?',
|
843
851
|
help='version to return path for, or latest '
|
844
|
-
'
|
852
|
+
'installed version if not specified')
|
845
853
|
|
846
854
|
@staticmethod
|
847
855
|
def run(args: Namespace) -> str | None:
|
848
856
|
matcher = VersionMatcher([f.name for f in iter_versions(args)])
|
849
857
|
version = matcher.match(args.version) or args.version
|
858
|
+
if not version:
|
859
|
+
return 'No Python version installed.'
|
860
|
+
|
850
861
|
path = args._versions / version
|
851
862
|
if not path.is_dir():
|
852
863
|
return f'Version "{version}" is not installed.'
|
pystand-1.10.dist-info/RECORD
DELETED
@@ -1,6 +0,0 @@
|
|
1
|
-
pystand.py,sha256=KJbvxHMzi28M4HqgGS9A4YaGYrpDn-T4hhuaQqbGW2E,31942
|
2
|
-
pystand-1.10.dist-info/METADATA,sha256=f_l5yws3MCMJicGVN-o40gj1RlehBZ_Hg9jeYxLzLb4,15916
|
3
|
-
pystand-1.10.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
|
4
|
-
pystand-1.10.dist-info/entry_points.txt,sha256=DG4ps3I3nni1bubV1tXs6u8FARgkdbAYaEAzZD4RAo8,41
|
5
|
-
pystand-1.10.dist-info/top_level.txt,sha256=NoWUh19UQymAJLHTCdxMnVwV6Teftef5fzyF3OWLyNY,8
|
6
|
-
pystand-1.10.dist-info/RECORD,,
|
File without changes
|
File without changes
|