{"id":19352061,"url":"https://github.com/twsl/python-project-template","last_synced_at":"2026-03-11T11:16:51.453Z","repository":{"id":234166583,"uuid":"788360411","full_name":"twsl/python-project-template","owner":"twsl","description":"A generic python project template based on copier for my data science focused projects.","archived":false,"fork":false,"pushed_at":"2025-09-05T19:56:18.000Z","size":569,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-05T21:30:01.038Z","etag":null,"topics":["copier","copier-template","data-science","python","template"],"latest_commit_sha":null,"homepage":"","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/twsl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-04-18T09:07:31.000Z","updated_at":"2025-09-05T19:56:21.000Z","dependencies_parsed_at":"2024-11-10T04:38:06.419Z","dependency_job_id":"43dc2231-b959-430e-90f7-d778fd87247e","html_url":"https://github.com/twsl/python-project-template","commit_stats":null,"previous_names":["twsl/python-project-template"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/twsl/python-project-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twsl%2Fpython-project-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twsl%2Fpython-project-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twsl%2Fpython-project-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twsl%2Fpython-project-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/twsl","download_url":"https://codeload.github.com/twsl/python-project-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twsl%2Fpython-project-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000701,"owners_count":26082805,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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","copier-template","data-science","python","template"],"created_at":"2024-11-10T04:38:00.719Z","updated_at":"2026-03-11T11:16:51.423Z","avatar_url":"https://github.com/twsl.png","language":"Jinja","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Python Project Template\n\n[![Copier](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/copier-org/copier/master/img/badge/badge-grayscale-border.json)](https://github.com/copier-org/copier)\n[![Docs with MkDocs](https://img.shields.io/badge/MkDocs-docs?style=flat\u0026logo=materialformkdocs\u0026logoColor=white\u0026color=%23526CFE)](https://squidfunk.github.io/mkdocs-material/)\n[![linting: ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n[![security: bandit](https://img.shields.io/badge/security-bandit-yellow.svg)](https://github.com/PyCQA/bandit)\n[![Semantic Versions](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--versions-e10079.svg)](https://github.com/twsl/python-project-template/releases)\n[![License](https://img.shields.io/badge/license-MIT-blue)](LICENSE)\n\nA generic python project template based on [`copier`](https://copier.readthedocs.io/en/stable/) for my data science focused projects.\n\n- Package Manager: [![uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv) or [![Poetry](https://img.shields.io/endpoint?url=https://python-poetry.org/badge/v0.json)](https://python-poetry.org/)\n- pre-commit: [![prek](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/j178/prek/master/docs/assets/badge-v0.json)](https://github.com/j178/prek) or [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)\n- Type checker: [![ty](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ty/main/assets/badge/v0.json)](https://github.com/astral-sh/ty) or [![Checked with pyright](https://microsoft.github.io/pyright/img/pyright_badge.svg)](https://microsoft.github.io/pyright/)\n\n## TL;DR\n\n```bash\npip install copier\n```\n\n```bash\ncopier copy --trust --vcs-ref=HEAD git+https://github.com/twsl/python-project-template /path/to/destination\n```\n\n## Features\n\n### Development features\n\n- Supports `Python 3.10` and [higher](https://devguide.python.org/versions/).\n- [`uv`](https://github.com/astral-sh/uv) or [`Poetry`](https://python-poetry.org/) as a dependencies manager. See configuration in `pyproject.toml`.\n- Automatic codestyle with [`ruff`](https://github.com/astral-sh/ruff).\n- Ready-to-use [`pre-commit`](https://pre-commit.com/) hooks with code-formatting. Execute with [`prek`](https://github.com/j178/prek) or [`pre-commit`](https://github.com/pre-commit/pre-commit)\n- Type checks with [`ty`](https://github.com/astral-sh/ty) or [`pyright`](https://github.com/microsoft/pyright).\n- Security checks with [`bandit`](https://github.com/PyCQA/bandit).\n- Testing with [`pytest`](https://docs.pytest.org/en/latest/).\n- Ready-to-use `.editorconfig` and `.gitignore`.\n- Ready-to-use [`Devcontainer`](https://containers.dev/).\n- Find dead code with [`vulture`](https://github.com/jendrikseipp/vulture).\n- Avoid credential leaks with [`gitleaks`](https://github.com/gitleaks/gitleaks).\n\n### Deployment features\n\n- `GitHub` integration: Ready-to-use **Pull Requests templates** and several **Issue templates**\n- `Github Actions` with predefined workflows.\n- Everything is already set up for security checks, codestyle checks, code formatting, testing, linting, docker builds\n- Always up-to-date dependencies with [`@dependabot`](https://dependabot.com/).\n- Automatic release notes with [`Release Drafter`](https://github.com/marketplace/actions/release-drafter).\n- Documentation with [`MkDocs`](https://www.mkdocs.org/).\n\n### Open source community features\n\n- Files such as: `LICENSE`, `CONTRIBUTING.md`, `CODE_OF_CONDUCT.md`, and `SECURITY.md` are generated automatically.\n- [Semantic Versions](https://semver.org/) specification with [`Release Drafter`](https://github.com/marketplace/actions/release-drafter).\n\n## How to use it\n\n### Installation\n\nTo begin using the template consider updating [`copier`](https://copier.readthedocs.io/en/stable/):\n\n```bash\npip install --upgrade copier\n```\n\nThen, you can copy the template to your destination folder:\n\n```bash\ncopier copy --trust git+https://github.com/twsl/python-project-template path/to/destination  --vcs-ref=HEAD\n```\n\n### Update\n\nYou can update the template in your destination folder with:\n\n```bash\ncopier update --trust -A --vcs-ref=HEAD\n```\n\n### Development\n\nThe devcontainer is already set up for you, just open the project in VSCode and you will be prompted to open the project in the devcontainer.\n\nTo test the project you can run:\n\n```bash\ncopier copy ./ ./dist --data-file \"./.github/assets/.copier-answers-uv.yml\" -f --vcs-ref=HEAD\n```\n\n```bash\ncopier copy ./ ./dist --data-file \"./.github/assets/.copier-answers-poetry.yml\" -f --vcs-ref=HEAD\n```\n\n### Variables\n\nThe template uses the following variables to customize the project:\n\n| **Parameter**                      | **Default value**                                |\n| ---------------------------------- | ------------------------------------------------ |\n| `custom_install`                   | `customized`                                     |\n| `project_name`                     | `example_project`                                |\n| `project_description`              | ``                                               |\n| `repository_provider`              | `github.com`                                     |\n| `ghec`                             | `false`                                          |\n| `ghes`                             | `false`                                          |\n| `primary_branch`                   | `main`                                           |\n| `author_username`                  | ``                                               |\n| `author_email`                     | `{{ author_username }}@users.noreply.github.com` |\n| `repository_provider`              | `github.com`                                     |\n| `repository_namespace`             | `{{ author_username }}`                          |\n| `repository_name`                  | `{{ project_name }}`                             |\n| `copyright_holder`                 | `{{ author_username }}`                          |\n| `copyright_holder_email`           | `{{ author_email }}`                             |\n| `copyright_year`                   | `2026`                                           |\n| `copyright_license`                | `MIT`                                            |\n| `python_version`                   | `3.12`                                           |\n| `python_package_distribution_name` | `{{ project_name }}`                             |\n| `python_package_import_name`       | `{{ project_name }}`                             |\n| `python_package_command_line_name` | `{{ project_name }}`                             |\n| `line_ending`                      | `lf`                                             |\n| `package_manager`                  | `uv`                                             |\n| `type_checker`                     | `ty`                                             |\n| `use_precommit`                    | `true`                                           |\n| `precommit_tool`                   | `prek`                                           |\n| `include_docs`                     | `true`                                           |\n| `include_notebooks`                | `true`                                           |\n| `include_databricks`               | `false`                                          |\n| `github_runner_python_version`     | `[3.12]`                                         |\n| `github_runner`                    | `ubuntu-latest`                                  |\n| `github_runner_ghec`               | `ubuntu-2core-amd64`                             |\n| `github_runner_clean`              | `true`                                           |\n| `github_rate_limit`                | `false`                                          |\n| `include_sample_code`              | `false`                                          |\n| `self_signed`                      | `false`                                          |\n| `copier_auto_update`               | `false`                                          |\n\nAll input values will be saved in the `.copier-answers.yml`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwsl%2Fpython-project-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftwsl%2Fpython-project-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwsl%2Fpython-project-template/lists"}