{"id":19600208,"url":"https://github.com/habedi/template-python-library","last_synced_at":"2025-11-21T13:03:42.898Z","repository":{"id":257985122,"uuid":"867594563","full_name":"habedi/template-python-library","owner":"habedi","description":"A template for Python libraries 🐍","archived":false,"fork":false,"pushed_at":"2025-08-03T21:55:59.000Z","size":44,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-03T23:36:25.553Z","etag":null,"topics":["project-template","python","python-library","python-package","quality-of-life","template"],"latest_commit_sha":null,"homepage":"","language":"Makefile","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/habedi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2024-10-04T11:06:33.000Z","updated_at":"2025-05-16T06:37:51.000Z","dependencies_parsed_at":"2025-06-23T11:26:46.834Z","dependency_job_id":"d7032af0-bc42-403b-a80d-8a29ebd8b8e1","html_url":"https://github.com/habedi/template-python-library","commit_stats":null,"previous_names":["habedi/template-python-library"],"tags_count":0,"template":true,"template_full_name":"habedi/template-python-project","purl":"pkg:github/habedi/template-python-library","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/habedi%2Ftemplate-python-library","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/habedi%2Ftemplate-python-library/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/habedi%2Ftemplate-python-library/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/habedi%2Ftemplate-python-library/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/habedi","download_url":"https://codeload.github.com/habedi/template-python-library/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/habedi%2Ftemplate-python-library/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285620630,"owners_count":27203062,"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-11-21T02:00:06.175Z","response_time":61,"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":["project-template","python","python-library","python-package","quality-of-life","template"],"created_at":"2024-11-11T09:14:01.572Z","updated_at":"2025-11-21T13:03:42.892Z","avatar_url":"https://github.com/habedi.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Python Library Template\n\n\u003cdiv align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003cimg alt=\"Python Library Template\" src=\"docs/assets/images/logo.svg\" height=\"25%\" width=\"25%\"\u003e\n  \u003c/picture\u003e\n\u003c/div\u003e\n\n[![Tests](https://img.shields.io/github/actions/workflow/status/habedi/template-python-library/tests.yml?label=tests\u0026style=flat\u0026labelColor=333333\u0026logo=github\u0026logoColor=white)](https://github.com/habedi/template-python-library/actions/workflows/tests.yml)\n[![Code Coverage](https://img.shields.io/codecov/c/github/habedi/template-python-library?style=flat\u0026label=coverage\u0026labelColor=333333\u0026logo=codecov\u0026logoColor=white)](https://codecov.io/gh/habedi/template-python-library)\n[![Code Quality](https://img.shields.io/codefactor/grade/github/habedi/template-python-library?style=flat\u0026label=code%20quality\u0026labelColor=333333\u0026logo=codefactor\u0026logoColor=white)](https://www.codefactor.io/repository/github/habedi/template-python-library)\n[![PyPI Version](https://img.shields.io/pypi/v/template-python-library-placeholder.svg?style=flat\u0026label=pypi\u0026labelColor=333333\u0026logo=pypi\u0026logoColor=white\u0026color=3775a9)](https://pypi.org/project/template-python-library-placeholder/)\n[![Downloads](https://img.shields.io/pypi/dm/template-python-library-placeholder.svg?style=flat\u0026label=downloads\u0026labelColor=333333\u0026logo=pypi\u0026logoColor=white\u0026color=cc8400)](https://pypi.org/project/template-python-library-placeholder/)\n[![Python Version](https://img.shields.io/badge/python-%3E=3.10-3776ab?style=flat\u0026labelColor=333333\u0026logo=python\u0026logoColor=white)](https://github.com/habedi/template-python-library)\n[![Documentation](https://img.shields.io/badge/docs-latest-8ca0d7?style=flat\u0026labelColor=333333\u0026logo=read-the-docs\u0026logoColor=white)](https://github.com/habedi/template-python-library/blob/main/docs)\n[![License](https://img.shields.io/badge/license-MIT-00acc1?style=flat\u0026labelColor=333333\u0026logo=open-source-initiative\u0026logoColor=white)](https://github.com/habedi/template-python-library/blob/main/LICENSE)\n[![Managed with Poetry](https://img.shields.io/badge/managed%20with-Poetry-60A5FA?style=flat\u0026logo=poetry\u0026labelColor=333333\u0026logoColor=white)](https://python-poetry.org/)\n[![Managed with uv](https://img.shields.io/badge/managed%20with-uv-000000?style=flat\u0026logo=uv\u0026labelColor=333333\u0026logoColor=white)](https://astral.sh/uv)\n[![Makefile](https://img.shields.io/badge/managed%20with-Makefile-000000?style=flat\u0026logo=gnu\u0026labelColor=333333\u0026logoColor=white)](https://www.gnu.org/software/make/)\n\n---\n\nThis is a template repository for creating new Python libraries.\nIt includes a basic structure, a dummy Python package, unit tests, and\nGitHub Actions workflows for testing and deployment.\nI am sharing this template in case others find it useful.\n\n### Features\n\n- **Poetry (or uv)**: for dependency management, packaging, publishing, etc.\n- **Makefile**: for managing common tasks like testing, linting, and formatting.\n- **GitHub Actions**: for running tests, linting, and deploying to PyPI.\n- **Badges**: for showing the status of tests, code quality, version, etc.\n- **Default files**: for configuration, testing, and documentation, like `.gitignore`, `README.md`, `LICENSE`, etc.\n\n### Prerequisites\n\n- `Python` \u003e= 3.10\n- `Poetry 2.0+` (or any other modern Python dependency manager like `uv`)\n- `GNU Make`\n\n### Usage\n\nUse the `Use this template` button on GitHub to create a new repository based on this template.\nModify the `README.md` file and other files as needed.\nRun `make help` to see all available commands for managing different tasks.\n\n---\n\n### Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to make a contribution.\n\n### License\n\nThis template is licensed under the MIT License ([LICENSE](LICENSE) or https://opensource.org/licenses/MIT)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhabedi%2Ftemplate-python-library","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhabedi%2Ftemplate-python-library","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhabedi%2Ftemplate-python-library/lists"}