cli-wizard 1.0.0__tar.gz → 2.0.0__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 (77) hide show
  1. {cli_wizard-1.0.0 → cli_wizard-2.0.0}/MANIFEST.in +1 -0
  2. {cli_wizard-1.0.0/src/cli_wizard.egg-info → cli_wizard-2.0.0}/PKG-INFO +25 -58
  3. {cli_wizard-1.0.0 → cli_wizard-2.0.0}/README.md +11 -46
  4. cli_wizard-2.0.0/VERSION +1 -0
  5. {cli_wizard-1.0.0 → cli_wizard-2.0.0}/pyproject.toml +21 -13
  6. {cli_wizard-1.0.0 → cli_wizard-2.0.0}/src/cli_wizard/cli.py +4 -2
  7. cli_wizard-2.0.0/src/cli_wizard/commands/bootstrap.py +352 -0
  8. {cli_wizard-1.0.0 → cli_wizard-2.0.0}/src/cli_wizard/commands/config.py +12 -12
  9. {cli_wizard-1.0.0 → cli_wizard-2.0.0}/src/cli_wizard/commands/generate.py +83 -90
  10. {cli_wizard-1.0.0 → cli_wizard-2.0.0}/src/cli_wizard/config/configuration.py +12 -20
  11. cli_wizard-2.0.0/src/cli_wizard/config/schema.py +364 -0
  12. {cli_wizard-1.0.0 → cli_wizard-2.0.0}/src/cli_wizard/constants.py +2 -0
  13. cli_wizard-2.0.0/src/cli_wizard/generator/generator.py +447 -0
  14. {cli_wizard-1.0.0 → cli_wizard-2.0.0}/src/cli_wizard/generator/parser.py +20 -2
  15. cli_wizard-2.0.0/src/cli_wizard/templates/.github/CODEOWNERS.j2 +1 -0
  16. cli_wizard-2.0.0/src/cli_wizard/templates/.github/ISSUE_TEMPLATE/bug-report.yml.j2 +69 -0
  17. cli_wizard-2.0.0/src/cli_wizard/templates/.github/ISSUE_TEMPLATE/config.yml.j2 +5 -0
  18. cli_wizard-2.0.0/src/cli_wizard/templates/.github/ISSUE_TEMPLATE/feature-request.yml.j2 +39 -0
  19. cli_wizard-2.0.0/src/cli_wizard/templates/.github/PULL_REQUEST_TEMPLATE.md +21 -0
  20. cli_wizard-2.0.0/src/cli_wizard/templates/.github/dependabot.yaml +7 -0
  21. cli_wizard-2.0.0/src/cli_wizard/templates/.github/labeler.yaml +17 -0
  22. cli_wizard-2.0.0/src/cli_wizard/templates/.github/labels.yaml.j2 +69 -0
  23. cli_wizard-2.0.0/src/cli_wizard/templates/.github/workflows/changelog_enforcer.yaml +23 -0
  24. cli_wizard-2.0.0/src/cli_wizard/templates/.github/workflows/codeql.yaml +38 -0
  25. cli_wizard-2.0.0/src/cli_wizard/templates/.github/workflows/docs.yaml +52 -0
  26. cli_wizard-2.0.0/src/cli_wizard/templates/.github/workflows/labeler.yaml +14 -0
  27. cli_wizard-2.0.0/src/cli_wizard/templates/.github/workflows/pr-validation.yaml +42 -0
  28. cli_wizard-2.0.0/src/cli_wizard/templates/.github/workflows/release.yaml +42 -0
  29. cli_wizard-2.0.0/src/cli_wizard/templates/.github/workflows/sync-labels.yaml +27 -0
  30. cli_wizard-2.0.0/src/cli_wizard/templates/.github/workflows/test.yaml +46 -0
  31. cli_wizard-2.0.0/src/cli_wizard/templates/.gitignore.j2 +62 -0
  32. cli_wizard-2.0.0/src/cli_wizard/templates/CHANGELOG.md.j2 +31 -0
  33. cli_wizard-2.0.0/src/cli_wizard/templates/DEVELOPMENT.md.j2 +89 -0
  34. cli_wizard-2.0.0/src/cli_wizard/templates/LICENSE.j2 +21 -0
  35. cli_wizard-2.0.0/src/cli_wizard/templates/MANIFEST.in.j2 +4 -0
  36. cli_wizard-2.0.0/src/cli_wizard/templates/Makefile.j2 +27 -0
  37. cli_wizard-2.0.0/src/cli_wizard/templates/README.md.j2 +23 -0
  38. cli_wizard-2.0.0/src/cli_wizard/templates/VERSION.j2 +1 -0
  39. cli_wizard-2.0.0/src/cli_wizard/templates/cli-wizard.yaml.j2 +17 -0
  40. cli_wizard-2.0.0/src/cli_wizard/templates/pre-commit-config.yaml.j2 +27 -0
  41. cli_wizard-2.0.0/src/cli_wizard/templates/pyproject.toml.j2 +83 -0
  42. cli_wizard-2.0.0/src/cli_wizard/templates/src/{{ PackageName }}/__init__.py.j2 +11 -0
  43. cli_wizard-1.0.0/src/cli_wizard/templates/cli.py.j2 → cli_wizard-2.0.0/src/cli_wizard/templates/src/{{ PackageName }}/cli.py.j2 +37 -16
  44. cli_wizard-1.0.0/src/cli_wizard/templates/client.py.j2 → cli_wizard-2.0.0/src/cli_wizard/templates/src/{{ PackageName }}/client.py.j2 +24 -8
  45. cli_wizard-1.0.0/src/cli_wizard/templates/commands_init.py.j2 → cli_wizard-2.0.0/src/cli_wizard/templates/src/{{ PackageName }}/commands/__init__.py.j2 +1 -1
  46. cli_wizard-2.0.0/src/cli_wizard/templates/src/{{ PackageName }}/commands/config.py.j2 +384 -0
  47. cli_wizard-1.0.0/src/cli_wizard/templates/command_group.py.j2 → cli_wizard-2.0.0/src/cli_wizard/templates/src/{{ PackageName }}/commands/group.py.j2 +141 -30
  48. cli_wizard-2.0.0/src/cli_wizard/templates/src/{{ PackageName }}/constants.py.j2 +89 -0
  49. cli_wizard-1.0.0/src/cli_wizard/templates/logging.py.j2 → cli_wizard-2.0.0/src/cli_wizard/templates/src/{{ PackageName }}/logging.py.j2 +16 -8
  50. cli_wizard-1.0.0/src/cli_wizard/templates/profile.py.j2 → cli_wizard-2.0.0/src/cli_wizard/templates/src/{{ PackageName }}/profile.py.j2 +13 -7
  51. cli_wizard-2.0.0/src/cli_wizard/templates/tests/{{ PackageName }}/cli_test.py.j2 +1165 -0
  52. cli_wizard-2.0.0/src/cli_wizard/templates/tox.ini.j2 +27 -0
  53. {cli_wizard-1.0.0 → cli_wizard-2.0.0/src/cli_wizard.egg-info}/PKG-INFO +25 -58
  54. cli_wizard-2.0.0/src/cli_wizard.egg-info/SOURCES.txt +64 -0
  55. cli_wizard-2.0.0/src/cli_wizard.egg-info/requires.txt +26 -0
  56. cli_wizard-1.0.0/VERSION +0 -1
  57. cli_wizard-1.0.0/src/cli_wizard/config/default_config.yaml +0 -7
  58. cli_wizard-1.0.0/src/cli_wizard/config/schema.py +0 -182
  59. cli_wizard-1.0.0/src/cli_wizard/generator/generator.py +0 -241
  60. cli_wizard-1.0.0/src/cli_wizard/templates/README.md.j2 +0 -31
  61. cli_wizard-1.0.0/src/cli_wizard/templates/commands_config.py.j2 +0 -206
  62. cli_wizard-1.0.0/src/cli_wizard/templates/constants.py.j2 +0 -67
  63. cli_wizard-1.0.0/src/cli_wizard/templates/package_init.py.j2 +0 -8
  64. cli_wizard-1.0.0/src/cli_wizard/templates/pyproject.toml.j2 +0 -28
  65. cli_wizard-1.0.0/src/cli_wizard.egg-info/SOURCES.txt +0 -37
  66. cli_wizard-1.0.0/src/cli_wizard.egg-info/requires.txt +0 -24
  67. {cli_wizard-1.0.0 → cli_wizard-2.0.0}/LICENSE +0 -0
  68. {cli_wizard-1.0.0 → cli_wizard-2.0.0}/setup.cfg +0 -0
  69. {cli_wizard-1.0.0 → cli_wizard-2.0.0}/src/cli_wizard/__init__.py +0 -0
  70. {cli_wizard-1.0.0 → cli_wizard-2.0.0}/src/cli_wizard/commands/__init__.py +0 -0
  71. {cli_wizard-1.0.0 → cli_wizard-2.0.0}/src/cli_wizard/commands/common.py +0 -0
  72. {cli_wizard-1.0.0 → cli_wizard-2.0.0}/src/cli_wizard/config/__init__.py +0 -0
  73. {cli_wizard-1.0.0 → cli_wizard-2.0.0}/src/cli_wizard/generator/__init__.py +0 -0
  74. {cli_wizard-1.0.0 → cli_wizard-2.0.0}/src/cli_wizard/generator/models.py +0 -0
  75. {cli_wizard-1.0.0 → cli_wizard-2.0.0}/src/cli_wizard.egg-info/dependency_links.txt +0 -0
  76. {cli_wizard-1.0.0 → cli_wizard-2.0.0}/src/cli_wizard.egg-info/entry_points.txt +0 -0
  77. {cli_wizard-1.0.0 → cli_wizard-2.0.0}/src/cli_wizard.egg-info/top_level.txt +0 -0
