Python codeowners parser based on softprops's Rust library and hmarr's Go library.
To allow Python users to parse codeowners files in Python.
pip install codeownersfrom codeowners import CodeOwners
example_file = """\
# owners for js files
*.js @ghost
# python
*.py user@example.com
# misc
/build/logs/ @dmin
docs/* docs@example.com
"""
owners = CodeOwners(example_file)
assert owners.of("test.js") == [('USERNAME', '@ghost')]Paths must be repo-relative with no leading slash, matching git check-ignore. A leading
slash will not match:
owners = CodeOwners("/build/logs/log.txt @ghost")
assert owners.of("build/logs/log.txt") == [('USERNAME', '@ghost')] # ✅
assert owners.of("/build/logs/log.txt") == [] # ✗ leading slashuv sync
s/test
s/lint# bump version in pyproject.toml
# update CHANGELOG.md
# commit release commit to GitHubThen create a release in the GitHub UI. The Publish workflow builds the
package and uploads it to PyPI via trusted publishing
(OIDC, no API token).