zrb 0.0.85__py3-none-any.whl → 0.0.87__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.
Files changed (178) hide show
  1. zrb/__init__.py +4 -2
  2. zrb/action/runner.py +7 -3
  3. zrb/builtin/__init__.py +8 -22
  4. zrb/builtin/base64.py +1 -1
  5. zrb/builtin/devtool/__init__.py +20 -0
  6. zrb/builtin/devtool/devtool_install.py +45 -2
  7. zrb/builtin/devtool/docker/install.sh +8 -0
  8. zrb/builtin/devtool/gcloud/install.sh +8 -0
  9. zrb/builtin/devtool/helix/install.sh +20 -0
  10. zrb/builtin/devtool/helix/resource/config.toml +10 -0
  11. zrb/builtin/devtool/helix/resource/themes/gruvbox_transparent.toml +2 -0
  12. zrb/builtin/devtool/tmux/install.sh +8 -0
  13. zrb/builtin/devtool/zsh/install.sh +9 -0
  14. zrb/builtin/devtool/zsh/resource/config.sh +2 -0
  15. zrb/builtin/env.py +6 -3
  16. zrb/builtin/explain.py +129 -0
  17. zrb/builtin/generator/__init__.py +27 -0
  18. zrb/builtin/generator/app_generator/add.py +81 -0
  19. zrb/builtin/generator/app_generator/template/_automate/snake_zrb_meta_template_name/add.py +182 -0
  20. zrb/builtin/generator/app_generator/template/_automate/snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/_common.py +38 -0
  21. zrb/builtin/generator/{fastapp/template/_automate/snake_zrb_app_name/cmd/prepare-load-test.sh → app_generator/template/_automate/snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/cmd/app-activate-venv.sh} +0 -6
  22. zrb/builtin/generator/{simple_python_app/template/_automate/snake_zrb_app_name/cmd/start.sh → app_generator/template/_automate/snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/cmd/app-start.sh} +0 -9
  23. zrb/builtin/generator/app_generator/template/_automate/snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/cmd/pulumi-destroy.sh +1 -0
  24. zrb/builtin/generator/app_generator/template/_automate/snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/cmd/pulumi-init-stack.sh +1 -0
  25. zrb/builtin/generator/app_generator/template/_automate/snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/cmd/pulumi-up.sh +1 -0
  26. zrb/builtin/generator/app_generator/template/_automate/snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/container.py +148 -0
  27. zrb/builtin/generator/app_generator/template/_automate/snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/deployment.py +108 -0
  28. zrb/builtin/generator/app_generator/template/_automate/snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/image.py +68 -0
  29. zrb/builtin/generator/app_generator/template/_automate/snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/local.py +54 -0
  30. zrb/builtin/generator/app_generator/template/_automate/snake_zrb_meta_template_name/template/src/kebab-zrb-app-name/.gitignore +1 -0
  31. zrb/builtin/generator/app_generator/template/_automate/snake_zrb_meta_template_name/template/src/kebab-zrb-app-name/deployment/.gitignore +2 -0
  32. zrb/builtin/generator/app_generator/template/_automate/snake_zrb_meta_template_name/template/src/kebab-zrb-app-name/deployment/Pulumi.yaml +6 -0
  33. zrb/builtin/generator/app_generator/template/_automate/snake_zrb_meta_template_name/template/src/kebab-zrb-app-name/deployment/__main__.py +79 -0
  34. zrb/builtin/generator/app_generator/template/_automate/snake_zrb_meta_template_name/template/src/kebab-zrb-app-name/deployment/requirements.txt +3 -0
  35. zrb/builtin/generator/app_generator/template/_automate/snake_zrb_meta_template_name/template/src/kebab-zrb-app-name/deployment/state/.gitkeep +0 -0
  36. zrb/builtin/generator/app_generator/template/_automate/snake_zrb_meta_template_name/template/src/kebab-zrb-app-name/docker-compose.env +3 -0
  37. zrb/builtin/generator/app_generator/template/_automate/snake_zrb_meta_template_name/template/src/kebab-zrb-app-name/docker-compose.yml +20 -0
  38. zrb/builtin/generator/app_generator/template/_automate/snake_zrb_meta_template_name/template/src/kebab-zrb-app-name/src/.dockerignore +3 -0
  39. zrb/builtin/generator/app_generator/template/_automate/snake_zrb_meta_template_name/template/src/kebab-zrb-app-name/src/.gitignore +3 -0
  40. zrb/builtin/generator/app_generator/template/_automate/snake_zrb_meta_template_name/template/src/kebab-zrb-app-name/src/Dockerfile +7 -0
  41. zrb/builtin/generator/app_generator/template/_automate/snake_zrb_meta_template_name/template/src/kebab-zrb-app-name/src/main.py +20 -0
  42. zrb/builtin/generator/app_generator/template/_automate/snake_zrb_meta_template_name/template/src/kebab-zrb-app-name/src/requirements.txt +1 -0
  43. zrb/builtin/generator/app_generator/template/_automate/snake_zrb_meta_template_name/template/src/kebab-zrb-app-name/src/template.env +4 -0
  44. zrb/builtin/generator/cmd_task/add.py +14 -14
  45. zrb/builtin/generator/cmd_task/template/_automate/snake_zrb_task_name.py +1 -1
  46. zrb/builtin/generator/common/__init__.py +0 -0
  47. zrb/builtin/generator/common/helper.py +57 -0
  48. zrb/builtin/generator/common/task_factory.py +82 -0
  49. zrb/builtin/generator/{_common/input.py → common/task_input.py} +46 -1
  50. zrb/builtin/generator/docker_compose_task/add.py +16 -15
  51. zrb/builtin/generator/docker_compose_task/template/_automate/snake_zrb_task_name.py +1 -1
  52. zrb/builtin/generator/fastapp/add.py +105 -101
  53. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_common.py +2 -1
  54. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/activate-venv.sh +7 -0
  55. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/{load-test.sh → app-load-test.sh} +0 -3
  56. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/app-prepare-backend.sh +2 -0
  57. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/app-prepare-load-test.sh +3 -0
  58. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/app-start.sh +3 -0
  59. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/pulumi-destroy.sh +0 -1
  60. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/pulumi-init-stack.sh +1 -0
  61. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/pulumi-up.sh +0 -1
  62. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/container.py +1 -1
  63. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/deployment.py +9 -3
  64. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/frontend.py +3 -3
  65. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/image.py +1 -1
  66. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/load_test.py +11 -4
  67. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/local.py +13 -4
  68. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/local_microservices.py +4 -1
  69. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/test.py +3 -5
  70. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/requirements.txt +2 -2
  71. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/loadtest/requirements.txt +1 -1
  72. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/requirements.txt +3 -3
  73. zrb/builtin/generator/fastapp_crud/add.py +13 -126
  74. zrb/builtin/generator/fastapp_crud/helper.py +115 -0
  75. zrb/builtin/generator/fastapp_crud/task_factory.py +34 -0
  76. zrb/builtin/generator/fastapp_field/add.py +10 -282
  77. zrb/builtin/generator/fastapp_field/helper.py +283 -0
  78. zrb/builtin/generator/fastapp_module/add.py +22 -331
  79. zrb/builtin/generator/fastapp_module/helper.py +326 -0
  80. zrb/builtin/generator/pip_package/__init__.py +0 -0
  81. zrb/builtin/generator/pip_package/add.py +84 -0
  82. zrb/builtin/generator/pip_package/template/_automate/snake_zrb_package_name/cmd/build.sh +12 -0
  83. zrb/builtin/generator/{fastapp/template/_automate/snake_zrb_app_name/cmd/start.sh → pip_package/template/_automate/snake_zrb_package_name/cmd/install-symlink.sh} +2 -2
  84. zrb/builtin/generator/pip_package/template/_automate/snake_zrb_package_name/cmd/publish.sh +6 -0
  85. zrb/builtin/generator/pip_package/template/_automate/snake_zrb_package_name/local.py +60 -0
  86. zrb/builtin/generator/pip_package/template/src/kebab-zrb-package-name/.gitignore +1 -0
  87. zrb/builtin/generator/pip_package/template/src/kebab-zrb-package-name/README.md +79 -0
  88. zrb/builtin/generator/pip_package/template/src/kebab-zrb-package-name/pyproject.toml +36 -0
  89. zrb/builtin/generator/pip_package/template/src/kebab-zrb-package-name/requirements.txt +4 -0
  90. zrb/builtin/generator/pip_package/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/__init__.py +2 -0
  91. zrb/builtin/generator/pip_package/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/__main__.py +2 -0
  92. zrb/builtin/generator/pip_package/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/util.py +2 -0
  93. zrb/builtin/generator/project/create.py +12 -8
  94. zrb/builtin/generator/project_task/task_factory.py +167 -83
  95. zrb/builtin/generator/project_task/template/_automate/_project/build_project_images.py +1 -1
  96. zrb/builtin/generator/project_task/template/_automate/_project/deploy_project.py +1 -1
  97. zrb/builtin/generator/project_task/template/_automate/_project/destroy_project.py +1 -1
  98. zrb/builtin/generator/project_task/template/_automate/_project/push_project_images.py +1 -1
  99. zrb/builtin/generator/project_task/template/_automate/_project/remove_project_containers.py +1 -1
  100. zrb/builtin/generator/project_task/template/_automate/_project/start_project.py +1 -1
  101. zrb/builtin/generator/project_task/template/_automate/_project/start_project_containers.py +1 -1
  102. zrb/builtin/generator/project_task/template/_automate/_project/stop_project_containers.py +1 -1
  103. zrb/builtin/generator/python_task/add.py +14 -16
  104. zrb/builtin/generator/python_task/template/_automate/snake_zrb_task_name.py +1 -1
  105. zrb/builtin/generator/simple_python_app/add.py +95 -99
  106. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/cmd/app-activate-venv.sh +7 -0
  107. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/cmd/app-start.sh +6 -0
  108. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/cmd/pulumi-destroy.sh +0 -1
  109. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/cmd/pulumi-init-stack.sh +1 -0
  110. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/cmd/pulumi-up.sh +0 -1
  111. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/container.py +1 -1
  112. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/deployment.py +9 -3
  113. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/image.py +1 -1
  114. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/local.py +5 -2
  115. zrb/builtin/generator/simple_python_app/template/src/kebab-zrb-app-name/deployment/requirements.txt +2 -2
  116. zrb/builtin/git.py +1 -1
  117. zrb/builtin/{_group.py → group.py} +2 -5
  118. zrb/builtin/md5.py +1 -1
  119. zrb/builtin/project.py +1 -1
  120. zrb/builtin/ubuntu.py +1 -1
  121. zrb/config/config.py +8 -6
  122. zrb/helper/accessories/color.py +5 -1
  123. zrb/helper/accessories/icon.py +2 -0
  124. zrb/helper/accessories/name.py +2 -0
  125. zrb/helper/advertisement.py +1 -0
  126. zrb/helper/cli.py +5 -1
  127. zrb/helper/codemod/add_argument_to_function.py +3 -0
  128. zrb/helper/codemod/add_argument_to_function_call.py +3 -0
  129. zrb/helper/codemod/add_assert_resource.py +2 -0
  130. zrb/helper/codemod/add_function_call.py +2 -0
  131. zrb/helper/codemod/add_import_module.py +3 -0
  132. zrb/helper/codemod/add_key_value_to_dict.py +2 -0
  133. zrb/helper/codemod/add_property_to_class.py +3 -0
  134. zrb/helper/codemod/add_upstream_to_task.py +3 -0
  135. zrb/helper/codemod/append_code_to_function.py +3 -0
  136. zrb/helper/codemod/format_code.py +2 -0
  137. zrb/helper/default_env.py +2 -0
  138. zrb/helper/docker_compose/fetch_external_env.py +3 -0
  139. zrb/helper/docker_compose/file.py +4 -0
  140. zrb/helper/env_map/fetch.py +7 -0
  141. zrb/helper/file/text.py +6 -0
  142. zrb/helper/git/detect_changes.py +4 -0
  143. zrb/helper/loader/load_module.py +2 -0
  144. zrb/helper/map/conversion.py +2 -0
  145. zrb/helper/string/conversion.py +5 -0
  146. zrb/helper/string/double_quote.py +6 -2
  147. zrb/helper/string/jinja.py +2 -0
  148. zrb/helper/string/parse_replacement.py +2 -0
  149. zrb/helper/util.py +13 -0
  150. zrb/task/any_task.py +2 -2
  151. zrb/task/base_task.py +16 -16
  152. zrb/task/base_task_composite.py +12 -9
  153. zrb/task/cmd_task.py +23 -12
  154. zrb/task/decorator.py +2 -2
  155. zrb/task/docker_compose_task.py +5 -5
  156. zrb/task/flow_task.py +5 -5
  157. zrb/task/http_checker.py +2 -2
  158. zrb/task/path_checker.py +2 -2
  159. zrb/task/port_checker.py +2 -2
  160. zrb/task/resource_maker.py +3 -5
  161. zrb/task_input/any_input.py +23 -0
  162. zrb/task_input/base_input.py +46 -43
  163. zrb/task_input/float_input.py +0 -1
  164. {zrb-0.0.85.dist-info → zrb-0.0.87.dist-info}/METADATA +16 -17
  165. {zrb-0.0.85.dist-info → zrb-0.0.87.dist-info}/RECORD +175 -122
  166. zrb/builtin/generator/_common/helper.py +0 -79
  167. zrb/builtin/generator/fastapp_crud/add_navigation.py +0 -32
  168. zrb/builtin/principle.py +0 -66
  169. /zrb/builtin/generator/{_common → app_generator}/__init__.py +0 -0
  170. /zrb/{config.toml → builtin/generator/app_generator/template/_automate/snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/__init__.py} +0 -0
  171. /zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/{build-frontend.sh → app-build-frontend.sh} +0 -0
  172. /zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/{test.sh → app-test.sh} +0 -0
  173. /zrb/builtin/generator/{fastapp/template/_automate/snake_zrb_app_name/cmd/prepare-backend.sh → pip_package/template/_automate/snake_zrb_package_name/cmd/prepare-venv.sh} +0 -0
  174. /zrb/task_input/{_constant.py → constant.py} +0 -0
  175. /zrb/task_input/{input.py → task_input.py} +0 -0
  176. {zrb-0.0.85.dist-info → zrb-0.0.87.dist-info}/LICENSE +0 -0
  177. {zrb-0.0.85.dist-info → zrb-0.0.87.dist-info}/WHEEL +0 -0
  178. {zrb-0.0.85.dist-info → zrb-0.0.87.dist-info}/entry_points.txt +0 -0
