cli-command-parser 2024.4.20__tar.gz → 2024.4.21__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 (65) hide show
  1. {cli_command_parser-2024.4.20/lib/cli_command_parser.egg-info → cli_command_parser-2024.4.21}/PKG-INFO +1 -1
  2. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/__version__.py +1 -1
  3. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/annotations.py +4 -2
  4. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/commands.py +1 -1
  5. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/exceptions.py +0 -1
  6. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21/lib/cli_command_parser.egg-info}/PKG-INFO +1 -1
  7. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/LICENSE +0 -0
  8. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/MANIFEST.in +0 -0
  9. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/entry_points.txt +0 -0
  10. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/__init__.py +0 -0
  11. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/__main__.py +0 -0
  12. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/command_parameters.py +0 -0
  13. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/compat.py +0 -0
  14. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/config.py +0 -0
  15. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/context.py +0 -0
  16. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/conversion/__init__.py +0 -0
  17. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/conversion/__main__.py +0 -0
  18. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/conversion/argparse_ast.py +0 -0
  19. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/conversion/argparse_utils.py +0 -0
  20. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/conversion/cli.py +0 -0
  21. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/conversion/command_builder.py +0 -0
  22. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/conversion/utils.py +0 -0
  23. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/conversion/visitor.py +0 -0
  24. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/core.py +0 -0
  25. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/documentation.py +0 -0
  26. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/error_handling.py +0 -0
  27. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/formatting/__init__.py +0 -0
  28. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/formatting/commands.py +0 -0
  29. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/formatting/params.py +0 -0
  30. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/formatting/restructured_text.py +0 -0
  31. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/formatting/utils.py +0 -0
  32. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/inputs/__init__.py +0 -0
  33. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/inputs/base.py +0 -0
  34. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/inputs/choices.py +0 -0
  35. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/inputs/exceptions.py +0 -0
  36. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/inputs/files.py +0 -0
  37. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/inputs/numeric.py +0 -0
  38. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/inputs/patterns.py +0 -0
  39. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/inputs/time.py +0 -0
  40. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/inputs/utils.py +0 -0
  41. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/metadata.py +0 -0
  42. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/nargs.py +0 -0
  43. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/parameters/__init__.py +0 -0
  44. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/parameters/actions.py +0 -0
  45. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/parameters/base.py +0 -0
  46. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/parameters/choice_map.py +0 -0
  47. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/parameters/groups.py +0 -0
  48. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/parameters/option_strings.py +0 -0
  49. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/parameters/options.py +0 -0
  50. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/parameters/pass_thru.py +0 -0
  51. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/parameters/positionals.py +0 -0
  52. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/parse_tree.py +0 -0
  53. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/parser.py +0 -0
  54. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/testing.py +0 -0
  55. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/typing.py +0 -0
  56. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser/utils.py +0 -0
  57. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser.egg-info/SOURCES.txt +0 -0
  58. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser.egg-info/dependency_links.txt +0 -0
  59. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser.egg-info/entry_points.txt +0 -0
  60. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser.egg-info/requires.txt +0 -0
  61. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/lib/cli_command_parser.egg-info/top_level.txt +0 -0
  62. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/pyproject.toml +0 -0
  63. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/readme.rst +0 -0
  64. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/requirements-dev.txt +0 -0
  65. {cli_command_parser-2024.4.20 → cli_command_parser-2024.4.21}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cli_command_parser
3
- Version: 2024.4.20
3
+ Version: 2024.4.21
4
4
  Summary: CLI Command Parser
5
5
  Home-page: https://github.com/dskrypa/cli_command_parser
6
6
  Author: Doug Skrypa
@@ -1,7 +1,7 @@
1
1
  __title__ = 'cli_command_parser'
2
2
  __description__ = 'CLI Command Parser'
3
3
  __url__ = 'https://github.com/dskrypa/cli_command_parser'
4
- __version__ = '2024.04.20'
4
+ __version__ = '2024.04.21'
5
5
  __author__ = 'Doug Skrypa'
6
6
  __author_email__ = 'dskrypa@gmail.com'
7
7
  __license__ = 'Apache 2.0'
@@ -5,8 +5,9 @@ Utilities for extracting types from annotations.
5
5
  """
6
6
 
7
7
  from collections.abc import Collection, Iterable
8
+ from functools import lru_cache
8
9
  from inspect import isclass
9
- from typing import Union, Optional, get_type_hints, get_origin, get_args as _get_args # pylint: disable=C0412
10
+ from typing import Union, Optional, get_type_hints as _get_type_hints, get_origin, get_args as _get_args
10
11
 
11
12
  try:
12
13
  from types import NoneType
@@ -15,9 +16,10 @@ except ImportError: # Added in 3.10
15
16
 
16
17
  __all__ = ['get_descriptor_value_type']
17
18
 
19
+ get_type_hints = lru_cache()(_get_type_hints) # Cache the attr:annotation mapping for each Command class
20
+
18
21
 
19
22
  def get_descriptor_value_type(command_cls: type, attr: str) -> Optional[type]:
20
- # TODO: Optimize this to cache get_type_hints for a given class?
21
23
  try:
22
24
  annotation = get_type_hints(command_cls)[attr]
23
25
  except (KeyError, NameError): # KeyError due to attr missing; NameError for forward references
@@ -20,7 +20,7 @@ from .utils import maybe_await
20
20
  if TYPE_CHECKING:
21
21
  from .typing import Bool, CommandObj
22
22
 
23
- __all__ = ['Command', 'main']
23
+ __all__ = ['Command', 'AsyncCommand', 'main']
24
24
  log = logging.getLogger(__name__)
25
25
 
26
26
  Argv = Sequence[str]
@@ -123,7 +123,6 @@ class UsageError(CommandParserException):
123
123
  """Base exception for user errors"""
124
124
 
125
125
  message: str = None
126
- # TODO: Document that this is a recommended exception type to use when performing manual input validation
127
126
 
128
127
 
129
128
  class ParamUsageError(UsageError):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cli_command_parser
3
- Version: 2024.4.20
3
+ Version: 2024.4.21
4
4
  Summary: CLI Command Parser
5
5
  Home-page: https://github.com/dskrypa/cli_command_parser
6
6
  Author: Doug Skrypa