https://github.com/mrjohannchang/aioconfig.py
https://github.com/mrjohannchang/aioconfig.py
asynchronous asyncio database key-value library python storage
Last synced: over 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/mrjohannchang/aioconfig.py
- Owner: mrjohannchang
- License: mpl-2.0
- Created: 2019-12-17T15:18:25.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2022-07-25T02:16:24.000Z (almost 4 years ago)
- Last Synced: 2025-03-10T09:52:24.575Z (over 1 year ago)
- Topics: asynchronous, asyncio, database, key-value, library, python, storage
- Language: Python
- Homepage: https://pypi.org/project/aioconfig/
- Size: 38.1 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# aioconfig
`aioconfig` **efficiently** and **thread-safely** stores configurations in the
background (**asynchronously**).
## Installation
```sh
pip install aioconfig
```
## Usage
The interface of `aioconfig` is dramatically easy to use.
For example, both `set(key, value)` and `await set(key, value)` store a pair of
key/value, which the former one is a fire-and-forget asynchronous function call
while the latter one blocks until the data written onto the disk.
### Init
```py
import aioconfig
storage = aioconfig.get_storage(await aioconfig.attach('example.db'))
section = await aioconfig.get('default')
```
### Delete
```py
section.delete(key='foo')
```
#### Blocking delete (wait until it's done)
```py
await section.delete(key='foo')
```
### Get
```py
value1 = await section.get(key='foo', default='bar')
value2 = await section.get(key='baz', default=12.3)
```
### Get all
```py
value = await section.get_all()
```
### Set (fire-and-forget)
```py
section.set(key='foo', value='bar')
section.set(key='baz', value=12.3)
```
#### Blocking set (wait until it's done)
```py
await section.set(key='foo', value='bar')
await section.set(key='baz', value=12.3)
```
### Batch set (fire-and-forget) (TBD)
```py
with storage.transation():
storage.set(
key='foo', value='bar',
section='default_section')
storage.set(
key='baz', value=12.3,
section='default_section')
```
#### Blocking batch set (wait until it's done) (TBD)
```py
async with storage.transation():
storage.set(
key='foo', value='bar',
section='default_section')
storage.set(
key='baz', value=12.3,
section='default_section')
```