Skip to main content

codecov pypi License PyPI - Downloads GitHub branch checks state

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 .

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.4.tar.gz (22.0 kB view details)

Uploaded Source

File details

Details for the file lazycon-0.6.4.tar.gz.

File metadata

  • Download URL: lazycon-0.6.4.tar.gz
  • Upload date:
  • Size: 22.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for lazycon-0.6.4.tar.gz
Algorithm Hash digest
SHA256 26e03608111c109922a74c45c802fd0d1d06604918028069139105416b8ab7c3
MD5 42ffecbd034da270d0c8b2d56d5c99e0
BLAKE2b-256 726c4bc1d3bc42b3241617991c8618780d64ff003b926fae96016017649791c1

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.6.4 This release

1 file

0.6.3

1 file

0.6.2

1 file

0.6.1

1 file

0.6.0

1 file

0.5.1

1 file

0.5.0

1 file

0.4.0

1 file

0.3.1

1 file

0.3.0

1 file

0.2.0

1 file

0.1.1

1 file

0.1.0

1 file

0.0.1

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page