@@ -1,5 +1,6 @@
1
1
  include README.md
2
2
  include LICENSE
3
3
  recursive-include src/cli_wizard *.py
4
+ recursive-include src/cli_wizard/templates *
4
5
  recursive-exclude * __pycache__
5
6
  recursive-exclude * *.py[co]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cli-wizard
3
- Version: 1.0.0
3
+ Version: 2.0.0
4
4
  Summary: Generate modern CLIs from OpenAPI specifications
5
5
  Author-email: Giacomo Marciani <giacomo.marciani@gmail.com>
6
6
  License: MIT
@@ -17,43 +17,45 @@ Classifier: Programming Language :: Python :: 3.14
17
17
  Requires-Python: >=3.12
18
18
  Description-Content-Type: text/markdown
19
19
  License-File: LICENSE
20
- Requires-Dist: click~=8.1
21
- Requires-Dist: Jinja2~=3.1
22
- Requires-Dist: pydantic~=2.10
23
- Requires-Dist: PyYAML~=6.0
24
- Requires-Dist: requests~=2.32
20
+ Requires-Dist: click~=8.3.1
21
+ Requires-Dist: Jinja2~=3.1.6
22
+ Requires-Dist: pydantic~=2.12.5
23
+ Requires-Dist: PyYAML~=6.0.3
24
+ Requires-Dist: requests~=2.32.5
25
25
  Provides-Extra: dev
