67 lines
2.1 KiB
Markdown
67 lines
2.1 KiB
Markdown
|
[![CI](https://github.com/lordwelch/settngs/actions/workflows/build.yaml/badge.svg?branch=main&event=push)](https://github.com/lordwelch/settngs/actions/workflows/build.yaml)
|
||
|
[![GitHub release (latest by date)](https://img.shields.io/github/downloads/lordwelch/settngs/latest/total)](https://github.com/lordwelch/settngs/releases/latest)
|
||
|
[![PyPI](https://img.shields.io/pypi/v/settngs)](https://pypi.org/project/settngs/)
|
||
|
[![PyPI - Downloads](https://img.shields.io/pypi/dm/settngs)](https://pypistats.org/packages/settngs)
|
||
|
[![PyPI - License](https://img.shields.io/pypi/l/settngs)](https://opensource.org/licenses/MIT)
|
||
|
|
||
|
# Settngs
|
||
|
|
||
|
This library is an attempt to merge reading flags/options from the commandline (argparse) and settings from a file (json).
|
||
|
|
||
|
It is a modified argparse inspired by how [flake8] loads their settings. Note that this does not attempt to be a drop-in replacement for argparse.
|
||
|
|
||
|
Install with pip
|
||
|
```console
|
||
|
pip install settngs
|
||
|
```
|
||
|
|
||
|
|
||
|
A trivial example is included at the bottom of settngs.py with the output below. For a more complete example see [ComicTagger].
|
||
|
```console
|
||
|
$ python -m settngs
|
||
|
Hello world
|
||
|
$ python -m settngs --hello lordwelch
|
||
|
Hello lordwelch
|
||
|
$ python -m settngs --hello lordwelch -s
|
||
|
Hello lordwelch
|
||
|
Successfully saved settngs to settngs.json
|
||
|
$ python -m settngs
|
||
|
Hello lordwelch
|
||
|
$ python -m settngs -v
|
||
|
Hello lordwelch
|
||
|
merged_namespace.example_verbose=True
|
||
|
$ python -m settngs -v -s
|
||
|
Hello lordwelch
|
||
|
Successfully saved settngs to settngs.json
|
||
|
merged_namespace.example_verbose=True
|
||
|
$ python -m settngs
|
||
|
Hello lordwelch
|
||
|
merged_namespace.example_verbose=True
|
||
|
$ python -m settngs --no-verbose
|
||
|
Hello lordwelch
|
||
|
$ python -m settngs --no-verbose -s
|
||
|
Hello lordwelch
|
||
|
Successfully saved settngs to settngs.json
|
||
|
$ python -m settngs --hello world --no-verbose -s
|
||
|
Hello world
|
||
|
Successfully saved settngs to settngs.json
|
||
|
$ python -m settngs
|
||
|
Hello world
|
||
|
```
|
||
|
|
||
|
settngs.json at the end:
|
||
|
```json
|
||
|
{
|
||
|
"example": {
|
||
|
"hello": "world",
|
||
|
"verbose": false
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
## What happened to the 'i'?
|
||
|
PyPi wouldn't let me use 'settings'
|
||
|
|
||
|
[flake8]: https://github.com/PyCQA/flake8
|
||
|
[ComicTagger]: https://github.com/comictagger/comictagger
|