A Python Typer CLI subcommand boilerplate to manage config files using tinydb
Project description
A Typer config file get/set boilerplate
Using the boilerplate
Aliases and subcommands
We recommand the following aliases, which are readily available out of the box.
config
cfg
c
This way, if your app is named super-app
And is defined in super_app.py
roughly as follows:
import typer
# ... some imports
app = typer.Typer(
name='super-app',
# ... other args
)
You just have to add the following below:
from typer_tinydb import cfg, config # those are typer apps
app.add_typer(cfg) # the cfg app
app.add_typer(config) # the config app
You can rename them however you like by using
app.add_typer(cfg, name='my-super-config')
Using it on the command line
With the same configuration as above, your new app can now run the commands:
super-app cfg list # list config key:value pairs
super-app cfg get some-key # get the values linked to the key 'some-key'
super-app cfg set some-key '20-hS407zuqYKQ8tPP2r5' # store some hash or token into your settings file
super-app cfg set some-key '20-hS407zuqYKQ8tPP2r5'
You can obviously use super-app config get
and others, or any name you attribute to it.
Using it within python modules
The CLI key-values are stored in a tinydb instance that is available by just importing the table named globals
:
from typer_tinydb import db, globals, where
You can create any table using the database object db
, please check out the tinydb docs !
To get the key just use where
:
returns = globals.search(where('param') == param)
To insert new values or update existing, use the upsert
function:
Param = Query()
globals.upsert({
"param": param,
"value": value,
"timestamp": datetime.now().strftime("%d/%m/%Y %H:%M:%S"),
"machine": socket.gethostname(),
},
Param.param == param
)
Commands
Go check out the documentation page 🚀
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for typer_tinydb-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c28f273097860f3e5e12aa521f3770bc7aa55719bf06b0d087c0e1abd02f043 |
|
MD5 | 241d153333caf50cb4f94ecf4c4231be |
|
BLAKE2b-256 | b740d41c3f2b2841ee2c5547fe657b8d0ac84f307b2b7a2b42e944ec0160cd70 |