Collection of convenience functions to patch `pyproject.toml` in place
Project description
pyproject-patcher
This Python package is an attempt to make it a little easier to
patch pyproject.toml
in place.
It is mainly useful for maintainers of system packages.
If you’re not a maintainer of system packages, or if you don’t know
what that means, then pyproject-patcher
is probably not for you.
Features
-
Hard code a version number into
project.version
-
Disable all invocations of the dynamic version generator
setuptools-git-versioning
-
Remove dependency to
setuptools-git-versioning
frombuild-system.requires
-
Configure
setuptools-git-versioning
to use a version template without a.dirty
suffix
Installation
Installing from PyPI
To install pyproject-patcher from PyPI, open a shell and run:
pip install pyproject-patcher
If that doesn’t work, try:
python3 -m pip install pyproject-patcher
Installing from the AUR
Direct your favorite
AUR helper to the
python-pyproject-patcher
package.
Usage
See USAGE.md
for details.
Contributing to pyproject-patcher
See CONTRIBUTING.md
.
License
Copyright (c) 2024 Claudia Pellegrino
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. For a copy of the License, see LICENSE.
Description
This Python package is an attempt to make it a little easier to
patch pyproject.toml
in place.
It is mainly useful for maintainers of system packages.
If you’re not a maintainer of system packages, or if you don’t know
what that means, then pyproject-patcher
is probably not for you.
Examples
Recommended import statement
The following examples all assume the following import statement:
from pyproject_patcher import patch_in_place
Set a static project version
with patch_in_place('pyproject.toml') as toml:
toml.set_project_version('1.2.3')
Strip the version constraint of a dependency
with patch_in_place('pyproject.toml') as toml:
toml.strip_build_system_dependency_constraint('setuptools-git-versioning')
# or, equivalently:
# toml.build_system_requires.strip_constraint('setuptools-git-versioning')
Remove an entry from a dependency list
with patch_in_place('pyproject.toml') as toml:
toml.remove_build_system_dependency('setuptools-git-versioning')
# or, equivalently:
# toml.build_system_requires.remove_dependency('setuptools-git-versioning')
Remove setuptools-git-versioning
from pyproject.toml
entirely
with patch_in_place('pyproject.toml') as toml:
toml.set_project_version('1.2.3')
toml.tools.setuptools_git_versioning.remove()
Configure a version template without a .dirty
suffix
with patch_in_place('pyproject.toml') as toml:
toml.tools.setuptools_git_versioning.template_ignore_dirty_git()
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pyproject_patcher-0.2.3.tar.gz
.
File metadata
- Download URL: pyproject_patcher-0.2.3.tar.gz
- Upload date:
- Size: 12.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e2ae036c7135148c4cc76bb9edfdc1cd6ceef940d9e25c0e6eb003df0f6462d3 |
|
MD5 | 7f4ce72c34163d580b0a73a339e64f04 |
|
BLAKE2b-256 | 3d3b98c0578faaaeeec58ce818be5a4e083a35e6586cdd7f55e461b50c5adc56 |
File details
Details for the file pyproject_patcher-0.2.3-py3-none-any.whl
.
File metadata
- Download URL: pyproject_patcher-0.2.3-py3-none-any.whl
- Upload date:
- Size: 14.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a35f56a34e8dcaae926774c5045407271e7093010255f82e935afed2352e7b94 |
|
MD5 | 61b05ef9dc6919e3eaa730df44f50f88 |
|
BLAKE2b-256 | c92f148c82961d989d3c46e9b1b4f49eea530540eb1fb05b88fabcd033e8f8f1 |