TangledHub Config reader/writter
Project description
thconfig
Overview
TangledHub library for config with a focus on asynchronous functions
Licensing
thconfig is licensed under the BSD license. Check the LICENSE for details
Installation
pip install thconfig
Testing
docker-compose build thconfig-test ; docker-compose run --rm thconfig-test
Building
docker-compose build thconfig-build ; docker-compose run --rm thconfig-build
Publish
docker-compose build thconfig-publish ; docker-compose run --rm -e PYPI_USERNAME=__token__ -e PYPI_PASSWORD=__SECRET__ thconfig-publish
THCONFIG supported in this library
...
Testing
docker-compose build thconfig-test ; docker-compose run --rm thconfig-test
Usage
File
Configuration from file
setup
'''
A class to handle reading and writing configuration data from file
'''
# you need to provide file with data { configuration }
config_path = 'example_1.json'
# create instance of FileConfig
config = FileConfig(config_path)
fetch
'''
Reads config data from file
'''
# you need to provide file with data { configuration }
config_path = 'example_1.json'
# create instance of FileConfig
config = FileConfig(config_path)
# load data from configuration file if success
res: bool = (await config.fetch()).unwrap()
commit
'''
Write config data to file
'''
# you need to provide file with data { configuration }
config_path = 'example_1.json'
# create instance of FileConfig
config = FileConfig(config_path)
# set title
config['title'] = 'Config Example'
config.title2 = 'Config Example'
# this function change title in file
(await config.commit()).unwrap()
CouchConfig
Configuration from couchdb
setup
'''
A class to handle reading and writing configuration data from couchdb
instantiate CouchConfig:
parameters:
uri: str
'''
# this is url for couchdb where are configuration data
URI = 'http://tangledhub:tangledhub@couchdb-test:5984/thconfig-test/test_couch_config'
# create intance CouchConfig and set URI property
config = CouchConfig(URI)
fetch
Fetching configuration document from couchdb
'''
Fetching document and store data in self._state
Sync couchdb -> self._state
https://docs.couchdb.org/en/stable/api/document/common.html#get--db-docid
Fetch:
parameters:
self: CouchConfig
'''
# this is url for couchdb where are configuration data
URI = 'http://tangledhub:tangledhub@couchdb-test:5984/thconfig-test/test_couch_config'
# create intance CouchConfig and set URI property
config = CouchConfig(URI)
# fetching data from database
fetched_data = (await config.fetch()).unwrap()
commit
Commit changes in configuration data in documment in couchdb
'''
Commit document, save data from self._state to couchdb
Sync self._state -> couchdb
https://docs.couchdb.org/en/stable/api/document/common.html#put--db-docid
Commit:
parameters:
self: CouchConfig
'''
# this is url for couchdb where are configuration data
URI = 'http://tangledhub:tangledhub@couchdb-test:5984/thconfig-test/test_couch_config_commit_changes'
# create intance CouchConfig and set URI property
config = CouchConfig(URI)
title = 'Couch Config Example'
database = {'server': '192.168.1.1'}
# set title and database
config['title'] = title
config['database'] = database
# commit
commit_0 = (await config.commit()).unwrap()
EtcdConfig
Configuration from EtcdConfig
setup
'''
A class to handle reading and writing configuration data from etcd
instantiate EtcdConfig:
parameters:
HOST: str
PORT: int
'''
# you need to provide host and port
HOST = 'etcd-test'
PORT = 2379
# create instance of EtcdConfig
config = EtcdConfig(host = HOST, port = PORT)
fetch
Fetching configuration document from etcd
'''
Fetching document and store data in self._state
Sync etcd -> self._state
https://aetcd3.readthedocs.io/en/latest/reference/client.html#aetcd3.client.Etcd3Client.get_all
Fetch:
parameters:
self: EtcdConfig
'''
# you need to provide host and port
HOST = 'etcd-test'
PORT = 2379
# create instance of EtcdConfig
config = EtcdConfig(host = HOST, port = PORT)
# fetching data from etcd
fetched_data = (await config.fetch()).unwrap()
commit
Commit changes in configuration data to etcd
'''
Commit document, save data from self._state to etcd
Sync self._state -> etcd
https://aetcd3.readthedocs.io/en/latest/reference/client.html#aetcd3.client.Etcd3Client.put
commit changes:
parameters:
self: EtcdConfig
'''
# you need to provide host and port
HOST = 'etcd-test'
PORT = 2379
# create instance of EtcdConfig
config = EtcdConfig(host = HOST, port = PORT)
title = 'Couch Config Example'
database = {'server': '192.168.1.1'}
# set title and database
config['title'] = title
config['database'] = database
# commit
commit_0 = (await config.commit()).unwrap()
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file thconfig-0.9.8.tar.gz.
File metadata
- Download URL: thconfig-0.9.8.tar.gz
- Upload date:
- Size: 7.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.2 CPython/3.11.3 Linux/5.4.109+
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab4316808c065dfd6b11d778b936c6b866b86add9aa60bcbb4da7af1fac51653
|
|
| MD5 |
ff60d5fd890e435d35e5a49605129953
|
|
| BLAKE2b-256 |
3088beef467d1aa72d8c14cf7c2275e0d44c847b3e4e5577156a6210a0286dfd
|
File details
Details for the file thconfig-0.9.8-py3-none-any.whl.
File metadata
- Download URL: thconfig-0.9.8-py3-none-any.whl
- Upload date:
- Size: 8.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.2 CPython/3.11.3 Linux/5.4.109+
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5494b156a88f692a44e844b85c12e841f55610bd5067e0078fffe29bc7d0a49b
|
|
| MD5 |
a29396038cdcbd61494abd39722ac19e
|
|
| BLAKE2b-256 |
ba66b4eba5ea984b4d93d39f9955e46d3c4281f73d3a7738c6fa110174f0398f
|