Skip to main content

Cyra is a simple config framework for Python.

Project description

Cyra is a simple config framework for Python.

Cyra’s ConfigBuilder makes it easy to specify your configuration. The config can be read from and written to a toml file.

If the config file does not exist, Cyra will generate a new one populated with initial values and annotated with helpful comments.

For a more detailed documentation, refer to https://cyra.rtfd.io

Features

  • Config builder

  • Value fields (string, int, bool, list, dict)

  • Value verification

  • Infinite nesting

  • Comments

  • Load/generate config from file

  • Write config back to file

  • Sphinx Autodoc

How to use

import cyra

class MyConfig(cyra.Config):
    builder = cyra.ConfigBuilder()

    builder.comment('Cyra says hello')
    msg = builder.define('msg', 'Hello World')

    builder.comment('SQL Database settings')
    builder.push('DATABASE')
    builder.comment('DB server address')
    server = builder.define('server', '192.168.1.1')
    builder.comment('SQL port (default: 1443)')
    port = builder.define('port', 1443)
    builder.comment('Credentials')
    user = builder.define('username', 'admin')
    pwd = builder.define('password', 'my_secret_password')
    builder.comment('DB connection enabled')
    dben = builder.define('enabled', True)
    builder.pop()

How to access your config values:

>>> cfg = MyConfig('config.toml')
>>> cfg.load_file()

>>> cfg.msg
'Hello World'

>>> cfg.msg = 'Bye bye World'
>>> cfg.save_file()
True

Here is the resulting config file:

msg = "Hello World" # Cyra says hello

[DATABASE] # SQL Database settings
server = "192.168.1.1" # DB server address
port = 1443 # SQL port (default: 1443)
username = "admin" # Credentials
password = "my_secret_password"
enabled = true # DB connection enabled

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Cyra-1.0.2.tar.gz (8.3 kB view hashes)

Uploaded Source

Built Distribution

Cyra-1.0.2-py3-none-any.whl (8.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page