26
26
  Requires-Dist: autoflake~=2.3; extra == "dev"
27
27
  Requires-Dist: black~=26.1; extra == "dev"
28
- Requires-Dist: build~=1.3; extra == "dev"
28
+ Requires-Dist: build~=1.4; extra == "dev"
29
29
  Requires-Dist: flake8~=7.3; extra == "dev"
30
- Requires-Dist: mypy~=1.18; extra == "dev"
31
- Requires-Dist: pre-commit~=4.0; extra == "dev"
30
+ Requires-Dist: mypy~=1.19; extra == "dev"
31
+ Requires-Dist: pre-commit~=4.5; extra == "dev"
32
32
  Requires-Dist: pytest~=9.0; extra == "dev"
33
33
  Requires-Dist: pytest-cov~=7.0; extra == "dev"
34
- Requires-Dist: tox~=4.32; extra == "dev"
34
+ Requires-Dist: tox~=4.34; extra == "dev"
35
35
  Requires-Dist: twine~=6.2; extra == "dev"
36
36
  Requires-Dist: types-PyYAML~=6.0; extra == "dev"
37
37
  Requires-Dist: types-requests~=2.32; extra == "dev"
38
38
  Provides-Extra: docs
39
39
  Requires-Dist: sphinx~=9.1; extra == "docs"
40
- Requires-Dist: sphinx-click~=6.0; extra == "docs"
41
- Requires-Dist: sphinx-rtd-theme~=3.0; extra == "docs"
40
+ Requires-Dist: sphinx-click~=6.2; extra == "docs"
41
+ Requires-Dist: sphinx-rtd-theme~=3.1; extra == "docs"
42
+ Requires-Dist: sphinx-new-tab-link~=0.8; extra == "docs"
43
+ Requires-Dist: autodoc_pydantic~=2.2; extra == "docs"
42
44
  Dynamic: license-file
