Skip to main content

Typed dataclass like configuration objects

Project description

tcfg

from tcfg import cfg, Option

@cfg.json('cfg.json')
class Config:
  # year must be a string. It has a default value of '2023'
  year = '2023' 
  
  # load must be a boolean. It has a default value of true
  load = true 
  
@cfg.toml('cfg.toml')
class Config2:
  # year must be a string. Default to ''
  year = str
  
  # load must be a boolean. Default to false
  load = bool 
 
# Any config class will save to the specified file path unless overridden.
# This includes config classes that are in other config classes.
# This means you can have one master config object in your code that uses many config files.
@cfg.yaml('nested.tml')
class Nested:
  # Must be a bool. Defaults to false
  enabled = false
  
  # Must be an int. Defaults to 8081
  port = 8081 
  
  # Can specify multiple specific options.
  scope = Option('public', 'private', default='private') 
  
  # Must be a list
  # Literals are defaults and types are used for valid element types. Literal types are also used in element types.
  extensions = ['reload', dict]
  
  options = {
    # wildcard type used for validation of extra values not specified as a key in this dict
    '*': dict, 
    'open': false,
    # can have recursive nesting
    'deep_nesting': {
      'random': int 
    }
  }
 
@cfg.yaml('cfg.yml')
class Config3:
  nested = Nested # nested is a sub/nested config section

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

tcfg-0.4.6.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

tcfg-0.4.6-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file tcfg-0.4.6.tar.gz.

File metadata

  • Download URL: tcfg-0.4.6.tar.gz
  • Upload date:
  • Size: 12.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for tcfg-0.4.6.tar.gz
Algorithm Hash digest
SHA256 0c7136fc4a9f9ec577810157fcbbe5aa195129c66db7a5191add8d04df9e4523
MD5 454a0c9022426a57a2f8039703622775
BLAKE2b-256 6717d564d442b3afddd3df3d64227b20689248a7aa426541d0fc442287f26592

See more details on using hashes here.

File details

Details for the file tcfg-0.4.6-py3-none-any.whl.

File metadata

  • Download URL: tcfg-0.4.6-py3-none-any.whl
  • Upload date:
  • Size: 12.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for tcfg-0.4.6-py3-none-any.whl
Algorithm Hash digest
SHA256 197374cb5af42049ae1511b301be72ee85b1b4d596282c659a420ea5f4f5a5ca
MD5 c66c1ac529cdfea278b26709c537bbc0
BLAKE2b-256 068e2ee4f88732f232da8a3c59ab15caba4f8eaea236082affc3a722b8032bb4

See more details on using hashes here.

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