click-extended 1.0.1__tar.gz → 1.0.2__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 (156) hide show
  1. {click_extended-1.0.1/click_extended.egg-info → click_extended-1.0.2}/PKG-INFO +1 -1
  2. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/__init__.py +2 -0
  3. click_extended-1.0.2/click_extended/core/decorators/context.py +56 -0
  4. {click_extended-1.0.1 → click_extended-1.0.2/click_extended.egg-info}/PKG-INFO +1 -1
  5. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended.egg-info/SOURCES.txt +1 -0
  6. {click_extended-1.0.1 → click_extended-1.0.2}/pyproject.toml +1 -1
  7. {click_extended-1.0.1 → click_extended-1.0.2}/AUTHORS.md +0 -0
  8. {click_extended-1.0.1 → click_extended-1.0.2}/LICENSE +0 -0
  9. {click_extended-1.0.1 → click_extended-1.0.2}/README.md +0 -0
  10. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/classes.py +0 -0
  11. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/core/__init__.py +0 -0
  12. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/core/decorators/__init__.py +0 -0
  13. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/core/decorators/argument.py +0 -0
  14. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/core/decorators/command.py +0 -0
  15. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/core/decorators/env.py +0 -0
  16. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/core/decorators/group.py +0 -0
  17. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/core/decorators/option.py +0 -0
  18. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/core/decorators/prompt.py +0 -0
  19. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/core/decorators/selection.py +0 -0
  20. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/core/decorators/tag.py +0 -0
  21. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/core/nodes/__init__.py +0 -0
  22. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/core/nodes/_root_node.py +0 -0
  23. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/core/nodes/argument_node.py +0 -0
  24. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/core/nodes/child_node.py +0 -0
  25. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/core/nodes/child_validation_node.py +0 -0
  26. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/core/nodes/node.py +0 -0
  27. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/core/nodes/option_node.py +0 -0
  28. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/core/nodes/parent_node.py +0 -0
  29. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/core/nodes/validation_node.py +0 -0
  30. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/core/other/__init__.py +0 -0
  31. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/core/other/_click_command.py +0 -0
  32. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/core/other/_click_group.py +0 -0
  33. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/core/other/_tree.py +0 -0
  34. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/core/other/context.py +0 -0
  35. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/__init__.py +0 -0
  36. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/__init__.py +0 -0
  37. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/conflicts.py +0 -0
  38. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/contains.py +0 -0
  39. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/dependencies.py +0 -0
  40. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/divisible_by.py +0 -0
  41. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/ends_with.py +0 -0
  42. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/exclusive.py +0 -0
  43. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/falsy.py +0 -0
  44. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/is_email.py +0 -0
  45. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/is_hex_color.py +0 -0
  46. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/is_hostname.py +0 -0
  47. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/is_ipv4.py +0 -0
  48. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/is_ipv6.py +0 -0
  49. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/is_json.py +0 -0
  50. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/is_mac_address.py +0 -0
  51. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/is_negative.py +0 -0
  52. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/is_non_zero.py +0 -0
  53. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/is_port.py +0 -0
  54. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/is_positive.py +0 -0
  55. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/is_url.py +0 -0
  56. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/is_uuid.py +0 -0
  57. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/length.py +0 -0
  58. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/not_empty.py +0 -0
  59. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/regex.py +0 -0
  60. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/requires.py +0 -0
  61. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/starts_with.py +0 -0
  62. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/check/truthy.py +0 -0
  63. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/compare/__init__.py +0 -0
  64. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/compare/at_least.py +0 -0
  65. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/compare/at_most.py +0 -0
  66. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/compare/between.py +0 -0
  67. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/compare/greater_than.py +0 -0
  68. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/compare/less_than.py +0 -0
  69. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/convert/__init__.py +0 -0
  70. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/convert/convert_angle.py +0 -0
  71. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/convert/convert_area.py +0 -0
  72. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/convert/convert_bits.py +0 -0
  73. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/convert/convert_distance.py +0 -0
  74. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/convert/convert_energy.py +0 -0
  75. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/convert/convert_power.py +0 -0
  76. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/convert/convert_pressure.py +0 -0
  77. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/convert/convert_speed.py +0 -0
  78. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/convert/convert_temperature.py +0 -0
  79. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/convert/convert_time.py +0 -0
  80. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/convert/convert_volume.py +0 -0
  81. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/convert/convert_weight.py +0 -0
  82. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/load/__init__.py +0 -0
  83. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/load/load_csv.py +0 -0
  84. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/load/load_json.py +0 -0
  85. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/load/load_toml.py +0 -0
  86. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/load/load_yaml.py +0 -0
  87. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/math/__init__.py +0 -0
  88. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/math/absolute.py +0 -0
  89. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/math/add.py +0 -0
  90. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/math/ceil.py +0 -0
  91. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/math/clamp.py +0 -0
  92. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/math/divide.py +0 -0
  93. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/math/floor.py +0 -0
  94. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/math/maximum.py +0 -0
  95. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/math/minimum.py +0 -0
  96. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/math/modulo.py +0 -0
  97. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/math/multiply.py +0 -0
  98. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/math/normalize.py +0 -0
  99. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/math/power.py +0 -0
  100. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/math/rounded.py +0 -0
  101. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/math/sqrt.py +0 -0
  102. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/math/subtract.py +0 -0
  103. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/math/to_percent.py +0 -0
  104. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/misc/__init__.py +0 -0
  105. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/misc/choice.py +0 -0
  106. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/misc/confirm_if.py +0 -0
  107. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/misc/default.py +0 -0
  108. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/misc/deprecated.py +0 -0
  109. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/misc/experimental.py +0 -0
  110. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/misc/now.py +0 -0
  111. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/random/__init__.py +0 -0
  112. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/random/random_bool.py +0 -0
  113. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/random/random_choice.py +0 -0
  114. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/random/random_datetime.py +0 -0
  115. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/random/random_float.py +0 -0
  116. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/random/random_integer.py +0 -0
  117. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/random/random_prime.py +0 -0
  118. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/random/random_string.py +0 -0
  119. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/random/random_uuid.py +0 -0
  120. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/transform/__init__.py +0 -0
  121. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/transform/add_prefix.py +0 -0
  122. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/transform/add_suffix.py +0 -0
  123. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/transform/apply.py +0 -0
  124. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/transform/basename.py +0 -0
  125. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/transform/dirname.py +0 -0
  126. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/transform/expand_vars.py +0 -0
  127. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/transform/remove_prefix.py +0 -0
  128. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/transform/remove_suffix.py +0 -0
  129. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/transform/replace.py +0 -0
  130. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/transform/slugify.py +0 -0
  131. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/transform/split.py +0 -0
  132. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/transform/strip.py +0 -0
  133. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/transform/to_case.py +0 -0
  134. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/transform/to_date.py +0 -0
  135. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/transform/to_datetime.py +0 -0
  136. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/transform/to_path.py +0 -0
  137. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/transform/to_time.py +0 -0
  138. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/transform/to_timestamp.py +0 -0
  139. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/decorators/transform/truncate.py +0 -0
  140. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/errors.py +0 -0
  141. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/types.py +0 -0
  142. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/utils/__init__.py +0 -0
  143. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/utils/casing.py +0 -0
  144. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/utils/checks.py +0 -0
  145. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/utils/dispatch.py +0 -0
  146. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/utils/format.py +0 -0
  147. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/utils/humanize.py +0 -0
  148. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/utils/naming.py +0 -0
  149. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/utils/process.py +0 -0
  150. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/utils/selection.py +0 -0
  151. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended/utils/time.py +0 -0
  152. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended.egg-info/dependency_links.txt +0 -0
  153. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended.egg-info/requires.txt +0 -0
  154. {click_extended-1.0.1 → click_extended-1.0.2}/click_extended.egg-info/top_level.txt +0 -0
  155. {click_extended-1.0.1 → click_extended-1.0.2}/setup.cfg +0 -0
  156. {click_extended-1.0.1 → click_extended-1.0.2}/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.1
