{"id":39148896,"url":"https://github.com/mateusoliveira43/python-project-template","last_synced_at":"2026-01-17T21:38:04.541Z","repository":{"id":40526673,"uuid":"507393907","full_name":"mateusoliveira43/python-project-template","owner":"mateusoliveira43","description":"Template for a Python project | Modelo de projeto Python","archived":false,"fork":false,"pushed_at":"2023-05-22T16:11:38.000Z","size":3189,"stargazers_count":7,"open_issues_count":12,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-01-27T20:06:43.303Z","etag":null,"topics":["docker","documentation","python","quality","template"],"latest_commit_sha":null,"homepage":"https://github.com/mateusoliveira43/python-project-template/wiki","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/mateusoliveira43.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-06-25T18:55:44.000Z","updated_at":"2023-12-10T15:28:40.000Z","dependencies_parsed_at":"2023-02-16T22:16:02.450Z","dependency_job_id":null,"html_url":"https://github.com/mateusoliveira43/python-project-template","commit_stats":{"total_commits":20,"total_committers":2,"mean_commits":10.0,"dds":0.4,"last_synced_commit":"a40dbbfa1a627c58e9054175087206f4357f13d0"},"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/mateusoliveira43/python-project-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mateusoliveira43%2Fpython-project-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mateusoliveira43%2Fpython-project-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mateusoliveira43%2Fpython-project-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mateusoliveira43%2Fpython-project-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mateusoliveira43","download_url":"https://codeload.github.com/mateusoliveira43/python-project-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mateusoliveira43%2Fpython-project-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28518648,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T18:55:29.170Z","status":"ssl_error","status_checked_at":"2026-01-17T18:55:03.375Z","response_time":85,"last_error":"SSL_read: 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":["docker","documentation","python","quality","template"],"created_at":"2026-01-17T21:38:03.550Z","updated_at":"2026-01-17T21:38:04.210Z","avatar_url":"https://github.com/mateusoliveira43.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Python project template\n\n[![Continuos Integration](https://github.com/mateusoliveira43/python-project-template/actions/workflows/ci.yml/badge.svg)](https://github.com/mateusoliveira43/python-project-template/actions)\n[![Continuos Delivery](https://github.com/mateusoliveira43/python-project-template/actions/workflows/cd.yml/badge.svg)](https://github.com/mateusoliveira43/python-project-template/actions)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat\u0026labelColor=ef8336)](https://pycqa.github.io/isort/)\n[![security: bandit](https://img.shields.io/badge/security-bandit-yellow.svg)](https://github.com/PyCQA/bandit)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)](https://github.com/pre-commit/pre-commit)\n\nTemplate for a Python project. Check the project's documentation [here](https://mateusoliveira43.github.io/python-project-template/).\n\n### [Check out the template's Wiki!](https://github.com/mateusoliveira43/python-project-template/wiki)\n\n## Requirements\n\nTo run the project, it is necessary the following tools:\n\n- [Python](https://wiki.python.org/moin/BeginnersGuide/Download) 3.7 or higher\n\nIt can also be run with\n\n- [Poetry](https://python-poetry.org/docs/#installation)\n\nOr\n\n- [Docker](https://docs.docker.com/get-docker/)\n- [Docker Compose](https://docs.docker.com/compose/install/)\n\n## Development\n\nChoose one of the next sections to setup your development environment.\n\n### Python\n\nTo create a virtual environment, run\n```\nvirtualenv .venv\n```\n\nTo activate the virtual environment, run\n```\nsource .venv/bin/activate\n```\n\nTo install the template's development requirements in the virtual environment, run\n```\npip install -r requirements/dev.txt\npip install -e .\n```\n\nTo deactivate the virtual environment, run `deactivate`.\n\nRun the commands of the following sections with the virtual environment active.\n\n### Poetry\n\nTo install project dependencies and create a virtual environment, run\n```\npoetry install\n```\n\nTo activate the virtual environment, run\n```\npoetry shell\n```\n\nTo deactivate the virtual environment, run `CTRL+D` or `exit`.\n\nRun the commands of the following sections with the virtual environment active.\n\n### Docker\n\nTo connect to Container's shell, run\n```\n./scripts/docky.py run\n```\nTo exit the container's shell, run `CTRL+D` or `exit`.\n\nTo run Dockerfile linter, run\n```\n./scripts/docky.py lint\n```\n\nTo scan Docker Image, run\n```\n./scripts/docky.py scan\n```\n\nTo remove the project's Containers, Networks, Images and Volumes, run\n```\n./scripts/docky.py down\n```\n\nTo get script help, run\n```\n./scripts/docky.py\n./scripts/docky.py \u003ccommand\u003e --help\n```\n\nTo change Container configuration, change the variables in `.env` file.\n\nRun the commands of the following sections in the Container.\n\n## Update requirements\n\nTo update requirements files, run\n```\ndev requirements\n```\n\n## Quality\n\nThe quality metrics of the project are reproduced by the continuos integration (CI) pipeline of the project. CI configuration in [`.github/workflows/ci.yml`](.github/workflows/ci.yml) file.\n\n### Tests\n\nTo run tests and coverage report, run\n```\npytest\n```\n\nTo see the html report, check `tests/coverage-results/htmlcov/index.html`.\n\nTests and coverage configuration in [`pyproject.toml`](pyproject.toml) file, at `[tool.pytest.ini_options]` section.\n\n### Type checking\n\nTo run Python type checker, run\n```\nmypy .\n```\n\nPython type checker configuration in [`pyproject.toml`](pyproject.toml) file, at `[tool.mypy]` section.\n\n### Linters\n\nTo run Python linter, run\n```\ndev lint\n```\n\nPython linter configuration in [`.prospector.yaml`](.prospector.yaml) and [`tests/.prospector.yaml`](tests/.prospector.yaml) files.\n\nTo run Shell script linter, run\n```\ndev lint --shell\n```\n\n### Code formatters\n\nTo check Python code format, run\n```\ndev format --check\n```\n\nTo format Python code, run\n```\ndev format\n```\n\nPython code formatters configuration in [`pyproject.toml`](pyproject.toml) file, at `[tool.black]` and `[tool.isort]` sections.\n\nTo check all repository's files format, run\n```\nec -verbose\n```\n\nFile format configuration in [`.editorconfig`](.editorconfig) file.\n\n### Security vulnerability scanners\n\nTo check common security issues in Python code, run\n```\ndev scan --code\n```\n\nTo check known security vulnerabilities in Python dependencies, run\n```\ndev scan --dependencies\n```\n\n### Documentation\n\nTo check Python documentation generation, run\n```\ndev doc --check\n```\n\nTo generate Python documentation, run\n```\ndev doc\n```\nTo see the documentation , check `public/index.html`.\n\nPython documentation generator configuration in [`docs/conf.py`](docs/conf.py) file.\n\nThe documentation is updated automatically by the continuous deploy (CD) pipeline of the project. CD configuration in [`.github/workflows/cd.yml`](.github/workflows/cd.yml) file.\n\n## Pre-commit\n\nTo configure pre-commit automatically when cloning this repo, run\n```\ngit config --global init.templateDir ~/.git-template\npre-commit init-templatedir --hook-type commit-msg --hook-type pre-commit ~/.git-template\n```\npre-commit must be installed globally.\n\nTo configure pre-commit locally, run\n```\npre-commit install --hook-type commit-msg --hook-type pre-commit\n```\n\nTo test it, run\n```\npre-commit run --all-files\n```\n\npre-commit configuration in [`.pre-commit-config.yaml`](.pre-commit-config.yaml) file.\n\n## License\n\nThis repository is licensed under the terms of [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmateusoliveira43%2Fpython-project-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmateusoliveira43%2Fpython-project-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmateusoliveira43%2Fpython-project-template/lists"}