click-extended 1.0.5__tar.gz → 1.0.6__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 (157) hide show
  1. {click_extended-1.0.5/click_extended.egg-info → click_extended-1.0.6}/PKG-INFO +1 -1
  2. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/core/nodes/child_validation_node.py +13 -0
  3. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/core/nodes/validation_node.py +13 -0
  4. {click_extended-1.0.5 → click_extended-1.0.6/click_extended.egg-info}/PKG-INFO +1 -1
  5. {click_extended-1.0.5 → click_extended-1.0.6}/pyproject.toml +1 -1
  6. {click_extended-1.0.5 → click_extended-1.0.6}/AUTHORS.md +0 -0
  7. {click_extended-1.0.5 → click_extended-1.0.6}/LICENSE +0 -0
  8. {click_extended-1.0.5 → click_extended-1.0.6}/README.md +0 -0
  9. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/__init__.py +0 -0
  10. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/classes.py +0 -0
  11. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/core/__init__.py +0 -0
  12. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/core/decorators/__init__.py +0 -0
  13. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/core/decorators/argument.py +0 -0
  14. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/core/decorators/command.py +0 -0
  15. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/core/decorators/context.py +0 -0
  16. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/core/decorators/env.py +0 -0
  17. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/core/decorators/group.py +0 -0
  18. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/core/decorators/option.py +0 -0
  19. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/core/decorators/prompt.py +0 -0
  20. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/core/decorators/selection.py +0 -0
  21. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/core/decorators/tag.py +0 -0
  22. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/core/nodes/__init__.py +0 -0
  23. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/core/nodes/_root_node.py +0 -0
  24. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/core/nodes/argument_node.py +0 -0
  25. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/core/nodes/child_node.py +0 -0
  26. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/core/nodes/node.py +0 -0
  27. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/core/nodes/option_node.py +0 -0
  28. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/core/nodes/parent_node.py +0 -0
  29. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/core/other/__init__.py +0 -0
  30. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/core/other/_click_command.py +0 -0
  31. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/core/other/_click_group.py +0 -0
  32. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/core/other/_tree.py +0 -0
  33. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/core/other/context.py +0 -0
  34. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/core/other/get_context.py +0 -0
  35. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/__init__.py +0 -0
  36. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/__init__.py +0 -0
  37. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/conflicts.py +0 -0
  38. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/contains.py +0 -0
  39. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/dependencies.py +0 -0
  40. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/divisible_by.py +0 -0
  41. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/ends_with.py +0 -0
  42. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/exclusive.py +0 -0
  43. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/falsy.py +0 -0
  44. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/is_email.py +0 -0
  45. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/is_hex_color.py +0 -0
  46. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/is_hostname.py +0 -0
  47. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/is_ipv4.py +0 -0
  48. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/is_ipv6.py +0 -0
  49. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/is_json.py +0 -0
  50. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/is_mac_address.py +0 -0
  51. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/is_negative.py +0 -0
  52. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/is_non_zero.py +0 -0
  53. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/is_port.py +0 -0
  54. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/is_positive.py +0 -0
  55. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/is_url.py +0 -0
  56. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/is_uuid.py +0 -0
  57. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/length.py +0 -0
  58. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/not_empty.py +0 -0
  59. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/regex.py +0 -0
  60. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/requires.py +0 -0
  61. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/starts_with.py +0 -0
  62. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/check/truthy.py +0 -0
  63. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/compare/__init__.py +0 -0
  64. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/compare/at_least.py +0 -0
  65. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/compare/at_most.py +0 -0
  66. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/compare/between.py +0 -0
  67. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/compare/greater_than.py +0 -0
  68. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/compare/less_than.py +0 -0
  69. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/convert/__init__.py +0 -0
  70. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/convert/convert_angle.py +0 -0
  71. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/convert/convert_area.py +0 -0
  72. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/convert/convert_bits.py +0 -0
  73. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/convert/convert_distance.py +0 -0
  74. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/convert/convert_energy.py +0 -0
  75. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/convert/convert_power.py +0 -0
  76. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/convert/convert_pressure.py +0 -0
  77. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/convert/convert_speed.py +0 -0
  78. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/convert/convert_temperature.py +0 -0
  79. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/convert/convert_time.py +0 -0
  80. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/convert/convert_volume.py +0 -0
  81. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/convert/convert_weight.py +0 -0
  82. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/load/__init__.py +0 -0
  83. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/load/load_csv.py +0 -0
  84. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/load/load_json.py +0 -0
  85. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/load/load_toml.py +0 -0
  86. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/load/load_yaml.py +0 -0
  87. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/math/__init__.py +0 -0
  88. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/math/absolute.py +0 -0
  89. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/math/add.py +0 -0
  90. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/math/ceil.py +0 -0
  91. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/math/clamp.py +0 -0
  92. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/math/divide.py +0 -0
  93. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/math/floor.py +0 -0
  94. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/math/maximum.py +0 -0
  95. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/math/minimum.py +0 -0
  96. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/math/modulo.py +0 -0
  97. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/math/multiply.py +0 -0
  98. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/math/normalize.py +0 -0
  99. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/math/power.py +0 -0
  100. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/math/rounded.py +0 -0
  101. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/math/sqrt.py +0 -0
  102. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/math/subtract.py +0 -0
  103. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/math/to_percent.py +0 -0
  104. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/misc/__init__.py +0 -0
  105. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/misc/choice.py +0 -0
  106. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/misc/confirm_if.py +0 -0
  107. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/misc/default.py +0 -0
  108. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/misc/deprecated.py +0 -0
  109. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/misc/experimental.py +0 -0
  110. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/misc/now.py +0 -0
  111. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/random/__init__.py +0 -0
  112. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/random/random_bool.py +0 -0
  113. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/random/random_choice.py +0 -0
  114. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/random/random_datetime.py +0 -0
  115. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/random/random_float.py +0 -0
  116. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/random/random_integer.py +0 -0
  117. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/random/random_prime.py +0 -0
  118. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/random/random_string.py +0 -0
  119. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/random/random_uuid.py +0 -0
  120. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/transform/__init__.py +0 -0
  121. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/transform/add_prefix.py +0 -0
  122. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/transform/add_suffix.py +0 -0
  123. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/transform/apply.py +0 -0
  124. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/transform/basename.py +0 -0
  125. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/transform/dirname.py +0 -0
  126. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/transform/expand_vars.py +0 -0
  127. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/transform/remove_prefix.py +0 -0
  128. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/transform/remove_suffix.py +0 -0
  129. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/transform/replace.py +0 -0
  130. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/transform/slugify.py +0 -0
  131. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/transform/split.py +0 -0
  132. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/transform/strip.py +0 -0
  133. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/transform/to_case.py +0 -0
  134. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/transform/to_date.py +0 -0
  135. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/transform/to_datetime.py +0 -0
  136. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/transform/to_path.py +0 -0
  137. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/transform/to_time.py +0 -0
  138. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/transform/to_timestamp.py +0 -0
  139. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/decorators/transform/truncate.py +0 -0
  140. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/errors.py +0 -0
  141. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/types.py +0 -0
  142. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/utils/__init__.py +0 -0
  143. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/utils/casing.py +0 -0
  144. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/utils/checks.py +0 -0
  145. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/utils/dispatch.py +0 -0
  146. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/utils/format.py +0 -0
  147. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/utils/humanize.py +0 -0
  148. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/utils/naming.py +0 -0
  149. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/utils/process.py +0 -0
  150. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/utils/selection.py +0 -0
  151. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended/utils/time.py +0 -0
  152. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended.egg-info/SOURCES.txt +0 -0
  153. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended.egg-info/dependency_links.txt +0 -0
  154. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended.egg-info/requires.txt +0 -0
  155. {click_extended-1.0.5 → click_extended-1.0.6}/click_extended.egg-info/top_level.txt +0 -0
  156. {click_extended-1.0.5 → click_extended-1.0.6}/setup.cfg +0 -0
  157. {click_extended-1.0.5 → click_extended-1.0.6}/tests/test_lifecycle.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: click_extended
