pygenkit 0.2.0__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.
- pygenkit/__init__.py +2 -0
- pygenkit/ai/__init__.py +11 -0
- pygenkit/ai/prompts.py +27 -0
- pygenkit/ai/provider.py +57 -0
- pygenkit/ai/review.py +59 -0
- pygenkit/cli/__init__.py +3 -0
- pygenkit/cli/app.py +53 -0
- pygenkit/cli/commands/__init__.py +21 -0
- pygenkit/cli/commands/build.py +41 -0
- pygenkit/cli/commands/doctor.py +119 -0
- pygenkit/cli/commands/generate.py +52 -0
- pygenkit/cli/commands/health.py +64 -0
- pygenkit/cli/commands/init.py +23 -0
- pygenkit/cli/commands/inspect.py +58 -0
- pygenkit/cli/commands/new.py +37 -0
- pygenkit/cli/commands/publish.py +30 -0
- pygenkit/cli/commands/release.py +33 -0
- pygenkit/cli/commands/release_check.py +17 -0
- pygenkit/cli/commands/review.py +58 -0
- pygenkit/cli/commands/validate.py +29 -0
- pygenkit/cli.py +4 -0
- pygenkit/config/__init__.py +3 -0
- pygenkit/generators/__init__.py +13 -0
- pygenkit/generators/base.py +31 -0
- pygenkit/generators/deploy.py +48 -0
- pygenkit/generators/docker.py +43 -0
- pygenkit/generators/github_actions.py +68 -0
- pygenkit/generators/orchestrator.py +33 -0
- pygenkit/generators/project.py +110 -0
- pygenkit/health/__init__.py +3 -0
- pygenkit/health/api.py +57 -0
- pygenkit/health/checks.py +343 -0
- pygenkit/inspector/__init__.py +3 -0
- pygenkit/inspector/api.py +154 -0
- pygenkit/inspector/debian.py +51 -0
- pygenkit/inspector/detect.py +84 -0
- pygenkit/inspector/git.py +55 -0
- pygenkit/inspector/pyproject.py +74 -0
- pygenkit/models/__init__.py +25 -0
- pygenkit/models/config.py +266 -0
- pygenkit/models/health.py +22 -0
- pygenkit/models/inspection.py +56 -0
- pygenkit/render/__init__.py +3 -0
- pygenkit/render/engine.py +41 -0
- pygenkit/services/__init__.py +0 -0
- pygenkit/templates/deploy/Procfile.j2 +1 -0
- pygenkit/templates/deploy/fly.toml.j2 +14 -0
- pygenkit/templates/deploy/railway.json.j2 +12 -0
- pygenkit/templates/docker/Dockerfile.j2 +15 -0
- pygenkit/templates/docker/docker-compose.yml.j2 +17 -0
- pygenkit/templates/github/workflows/ci.yml.j2 +33 -0
- pygenkit/templates/github/workflows/publish-launchpad.yml.j2 +37 -0
- pygenkit/templates/github/workflows/publish-pypi.yml.j2 +32 -0
- pygenkit/templates/github/workflows/release.yml.j2 +28 -0
- pygenkit/templates/project/LICENSE.j2 +21 -0
- pygenkit/templates/project/README.md.j2 +21 -0
- pygenkit/templates/project/pyproject.toml.j2 +51 -0
- pygenkit/templates/project/src/__init__.py.j2 +2 -0
- pygenkit/templates/project/src/cli.py.j2 +5 -0
- pygenkit/templates/project/tests/__init__.py.j2 +0 -0
- pygenkit/templates/project/tests/test_cli.py.j2 +5 -0
- pygenkit/templates/python-cli/CHANGELOG.md.jinja +7 -0
- pygenkit/templates/python-cli/LICENSE.jinja +204 -0
- pygenkit/templates/python-cli/Makefile.jinja +31 -0
- pygenkit/templates/python-cli/README.md.jinja +86 -0
- pygenkit/templates/python-cli/debian/changelog.jinja +5 -0
- pygenkit/templates/python-cli/debian/control.jinja +23 -0
- pygenkit/templates/python-cli/debian/copyright.jinja +23 -0
- pygenkit/templates/python-cli/debian/install.jinja +1 -0
- pygenkit/templates/python-cli/debian/links.jinja +1 -0
- pygenkit/templates/python-cli/debian/postinst.jinja +15 -0
- pygenkit/templates/python-cli/debian/prerm.jinja +14 -0
- pygenkit/templates/python-cli/debian/rules.jinja +11 -0
- pygenkit/templates/python-cli/debian/source/options.jinja +2 -0
- pygenkit/templates/python-cli/debian/{{module_name}}.service.jinja +13 -0
- pygenkit/templates/python-cli/pygenkit.yaml.jinja +19 -0
- pygenkit/templates/python-cli/pyproject.toml.jinja +53 -0
- pygenkit/templates/python-cli/src/{{module_name}}/__init__.py.jinja +4 -0
- pygenkit/templates/python-cli/src/{{module_name}}/cli.py.jinja +28 -0
- pygenkit/templates/python-cli/tests/__init__.py +0 -0
- pygenkit/templates/python-cli/tests/test_cli.py.jinja +21 -0
- pygenkit/utils/__init__.py +4 -0
- pygenkit/utils/files.py +29 -0
- pygenkit/utils/filters.py +43 -0
- pygenkit/validators/__init__.py +3 -0
- pygenkit/validators/api.py +30 -0
- pygenkit/validators/security.py +102 -0
- pygenkit/validators/version.py +77 -0
- pygenkit/validators/workflow.py +141 -0
- pygenkit-0.2.0.dist-info/METADATA +350 -0
- pygenkit-0.2.0.dist-info/RECORD +95 -0
- pygenkit-0.2.0.dist-info/WHEEL +5 -0
- pygenkit-0.2.0.dist-info/entry_points.txt +2 -0
- pygenkit-0.2.0.dist-info/licenses/LICENSE +674 -0
- pygenkit-0.2.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pygenkit
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: Professional Python project generator — PyPI, APT, and Launchpad ready
|
|
5
|
+
Author-email: Alan Santos <alan.profissional.dev@gmail.com>
|
|
6
|
+
License-Expression: GPL-3.0-only
|
|
7
|
+
Project-URL: Homepage, https://github.com/alan-n7x/pygenkit
|
|
8
|
+
Project-URL: Repository, https://github.com/alan-n7x/pygenkit
|
|
9
|
+
Project-URL: Issues, https://github.com/alan-n7x/pygenkit/issues
|
|
10
|
+
Requires-Python: >=3.12
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Requires-Dist: typer>=0.12
|
|
14
|
+
Requires-Dist: jinja2>=3.1
|
|
15
|
+
Requires-Dist: pyyaml>=6.0
|
|
16
|
+
Dynamic: license-file
|
|
17
|
+
|
|
18
|
+
# PyGenKit
|
|
19
|
+
|
|
20
|
+
Professional Python project generator -- **PyPI**, **APT**, and **Launchpad** ready.
|
|
21
|
+
|
|
22
|
+
Inspect existing Python projects, validate version consistency and CI/CD security, and
|
|
23
|
+
generate GitHub Actions pipelines, Dockerfiles, and deploy configs.
|
|
24
|
+
|
|
25
|
+
## Installation
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
pip install pygenkit
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Or via `uv`:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
uv tool install pygenkit
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Quick Start
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# Scaffold a complete project with CI/CD
|
|
41
|
+
pygenkit new my-app
|
|
42
|
+
cd my-app
|
|
43
|
+
|
|
44
|
+
# Inspect project structure
|
|
45
|
+
pygenkit inspect
|
|
46
|
+
|
|
47
|
+
# Validate versions, workflows, security
|
|
48
|
+
pygenkit validate
|
|
49
|
+
|
|
50
|
+
# Generate CI/CD pipelines, Docker, deploy configs
|
|
51
|
+
pygenkit generate
|
|
52
|
+
|
|
53
|
+
# Check system requirements
|
|
54
|
+
pygenkit doctor
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Commands
|
|
58
|
+
|
|
59
|
+
| Command | Description |
|
|
60
|
+
|-----------------|------------------------------------------------|
|
|
61
|
+
| `new` | Scaffold a complete Python project with CI/CD |
|
|
62
|
+
| `init` | Create `pygenkit.toml` in an existing project |
|
|
63
|
+
| `inspect` | Analyze project structure, versions, metadata |
|
|
64
|
+
| `validate` | Check version consistency, workflows, security |
|
|
65
|
+
| `generate` | Generate CI/CD, Docker, and deploy files |
|
|
66
|
+
| `health` | Assess project health across 7 categories |
|
|
67
|
+
| `review` | Review a GitHub PR diff using AI |
|
|
68
|
+
| `release-check` | Verify release readiness (coming soon) |
|
|
69
|
+
| `doctor` | Check system for required tools |
|
|
70
|
+
|
|
71
|
+
## Usage
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# Create config
|
|
75
|
+
pygenkit init my-project
|
|
76
|
+
|
|
77
|
+
# Inspect project
|
|
78
|
+
pygenkit inspect
|
|
79
|
+
|
|
80
|
+
# Validate
|
|
81
|
+
pygenkit validate
|
|
82
|
+
|
|
83
|
+
# Generate GitHub Actions CI/CD pipelines
|
|
84
|
+
pygenkit generate
|
|
85
|
+
|
|
86
|
+
# Dry-run to preview without writing
|
|
87
|
+
pygenkit generate --dry-run
|
|
88
|
+
|
|
89
|
+
# Overwrite existing files
|
|
90
|
+
pygenkit generate --force
|
|
91
|
+
|
|
92
|
+
# Enable Docker + deploy in config, then generate:
|
|
93
|
+
# [docker]
|
|
94
|
+
# enabled = true
|
|
95
|
+
# base_image = "3.12"
|
|
96
|
+
# port = 8000
|
|
97
|
+
#
|
|
98
|
+
# [deploy]
|
|
99
|
+
# enabled = true
|
|
100
|
+
# fly = true
|
|
101
|
+
# heroku = true
|
|
102
|
+
# railway = true
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Inspect
|
|
106
|
+
|
|
107
|
+
Scans your project and reports:
|
|
108
|
+
|
|
109
|
+
- Project name, version, module
|
|
110
|
+
- Build backend (setuptools, hatchling, poetry, etc.)
|
|
111
|
+
- Python version requirement
|
|
112
|
+
- License type (MIT, Apache, GPL, etc.)
|
|
113
|
+
- Version consistency between `pyproject.toml`, `__init__.py`, `debian/changelog`, and git tags
|
|
114
|
+
- CI/CD workflow detection
|
|
115
|
+
- Debian packaging status
|
|
116
|
+
|
|
117
|
+
## Validate
|
|
118
|
+
|
|
119
|
+
Runs three categories of checks:
|
|
120
|
+
|
|
121
|
+
- **Version**: consistency across `pyproject.toml`, `__init__.py`, `debian/changelog`, git tags
|
|
122
|
+
- **Workflow**: YAML validity, missing metadata, outdated actions (`checkout@v3`), SHA pin warnings, script injection
|
|
123
|
+
- **Security**: missing permissions blocks, hardcoded secrets, PyPI publish without protected environment
|
|
124
|
+
|
|
125
|
+
## Generate
|
|
126
|
+
|
|
127
|
+
Generates files from Jinja2 templates based on `pygenkit.toml`:
|
|
128
|
+
|
|
129
|
+
### GitHub Actions
|
|
130
|
+
|
|
131
|
+
| File | Description |
|
|
132
|
+
|------------------------|-------------------------------------------|
|
|
133
|
+
| `.github/workflows/ci.yml` | Ruff lint, MyPy type-check, Pytest |
|
|
134
|
+
| `.github/workflows/release.yml` | Build wheel, create GitHub Release |
|
|
135
|
+
| `.github/workflows/publish-pypi.yml` | Trusted PyPI publishing |
|
|
136
|
+
| `.github/workflows/publish-launchpad.yml` | dput to Launchpad PPA |
|
|
137
|
+
|
|
138
|
+
### Docker
|
|
139
|
+
|
|
140
|
+
| File | Description |
|
|
141
|
+
|----------------------|------------------------|
|
|
142
|
+
| `Dockerfile` | Multi-stage build |
|
|
143
|
+
| `docker-compose.yml` | Service configuration |
|
|
144
|
+
|
|
145
|
+
### Deploy
|
|
146
|
+
|
|
147
|
+
| File | Platform |
|
|
148
|
+
|-----------------|----------|
|
|
149
|
+
| `fly.toml` | Fly.io |
|
|
150
|
+
| `Procfile` | Heroku |
|
|
151
|
+
| `railway.json` | Railway |
|
|
152
|
+
|
|
153
|
+
## Configuration (`pygenkit.toml`)
|
|
154
|
+
|
|
155
|
+
```toml
|
|
156
|
+
[project]
|
|
157
|
+
name = "my-app"
|
|
158
|
+
version = "0.1.0"
|
|
159
|
+
extras = ""
|
|
160
|
+
|
|
161
|
+
[ci]
|
|
162
|
+
python_versions = ["3.12", "3.13"]
|
|
163
|
+
runner = "ubuntu-latest"
|
|
164
|
+
lint = true
|
|
165
|
+
type_check = true
|
|
166
|
+
|
|
167
|
+
[release]
|
|
168
|
+
branch = "main"
|
|
169
|
+
tag_prefix = "v"
|
|
170
|
+
changelog = "CHANGELOG.md"
|
|
171
|
+
|
|
172
|
+
[pypi]
|
|
173
|
+
enabled = true
|
|
174
|
+
environment = "pypi"
|
|
175
|
+
trusted_publishing = true
|
|
176
|
+
|
|
177
|
+
[debian]
|
|
178
|
+
enabled = true
|
|
179
|
+
email = ""
|
|
180
|
+
name = ""
|
|
181
|
+
owner = ""
|
|
182
|
+
ppa = "tools"
|
|
183
|
+
distributions = ["noble"]
|
|
184
|
+
revision = "1"
|
|
185
|
+
|
|
186
|
+
[github]
|
|
187
|
+
ci = true
|
|
188
|
+
release = true
|
|
189
|
+
publish_pypi = true
|
|
190
|
+
publish_launchpad = true
|
|
191
|
+
|
|
192
|
+
[docker]
|
|
193
|
+
enabled = false
|
|
194
|
+
base_image = "3.12"
|
|
195
|
+
port = 8000
|
|
196
|
+
volumes = []
|
|
197
|
+
|
|
198
|
+
[deploy]
|
|
199
|
+
enabled = false
|
|
200
|
+
fly = true
|
|
201
|
+
heroku = true
|
|
202
|
+
railway = true
|
|
203
|
+
primary_region = "iad"
|
|
204
|
+
port = 8000
|
|
205
|
+
memory = "512mb"
|
|
206
|
+
cpu_kind = "shared"
|
|
207
|
+
cpus = 1
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
## Doctor
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
pygenkit doctor
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
Checks for:
|
|
217
|
+
- Python 3.12+
|
|
218
|
+
- Git
|
|
219
|
+
- GitHub CLI (gh)
|
|
220
|
+
- GPG
|
|
221
|
+
- dput
|
|
222
|
+
- debhelper
|
|
223
|
+
- twine
|
|
224
|
+
- build
|
|
225
|
+
|
|
226
|
+
## Publishing setup
|
|
227
|
+
|
|
228
|
+
PyPI publishing uses Trusted Publishing (OIDC), so it does not require a long-lived API
|
|
229
|
+
token. Configure the `pypi` environment on GitHub and authorize `release.yml` as a
|
|
230
|
+
Trusted Publisher for the `pygenkit` project on PyPI. Set the repository variable
|
|
231
|
+
`PYPI_ENABLED=true` to enable the publish step.
|
|
232
|
+
|
|
233
|
+
Launchpad publishing requires a PPA and an OpenPGP key registered with the Launchpad
|
|
234
|
+
account. Add these secrets to the `launchpad` GitHub environment:
|
|
235
|
+
|
|
236
|
+
- `GPG_PRIVATE_KEY`
|
|
237
|
+
- `GPG_PASSPHRASE`
|
|
238
|
+
- `GPG_KEY_ID`
|
|
239
|
+
|
|
240
|
+
## Architecture
|
|
241
|
+
|
|
242
|
+
```
|
|
243
|
+
src/pygenkit/
|
|
244
|
+
├── cli/ # CLI commands (Typer)
|
|
245
|
+
│ └── commands/ # init, inspect, validate, generate, release-check, doctor
|
|
246
|
+
├── generators/ # GitHub Actions, Docker, Deploy generators
|
|
247
|
+
│ ├── base.py # Base generator with RenderEngine
|
|
248
|
+
│ ├── github_actions.py
|
|
249
|
+
│ ├── docker.py
|
|
250
|
+
│ ├── deploy.py
|
|
251
|
+
│ └── orchestrator.py
|
|
252
|
+
├── inspector/ # Read and analyze existing projects
|
|
253
|
+
│ ├── api.py # Main inspect_project()
|
|
254
|
+
│ ├── debian.py # Debian packaging inspection
|
|
255
|
+
│ ├── detect.py # Module, tests, license, version detection
|
|
256
|
+
│ ├── git.py # Git remote, tags
|
|
257
|
+
│ └── pyproject.py # pyproject.toml parsing
|
|
258
|
+
├── models/ # Data models (dataclasses)
|
|
259
|
+
│ ├── config.py # PyGenKitConfig and sub-configs
|
|
260
|
+
│ └── inspection.py # ProjectInspection and sub-inspections
|
|
261
|
+
├── render/ # Jinja2 rendering engine
|
|
262
|
+
├── templates/ # Jinja2 templates for generation
|
|
263
|
+
│ ├── github/workflows/ # CI, release, PyPI, Launchpad workflows
|
|
264
|
+
│ ├── docker/ # Dockerfile, docker-compose
|
|
265
|
+
│ └── deploy/ # Fly.io, Heroku, Railway configs
|
|
266
|
+
├── utils/ # File utilities, template filters
|
|
267
|
+
└── validators/ # Version, workflow, security validators
|
|
268
|
+
├── api.py
|
|
269
|
+
├── version.py
|
|
270
|
+
├── workflow.py
|
|
271
|
+
└── security.py
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
## Development Workflow
|
|
275
|
+
|
|
276
|
+
PyGenKit itself follows the professional workflow it generates for other projects.
|
|
277
|
+
|
|
278
|
+
```
|
|
279
|
+
feature branch → Pull Request → CI checks → merge to main → tag → release
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
### Step by step
|
|
283
|
+
|
|
284
|
+
```bash
|
|
285
|
+
# 1. Create a feature branch
|
|
286
|
+
git checkout -b feat/my-feature
|
|
287
|
+
|
|
288
|
+
# 2. Code, commit, push
|
|
289
|
+
ruff check src/ tests/
|
|
290
|
+
mypy src/pygenkit/
|
|
291
|
+
pytest
|
|
292
|
+
git add . && git commit -m "feat: description"
|
|
293
|
+
git push -u origin feat/my-feature
|
|
294
|
+
|
|
295
|
+
# 3. Open a Pull Request on GitHub
|
|
296
|
+
# CI runs automatically on PR
|
|
297
|
+
|
|
298
|
+
# 4. After merge, tag a release
|
|
299
|
+
git checkout main
|
|
300
|
+
git pull
|
|
301
|
+
pygenkit release-check # verify readiness
|
|
302
|
+
git tag v0.x.x
|
|
303
|
+
git push origin v0.x.x # triggers Release workflow
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
### Branch naming
|
|
307
|
+
|
|
308
|
+
| Prefix | Purpose |
|
|
309
|
+
|------------|------------------------|
|
|
310
|
+
| `feat/*` | New features |
|
|
311
|
+
| `fix/*` | Bug fixes |
|
|
312
|
+
| `refactor/*` | Code improvements |
|
|
313
|
+
| `docs/*` | Documentation |
|
|
314
|
+
| `ci/*` | CI/CD changes |
|
|
315
|
+
|
|
316
|
+
## Branch Protection
|
|
317
|
+
|
|
318
|
+
The `main` branch **must be protected** in the GitHub repository settings:
|
|
319
|
+
|
|
320
|
+
### Required settings
|
|
321
|
+
|
|
322
|
+
| Setting | Solo | Team |
|
|
323
|
+
|----------------------------------|------|------|
|
|
324
|
+
| Require pull request before merging | Yes | Yes |
|
|
325
|
+
| Require status checks to pass (CI) | Yes | Yes |
|
|
326
|
+
| Block force pushes | Yes | Yes |
|
|
327
|
+
| Restrict deletions | Yes | Yes |
|
|
328
|
+
| Required approvals | 0 | 1 |
|
|
329
|
+
|
|
330
|
+
When working alone, skip approval requirements. When adding maintainers, set **Required approvals: 1**.
|
|
331
|
+
|
|
332
|
+
### How to configure
|
|
333
|
+
|
|
334
|
+
```
|
|
335
|
+
GitHub repo → Settings → Branches → Add branch protection rule
|
|
336
|
+
Branch name pattern: main
|
|
337
|
+
☑ Require a pull request before merging
|
|
338
|
+
☑ Require status checks to pass
|
|
339
|
+
☑ Require CI
|
|
340
|
+
☑ Block force pushes
|
|
341
|
+
☑ Restrict deletions
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
## Requirements
|
|
345
|
+
|
|
346
|
+
- Python 3.12+
|
|
347
|
+
|
|
348
|
+
## License
|
|
349
|
+
|
|
350
|
+
GNU General Public License v3.0 only (`GPL-3.0-only`). See [LICENSE](LICENSE).
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
pygenkit/__init__.py,sha256=DZ8lZdDvfkI5bOMcCPTaBTwO3c8KSQKyntA8WYN0Mqw,48
|
|
2
|
+
pygenkit/cli.py,sha256=l1LgxnGxKqOgGbp4alQHVkvb-ogEOjw6oK-j2tEoBy8,71
|
|
3
|
+
pygenkit/ai/__init__.py,sha256=5ZqxoqhRKeTr50ueuMJjr2ngE8rdlbVVhpRY51zAG74,285
|
|
4
|
+
pygenkit/ai/prompts.py,sha256=wxA6pghwwHfbYLH41QsgQGXesRNHi77W0b7WS2vIIbw,1163
|
|
5
|
+
pygenkit/ai/provider.py,sha256=8drP4gXLjdou6oUM6Ux_BVlHS8lS1ZLakme7BYGYFs4,1847
|
|
6
|
+
pygenkit/ai/review.py,sha256=wBYcDDkXCJKgDBzAJueRTY6LUCxm9dfSWGKZXt-I0gY,1615
|
|
7
|
+
pygenkit/cli/__init__.py,sha256=RP1A70uYZ0t1fz3E5TdjMh00wN3gcIO9rQS9_fd3z-Q,52
|
|
8
|
+
pygenkit/cli/app.py,sha256=aUyR6snsWI1NvYShQmwauyM1wSgC4Vzm9rouH5SYv9M,1174
|
|
9
|
+
pygenkit/cli/commands/__init__.py,sha256=J_NuXcjF2Qmn8-OY6ygMp-IFUi39SdtQNu2HC_9sI_8,666
|
|
10
|
+
pygenkit/cli/commands/build.py,sha256=UJ2PkGeIpn17DB2vmNlPF8sua1XnEVfcyyMMhxHDyUk,1078
|
|
11
|
+
pygenkit/cli/commands/doctor.py,sha256=EE4v7Hzy-121IjTb3nMIDjpkUB2P76MN_FQhm4eYjMg,3546
|
|
12
|
+
pygenkit/cli/commands/generate.py,sha256=c0x8BCIM3fZ-iiLT3zetgOJubHeeflZ_EVuCFmni34M,1749
|
|
13
|
+
pygenkit/cli/commands/health.py,sha256=qmYTk4Yfna3zH7s0Kz0R4idJTgNTUrFFnJEYUP5-GUs,1622
|
|
14
|
+
pygenkit/cli/commands/init.py,sha256=KsNgwYmR9vFKH91eNIRL207hjiMkN0hLG5j_pxPHkaM,807
|
|
15
|
+
pygenkit/cli/commands/inspect.py,sha256=TxooPFSMYa_CWh59qqqDYZIHi_t8mArOYT4V79rv7_s,1752
|
|
16
|
+
pygenkit/cli/commands/new.py,sha256=BLRBCowf3pmbsGiAFfVFXPRd8lh_T8k6407kmbwpawQ,1230
|
|
17
|
+
pygenkit/cli/commands/publish.py,sha256=4mHwTv6MgPCR6GIZz_X-9cyGCL8LC533aQBgHebRkpA,913
|
|
18
|
+
pygenkit/cli/commands/release.py,sha256=ohCJQjqQyDHknhmE24-h6Fah7h0q0MDnTw_uZgCpZQU,1185
|
|
19
|
+
pygenkit/cli/commands/release_check.py,sha256=8WPFeipGg4_-vy1ShGRr3EgLZO6k6JClX_gPgkGU67M,504
|
|
20
|
+
pygenkit/cli/commands/review.py,sha256=CekfUVG2ZgJL8x0CRNpZHxAaPFCidzhyDY4ZPJQ68hk,1803
|
|
21
|
+
pygenkit/cli/commands/validate.py,sha256=8euR_00I8N8HNQBunS06WEFXX7HpmleVZVAAKJmVPVE,854
|
|
22
|
+
pygenkit/config/__init__.py,sha256=4aSz23cmNfmBpgc8dUco3Zv-uQdWH4NCN41iV0TFG2w,80
|
|
23
|
+
pygenkit/generators/__init__.py,sha256=09SxafdOQ_oB7zpDpL304o_Ndx5ZTDJKzJataQ9Mnpk,430
|
|
24
|
+
pygenkit/generators/base.py,sha256=A6yXUi6-FMnxpvTRTEZffXScEJIXyrNGUAnfuici_c0,914
|
|
25
|
+
pygenkit/generators/deploy.py,sha256=FYXDuKKKi_sCqn1g1lcfPIbwent0hOwg_G_hkT9k_5M,1480
|
|
26
|
+
pygenkit/generators/docker.py,sha256=XXGY8s1JTDcU51yDwG4Ip2OTJXhvlolvYnmnP85yYdY,1224
|
|
27
|
+
pygenkit/generators/github_actions.py,sha256=8WVLmOZ4SyzdPuEOCt7aRgIdNpbAoSL1Dgq5lzZRYJo,2227
|
|
28
|
+
pygenkit/generators/orchestrator.py,sha256=s337Pv2zKUikDAuz9GzQiyHzA7TdeQXOuf35vslx3yo,947
|
|
29
|
+
pygenkit/generators/project.py,sha256=dUE0ZpenrBXvD2GH7oJSLaXOE_4q-EBKGvEHwhPx_aA,3690
|
|
30
|
+
pygenkit/health/__init__.py,sha256=kqSFr8-iF0oaoIXNp5hJOSqfP8mCP7CtfhATa1tlr6Y,81
|
|
31
|
+
pygenkit/health/api.py,sha256=KP0x6zzV8XBKFeqZzAe9V1Ek4pQCdD9EhMjNAlfcTu4,1625
|
|
32
|
+
pygenkit/health/checks.py,sha256=E9cYfjzyxXE1Tx8qtde-rjRtMRx_nXSUBqVOWMA77lA,10686
|
|
33
|
+
pygenkit/inspector/__init__.py,sha256=8XVIkpYKv3DgPl1zXnZCQYWvftPFgiL4voJUBFZpUCc,82
|
|
34
|
+
pygenkit/inspector/api.py,sha256=th-AEYfJS8Ew1D05a-xu-uwipLyK9EIlWsLrHnR1Aq0,5177
|
|
35
|
+
pygenkit/inspector/debian.py,sha256=B5RzV3tymmVo48Ik59E88f_uXhrRwhhhZ0_Lz38xOWo,1599
|
|
36
|
+
pygenkit/inspector/detect.py,sha256=5E7-vtffwE7Om2JlQyhjGs3pkQ-oEcsKgAH2fexF2TQ,2659
|
|
37
|
+
pygenkit/inspector/git.py,sha256=IujIpVBJ98CRiBTN6kbCwe6i-QWsAfDIEtkJNJRZo6I,1577
|
|
38
|
+
pygenkit/inspector/pyproject.py,sha256=4TJDGIqahoomZSasjOOlGoiEeioZCVMJLB3yMnId6I4,2287
|
|
39
|
+
pygenkit/models/__init__.py,sha256=zBgZbLd6kmmFSbXVLg2w8JEoHex2LV-0UIEwhJZrdXo,474
|
|
40
|
+
pygenkit/models/config.py,sha256=_SN16Cga2rhVcbL_Br3zKPMo4pQWsN4ENZBsO8O-b-8,7717
|
|
41
|
+
pygenkit/models/health.py,sha256=-H77lA5dPfFCo5leehSFwqOpV03weEwKmnW4-VYPICA,610
|
|
42
|
+
pygenkit/models/inspection.py,sha256=x6d0BaaEukqJloBrsfg5P9dxdZcBcLU0u0f-GUXv8no,1628
|
|
43
|
+
pygenkit/render/__init__.py,sha256=ulBGvecjwD3lvvmIYnV46yiadlhdMn5X3_BRml_dA74,76
|
|
44
|
+
pygenkit/render/engine.py,sha256=sagRApa16oqAfmVpRACaWuvFo6Uf4L9snjLE0L08k9c,1326
|
|
45
|
+
pygenkit/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
46
|
+
pygenkit/templates/deploy/Procfile.j2,sha256=CtWGlnoT2IymqQB0-knaFKEzm9GwB3x6jjUg6MBhL10,24
|
|
47
|
+
pygenkit/templates/deploy/fly.toml.j2,sha256=jFl2vYJ8ypx6IekF4YyD09g-NQ2S2c6AW96_g4B-OHU,289
|
|
48
|
+
pygenkit/templates/deploy/railway.json.j2,sha256=IHiFNqgpODhanLu04aqu-dHP9QTc9E47nPRPSKqdnWg,285
|
|
49
|
+
pygenkit/templates/docker/Dockerfile.j2,sha256=7wjhmOhsR7lsrDH6dUXNiubL7MGCUnzObkoS1Du0Py4,324
|
|
50
|
+
pygenkit/templates/docker/docker-compose.yml.j2,sha256=P4deAYkzsTq9OzfSqh9z2Qj4J1q9fgjaPiv0gTLvCww,303
|
|
51
|
+
pygenkit/templates/github/workflows/ci.yml.j2,sha256=KqvwGf5JCy44v30TqXodq1epaoPid1JigAqsCKU-7Y8,842
|
|
52
|
+
pygenkit/templates/github/workflows/publish-launchpad.yml.j2,sha256=RBqQBgjXqv5gvv7neInlAdN1bbcSdqNctTo99U855Nw,1255
|
|
53
|
+
pygenkit/templates/github/workflows/publish-pypi.yml.j2,sha256=NFGg1w3n2H0Rh69hwrsv735NZD7s_ZjidyNyo-Xre0A,745
|
|
54
|
+
pygenkit/templates/github/workflows/release.yml.j2,sha256=W4vm8kjYJYxL244gBzuGi13fvENrsDQirW0LCHckFgY,578
|
|
55
|
+
pygenkit/templates/project/LICENSE.j2,sha256=4IEg4LUk1Z2LC65KSgNOfcJKm4saXI7EA7IrRjvg8PA,1080
|
|
56
|
+
pygenkit/templates/project/README.md.j2,sha256=oCdedqf7p7Qmh1rKMEtbT7lG8r6P_TqxL3babTH8CeM,217
|
|
57
|
+
pygenkit/templates/project/pyproject.toml.j2,sha256=rCO_35i20My8ZYquDNhyBmYkThRFXJWFDnBtCShaSkI,1058
|
|
58
|
+
pygenkit/templates/project/src/__init__.py.j2,sha256=VyBs1fD545CX03X2sutKVdVZz54C-ZOGEOckUVab_1k,64
|
|
59
|
+
pygenkit/templates/project/src/cli.py.j2,sha256=UelnipaPJKdblrDd4N49Ri2DHkp8Bbrf7i2mQ1RIY9A,101
|
|
60
|
+
pygenkit/templates/project/tests/__init__.py.j2,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
61
|
+
pygenkit/templates/project/tests/test_cli.py.j2,sha256=LspaSmI9hRUe6EupMZhByuBFNQama9pokQZMZvIP9EU,92
|
|
62
|
+
pygenkit/templates/python-cli/CHANGELOG.md.jinja,sha256=WvKMf-ao8oKOXQATuMADGZy0ZJTdDd_FCtpNBWhrIgc,129
|
|
63
|
+
pygenkit/templates/python-cli/LICENSE.jinja,sha256=LVzysoEezAeVncO3qrMiZhtVArVd4XQCpuTk-f5-GNA,11717
|
|
64
|
+
pygenkit/templates/python-cli/Makefile.jinja,sha256=lIJbf76p5IXXWDKNIarcN4KUVCA2aRMzJZ8W84Cim4w,550
|
|
65
|
+
pygenkit/templates/python-cli/README.md.jinja,sha256=NcJ85uRT0B2Hs6BhQuFdihWiSQycVjMUiPSe_Q_ivQg,1078
|
|
66
|
+
pygenkit/templates/python-cli/pygenkit.yaml.jinja,sha256=lgb3fcx7NngXb1unRrj5mnlcHTgGHvNoWDpRY6rQ3tQ,298
|
|
67
|
+
pygenkit/templates/python-cli/pyproject.toml.jinja,sha256=DsuFQOPfHBnQgDAsK_leC15aQ2p2dSxTJRarVFCrWWA,1173
|
|
68
|
+
pygenkit/templates/python-cli/debian/changelog.jinja,sha256=xgQan653Ezfj0FoJr6jLDU1pD6Y1W_xre_gsdbdROkE,228
|
|
69
|
+
pygenkit/templates/python-cli/debian/control.jinja,sha256=fZ29d60FyxGgIDwjVLEkYTYUMtiBmKcZS2e9tTfQuOI,683
|
|
70
|
+
pygenkit/templates/python-cli/debian/copyright.jinja,sha256=d8wBDqT4AGA-mH-Lg_MYVO2g6fYfmktc4fcAb8UsatM,1111
|
|
71
|
+
pygenkit/templates/python-cli/debian/install.jinja,sha256=HvP47uxlMlebrh-m9eDuJbBVwZRzK1E9XUd-q8lujos,54
|
|
72
|
+
pygenkit/templates/python-cli/debian/links.jinja,sha256=2f6mCTrJ8DkwGqFRksQm930vuR5n9YCaJmEUxL63QFw,98
|
|
73
|
+
pygenkit/templates/python-cli/debian/postinst.jinja,sha256=AdDCz_xRCUwzPhQIloMjhQWcW2AuUOsy87jPq_MKCVE,264
|
|
74
|
+
pygenkit/templates/python-cli/debian/prerm.jinja,sha256=VMHw4YtDF9p6JAOnxM-hKMA3nzoWWGQv6FkPrj_e1x0,294
|
|
75
|
+
pygenkit/templates/python-cli/debian/rules.jinja,sha256=ANz4D7HJ3GPPByEgsCbwLXiIz49avd0dti4fMdaepk8,325
|
|
76
|
+
pygenkit/templates/python-cli/debian/{{module_name}}.service.jinja,sha256=hIoJjvs6hpkqRIzuHGV4XGf1Q-ZnkXdyTDoH3qlR6qc,202
|
|
77
|
+
pygenkit/templates/python-cli/debian/source/options.jinja,sha256=DseepreG0cWXYZ--xRL1dRofghibg6pGdnEcw0A-RT8,209
|
|
78
|
+
pygenkit/templates/python-cli/src/{{module_name}}/__init__.py.jinja,sha256=0OiD7v0CT9HkwngzdeLKF3-ce2_y6QJfZ384aKcNH4U,103
|
|
79
|
+
pygenkit/templates/python-cli/src/{{module_name}}/cli.py.jinja,sha256=Iwdr7HkmNoKK0qOHflRl17NDPPqD_SPpU8hNxXz-nuI,602
|
|
80
|
+
pygenkit/templates/python-cli/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
81
|
+
pygenkit/templates/python-cli/tests/test_cli.py.jinja,sha256=ezV4bKm9ziFD0gazWCENx_5aOaLClVdFVk32ZSaq9fg,425
|
|
82
|
+
pygenkit/utils/__init__.py,sha256=hV6-XGsyK94Bt0G-qhkNVVM-bs3SfSFFBM9hZGf5nrI,138
|
|
83
|
+
pygenkit/utils/files.py,sha256=CADfsD1_XMKJ24zcSEuFUikJShF_ff9_2-X6Cuo0dqU,749
|
|
84
|
+
pygenkit/utils/filters.py,sha256=A-iZYXurOcy7T_Q_1VjC2911OSh-RSmjwlvTK7_PnX0,1254
|
|
85
|
+
pygenkit/validators/__init__.py,sha256=pZUOeXf0naLsMk77kPXt_F29UZmxy2dGLYQ8yLd_kSc,111
|
|
86
|
+
pygenkit/validators/api.py,sha256=FwnSgGm40PIs2Z1GBcuLLP-8rZv1MIWjVbLBaYP0iyg,932
|
|
87
|
+
pygenkit/validators/security.py,sha256=AFBlbi2f6rLDfAWO-WxMFM5QySIkV-PQSw9NtFFtLXs,3100
|
|
88
|
+
pygenkit/validators/version.py,sha256=lzweN-y_M2UsChbFp9VpBNOPTLWB9XjHhjyNmcd2SjY,2407
|
|
89
|
+
pygenkit/validators/workflow.py,sha256=a7l9-adShH4vuI_UQdUd0EToAJO0iOgnpdHdD4Igzbs,4203
|
|
90
|
+
pygenkit-0.2.0.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
91
|
+
pygenkit-0.2.0.dist-info/METADATA,sha256=okBdZ1tUEXp8GpsdXvUOB-e3vchunOZvtqBzogtPC7Y,9145
|
|
92
|
+
pygenkit-0.2.0.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
|
|
93
|
+
pygenkit-0.2.0.dist-info/entry_points.txt,sha256=MV0A2EYUeQqMgbohIlFTXRUMAzniJK8eYYR40S5dmyw,46
|
|
94
|
+
pygenkit-0.2.0.dist-info/top_level.txt,sha256=plfVGrWFrx-lECgMtKpfUVvf_E7Bv9_j4ZTzj9Osa-4,9
|
|
95
|
+
pygenkit-0.2.0.dist-info/RECORD,,
|