{"id":42301868,"url":"https://github.com/lukin0110/poetry-copier","last_synced_at":"2026-01-27T10:37:36.215Z","repository":{"id":209525261,"uuid":"724307075","full_name":"lukin0110/poetry-copier","owner":"lukin0110","description":"A copier template for scaffolding Python packages and apps (FastAPI and Gradio) using Poetry as package manager","archived":false,"fork":false,"pushed_at":"2024-12-27T20:43:33.000Z","size":278,"stargazers_count":14,"open_issues_count":6,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-10-13T09:35:00.263Z","etag":null,"topics":["copier-template","docker","fastapi-template","gradio","poetry","python","python-template","scaffolding"],"latest_commit_sha":null,"homepage":"","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lukin0110.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"lukin0110"}},"created_at":"2023-11-27T20:19:39.000Z","updated_at":"2025-07-25T11:59:37.000Z","dependencies_parsed_at":"2024-03-05T21:26:36.406Z","dependency_job_id":"63a4093a-5756-40d8-8fd7-d8f2438d91a4","html_url":"https://github.com/lukin0110/poetry-copier","commit_stats":null,"previous_names":["lukin0110/poetry-copier"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/lukin0110/poetry-copier","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukin0110%2Fpoetry-copier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukin0110%2Fpoetry-copier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukin0110%2Fpoetry-copier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukin0110%2Fpoetry-copier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lukin0110","download_url":"https://codeload.github.com/lukin0110/poetry-copier/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukin0110%2Fpoetry-copier/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28812224,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T07:41:26.337Z","status":"ssl_error","status_checked_at":"2026-01-27T07:41:08.776Z","response_time":168,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["copier-template","docker","fastapi-template","gradio","poetry","python","python-template","scaffolding"],"created_at":"2026-01-27T10:37:35.543Z","updated_at":"2026-01-27T10:37:36.210Z","avatar_url":"https://github.com/lukin0110.png","language":"Jinja","funding_links":["https://github.com/sponsors/lukin0110"],"categories":[],"sub_categories":[],"readme":"[![License: GNU Affero General Public License v3.0](https://img.shields.io/static/v1?label=license\u0026message=GNU%20AFFERO\u0026color=blue)](https://github.com/lukin0110/poetry-copier/blob/main/LICENSE) ![CI](https://github.com/lukin0110/poetry-copier/actions/workflows/test.yml/badge.svg?branch=main) [![GitHub Repo stars](https://img.shields.io/github/stars/lukin0110/poetry-copier)\n](https://github.com/lukin0110/poetry-copier/stargazers)\n\n# Poetry Copier\n\nA [copier](https://copier.readthedocs.io/en/stable/) template for scaffolding Python packages and apps (FastAPI and Gradio) using [Poetry](https://python-poetry.org/) as package \nmanager and [Development Containers](https://containers.dev/) as reproducible development environment.\n\nThis template is a loose port of the [Radix Poetry Cookiecutter](https://github.com/radix-ai/poetry-cookiecutter) and comes with the same [LICENSE](LICENSE).\n\n## 💻 Demo\n\nCheck out the following demos for examples of scaffolded projects using this template:\n\n- FastAPI App with GitHub Actions: [poetry-copier-fastapi-demo](https://github.com/lukin0110/poetry-copier-fastapi-demo)\n- Python Package with GitHub Actions: [poetry-copier-package-demo](https://github.com/lukin0110/poetry-copier-package-demo)\n- FastAPI App with GitLab CI/CD: [poetry-copier-fastapi-demo-gitlab](https://gitlab.com/lukin0110/poetry-copier-fastapi-demo-gitlab)\n- Python Package GitLab CI/CD: [poetry-copier-package-demo-gitlab](https://gitlab.com/lukin0110/poetry-copier-package-demo-gitlab)\n\n## 🎉 Features\n\n- 🐳 Reproducible [Docker](https://www.docker.com/) based development environments with [Docker Compose](https://docs.docker.com/compose/) and [Development Containers](https://containers.dev/)\n- 🤝 Integrated support for [VSCode](https://code.visualstudio.com/) with [VSCode Dev Containers](https://code.visualstudio.com/docs/devcontainers/containers) and [GitHub Codespaces](https://github.com/features/codespaces)\n- 🐍 Scaffold a Python package or a [FastAPI](https://fastapi.tiangolo.com/) app with [Pydantic V2](https://docs.pydantic.dev/2.5/), [Django](https://www.djangoproject.com/) app, [Streamlit](https://streamlit.io/) app or [Gradio](https://www.gradio.app/) app to demo Machine Learning models\n- 📦 Dependency management with [Poetry](https://python-poetry.org/)\n- 🏃 Task running with [Poe the Poet](https://poethepoet.natn.io/index.html)\n- ✍️ Code formatting with [Ruff](https://docs.astral.sh/ruff/)\n- ✅ Code linting with [Pre-commit](https://pre-commit.com/), [Mypy](), and [Ruff](https://docs.astral.sh/ruff/)\n- 🧪 Test coverage with [Coverage.py](https://coverage.readthedocs.io/en/7.3.2/) and [Pytest](https://docs.pytest.org/en/7.4.x/)\n- ♻️ Continuous integration with [GitHub Actions](https://docs.github.com/en/actions) or [GitLab CI/CD](https://docs.gitlab.com/ee/ci/)\n- 🧰 Dependency updates with [Dependabot](https://docs.github.com/en/code-security/dependabot/dependabot-version-updates) (only with GitHub Actions)\n- 🚧 Interactive scaffolding and updates with [Copier](https://copier.readthedocs.io/en/stable/)\n\n## 🚀 Using\n\n1. Install the latest [copier](https://copier.readthedocs.io/en/stable/#installation) in your [Python environment](https://github.com/pyenv/pyenv) _(please use python\u003e=3.8)_:\n    ```bash\n    pip install \"copier\u003e=9.2.0\"\n    ```\n2. Create a new repository and clone it locally.\n3. Run copier in your cloned directory:\n    ```bash\n    copier copy --vcs-ref=v0.4.3 git@github.com:lukin0110/poetry-copier.git .\n    ```\n\n### Updating a project\n\n```bash\ncopier update --vcs-ref=HEAD --defaults\n```\nMore information on how to update a project and resolve conflicts can be found in the [Copier documentation](https://copier.readthedocs.io/en/stable/updating/).   \n\n## 💭 Rationale\nThis template aims to provide a minimal, but fully functional, project structure for any python project. Focus on what matters: **coding!**  \n\nSetting up a project can be tedious and requires a lot of \"plumbing\" to get `CI/CD` right, to get `pyproject.toml` right, to get the `Dockerfile` right, etc.\n\nThe use of [Docker](https://www.docker.com/) in conjunction with [Development Containers](https://containers.dev/) are key in this template to provide a smooth development experience. It's possible to develop without a *Development Container* and use [Poetry](https://python-poetry.org/) with [virtual environments](https://docs.python.org/3/library/venv.html) straight away, however this template is optimized to provide a working development environment with development containers.\n\n\u003e [!Note]\n\u003e\n\u003e This template is not a good fit if you don't want to work with *Docker* and/or *Development Containers*.\n\n## 🎯 Goals\n\n- Reduce project setup\n- Provide [dev/prod parity](https://12factor.net/dev-prod-parity)\n- [IDE](https://en.wikipedia.org/wiki/Integrated_development_environment) idependent. However, with a strong focus on [VSCode](https://code.visualstudio.com/) since it integrates nicely with *GitHub*, *Development Containers* and *GitHub Copilot*\n- Provide a minimal workable setup\n- Don't enforce application or package architecture\n- Include the *usual suspects* of every project: CI/CD, linting, testing, package manager, development container, etc\n\n---\n\n👷🏼 **Troubleshooting**: [docs/troubleshooting.md](https://github.com/lukin0110/poetry-copier/blob/main/docs/troubleshooting.md)\n\n🎨 **Technical design**: [docs/design.md](https://github.com/lukin0110/poetry-copier/blob/main/docs/design.md)\n\n🛠️ [Open an issue](https://github.com/lukin0110/poetry-copier/issues/new) if you have any questions or suggestions\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukin0110%2Fpoetry-copier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flukin0110%2Fpoetry-copier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukin0110%2Fpoetry-copier/lists"}