3
- Version: 1.0.5
3
+ Version: 1.0.6
4
4
  Summary: An extension to Click with additional features like automatic async support, aliasing and a modular decorator system.
5
5
  Author-email: Marcus Fredriksson <marcus@marcusfredriksson.com>
6
6
  License: MIT License
@@ -3,6 +3,7 @@ Child validation node module for nodes that can
3
3
  act as both child and validation nodes.
4
4
  """
5
5
 
6
+ import asyncio
6
7
  from abc import ABC
7
8
  from functools import wraps
8
9
  from typing import TYPE_CHECKING, Any, Callable, ParamSpec, TypeVar
@@ -88,8 +89,20 @@ class ChildValidationNode(ChildNode, ValidationNode, ABC):
88
89
  instance = cls(name=name, process_args=args, process_kwargs=kwargs)
89
90
  Tree.queue_child_validation(instance)
90
91
 
92
+ if asyncio.iscoroutinefunction(func):
93
+
94
+ @wraps(func)
95
+ async def async_wrapper(
96
+ *call_args: P.args, **call_kwargs: P.kwargs
97
+ ) -> T:
98
+ """Async wrapper that preserves the original function."""
99
+ return await func(*call_args, **call_kwargs) # type: ignore
100
+
101
+ return async_wrapper # type: ignore
102
+
91
103
  @wraps(func)
92
104
  def wrapper(*call_args: P.args, **call_kwargs: P.kwargs) -> T:
105
+ """Wrapper that preserves the original function."""
93
106
  return func(*call_args, **call_kwargs)
94
107
 
95
108
  return wrapper
@@ -1,5 +1,6 @@
1
1
  """ValidationNode class for global validation logic."""
2
2
 
3
+ import asyncio
3
4
  from abc import ABC
4
5
  from functools import wraps
5
6
  from typing import TYPE_CHECKING, Any, Callable, ParamSpec, TypeVar
@@ -111,6 +112,18 @@ class ValidationNode(Node, ABC):
111
112
  instance = cls(name=name, process_args=args, process_kwargs=kwargs)
112
113
  Tree.queue_validation(instance)
113
114
 
115
+ if asyncio.iscoroutinefunction(func):
116
+
117
+ @wraps(func)
118
+ async def async_wrapper(
119
+ *call_args: P.args,
120
+ **call_kwargs: P.kwargs,
121
+ ) -> T:
122
+ """Async wrapper that preserves the original function."""
123
+ return await func(*call_args, **call_kwargs) # type: ignore
124
+
125
+ return async_wrapper # type: ignore
126
+
114
127
  @wraps(func)
115
128
  def wrapper(*call_args: P.args, **call_kwargs: P.kwargs) -> T:
116
129
  """Wrapper that preserves the original function."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: click_extended
3
- Version: 1.0.5
3
+ Version: 1.0.6
4
4
  Summary: An extension to Click with additional features like automatic async support, aliasing and a modular decorator system.
5
5
  Author-email: Marcus Fredriksson <marcus@marcusfredriksson.com>
6
6
  License: MIT License
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "click_extended"
3
- version = "1.0.5"
3
+ version = "1.0.6"
4
4
  description = "An extension to Click with additional features like automatic async support, aliasing and a modular decorator system."
5
5
  authors = [
6
6
  { name = "Marcus Fredriksson", email = "marcus@marcusfredriksson.com" },
File without changes
File without changes
File without changes