{"id":16168575,"url":"https://github.com/thatxliner/pyt2","last_synced_at":"2025-03-18T23:30:59.670Z","repository":{"id":41906882,"uuid":"365875393","full_name":"ThatXliner/pyt2","owner":"ThatXliner","description":"My second attempt at making a Python template. Formerly used CookieCutter; now uses Copier","archived":false,"fork":false,"pushed_at":"2025-01-05T16:21:31.000Z","size":904,"stargazers_count":13,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-17T01:01:40.713Z","etag":null,"topics":["boilerplate","boilerplate-template","cookiecutter","cookiecutter-template","copier","copier-template","python","python-template","python3","template"],"latest_commit_sha":null,"homepage":"","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ThatXliner.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2021-05-10T00:25:05.000Z","updated_at":"2025-01-05T16:21:35.000Z","dependencies_parsed_at":"2023-02-18T04:01:15.340Z","dependency_job_id":"3d7d4e3b-3096-472f-bac5-9c97702dfa04","html_url":"https://github.com/ThatXliner/pyt2","commit_stats":null,"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThatXliner%2Fpyt2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThatXliner%2Fpyt2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThatXliner%2Fpyt2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThatXliner%2Fpyt2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ThatXliner","download_url":"https://codeload.github.com/ThatXliner/pyt2/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244325229,"owners_count":20435071,"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","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":["boilerplate","boilerplate-template","cookiecutter","cookiecutter-template","copier","copier-template","python","python-template","python3","template"],"created_at":"2024-10-10T03:12:16.143Z","updated_at":"2025-03-18T23:30:59.663Z","avatar_url":"https://github.com/ThatXliner.png","language":"Jinja","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e **Note**: If you're looking for the old CookieCutter template, see [this branch](https://github.com/ThatXliner/pyt2/tree/cookiecutter)\n\n# Pyt2\n\n![GitHub tag (latest SemVer release)](https://img.shields.io/github/v/tag/ThatXliner/pyt2?logo=Github\u0026label=version)\n\nMy [second attempt](https://github.com/ThatXliner/Pytemplate) at making a Python template.\n\n## Why?\n\nI've seen [many other projects like this](https://github.com/search?q=python+cookiecutter) but I've never seen any of them follow the pattern I want. I highly recommend you \u003ckbd\u003e[Fork This Project](https://github.com/ThatXliner/pyt2/fork)\u003c/kbd\u003e for your own needs because many of the defaults (e.g. README structure) are quite opinionated.\n\n## :sparkles: Features\n\n- :open_file_folder: Package management\n  - :musical_note: Uses [Poetry](https://python-poetry.org) to manage the project\n  - :notes: Has [Poe](https://github.com/nat-n/poethepoet) tasks\n- :art: Linters (checked via GitHub Actions :octocat:)\n  - :black_circle: [Black](https://github.com/psf/black)\n  - :snake: [MyPy](https://github.com/python/mypy)\n  - :zap: [Ruff](https://beta.ruff.rs/docs/) (which includes [`isort`](https://pycqa.github.io/isort/) and [Pylint](https://pylint.readthedocs.io/en/latest/) and [many, many others...](https://beta.ruff.rs/docs/rules/))\n  - :warning: Uses [`.pre-commit-config.yaml`](https://pre-commit.com/)\n  - :mouse: Uses [`.editorconfig`](https://editorconfig.org/)\n- \u0026#x1F9EA; [Hypothesis](https://hypothesis.works), [codecov](https://about.codecov.io/), and [Pytest](https://pytest.org) for testing\n- :octocat: Uses [GitHub Actions](https://github.com/features/actions) for CI\n  - :white_check_mark: [Cached workflows](https://github.com/ThatXliner/pyt2/blob/9f7b3d982a023ec2bc475a26752f909a9a95a2ba/%7B%7B%20cookiecutter.pypi_name%20%7D%7D/.github/workflows/ci.yml#L24-L43)\n  - :snake: Tests for **Python 3.8+** on **:penguin: Linux, :apple: Mac, and :checkered_flag: Windows**.\n  - :bookmark: [Automatically generate and upload distribution files on tagged GitHub releases](https://github.com/ThatXliner/pyt2/blob/master/%7B%7B%20cookiecutter.pypi_name%20%7D%7D/.github/workflows/release.yml.jinja)\n  - :cheese: Publish to PyPi with [Trusted Publishers](https://docs.pypi.org/trusted-publishers/)\n  - (Optional) :smile_cat: Documentation via [Sphinx](https://www.sphinx-doc.org/en/master/)\n- :printer: Template usage features\n  - :recycle: Pyt2 uses [Copier](https://copier.readthedocs.io/en/stable/), therefore Pyt2 has [template syncing features](https://copier.readthedocs.io/en/stable/updating/)\n  - :lock: Pre-computed lockfile (`poetry.lock`) with up-to-date dependencies via CI ([![Autoupdate](https://github.com/ThatXliner/pyt2/actions/workflows/autoupdate.yml/badge.svg)](https://github.com/ThatXliner/pyt2/actions/workflows/autoupdate.yml))\n  - :bookmark: Has a `test_version.py` which will test if the `__version__` metadata variable in the package is equal to the one in the `pyproject.toml`\n  - (Optional) :clapper: `__main__.py` and `[tool.poetry.scripts]` entry point generation (for applications)\n\n# Usage\n\nFirst, install [Copier](https://copier.readthedocs.io/en/stable/) (preferably using [pipx](https://pypa.github.io/pipx/)):\n\n```bash\npipx install copier\n```\n\nNow you can run this command to create a new folder in the current directory that contains the scaffolded project:\n\n```bash\ncopier copy gh:ThatXliner/pyt2 .\n```\n\nOr for the bleeding-edge version on the `master` branch:\n\n```bash\ncopier copy gh:ThatXliner/pyt2 . --vcs-ref master\n```\n\n## Updating a project\n\nIf you have already made a project using this and this template gets a new release, you may update your project by running\n\n```bash\ncopier update\n```\n\nin your project.\n\n# FAQ\n\n## About the name...\n\nPronunciation: _pit-too_\nWhy this is the name: **Py**thon **T**emplate **2**\n\n## Why is the default templated license GPL?\n\n[Because it's usually better](https://thatxliner.github.io/blog/posts/why-i-use-gnu-gpl-v3/).\n\nBut you can fork this and modify the default license in the template anyways. _This template_, however, is released to the **Public Domain**.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthatxliner%2Fpyt2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthatxliner%2Fpyt2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthatxliner%2Fpyt2/lists"}