zrb/task/flow_task.py CHANGED
@@ -7,7 +7,7 @@ from .cmd_task import CmdTask
7
7
  from ..task_env.env import Env
8
8
  from ..task_env.env_file import EnvFile
9
9
  from ..task_group.group import Group
10
- from ..task_input.base_input import BaseInput
10
+ from ..task_input.any_input import AnyInput
11
11
  from ..helper.accessories.name import get_random_name
12
12
 
13
13
  import copy
@@ -21,10 +21,10 @@ class FlowNode():
21
21
  self,
22
22
  name: str = '',
23
23
  task: Optional[AnyTask] = None,
24
- inputs: Iterable[BaseInput] = [],
24
+ inputs: Iterable[AnyInput] = [],
25
25
  envs: Iterable[Env] = [],
26
26
  env_files: Iterable[EnvFile] = [],
27
- upstreams: Iterable[BaseTask] = [],
27
+ upstreams: Iterable[AnyTask] = [],
28
28
  icon: Optional[str] = None,
29
29
  color: Optional[str] = None,
30
30
  cmd: Union[str, Iterable[str]] = '',
@@ -50,7 +50,7 @@ class FlowNode():
50
50
  def to_task(
51
51
  self,
52
52
  upstreams: List[AnyTask] = [],
53
- inputs: List[BaseInput] = [],
53
+ inputs: List[AnyInput] = [],
54
54
  envs: List[Env] = [],
55
55
  env_files: List[EnvFile] = [],
56
56
  ):
