ducktools-pythonfinder 0.6.6__tar.gz → 0.6.7__tar.gz

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.
Files changed (39) hide show
  1. {ducktools_pythonfinder-0.6.6/src/ducktools_pythonfinder.egg-info → ducktools_pythonfinder-0.6.7}/PKG-INFO +1 -1
  2. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/src/ducktools/pythonfinder/__main__.py +39 -6
  3. ducktools_pythonfinder-0.6.7/src/ducktools/pythonfinder/_version.py +2 -0
  4. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7/src/ducktools_pythonfinder.egg-info}/PKG-INFO +1 -1
  5. ducktools_pythonfinder-0.6.6/src/ducktools/pythonfinder/_version.py +0 -2
  6. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/.gitignore +0 -0
  7. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/LICENSE +0 -0
  8. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/MANIFEST.in +0 -0
  9. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/README.md +0 -0
  10. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/pyproject.toml +0 -0
  11. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/scripts/build_zipapp.py +0 -0
  12. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/scripts/detail_this_python.py +0 -0
  13. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/scripts/print_python_versions.py +0 -0
  14. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/setup.cfg +0 -0
  15. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/src/ducktools/pythonfinder/__init__.py +0 -0
  16. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/src/ducktools/pythonfinder/darwin/__init__.py +0 -0
  17. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/src/ducktools/pythonfinder/details_script.py +0 -0
  18. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/src/ducktools/pythonfinder/linux/__init__.py +0 -0
  19. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/src/ducktools/pythonfinder/linux/pyenv_search.py +0 -0
  20. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/src/ducktools/pythonfinder/pythonorg_search.py +0 -0
  21. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/src/ducktools/pythonfinder/shared.py +0 -0
  22. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/src/ducktools/pythonfinder/win32/__init__.py +0 -0
  23. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/src/ducktools/pythonfinder/win32/pyenv_search.py +0 -0
  24. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/src/ducktools/pythonfinder/win32/registry_search.py +0 -0
  25. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/src/ducktools_pythonfinder.egg-info/SOURCES.txt +0 -0
  26. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/src/ducktools_pythonfinder.egg-info/dependency_links.txt +0 -0
  27. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/src/ducktools_pythonfinder.egg-info/entry_points.txt +0 -0
  28. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/src/ducktools_pythonfinder.egg-info/requires.txt +0 -0
  29. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/src/ducktools_pythonfinder.egg-info/top_level.txt +0 -0
  30. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/tests/conftest.py +0 -0
  31. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/tests/sources/python_versions.txt +0 -0
  32. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/tests/sources/release.json +0 -0
  33. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/tests/sources/release_file.json +0 -0
  34. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/tests/test_details_script.py +0 -0
  35. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/tests/test_foldersearch.py +0 -0
  36. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/tests/test_orgsearch.py +0 -0
  37. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/tests/test_pyenv.py +0 -0
  38. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/tests/test_shared.py +0 -0
  39. {ducktools_pythonfinder-0.6.6 → ducktools_pythonfinder-0.6.7}/tests/test_uv_finder.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ducktools-pythonfinder
3
- Version: 0.6.6
3
+ Version: 0.6.7
4
4
  Summary: Cross platform tool to find available python installations
5
5
  Author: David C Ellis
6
6
  Project-URL: Homepage, https://github.com/davidcellis/ducktools-pythonfinder
@@ -74,8 +74,42 @@ def stop_autoclose():
74
74
  _laz.subprocess.run("pause", shell=True)
75
75
 
76
76
 
77
- def parse_args(args):
78
- parser = _laz.argparse.ArgumentParser(
77
+ def _get_parser_class():
78
+ # This class is deferred to avoid the argparse import
79
+ # if there are no arguments to parse
80
+
81
+ class FixedArgumentParser(_laz.argparse.ArgumentParser):
82
+ """
83
+ The builtin argument parser uses shutil to figure out the terminal width
84
+ to display help info. This one replaces the function that calls help info
85
+ and plugs in a value for width.
86
+
87
+ This prevents the unnecessary import.
88
+ """
89
+
90
+ def _get_formatter(self):
91
+ # Calculate width
92
+ try:
93
+ columns = int(os.environ['COLUMNS'])
94
+ except (KeyError, ValueError):
95
+ try:
96
+ size = os.get_terminal_size()
97
+ except (AttributeError, ValueError, OSError):
98
+ # get_terminal_size unsupported
99
+ columns = 80
100
+ else:
101
+ columns = size.columns
102
+
103
+ # noinspection PyArgumentList
104
+ return self.formatter_class(prog=self.prog, width=columns - 2)
105
+
106
+ return FixedArgumentParser
107
+
108
+
109
+ def get_parser():
110
+ FixedArgumentParser = _get_parser_class() # noqa
111
+
112
+ parser = FixedArgumentParser(
79
113
  prog="ducktools-pythonfinder",
80
114
  description="Discover base Python installs",
81
115
  )
@@ -122,9 +156,7 @@ def parse_args(args):
122
156
  help="Include prerelease versions"
123
157
  )
124
158
 
125
- vals = parser.parse_args(args)
126
-
127
- return vals
159
+ return parser
128
160
 
129
161
 
130
162
  def display_local_installs(
@@ -270,7 +302,8 @@ def main():
270
302
  )
271
303
 
272
304
  if sys.argv[1:]:
273
- vals = parse_args(sys.argv[1:])
305
+ parser = get_parser()
306
+ vals = parser.parse_args(sys.argv[1:])
274
307
 
275
308
  if vals.command == "online":
276
309
  system = vals.system if vals.system else _laz.platform.system()
@@ -0,0 +1,2 @@
1
+ __version__ = "0.6.7"
2
+ __version_tuple__ = (0, 6, 7)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ducktools-pythonfinder
3
- Version: 0.6.6
3
+ Version: 0.6.7
4
4
  Summary: Cross platform tool to find available python installations
5
5
  Author: David C Ellis
6
6
  Project-URL: Homepage, https://github.com/davidcellis/ducktools-pythonfinder
@@ -1,2 +0,0 @@
1
- __version__ = "0.6.6"
2
- __version_tuple__ = (0, 6, 6)