{"id":15359845,"url":"https://github.com/matthewfeickert/python-library-template","last_synced_at":"2025-10-15T05:56:02.405Z","repository":{"id":75876186,"uuid":"220572448","full_name":"matthewfeickert/Python-library-template","owner":"matthewfeickert","description":"A template repository for a modern Python library","archived":false,"fork":false,"pushed_at":"2020-06-08T06:38:26.000Z","size":29,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-26T02:26:37.147Z","etag":null,"topics":["python","python-library","python-template","python3","template-repository"],"latest_commit_sha":null,"homepage":"https://matthewfeickert.github.io/Python-library-template/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/matthewfeickert.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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}},"created_at":"2019-11-09T01:08:02.000Z","updated_at":"2022-06-20T00:42:45.000Z","dependencies_parsed_at":"2024-01-16T18:58:42.394Z","dependency_job_id":"d76170c0-d106-4461-b26b-02551bd619d2","html_url":"https://github.com/matthewfeickert/Python-library-template","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthewfeickert%2FPython-library-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthewfeickert%2FPython-library-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthewfeickert%2FPython-library-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthewfeickert%2FPython-library-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matthewfeickert","download_url":"https://codeload.github.com/matthewfeickert/Python-library-template/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245916288,"owners_count":20693389,"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":["python","python-library","python-template","python3","template-repository"],"created_at":"2024-10-01T12:46:33.978Z","updated_at":"2025-10-15T05:55:57.373Z","avatar_url":"https://github.com/matthewfeickert.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Python library template\n\nA template repository for a modern Python library\n\n[![GitHub Actions Status](https://github.com/matthewfeickert/python-library-template/workflows/CI/CD/badge.svg)](https://github.com/matthewfeickert/python-library-template/actions)\n[![Code Coverage](https://codecov.io/gh/matthewfeickert/Python-library-template/graph/badge.svg?branch=master)](https://codecov.io/gh/matthewfeickert/Python-library-template?branch=master)\n[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/matthewfeickert/Python-library-template.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/matthewfeickert/Python-library-template/latest/files/)\n[![CodeFactor](https://www.codefactor.io/repository/github/matthewfeickert/Python-library-template/badge)](https://www.codefactor.io/repository/github/matthewfeickert/Python-library-template)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\n[![Docs](https://img.shields.io/badge/docs-master-blue.svg)](https://matthewfeickert.github.io/python-library-template)\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/matthewfeickert/python-library-template/master)\n\n\u003c!-- Here libname should be replaced with your library's name on PyPI  --\u003e\n[![PyPI version](https://badge.fury.io/py/libname.svg)](https://badge.fury.io/py/libname)\n[![Supported Python versions](https://img.shields.io/pypi/pyversions/libname.svg)](https://pypi.org/project/libname/)\n\nThe template library is [`libname`](https://github.com/matthewfeickert/Python-library-template/search?q=libname\u0026unscoped_q=libname) to make it clear what is needed for replacement\n\n## Setting up the template for your library\n\n1. Edit `setup.py` to reflect all of your library's needs and requirements\n2. Edit the paths to badges in the `README` to match your library's locations\n   - Change `libame` to your library's name\n   - Change `matthewfeickert` to your username or org name on GitHub\n   - Change `python-library-template` to your project name on GitHub (probably the same as the library name)\n3. Replace the rest of the `README` contents with your information\n4. Run `git grep \"libname\"` to make sure that you have changed all instances of `libame` (it is easy to miss the dotfiles)\n5. Setup accounts with [Codecov](https://codecov.io/), [LGTM](https://lgtm.com/), and [CodeFactor](https://www.codefactor.io/)\n   - Also add the [Codecov](https://github.com/marketplace/codecov) and [LGTM](https://github.com/marketplace/lgtm) GitHub marketplace apps\n6. Generate a Codecov token and add it to your [GitHub repo's secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/contexts-and-expression-syntax-for-github-actions#contexts) with name `CODECOV_TOKEN`\n\n## Controlling the version number with bumpversion\n\nWhen you want to increment the version number for a new release use [`bumpversion`](https://github.com/peritus/bumpversion) to do it correctly across the whole library.\nFor example, to increment to a new patch release you would simply run\n\n```\nbumpversion patch\n```\n\nwhich given the [`.bumpversion.cfg`](https://github.com/matthewfeickert/Python-library-template/blob/master/.bumpversion.cfg) makes a new commit that increments the release version by one patch release.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatthewfeickert%2Fpython-library-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatthewfeickert%2Fpython-library-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatthewfeickert%2Fpython-library-template/lists"}