@@ -103,7 +103,7 @@ class FlowTask(BaseTask):
103
103
  self,
104
104
  name: str,
105
105
  group: Optional[Group] = None,
106
- inputs: Iterable[BaseInput] = [],
106
+ inputs: Iterable[AnyInput] = [],
107
107
  envs: Iterable[Env] = [],
108
108
  env_files: Iterable[EnvFile] = [],
109
109
  icon: Optional[str] = None,
zrb/task/http_checker.py CHANGED
@@ -6,7 +6,7 @@ from .any_task import AnyTask
6
6
  from ..task_env.env import Env
7
7
  from ..task_env.env_file import EnvFile
8
8
  from ..task_group.group import Group
9
- from ..task_input.base_input import BaseInput
9
+ from ..task_input.any_input import AnyInput
10
10
 
11
11
  import asyncio
12
12
 
@@ -18,7 +18,7 @@ class HTTPChecker(BaseTask):
18
18
  self,
19
19
  name: str = 'http-check',
20
20
  group: Optional[Group] = None,
21
- inputs: Iterable[BaseInput] = [],
21
+ inputs: Iterable[AnyInput] = [],
22
22
  envs: Iterable[Env] = [],
23
23
  env_files: Iterable[EnvFile] = [],
24
24
  icon: Optional[str] = None,
