Skip to main content

No project description provided

Project description

tomlpatch

Do you want to patch your toml file structurally like modifying a nested python dictionary? This is a tool for you.

Description

Sometimes, you want to edit/patch a toml file, but you don't want to use the diff between two source files to patch the toml file since it may introduce conflicts that requires human intervention to resolve. For example, Cargo.toml is used by Rust projects, and this tool can be used to patch the Cargo.toml file with an external JSON file that contains the structural patch information so that you don't need to manually resolve the Cargo.toml file.

Installation

pip install tomlpatch

Usage

tomlpatch original_toml_file patch_json_file

Example

Suppose you have a Cargo.toml file like this:

[package]
name = "my_package"
version = "0.0.1"

liberssl = { version = "0.10.42", default-features = false, features=["vendered"] }
sources = ["s1", "s2"]
targets = ["t1", "t2", "t3"]

And you want to patch the Cargo.toml file with a JSON file like this:

{
  "patch": {
    "package.version": "0.0.2",
    "package.liberssl.features": null
  },
  "extend": {
    "package.sources": ["s4", "s5"]
  },
  "remove": {
    "package.targets": ["t2"]
  }
}

Then you can use the following command to patch the Cargo.toml file:

tomlpatch Cargo.toml patch.json

After the patch, the Cargo.toml file will be like this:

[package]
name = "my_package"
version = "0.0.2"
sources = [
    "s1",
    "s2",
    "s4",
    "s5",
]
targets = [
    "t1",
    "t3",
]

[package.liberssl]
version = "0.10.42"
default-features = false

TODO

  • Switch to tomkit for style preserving patching

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

tomlpatch-0.2.0.tar.gz (4.3 kB view hashes)

Uploaded Source

Built Distribution

tomlpatch-0.2.0-py3-none-any.whl (4.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page