Skip to main content

CLI for working with TOML files. Pronounced "tom clee."

Project description

tomcli

builds.sr.ht status

copr build status (gotmax23/tomcli)

copr build status (gotmax23/tomcli-dev)

CLI for working with TOML files. Pronounced "tom clee."

Links

Examples

tomcli-get

Query TOML files

Print a TOML table:

$ tomcli-get pyproject.toml build-system
[build-system]
requires = ["flit_core >=3.2,<4"]
build-backend = "flit_core.buildapi"

Get a newline-separated list of strings:

$ tomcli-get pyproject.toml --formatter newline-list project.dependencies
click
importlib_metadata; python_version<'3.11'

List all available formatters for use with tomcli-get -F / tomcli-get --formatter:

$ tomcli-formatters
default
	Use the `toml` formatter if the object is a Mapping and fall back to
	`string`.

json
	Return the JSON representation of the object

newline-list
	Return a newline separated list

string
	Print the Python str() representation of the object

toml
	Return the TOML mapping of the object

tomcli-set

Modify TOML files

Delete a TOML value:

$ tomcli-set pyproject.toml del 'project.dependencies'

Set a value to true or false:

$ tomcli-set pyproject.toml true 'tool.mypy.check_untyped_defs'
$ tomcli-set pyproject.toml false 'tool.mypy.check_untyped_defs'

Set a float or int value:

$ tomcli-set pyproject.toml float 'tool.coverage.run.fail_under' '90.0'
$ tomcli-set pyproject.toml int 'tool.coverage.run.fail_under' '90'

Set a string value:

$ tomcli-set pyproject.toml str 'project.readme' 'README.rst'

tomcli-get lists

Modify lists within a TOML file

Remove all values that match a Python regex:

NOTE: The regex must match the entire string

$ tomcli-set pyproject.toml lists delitem \
    'project.classifiers' 'Programming Language :: Python.*'

Remove all values that match an fnmatch-style pattern:

$ tomcli-set pyproject.toml lists delitem --type fnmatch \
    'project.optional-dependencies.dev' '*cov*'

Replace values that match a Python regex:

NOTE: The regex must match the entire string

$ tomcli-set pyproject.toml lists replace \
    'project.optional-dependencies.test' '(.+)==(.+)' '\1>=\2'

Create a list of strings:

## Create the new file
$ touch plays.toml
## Automatically creates the "Romeo and Juliet" table
$ tomcli-set plays.toml lists str \
    '"Romeo and Juliet".characters' 'Romeo' 'Juliet' 'Mercuitio' 'Nurse'

Contributing

See CONTRIBUTING.md.

License

This repository is licensed under

SPDX-License-Identifer: MIT

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

tomcli-0.5.0.tar.gz (25.6 kB view details)

Uploaded Source

Built Distribution

tomcli-0.5.0-py3-none-any.whl (17.8 kB view details)

Uploaded Python 3

File details

Details for the file tomcli-0.5.0.tar.gz.

File metadata

  • Download URL: tomcli-0.5.0.tar.gz
  • Upload date:
  • Size: 25.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for tomcli-0.5.0.tar.gz
Algorithm Hash digest
SHA256 b8e7614f21c2c2571c490fa722ff800e8a4a91bbc1220d1db0afa2bb4934877d
MD5 5f58d8d14d8876a48185ebca2c9955fd
BLAKE2b-256 d2de2c25f2387bf4c58d0326f88cd8e6c80e5eeadd166309cecf89887ac60279

See more details on using hashes here.

File details

Details for the file tomcli-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: tomcli-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 17.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for tomcli-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c0e32787a1a9c4f903bf82d6cf3e7717550c58b4be37e70fe3b2e8b1102e156c
MD5 2fd337436c3127621457ef2011b673fb
BLAKE2b-256 a0992f528b460a0a54301d9f7e4975e4ff4e5b8d7a0afe24cffa265c79b0cf6d

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