43
45
 
44
46
  # CLI WIZARD
45
47
 
46
48
  <div align="center">
47
- <img src="https://raw.githubusercontent.com/gmarciani/cli-wizard/main/resources/brand/logo.png" alt="cli-wizard-logo" width="500">
49
+ <img src="https://raw.githubusercontent.com/gmarciani/cli-wizard/main/resources/brand/banner.png" alt="cli-wizard-banner" width="500">
48
50
 
49
- [![PyPI version](https://img.shields.io/pypi/v/cli-wizard.svg)](https://pypi.org/project/cli-wizard/)
50
- [![Python versions](https://img.shields.io/pypi/pyversions/cli-wizard.svg)](https://pypi.org/project/cli-wizard/)
51
+ [![PyPI version](https://img.shields.io/pypi/v/cli-wizard.svg)](https://pypi.org/project/cli-wizard)
52
+ [![Python versions](https://img.shields.io/pypi/pyversions/cli-wizard.svg)](https://pypi.org/project/cli-wizard)
51
53
  [![License](https://img.shields.io/github/license/gmarciani/cli-wizard.svg)](https://github.com/gmarciani/cli-wizard/blob/main/LICENSE)
52
- [![Build status](https://img.shields.io/github/actions/workflow/status/gmarciani/cli-wizard/test.yml?branch=main)](https://github.com/gmarciani/cli-wizard/actions)
53
- [![Tests](https://img.shields.io/github/actions/workflow/status/gmarciani/cli-wizard/test.yml?branch=main&label=tests)](https://github.com/gmarciani/cli-wizard/actions)
54
+ [![Build status](https://img.shields.io/github/actions/workflow/status/gmarciani/cli-wizard/test.yaml?branch=main)](https://github.com/gmarciani/cli-wizard/actions)
55
+ [![Tests](https://img.shields.io/github/actions/workflow/status/gmarciani/cli-wizard/test.yaml?branch=main&label=tests)](https://github.com/gmarciani/cli-wizard/actions)
54
56
  [![Coverage](https://img.shields.io/codecov/c/github/gmarciani/cli-wizard)](https://codecov.io/gh/gmarciani/cli-wizard)
55
57
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
56
- [![Downloads](https://img.shields.io/pypi/dm/cli-wizard.svg)](https://pypi.org/project/cli-wizard/)
58
+ [![Downloads](https://img.shields.io/pypi/dm/cli-wizard.svg)](https://pypi.org/project/cli-wizard)
57
59
 
58
60
  </div>
59
61
 
@@ -127,7 +129,7 @@ paths:
127
129
 
128
130
  ### Step 2: Create a Configuration File
129
131
 
130
- Create a `config.yaml` file with your CLI settings. At minimum, you need `PackageName` and `DefaultBaseUrl`:
132
+ Create a `cli-wizard.yaml` file with your CLI settings. At minimum, you need `PackageName` and `DefaultBaseUrl`:
131
133
 
132
134
  ```yaml
133
135
  # Required parameters
@@ -149,7 +151,7 @@ IncludeTags:
149
151
  Run the `generate` command:
150
152
 
151
153
  ```shell
152
- cli-wizard generate --openapi openapi.yaml --config config.yaml --output my-cli
154
+ cli-wizard generate --openapi openapi.yaml --config cli-wizard.yaml --output my-cli
153
155
  ```
154
156
 
155
157
  This creates a complete Python CLI project in the `my-cli` directory.
@@ -173,42 +175,7 @@ my-cli users list-users
173
175
 
174
176
  ## Configuration
175
177
 
176
- Configuration uses a YAML file with PascalCase parameter names. You can reference other parameters with `#[ParamName]` syntax and environment variables with `${VAR}` syntax.
177
-
178
- ### Required Parameters
179
-
180
- | Parameter | Description |
181
- |-----------|-------------|
182
- | `PackageName` | Python package name for the generated CLI |
183
- | `DefaultBaseUrl` | Default API base URL |
184
-
185
- ### Common Parameters
186
-
187
- | Parameter | Default | Description |
188
- |-----------|---------|-------------|
189
- | `OutputDir` | `#[PackageName]` | Output directory for the generated CLI project |
190
- | `MainDir` | `${HOME}/.#[PackageName]` | Main directory for CLI data (config, cache, logs) |
191
- | `ProfileFile` | `#[MainDir]/profiles.yaml` | Path to profiles YAML file |
192
- | `ExcludeTags` | `[]` | Tags to exclude from generation |
193
- | `IncludeTags` | `[]` | Tags to include (empty means all) |
194
- | `TagMapping` | `{}` | Map OpenAPI tags to CLI command group names |
195
- | `CommandMapping` | `{}` | Customize command names (operationId → command name) |
196
- | `SplashFile` | `None` | Path to splash text file |
197
- | `SplashColor` | `#FFFFFF` | Color for splash text (hex code) |
198
- | `Timeout` | `30` | Request timeout in seconds |
199
- | `CaFile` | `None` | CA certificate file for SSL verification |
200
-
201
- ### Logging Parameters
202
-
203
- | Parameter | Default | Description |
204
- |-----------|---------|-------------|
205
- | `LogLevel` | `INFO` | Default log level (DEBUG, INFO, WARNING, ERROR) |
206
- | `LogFormat` | `[%(levelname)s] %(asctime)s %(message)s` | Log message format |
207
- | `LogFile` | `None` | Path to log file (None means console only) |
208
- | `LogRotationType` | `days` | Log rotation type: `size` or `days` |
209
- | `LogRotationDays` | `30` | Log rotation interval in days |
210
- | `LogColorStyle` | `level` | Color style: `full` or `level` |
211
-
178
+ See [configuration reference](https://gmarciani.github.io/cli-wizard/configuration.html) for full documentation.
212
179
  See the [examples](examples/) directory for complete configuration examples.
213
180
 
214
181
  ## Commands
@@ -223,7 +190,7 @@ cli-wizard generate [OPTIONS]
223
190
 
224
191
  Options:
225
192
  - `--openapi, -o` - Path to OpenAPI spec file (default: `openapi.yaml`)
226
- - `--config, -c` - Path to config YAML file (default: `config.yaml`)
193
+ - `--config, -c` - Path to config YAML file (default: `cli-wizard.yaml`)
227
194
  - `--output, -d` - Output directory for generated CLI (default: `cli`)
228
195
  - `--working-dir, -w` - Working directory for resolving relative paths
229
196
 
@@ -233,4 +200,4 @@ Please report any issues or feature requests on the [GitHub Issues](https://gith
233
200
 
234
201
  ## License
235
202
 
236
- This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
203
+ This project is licensed under the MIT License. See the [LICENSE](https://github.com/gmarciani/cli-wizard/blob/main/LICENSE) file for details.
@@ -1,16 +1,16 @@
1
1
  # CLI WIZARD
2
2
 
3
3
  <div align="center">
4
- <img src="https://raw.githubusercontent.com/gmarciani/cli-wizard/main/resources/brand/logo.png" alt="cli-wizard-logo" width="500">
4
+ <img src="https://raw.githubusercontent.com/gmarciani/cli-wizard/main/resources/brand/banner.png" alt="cli-wizard-banner" width="500">
5
5
 
6
- [![PyPI version](https://img.shields.io/pypi/v/cli-wizard.svg)](https://pypi.org/project/cli-wizard/)
7
- [![Python versions](https://img.shields.io/pypi/pyversions/cli-wizard.svg)](https://pypi.org/project/cli-wizard/)
6
+ [![PyPI version](https://img.shields.io/pypi/v/cli-wizard.svg)](https://pypi.org/project/cli-wizard)
7
+ [![Python versions](https://img.shields.io/pypi/pyversions/cli-wizard.svg)](https://pypi.org/project/cli-wizard)
8
8
  [![License](https://img.shields.io/github/license/gmarciani/cli-wizard.svg)](https://github.com/gmarciani/cli-wizard/blob/main/LICENSE)
9
- [![Build status](https://img.shields.io/github/actions/workflow/status/gmarciani/cli-wizard/test.yml?branch=main)](https://github.com/gmarciani/cli-wizard/actions)
10
- [![Tests](https://img.shields.io/github/actions/workflow/status/gmarciani/cli-wizard/test.yml?branch=main&label=tests)](https://github.com/gmarciani/cli-wizard/actions)
9
+ [![Build status](https://img.shields.io/github/actions/workflow/status/gmarciani/cli-wizard/test.yaml?branch=main)](https://github.com/gmarciani/cli-wizard/actions)
10
+ [![Tests](https://img.shields.io/github/actions/workflow/status/gmarciani/cli-wizard/test.yaml?branch=main&label=tests)](https://github.com/gmarciani/cli-wizard/actions)
11
11
  [![Coverage](https://img.shields.io/codecov/c/github/gmarciani/cli-wizard)](https://codecov.io/gh/gmarciani/cli-wizard)
12
12
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
13
- [![Downloads](https://img.shields.io/pypi/dm/cli-wizard.svg)](https://pypi.org/project/cli-wizard/)
13
+ [![Downloads](https://img.shields.io/pypi/dm/cli-wizard.svg)](https://pypi.org/project/cli-wizard)
14
14
 
15
15
  </div>
16
16
 
@@ -84,7 +84,7 @@ paths:
84
84
 
85
85
  ### Step 2: Create a Configuration File
86
86
 
87
- Create a `config.yaml` file with your CLI settings. At minimum, you need `PackageName` and `DefaultBaseUrl`:
87
+ Create a `cli-wizard.yaml` file with your CLI settings. At minimum, you need `PackageName` and `DefaultBaseUrl`:
88
88
 
89
89
  ```yaml
90
90
  # Required parameters
@@ -106,7 +106,7 @@ IncludeTags:
106
106
  Run the `generate` command:
107
107
 
108
108
  ```shell
109
- cli-wizard generate --openapi openapi.yaml --config config.yaml --output my-cli
109
+ cli-wizard generate --openapi openapi.yaml --config cli-wizard.yaml --output my-cli
110
110
  ```
111
111
 
112
112
  This creates a complete Python CLI project in the `my-cli` directory.
@@ -130,42 +130,7 @@ my-cli users list-users
130
130
 
131
131
  ## Configuration
132
132
 
133
- Configuration uses a YAML file with PascalCase parameter names. You can reference other parameters with `#[ParamName]` syntax and environment variables with `${VAR}` syntax.
134
-
135
- ### Required Parameters
136
-
137
- | Parameter | Description |
138
- |-----------|-------------|
139
- | `PackageName` | Python package name for the generated CLI |
140
- | `DefaultBaseUrl` | Default API base URL |
141
-
142
- ### Common Parameters
143
-
144
- | Parameter | Default | Description |
145
- |-----------|---------|-------------|
146
- | `OutputDir` | `#[PackageName]` | Output directory for the generated CLI project |
147
- | `MainDir` | `${HOME}/.#[PackageName]` | Main directory for CLI data (config, cache, logs) |
148
- | `ProfileFile` | `#[MainDir]/profiles.yaml` | Path to profiles YAML file |
149
- | `ExcludeTags` | `[]` | Tags to exclude from generation |
150
- | `IncludeTags` | `[]` | Tags to include (empty means all) |
151
- | `TagMapping` | `{}` | Map OpenAPI tags to CLI command group names |
152
- | `CommandMapping` | `{}` | Customize command names (operationId → command name) |
153
- | `SplashFile` | `None` | Path to splash text file |
154
- | `SplashColor` | `#FFFFFF` | Color for splash text (hex code) |
155
- | `Timeout` | `30` | Request timeout in seconds |
156
- | `CaFile` | `None` | CA certificate file for SSL verification |
157
-
158
- ### Logging Parameters
159
-
160
- | Parameter | Default | Description |
161
- |-----------|---------|-------------|
162
- | `LogLevel` | `INFO` | Default log level (DEBUG, INFO, WARNING, ERROR) |
163
- | `LogFormat` | `[%(levelname)s] %(asctime)s %(message)s` | Log message format |
164
- | `LogFile` | `None` | Path to log file (None means console only) |
165
- | `LogRotationType` | `days` | Log rotation type: `size` or `days` |
166
- | `LogRotationDays` | `30` | Log rotation interval in days |
167
- | `LogColorStyle` | `level` | Color style: `full` or `level` |
168
-
133
+ See [configuration reference](https://gmarciani.github.io/cli-wizard/configuration.html) for full documentation.
169
134
  See the [examples](examples/) directory for complete configuration examples.
170
135
 
171
136
  ## Commands
@@ -180,7 +145,7 @@ cli-wizard generate [OPTIONS]
180
145
 
181
146
  Options:
182
147
  - `--openapi, -o` - Path to OpenAPI spec file (default: `openapi.yaml`)
183
- - `--config, -c` - Path to config YAML file (default: `config.yaml`)
148
+ - `--config, -c` - Path to config YAML file (default: `cli-wizard.yaml`)
184
149
  - `--output, -d` - Output directory for generated CLI (default: `cli`)
185
150
  - `--working-dir, -w` - Working directory for resolving relative paths
186
151
 
@@ -190,4 +155,4 @@ Please report any issues or feature requests on the [GitHub Issues](https://gith
190
155
 
191
156
  ## License
192
157
 
193
- This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
158
+ This project is licensed under the MIT License. See the [LICENSE](https://github.com/gmarciani/cli-wizard/blob/main/LICENSE) file for details.
@@ -0,0 +1 @@
1
+ 2.0.0
@@ -22,32 +22,34 @@ classifiers = [
22
22
  ]
23
23
  requires-python = ">=3.12"
24
24
  dependencies = [
25
- "click~=8.1",
26
- "Jinja2~=3.1",
27
- "pydantic~=2.10",
28
- "PyYAML~=6.0",
29
- "requests~=2.32",
25
+ "click~=8.3.1",
26
+ "Jinja2~=3.1.6",
27
+ "pydantic~=2.12.5",
28
+ "PyYAML~=6.0.3",
29
+ "requests~=2.32.5",
30
30
  ]
31
31
 
32
32
  [project.optional-dependencies]
33
33
  dev = [
34
34
  "autoflake~=2.3",
35
35
  "black~=26.1",
36
- "build~=1.3",
36
+ "build~=1.4",
37
37
  "flake8~=7.3",
38
- "mypy~=1.18",
39
- "pre-commit~=4.0",
38
+ "mypy~=1.19",
39
+ "pre-commit~=4.5",
40
40
  "pytest~=9.0",
41
41
  "pytest-cov~=7.0",
42
- "tox~=4.32",
42
+ "tox~=4.34",
43
43
  "twine~=6.2",
44
44
  "types-PyYAML~=6.0",
45
45
  "types-requests~=2.32",
46
46
  ]
47
47
  docs = [
48
48
  "sphinx~=9.1",
49
- "sphinx-click~=6.0",
50
- "sphinx-rtd-theme~=3.0",
49
+ "sphinx-click~=6.2",
50
+ "sphinx-rtd-theme~=3.1",
51
+ "sphinx-new-tab-link~=0.8",
52
+ "autodoc_pydantic~=2.2",
51
53
  ]
52
54
 
53
55
  [project.scripts]
@@ -63,14 +65,20 @@ where = ["src"]
63
65
  include = ["cli_wizard*"]
64
66
 
65
67
  [tool.setuptools.package-data]
66
- cli_wizard = ["templates/*.j2", "config/*.yaml"]
68
+ cli_wizard = [
69
+ "templates/**/*.j2",
70
+ "templates/**/*.yaml",
71
+ "templates/**/*.yml",
72
+ "templates/**/*.md",
73
+ "config/*.yaml",
74
+ ]
67
75
 
68
76
  [tool.setuptools.dynamic]
69
77
  version = {file = "VERSION"}
70
78
 
71
79
  [tool.black]
72
80
  line-length = 88
73
- target-version = ['py311']
81
+ target-version = ['py312']
74
82
 
75
83
  [tool.mypy]
76
84
  python_version = "3.12"
@@ -6,16 +6,17 @@
6
6
  import click
7
7
  import logging
8
8
  from cli_wizard.constants import __version__
9
+ from cli_wizard.commands.bootstrap import bootstrap
9
10
  from cli_wizard.commands.config import config
10
11
  from cli_wizard.commands.generate import generate
11
12
 
12
13
 
13
- @click.group()
14
+ @click.group(help="CLI Wizard - Generate modern CLI from OpenAPI.")
14
15
  @click.version_option(version=__version__, prog_name="cli-wizard")
15
16
  @click.option("--debug", "-d", is_flag=True, help="Enable debug output")
16
17
  @click.pass_context
17
18
  def main(ctx: click.Context, debug: bool) -> None:
18
- """CLI Wizard - Generate modern CLI from OpenAPI."""
19
+ """Main CLI entry point."""
19
20
  ctx.ensure_object(dict)
20
21
  ctx.obj["debug"] = debug
21
22
 
@@ -29,6 +30,7 @@ def main(ctx: click.Context, debug: bool) -> None:
29
30
  logging.Formatter.converter = lambda *args: __import__("time").gmtime()
30
31
 
31
32
 
33
+ main.add_command(bootstrap)
32
34
  main.add_command(config)
33
35
  main.add_command(generate)
34
36