zrb/task/path_checker.py CHANGED
@@ -5,7 +5,7 @@ from .any_task import AnyTask
5
5
  from ..task_env.env import Env
6
6
  from ..task_env.env_file import EnvFile
7
7
  from ..task_group.group import Group
8
- from ..task_input.base_input import BaseInput
8
+ from ..task_input.any_input import AnyInput
9
9
 
10
10
  import asyncio
11
11
  import os
@@ -18,7 +18,7 @@ class PathChecker(BaseTask):
18
18
  self,
19
19
  name: str = 'path-check',
20
20
  group: Optional[Group] = None,
21
- inputs: Iterable[BaseInput] = [],
21
+ inputs: Iterable[AnyInput] = [],
22
22
  envs: Iterable[Env] = [],
23
23
  env_files: Iterable[EnvFile] = [],
24
24
  icon: Optional[str] = None,
zrb/task/port_checker.py CHANGED
@@ -5,7 +5,7 @@ from .any_task import AnyTask
5
5
  from ..task_env.env import Env
6
6
  from ..task_env.env_file import EnvFile
7
7
  from ..task_group.group import Group
8
- from ..task_input.base_input import BaseInput
8
+ from ..task_input.any_input import AnyInput
9
9
 
10
10
  import socket
11
11
  import asyncio
