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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file tomlpatch-0.2.0.tar.gz.

File metadata

  • Download URL: tomlpatch-0.2.0.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for tomlpatch-0.2.0.tar.gz
Algorithm Hash digest
SHA256 06d0ddfa0926c62ce79102c029b7470a3fe7bb88421e58d10e21b1269404f953
MD5 60888a5e3c94bed9bae25c9b568cceba
BLAKE2b-256 b7a189807aae493395b8e2df42450313ae06a859506ed0bbfe1eadca19db56a5

See more details on using hashes here.

File details

Details for the file tomlpatch-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: tomlpatch-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 4.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for tomlpatch-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2cf62ca99a78ba97eab56f6a68d735c680a74ead99faf97ede82d79abcb7a6d9
MD5 4146dfb6b44a0d95d8b370f00ee40a63
BLAKE2b-256 4023f31a584d9449a14f6e9e993acd66588b99b35c0e0c1b03ab1309b0876e64

See more details on using hashes here.

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