Skip to main content

StingConf

Build Status codecov

This is a configuration library through envrionment variables, command line arguments, configuration file and default value.

Installation

pip install stingconf

Examples

define args with functions

  • example.py
import stingconf

parser = stingconf.Parser('Example module')
parser.env_prefix('SC')
parser.conf_file('config.yml')
parser.add('conf-a', short='a', type=int, default=0)
parser.add('conf-b', short='b', type=float, default=0.0)
parser.add('conf-c', short='c', type=str, default='conf-c')
parser.add('conf-d', short='d', default='conf-d', help='4th config')
config = parser.parse()

print('CONF_A:', config.CONF_A)
print('CONF_B:', config.CONF_B)
print('CONF_C:', config.CONF_C)
print('CONF_D:', config.CONF_D)
  • config.yml
conf_a: 100
conf_b: 1.0
conf_c: file-conf-c
  • run example
$ export SC_CONF_A=300
$ python example.py --conf-a 200 -b 20.0
CONF_A: 300
CONF_B: 20.0
CONF_C: file-conf-c
CONF_D: conf-d

define args with object

  • example.py
import stingconf

definitions = {
    'env_prefix': 'SC',
    'conf_file': 'config.yml',
    'items': {
        'conf-a': {
            'arg': {'short': 'a'},
            'type': 'int',
            'default': 0,
        },
        'conf-b': {
            'arg': {'short': 'b'},
            'type': 'float',
            'default': 0.0,
        },
        'conf-c': {
            'arg': {'short': 'c'},
            'type': 'str',
            'default': 'conf-c',
        },
        'conf-d': {
            'arg': {'short': 'd'},
            'default': 'conf-d',
            'help': '4th config',
        },
    },
}
parser = stingconf.Parser('Example module', definitions)
config = parser.parse()

define args with file

  • definitions.yml
env_prefix: SC
conf_file: config.yml
order:
  - env
  - arg
  - file
  - default
items:
  user:
    help: 'login user'
    arg:
      short: u
  password:
    help: 'login passowrd'
    arg:
      short: p
  enable:
    type: bool
    default: false
    help: 'enable something'
    arg:
      long_prefix: '-'
  http-proxy:
    env:
      no_prefix: true
      ignorecase: true
  https-proxy:
    env:
      no_prefix: true
      ignorecase: true
  • example.py
import yaml
import stingconf

with open('definitions.yml') as f:
	definitions = yaml.safe_load(f)
parser = stingconf.Parser('Example module', definitions)
config = parser.parse()

Naming convention

Environment

Environment variables' name should be set LIKE_THIS.

If desired, you can set the prefix of name by Parser.env_prefix().

Argument

Arguments' name should be set like-this.

If desired, you can use short version argument by passing short to Parser.add()

File

Variables' name in the configuration file should be set like_this

Currently, the supported formats are json and yaml, and the content must be non-nested dictionary.

Release files for stingconf 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for stingconf 0.0.3
File Size Uploaded
stingconf-0.0.3.tar.gz 4.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for stingconf 0.0.3
File Interpreter ABI Platform
stingconf-0.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 9.9 kB

Release files / stingconf-0.0.3.tar.gz

Download URL stingconf-0.0.3.tar.gz
Size 4.4 kB
Tags Source
SHA-256 checksum
How to use checksums
e1df04fd6f0d7588efe7c192838631ebe2ce88de8b8641ba93dbef1c7aad87a4
BLAKE2b-256 checksum
How to use checksums
7b994ef390375a7850fc22e376a585527d3a77437c40e4173beff1a424ea9f49
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3

Release files / stingconf-0.0.3-py3-none-any.whl

Download URL stingconf-0.0.3-py3-none-any.whl
Size 5.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e96eacf0a695f7b2ba1a7056db7a269db5b2a5abd225b176966090ef5f1fad31
BLAKE2b-256 checksum
How to use checksums
3099e5d40c51f3fbeb2e521b0d5e360ba5b9e17266ffd2ddec2c34d40f6a2f1a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page