Skip to main content

A simple solution that allows dot notation for YAML file.

Project description

Status

PyPI pyversions PyPI Build Status Coverage Status last commit License PyPI Package monthly downloads PyPI download week

yaml2object is a python library that allows dot notation access for YAML file.

Install

pip install yaml2object

Usage

1. Create your YAML settings

# config.yml
defaults: &defaults
  database:
    adapter: postgresql
    database: development
  port: 8000
  nested_param:
    param1:
        sub_param1: 'sub_param1 value'
        sub_param2: 'sub_param2 value'

development:
  <<: *defaults

test:
  <<: *defaults
  port: 8001

2. Define your class

  1. Set yaml2object.YAMLObject as meta-class of your config class.
  2. Provide source, namespace as class fields.
    • scource: YAML file path
    • namespace: param key in YAML file
from yaml2object import YAMLObject

class Config(metaclass=YAMLObject):
    source = 'config.yml'

Warning Log: Missing namespace attribute. Converting 'config.yml' to object.

from yaml2object import YAMLObject

class Config(metaclass=YAMLObject):
    source = 'config.yml'
    namespace = 'invalid'

Warning Log: Missing 'invalid' param in 'config.yml'. Converting 'config.yml' to object.

from yaml2object import YAMLObject

class DevelopmentConfig(metaclass=YAMLObject):
    source = 'config.yml'
    namespace = 'development'

class TestConfig(metaclass=YAMLObject):
    source = 'config.yml'
    namespace = 'test'

3. Access your YAML as python object

>>> Config.to_dict()
>>> Config.development.to_dict()
>>> Config.development.database.to_dict()
>>> Config.development.database.adapter
>>> Config.development.nested_param.param1.sub_param1

>>> DevelopmentConfig.to_dict()
>>> DevelopmentConfig.database.to_dict()
>>> DevelopmentConfig.database.adapter
>>> DevelopmentConfig.database.database

>>> TestConfig.to_dict()
>>> TestConfig.port
>>> TestConfig.database.to_dict()
>>> TestConfig.database.adapter
>>> TestConfig.database.database

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

yaml2object-1.0.4.zip (8.9 kB view hashes)

Uploaded Source

Built Distribution

yaml2object-1.0.4-py3-none-any.whl (9.3 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