# Pepperpy Poetry Plugin
A Poetry plugin for shared configuration management across multiple projects in the pepperpy ecosystem.
## Overview
The Pepperpy Poetry Plugin simplifies configuration management across multiple Python projects. It allows you to maintain a single source of truth for common configuration settings, ensuring consistency across your entire project ecosystem.
## Key Features
- **Shared Configuration Management**: Automatically merge shared configurations from `pepperpy.toml` into your project's `pyproject.toml`
- **Template System**: Rich template system with inheritance and variable substitution
- **Environment Variables**: Advanced environment variable management with validation
- **Caching**: Smart caching system for better performance
- **CLI Commands**: Intuitive commands for managing configurations and templates
## Installation
You can install the plugin using any of these methods:
### Using `pipx` (Recommended)
```bash
pipx inject poetry pepperpy-poetry
```
### Using Poetry's plugin manager
```bash
poetry self add pepperpy-poetry
```
### Using pip in Poetry's environment
```bash
$POETRY_HOME/bin/pip install pepperpy-poetry
```
## Available Templates
The plugin comes with several predefined templates:
### Base Template
Basic Python project setup with essential development tools.
### Full Template
Complete Python project setup with:
- Modern Python development tools (Ruff, Black, MyPy)
- Testing setup (Pytest with coverage)
- Documentation (Sphinx)
- CI/CD with semantic release
- Pre-commit hooks
- Automated version management
### FastAPI Template
Complete FastAPI web application setup with:
- FastAPI with Uvicorn
- Pydantic for data validation
- Authentication packages
- API testing tools
### CLI Template
Command-line application setup with:
- Typer for CLI interface
- Rich for beautiful terminal output
- Click testing utilities
### Data Science Template
Data science project setup with:
- NumPy and Pandas
- Scikit-learn
- Matplotlib and Seaborn
- Jupyter notebooks
### Django Template
Django web application setup with:
- Django with common extensions
- Environment management
- Authentication and forms
- Development tools
## Quick Example
1. List available templates:
```bash
poetry pepperpy list-templates
```
2. Initialize a new project with a template:
```bash
poetry pepperpy init full
```
3. Or create a `pepperpy.toml` file manually:
```toml
# Use a predefined template
template = "full"
[tool.poetry]
name = "my-python-package"
description = "My Python Package"
[tool.pepperpy.env]
GH_TOKEN = { required = true, secret = true, description = "GitHub token for releases" }
POETRY_PYPI_TOKEN_PYPI = { required = true, secret = true, description = "PyPI token for publishing" }
```
## Documentation
For detailed documentation, visit [https://felipepimentel.github.io/pepperpy-poetry/](https://felipepimentel.github.io/pepperpy-poetry/)
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
Raw data
{
"_id": null,
"home_page": "https://github.com/felipepimentel/pepperpy-poetry",
"name": "pepperpy-poetry",
"maintainer": "Felipe Pimentel",
"docs_url": null,
"requires_python": "<4.0,>=3.12",
"maintainer_email": "felipe.pimentel@gmail.com",
"keywords": "poetry, plugin, configuration, management, pepperpy",
"author": "Felipe Pimentel",
"author_email": "felipe.pimentel@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/ca/d5/e8f57b7f480c7e6fdbf0f747cb373e703776517de3af89508cbaf0ec7f49/pepperpy_poetry-0.4.1.tar.gz",
"platform": null,
"description": "# Pepperpy Poetry Plugin\n\nA Poetry plugin for shared configuration management across multiple projects in the pepperpy ecosystem.\n\n## Overview\n\nThe Pepperpy Poetry Plugin simplifies configuration management across multiple Python projects. It allows you to maintain a single source of truth for common configuration settings, ensuring consistency across your entire project ecosystem.\n\n## Key Features\n\n- **Shared Configuration Management**: Automatically merge shared configurations from `pepperpy.toml` into your project's `pyproject.toml`\n- **Template System**: Rich template system with inheritance and variable substitution\n- **Environment Variables**: Advanced environment variable management with validation\n- **Caching**: Smart caching system for better performance\n- **CLI Commands**: Intuitive commands for managing configurations and templates\n\n## Installation\n\nYou can install the plugin using any of these methods:\n\n### Using `pipx` (Recommended)\n\n```bash\npipx inject poetry pepperpy-poetry\n```\n\n### Using Poetry's plugin manager\n\n```bash\npoetry self add pepperpy-poetry\n```\n\n### Using pip in Poetry's environment\n\n```bash\n$POETRY_HOME/bin/pip install pepperpy-poetry\n```\n\n## Available Templates\n\nThe plugin comes with several predefined templates:\n\n### Base Template\nBasic Python project setup with essential development tools.\n\n### Full Template\nComplete Python project setup with:\n- Modern Python development tools (Ruff, Black, MyPy)\n- Testing setup (Pytest with coverage)\n- Documentation (Sphinx)\n- CI/CD with semantic release\n- Pre-commit hooks\n- Automated version management\n\n### FastAPI Template\nComplete FastAPI web application setup with:\n- FastAPI with Uvicorn\n- Pydantic for data validation\n- Authentication packages\n- API testing tools\n\n### CLI Template\nCommand-line application setup with:\n- Typer for CLI interface\n- Rich for beautiful terminal output\n- Click testing utilities\n\n### Data Science Template\nData science project setup with:\n- NumPy and Pandas\n- Scikit-learn\n- Matplotlib and Seaborn\n- Jupyter notebooks\n\n### Django Template\nDjango web application setup with:\n- Django with common extensions\n- Environment management\n- Authentication and forms\n- Development tools\n\n## Quick Example\n\n1. List available templates:\n```bash\npoetry pepperpy list-templates\n```\n\n2. Initialize a new project with a template:\n```bash\npoetry pepperpy init full\n```\n\n3. Or create a `pepperpy.toml` file manually:\n```toml\n# Use a predefined template\ntemplate = \"full\"\n\n[tool.poetry]\nname = \"my-python-package\"\ndescription = \"My Python Package\"\n\n[tool.pepperpy.env]\nGH_TOKEN = { required = true, secret = true, description = \"GitHub token for releases\" }\nPOETRY_PYPI_TOKEN_PYPI = { required = true, secret = true, description = \"PyPI token for publishing\" }\n```\n\n## Documentation\n\nFor detailed documentation, visit [https://felipepimentel.github.io/pepperpy-poetry/](https://felipepimentel.github.io/pepperpy-poetry/)\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A Poetry plugin for shared configuration management across multiple projects in the pepperpy ecosystem",
"version": "0.4.1",
"project_urls": {
"Documentation": "https://felipepimentel.github.io/pepperpy-poetry",
"Homepage": "https://github.com/felipepimentel/pepperpy-poetry",
"Repository": "https://github.com/felipepimentel/pepperpy-poetry"
},
"split_keywords": [
"poetry",
" plugin",
" configuration",
" management",
" pepperpy"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "384f63915c6a49e42cad332e58014373decaa476e5411bf3d98ff01f0cf6b179",
"md5": "9de276e43fca65a73e360eed60467786",
"sha256": "d376b74df89a01ddfebbdbbd2122ca7b9eda78dd919297d682b3fd5d7db11dc7"
},
"downloads": -1,
"filename": "pepperpy_poetry-0.4.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "9de276e43fca65a73e360eed60467786",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.12",
"size": 16246,
"upload_time": "2025-01-15T23:36:00",
"upload_time_iso_8601": "2025-01-15T23:36:00.683338Z",
"url": "https://files.pythonhosted.org/packages/38/4f/63915c6a49e42cad332e58014373decaa476e5411bf3d98ff01f0cf6b179/pepperpy_poetry-0.4.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cad5e8f57b7f480c7e6fdbf0f747cb373e703776517de3af89508cbaf0ec7f49",
"md5": "be7ce01c27872b77d3356e2f4441e5c1",
"sha256": "c1d62e6c63bdb445dd77b105a21b488f1555edcce38b2407cb9c43f351b60aed"
},
"downloads": -1,
"filename": "pepperpy_poetry-0.4.1.tar.gz",
"has_sig": false,
"md5_digest": "be7ce01c27872b77d3356e2f4441e5c1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.12",
"size": 15221,
"upload_time": "2025-01-15T23:36:04",
"upload_time_iso_8601": "2025-01-15T23:36:04.885679Z",
"url": "https://files.pythonhosted.org/packages/ca/d5/e8f57b7f480c7e6fdbf0f747cb373e703776517de3af89508cbaf0ec7f49/pepperpy_poetry-0.4.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-15 23:36:04",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "felipepimentel",
"github_project": "pepperpy-poetry",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pepperpy-poetry"
}