Easy config files in pure Python
Project description
Easy config files in pure Python!
What you can do directly in your configs:
- define constants
- define functions
- use import statements
- call functions and apply arithmetic operations
- a static read-only scope
- static checking: cycles detection, undefined variables detection
Install
pip install lazycon
Features
Basic
Let's define a config file example.config
and see what it can do
# define constants
num_steps = 100
database_table = 'user_data'
# or more complex structures
parameters = {
'C': 10,
'metric': 'roc_auc',
}
values_to_try = [0, 1, 2, 3, 4]
# you can use and call builtins
some_range = list(range(100))
# or even comprehensions!
squares = [i ** 2 for i in range(20)]
Now let's load our config from python
from lazycon import load
config = load('example.config')
print(config.database_table)
# 'user_data'
Need to change an existing config? No problem!
from lazycon import load
config = load('example.config')
config.update(
database_table='customer_data',
some_range=[1, 3, 5],
)
config.dump('updated.config')
Advanced
Python-based configs can do so much more! Let's create another advanced.config
:
# combine config entries
x = 1
y = 2
z = x + y
# define lambdas
callback = lambda value: 1 if value == 0 else (1 / value)
# or more complex functions
def strange_normalize(a, b):
temp = a ** 2 + b ** 2
return a / temp, b / temp
You can import from other python libraries:
import numpy as np
from math import sqrt
const = np.pi / np.e
proportions = sqrt(2)
Or even other configs!
# import from `example.config` defined above
from .example import *
extended_values_to_try = values_to_try + [101, 102]
Contribute
Just get the project from GitHub and modify it how you please!
git clone https://github.com/maxme1/lazycon.git
cd lazycon
pip install -e .
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
lazycon-0.6.0.tar.gz
(16.8 kB
view details)
File details
Details for the file lazycon-0.6.0.tar.gz
.
File metadata
- Download URL: lazycon-0.6.0.tar.gz
- Upload date:
- Size: 16.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f6b0b3003796d013028facd57022f71842afdc4fcc1a5030565c174be93c18d |
|
MD5 | 9ce04946a2652f30e5aef1132ef2c9a2 |
|
BLAKE2b-256 | 76b52cc42bc60bdbaa0895864d3761406713e3a738f74a09e59ac56c583e9a0c |