{"id":16421460,"url":"https://github.com/imankulov/cookiecutter-python-project","last_synced_at":"2026-02-01T04:33:35.022Z","repository":{"id":66814461,"uuid":"485339336","full_name":"imankulov/cookiecutter-python-project","owner":"imankulov","description":"Use this cookiecutter template 🍪 to start a new Python or Django project.","archived":false,"fork":false,"pushed_at":"2024-09-22T08:58:23.000Z","size":67,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-23T22:35:29.299Z","etag":null,"topics":["cookiecutter","django","python","python-project"],"latest_commit_sha":null,"homepage":"","language":"Python","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/imankulov.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2022-04-25T11:17:07.000Z","updated_at":"2025-01-20T01:35:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"893e24a3-3fc0-4769-b16a-94d9b931c041","html_url":"https://github.com/imankulov/cookiecutter-python-project","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/imankulov/cookiecutter-python-project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imankulov%2Fcookiecutter-python-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imankulov%2Fcookiecutter-python-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imankulov%2Fcookiecutter-python-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imankulov%2Fcookiecutter-python-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/imankulov","download_url":"https://codeload.github.com/imankulov/cookiecutter-python-project/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imankulov%2Fcookiecutter-python-project/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28967968,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T03:46:10.227Z","status":"ssl_error","status_checked_at":"2026-02-01T03:46:01.693Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["cookiecutter","django","python","python-project"],"created_at":"2024-10-11T07:33:11.262Z","updated_at":"2026-02-01T04:33:35.009Z","avatar_url":"https://github.com/imankulov.png","language":"Python","readme":"# Starter Template for Python projects\n\nUse this cookiecutter template 🍪 to start every new Python project.\n\n## System Dependencies\n\n- Git\n- Python 3.12\n- [Poetry](https://python-poetry.org/docs/#installation) 1.6.x\n- [Pre-commit hooks](https://pre-commit.com/)\n\n## Getting Started\n\nCreate a new Python project\n\n```\ncookiecutter gh:imankulov/cookiecutter-python-project\n```\n\nFor Windows, you might need to run `python -m cookiecutter` as the command might not work even though it's correctly configured on the PATH.\n\n## What's inside\n\nThe template covers your back with the following elements:\n\n- README.md with a pre-defined structure.\n- CHANGELOG.md file with an initial message.\n- Stub project template.\n- Test directory with a sample test file.\n- GitHub workflow configuration to run pytest automatically.\n- Pre-configured mypy and ruff\n- A set of pre-commit hooks.\n- pyproject.toml for Poetry.\n\n## Django flavor\n\nA branch [django](https://github.com/imankulov/cookiecutter-python-project/tree/django) contains an opinionated configuration for starting up a new Django project. The setup includes:\n\n- Dependencies: django, django-environ, psycopg2-binary, sentry-sdk\n- Dev dependencies: pytest-django\n- Sample environment file: env.example\n- A boilerplate project template. The settings.py file reads the environment from the .env file.\n\nIf you want to start a new Django project, switch to a Django branch before starting the cookiecutter.\n\n```\ngit clone https://github.com/imankulov/cookiecutter-python-project.git\ngit checkout django\ncookiecutter cookiecutter-python-project/\n```\n\n## How to use it\n\nBefore creating a project:\n\n- Install [Poetry](https://python-poetry.org/docs/#installation).\n- Install [pre-commit](https://pre-commit.com/).\n- Choose a project name. Likely, in the format `foo-bar` and create a GitHub\n  repository for it. The root package of your project will have a default\n  name `foo_bar`. Make sure that you made the repository private if you plan to create\n  a private (non-open-source) project.\n- Choose the license. For public projects, use MIT. For private projects, use \"Proprietary.\"\n\nThe project generation runs these steps:\n\n- Creates a new project from the template.\n- Initializes a GitHub repository.\n- Installs pre-commit hooks and updates all hooks to their latest versions.\n- Create an initial commit.\n\nAfter creating a project:\n\n- Initialize the virtual environment and install all dependencies with `poetry install`.\n- Deploy changes to GitHub.\n- For Windows, you might need to change your access token to GitHub. See information [here](https://github.com/gitextensions/gitextensions/issues/4916#issuecomment-557509451)\n\nOther hints:\n\n- Use [How to Write Good Documentation](https://www.sohamkamani.com/blog/how-to-write-good-documentation/)\n  to fill in our README with the content.\n- Use [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) guideline for your\n  changelog entries.\n\n## Tests with GitHub actions\n\nA file `.github/workflows/tests.yml` is responsible for running tests on GitHub and\nupload coverage results to codecov.io.\n\nTo make it work with codecov.\n\n- Go to https://app.codecov.io/ and find a repository upload token for your project.\n- Go to your repository settings on GitHub, and define the actions secret\n  `CODECOV_TOKEN`: Settings → Secrets → New repository secret).\n\nIf you don't configure the token, the action quietly skips the upload step.\n\n## How to configure VSCode\n\nAt the moment, VSCode doesn't automatically detect Poetry environments. You can set it\nmanually, though. For a newly created project, create a `.vscode/settings.json`\n\n```\npoetry install\nmkdir -p .vscode\ncat \u003c\u003cEOF \u003e .vscode/settings.json\n{\n  \"python.pythonPath\": \"$(poetry env info -p)/bin/python\"\n}\nEOF\n```\n\nRef: https://github.com/microsoft/vscode-python/issues/8372\n\n## Using .env with VSCode\n\nIf you use VSCode and the [vscode-dotenv](https://github.com/mikestead/vscode-dotenv)\nextension, add the following lines to your `.vscode/settings.json` file:\n\n```json\n\"files.associations\": {\n  \"env.example\": \"dotenv\",\n  \"env.github-actions\": \"dotenv\"\n}\n```\n\n## How to contribute\n\n- If you have questions, ideas or suggestions, write them down in an issue.\n- If you have a fix or an enhancement, create a pull request.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimankulov%2Fcookiecutter-python-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimankulov%2Fcookiecutter-python-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimankulov%2Fcookiecutter-python-project/lists"}