Metadata-Version: 2.5
Name: pydevforge
Version: 0.5.0
Summary: Dynamic Python project bootstrap and development environment automation
Project-URL: Homepage, https://github.com/jooydebnath/devfroge
Project-URL: Documentation, https://github.com/jooydebnath/devfroge#readme
Project-URL: Repository, https://github.com/jooydebnath/devfroge
Project-URL: Issues, https://github.com/jooydebnath/devfroge/issues
Project-URL: Changelog, https://github.com/jooydebnath/devfroge/blob/main/CHANGELOG.md
Author: Joy Debnath
Maintainer: Joy Debnath
License: MIT
License-File: LICENSE
Keywords: bootstrap,devops,docker,project-generator,scaffolding
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Code Generators
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: jinja2>=3.1
Requires-Dist: packaging>=24.0
Requires-Dist: pydantic>=2.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: rich>=13.0
Requires-Dist: typer>=0.12
Provides-Extra: dev
Requires-Dist: build>=1.0; extra == 'dev'
Requires-Dist: pre-commit>=3.0; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.4; extra == 'dev'
Provides-Extra: test
Requires-Dist: pytest>=8.0; extra == 'test'
Description-Content-Type: text/markdown

# DevForge — Dynamic Python Project Bootstrap & Automation

```bash
pip install pydevforge
devforge
```

DevForge is a **provider-based, composable project generator**. No fixed
templates, no giant `if/elif` chains — every technology is a provider that
contributes packages, environment, files, Docker services and wizard questions.

> Note: the PyPI distribution is `pydevforge`, the import package stays
> `devforge` (`from devforge import ProjectBuilder`) and the CLI stays `devforge`.

## Quick start

```bash
pip install pydevforge
devforge --help
devforge create --help

# Non-interactive example
devforge create --name my-api --framework fastapi --database postgresql \
  --docker --cicd github-actions --output ./out --overwrite

# Preview without writing
devforge create --name demo --framework django --database postgresql --dry-run

# Programmatic API
python -c "
from devforge import ProjectBuilder
b = ProjectBuilder()
b.configure(name='my-api', framework='fastapi', database='postgresql', docker=True)
print(b.dry_run())
b.generate('./out', overwrite=True)
"
```

## Architecture

```
Core Engine -> Provider Registry -> Providers -> Generator -> Ready Project
```

See `docs/` for installation, wizard, providers, plugin development, manifest,
commands and troubleshooting.

## Plugin development

```python
from devforge import Provider

class MongoProvider(Provider):
    name = "mongodb"
    display_name = "MongoDB"
    category = "database"
    packages = ["pymongo>=4.0"]
```

Register via entry point group `devforge.providers` — no core edits needed.

## License

MIT — see LICENSE.