@@ -18,7 +18,7 @@ class PortChecker(BaseTask):
18
18
  self,
19
19
  name: str = 'port-check',
20
20
  group: Optional[Group] = None,
21
- inputs: Iterable[BaseInput] = [],
21
+ inputs: Iterable[AnyInput] = [],
22
22
  envs: Iterable[Env] = [],
23
23
  env_files: Iterable[EnvFile] = [],
24
24
  icon: Optional[str] = None,
@@ -5,18 +5,16 @@ from .any_task import AnyTask
5
5
  from ..task_env.env import Env
6
6
  from ..task_env.env_file import EnvFile
7
7
  from ..task_group.group import Group
8
- from ..task_input.base_input import BaseInput
8
+ from ..task_input.any_input import AnyInput
9
9
  from ..helper.file.copy_tree import copy_tree
10
10
  from ..helper.util import (
11
11
  to_camel_case, to_pascal_case, to_kebab_case, to_snake_case,
12
12
  to_human_readable, to_capitalized_human_readable
13
13
  )
14
14
 
15
- import os
16
-
17
15
  Replacement = Mapping[str, str]
18
16
  ReplacementMutator = Callable[
19
- [BaseTask, Replacement],
17
+ [AnyTask, Replacement],
20
18
  Replacement
21
19
  ]
22
20
 
@@ -33,7 +31,7 @@ class ResourceMaker(BaseTask):
33
31
  replacement_mutator: Optional[ReplacementMutator] = None,
34
32
  excludes: Iterable[str] = [],
35
33
  group: Optional[Group] = None,
36
- inputs: Iterable[BaseInput] = [],
34
+ inputs: Iterable[AnyInput] = [],
37
35
  envs: Iterable[Env] = [],
38
36
  env_files: Iterable[EnvFile] = [],