3
+ Version: 1.0.2
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
@@ -2,6 +2,7 @@
2
2
 
3
3
  from click_extended.core.decorators.argument import argument
4
4
  from click_extended.core.decorators.command import command
5
+ from click_extended.core.decorators.context import context
5
6
  from click_extended.core.decorators.env import env
6
7
  from click_extended.core.decorators.group import group
7
8
  from click_extended.core.decorators.option import option
@@ -12,6 +13,7 @@ from click_extended.core.decorators.tag import tag
12
13
  __all__ = [
13
14
  "argument",
14
15
  "command",
16
+ "context",
15
17
  "env",
16
18
  "group",
17
19
  "option",
@@ -0,0 +1,56 @@
1
+ """`ParentNode` to inject the context into the function."""
2
+
3
+ # pylint: disable=redefined-builtin
4
+ # pylint: disable=redefined-outer-name
5
+
6
+ from typing import Any
7
+
8
+ from click_extended.core.nodes.parent_node import ParentNode
9
+ from click_extended.core.other.context import Context as Ctx
10
+ from click_extended.types import Decorator
11
+
12
+
13
+ class Context(ParentNode):
14
+ """`ParentNode` to inject the context into the function."""
15
+
16
+ def load(self, context: Ctx, *args: Any, **kwargs: Any) -> Ctx:
17
+ return context
18
+
19
+
20
+ def context(
21
+ name: str = "ctx",
22
+ param: str | None = None,
23
+ help: str | None = None,
24
+ tags: str | list[str] | None = None,
25
+ **kwargs: Any,
26
+ ) -> Decorator:
27
+ """
28
+ A `ParentNode` to inject the context into the function.
29
+
30
+ Type: `ParentNode`
31
+
32
+ Args:
33
+ name (str, optional):
34
+ Internal node name (must be snake_case). Defaults
35
+ to "ctx".
36
+ param (str, optional):
37
+ The parameter name to inject into the function.
38
+ If not provided, uses `name` (or derived name).
39
+ help (str, optional):
40
+ Help text for this parameter.
41
+ tags (str | list[str], optional):
42
+ Tag(s) to associate with this parameter for grouping.
43
+ **kwargs (Any):
44
+ Additional keyword arguments.
45
+
46
+ Returns:
47
+ Callable:
48
+ A decorator function that registers the context parent node.
49
+ """
50
+ return Context.as_decorator(
51
+ name=name,
52
+ param=param,
53
+ help=help,
54
+ tags=tags,
55
+ **kwargs,
56
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: click_extended
3
- Version: 1.0.1
3
+ Version: 1.0.2
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
@@ -15,6 +15,7 @@ click_extended/core/__init__.py
15
15
  click_extended/core/decorators/__init__.py
16
16
  click_extended/core/decorators/argument.py
17
17
  click_extended/core/decorators/command.py
18
+ click_extended/core/decorators/context.py
18
19
  click_extended/core/decorators/env.py
19
20
  click_extended/core/decorators/group.py
20
21
  click_extended/core/decorators/option.py
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "click_extended"
3
- version = "1.0.1"
3
+ version = "1.0.2"
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