An open API service indexing awesome lists of open source software.

https://github.com/firefly-cpp/toml-adapt

A very simple Command-line interface for manipulating toml files.
https://github.com/firefly-cpp/toml-adapt

toml

Last synced: 6 days ago
JSON representation

A very simple Command-line interface for manipulating toml files.

Awesome Lists containing this project

README

        


toml-adapt


A simple command-line interface (CLI) for manipulating toml files



PyPI Version

PyPI - Python Version
PyPI - Downloads

Packaging status


Fedora package


AUR package


Downloads


GitHub license


GitHub Actions


Documentation Status


GitHub commit activity

Average time to resolve an issue


Percentage of issues still open


All Contributors



DOI


🚀 Features
🛠️ Supported packaging tools
📦 Installation
🚀 Usage
📄 Cite us
🔑 License
✨ Contributors

Working with TOML files is becoming inevitable during the package maintenance process in different ecosystems. 🌐 Many times package maintainers must either change the version of dependency or add/remove dependencies when building their packages, due to the inconsistent base system. For example, solving this issue can be done either by using the provided patches or using sed commands. However, this may be slightly time-consuming and irritating. ⏳ A very simple yet user-friendly command line interface was developed in order to make this process easier. ⚙️📄🛠️

* **Free software:** MIT license
* **Python versions:** 3.8.x, 3.9.x, 3.10.x, 3.11.x, 3.12.x
* **Documentation:** https://toml-adapt.readthedocs.io/en/latest
* **Tested OS:** Windows, Ubuntu, Debian, Fedora, Alpine, Arch, macOS. **However, that does not mean it does not work on others.**

## 🚀 Features

CLI currently supports the following operations:

- adding/removing dependencies
- changing the dependency version
- changing the dependency versions of all packages concurrently
- adding/removing/changing dev dependencies

## 🛠️ Supported packaging tools

The following packaging tools are currently supported by this software:

- poetry
- flit
- cargo
- julia (partly)

## 📦 Installation

### pip3

To install `toml-adapt` with pip, use:

```sh
pip install toml-adapt
```

### Fedora Linux

To install `toml-adapt` on Fedora, use:

```sh
$ dnf install python-toml-adapt
```

### Alpine Linux

To install `toml-adapt` on Alpine Linux, use:

```sh
$ apk add toml-adapt
```

### Arch Linux

To install `toml-adapt` on Arch Linux, use an [AUR helper](https://wiki.archlinux.org/title/AUR_helpers):

```sh
$ yay -Syyu toml-adapt
```

## 🚀 Usage

`-a` Available actions are:
- add
- remove
- change
- add-dev
- remove-dev
- change-dev

`-path` Specifies the path to the TOML file you wish to edit.

`-dep` This option sets the name of dependency you wish to manipulate. Reserved keyword `ALL` will instead do action on all dependencies.

`-ver` This option sets the version. With Python Poetry, there is reserved keyword `X`, which will become `*` (meaning it accepts any version of dependency).

The following are examples of usage:

### Change dependency
```sh
toml-adapt -path pyproject.toml -a change -dep niaclass -ver 0.1.0
```

### Add dependency
```sh
toml-adapt -path pyproject.toml -a add -dep niaclass -ver 0.1.0
```

### Remove dependency
```sh
toml-adapt -path pyproject.toml -a remove -dep niaclass -ver 0.1.0
```

### Other examples

Change all existing dependencies in toml file
```sh
toml-adapt -path pyproject.toml -a change -dep ALL -ver X
```
X represents a *

### How to use it in SPEC files?

```sh
%prep
...

## Make dependencies consistent with Fedora dependencies

toml-adapt -path pyproject.toml -a change -dep ALL -ver X
```

## 📄 Cite us

Fister, Jr., I., & Strajnar, F. (2024). firefly-cpp/toml-adapt: 0.3.1 (0.3.1). Zenodo. [https://doi.org/10.5281/zenodo.10467167](https://doi.org/10.5281/zenodo.10467167)

## 🔑 License

This package is distributed under the MIT License. This license can be found online at .

## Disclaimer

This framework is provided as-is, and there are no guarantees that it fits your purposes or that it is bug-free. Use it at your own risk!

## ✨ Contributors

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):



Iztok Fister Jr.
Iztok Fister Jr.

💻 📦 💡 🤔 🧑‍🏫 📖
StrajnarFilip
StrajnarFilip

💻 ⚠️ 🤔 💡
Ben Beasley
Ben Beasley

📖 📦
Tomasz Kłoczko
Tomasz Kłoczko

🐛
Oromion
Oromion

📦
Tadej Lahovnik
Tadej Lahovnik

📖

This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!