39
37
  icon: Optional[str] = None,
@@ -0,0 +1,23 @@
1
+ from typing import Any, List, Mapping
2
+ from abc import ABC, abstractmethod
3
+
4
+
5
+ class AnyInput(ABC):
6
+ '''
7
+ Task Input specification
8
+ '''
9
+ @abstractmethod
10
+ def get_name(self) -> str:
11
+ pass
12
+
13
+ @abstractmethod
14
+ def get_default(self) -> Any:
15
+ pass
16
+
17
+ @abstractmethod
18
+ def get_param_decl(self) -> List[str]:
19
+ pass
20
+
21
+ @abstractmethod
22
+ def get_options(self) -> Mapping[str, Any]:
23
+ pass
@@ -1,12 +1,12 @@
1
1
  from typing import Any, List, Mapping, Optional, Union
2
2
  from typeguard import typechecked
3
- from ._constant import RESERVED_INPUT_NAMES
3
+ from .any_input import AnyInput
4
+ from .constant import RESERVED_INPUT_NAMES
4
5
  from ..config.config import show_prompt
5
- from ..helper.string.jinja import is_probably_jinja
6
6
 
7
7
 
8
8
  @typechecked
9
- class BaseInput():
9
+ class BaseInput(AnyInput):
10
10
 
11
11
  def __init__(
12
12
  self,
@@ -32,54 +32,57 @@ class BaseInput():
32
32
  ):
33
33
  if name in RESERVED_INPUT_NAMES:
34
34
  raise ValueError(f'Forbidden input name: {name}')
35
- self.name = name
36
- self.shortcut = shortcut
37
- self.prompt = prompt
38
- self.default = default
39
- self.help = description if description is not None else name
40
- self.type = type
41
- self.show_default = show_default
42
- self.confirmation_prompt = confirmation_prompt
43
- self.prompt_required = prompt_required
44
- self.hide_input = hide_input
45
- self.is_flag = is_flag
46
- self.flag_value = flag_value
47
- self.multiple = multiple
48
- self.count = count
49
- self.allow_from_autoenv = allow_from_autoenv
50
- self.hidden = hidden
51
- self.show_choices = show_choices
52
- self.show_envvar = show_envvar
53
- self.nargs = nargs
35
+ self._name = name
36
+ self._shortcut = shortcut
37
+ self._prompt = prompt
38
+ self._default = default
39
+ self._help = description if description is not None else name
40
+ self._type = type
41
+ self._show_default = show_default
42
+ self._confirmation_prompt = confirmation_prompt
43
+ self._prompt_required = prompt_required
44
+ self._hide_input = hide_input
45
+ self._is_flag = is_flag
46
+ self._flag_value = flag_value
47
+ self._multiple = multiple
48
+ self._count = count
49
+ self._allow_from_autoenv = allow_from_autoenv
50
+ self._hidden = hidden
51
+ self._show_choices = show_choices
52
+ self._show_envvar = show_envvar
53
+ self._nargs = nargs
54
54
 
55
55
  def get_name(self) -> str:
56
- return self.name
56
+ return self._name
57
+
58
+ def get_default(self) -> Any:
59
+ return self._default
57
60
 
58
61
  def get_param_decl(self) -> List[str]:
59
- param_decl: List[str] = [f'--{self.name}']
60
- if self.shortcut is not None:
61
- param_decl.append(f'-{self.shortcut}')
62
+ param_decl: List[str] = [f'--{self._name}']
63
+ if self._shortcut is not None:
64
+ param_decl.append(f'-{self._shortcut}')
62
65
  return param_decl
63
66
 
64
67
  def get_options(self) -> Mapping[str, Any]:
65
68
  options: Mapping[str, Any] = {
66
- 'default': self.default,
67
- 'help': self.help,
68
- 'type': self.type,
69
- 'show_default': self.show_default,
70
- 'confirmation_prompt': self.confirmation_prompt,
71
- 'prompt_required': self.prompt_required,
72
- 'hide_input': self.hide_input,
73
- 'is_flag': self.is_flag,
74
- 'flag_value': self.flag_value,
75
- 'multiple': self.multiple,
76
- 'count': self.count,
77
- 'allow_from_autoenv': self.allow_from_autoenv,
78
- 'hidden': self.hidden,
79
- 'show_choices': self.show_choices,
80
- 'show_envvar': self.show_envvar,
81
- 'nargs': self.nargs
69
+ 'default': self._default,
70
+ 'help': self._help,
71
+ 'type': self._type,
72
+ 'show_default': self._show_default,
73
+ 'confirmation_prompt': self._confirmation_prompt,
74
+ 'prompt_required': self._prompt_required,
75
+ 'hide_input': self._hide_input,
76
+ 'is_flag': self._is_flag,
77
+ 'flag_value': self._flag_value,
78
+ 'multiple': self._multiple,
79
+ 'count': self._count,
80
+ 'allow_from_autoenv': self._allow_from_autoenv,
81
+ 'hidden': self._hidden,
82
+ 'show_choices': self._show_choices,
83
+ 'show_envvar': self._show_envvar,
84
+ 'nargs': self._nargs
82
85
  }
83
86
  if show_prompt:
84
- options['prompt'] = self.prompt
87
+ options['prompt'] = self._prompt
85
88
  return options
@@ -1,6 +1,5 @@
1
1
  from typing import Any, Optional, Union
2
2
  from typeguard import typechecked
3
-
4
3
  from .base_input import BaseInput
5
4
 
6
5
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zrb
3
- Version: 0.0.85
3
+ Version: 0.0.87
4
4
  Summary: Super framework for your super app
5
5
  Author-email: Go Frendi Gunawan <gofrendiasgard@gmail.com>
6
6
  Requires-Python: >=3.8
@@ -8,22 +8,21 @@ Description-Content-Type: text/markdown
8
8
  Classifier: Programming Language :: Python :: 3
9
9
  Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
10
10
  Classifier: Operating System :: OS Independent
11
- Requires-Dist: click==8.1.4
12
- Requires-Dist: aiofiles==23.1.0
13
- Requires-Dist: typeguard==2.13.3
14
- Requires-Dist: termcolor==2.3.0
15
- Requires-Dist: Jinja2==3.1.2
16
- Requires-Dist: libcst==0.4.9
17
- Requires-Dist: python-dotenv==1.0.0
18
- Requires-Dist: jsons==1.6.3
19
- Requires-Dist: ruamel.yaml==0.17.32
20
- Requires-Dist: setuptools==68.0.0
21
- Requires-Dist: autopep8==2.0.2
22
- Requires-Dist: flake8==6.0.0 ; extra == "dev"
23
- Requires-Dist: pytest==7.4.0 ; extra == "test"
24
- Requires-Dist: pytest-cov==4.1.0 ; extra == "test"
25
- Requires-Dist: pytest-xdist==3.3.1 ; extra == "test"
26
- Requires-Dist: pytest-asyncio==0.21.0 ; extra == "test"
11
+ Requires-Dist: click ~= 8.1.4
12
+ Requires-Dist: aiofiles ~= 23.1.0
13
+ Requires-Dist: typeguard ~= 2.13.3
14
+ Requires-Dist: termcolor ~= 2.3.0
15
+ Requires-Dist: Jinja2 ~= 3.1.2
16
+ Requires-Dist: libcst ~= 0.4.9
17
+ Requires-Dist: python-dotenv ~= 1.0.0
18
+ Requires-Dist: jsons ~= 1.6.3
19
+ Requires-Dist: ruamel.yaml ~= 0.17.32
20
+ Requires-Dist: setuptools ~= 68.0.0
21
+ Requires-Dist: autopep8 ~= 2.0.2
22
+ Requires-Dist: flake8 ~= 6.0.0 ; extra == "dev"
23
+ Requires-Dist: pytest ~= 7.4.0 ; extra == "test"
24
+ Requires-Dist: pytest-cov ~= 4.1.0 ; extra == "test"
25
+ Requires-Dist: pytest-asyncio ~= 0.21.0 ; extra == "test"
27
26
  Project-URL: Bug Tracker, https://github.com/state-alchemists/zrb/issues
28
27
  Project-URL: Homepage, https://github.com/state-alchemists/zrb
29
28
  Provides-Extra: dev