Skip to main content

No project description provided

Project description

anton

CI testing pre-commit Documentation Status

anton is a Python library for auto instantiating yaml definitions to user defined dataclasses.

Avoid boilerplate and get runtime type checking before the objects are created.

Usage

Given a yaml file definition in a file index.yaml as follows:

# index.yaml
integer: 23
string: "Hello world"
point:
  x: 0
  y: 0
line_segment:
  first_point:
    x: 10
    y: 10
  second_point:
    x: 10
    y: 10

yaml_conf lets you avoid writing the biolerplate code for loading the yaml file and parsing the python dictionary to instantiate the Dataclass object as follows:

>>> from dataclasses import dataclass
>>> from anton import yaml_conf
>>>
>>> @dataclass
... class Point:
...     x: int
...     y: int
...
>>> @dataclass
... class LineSegment:
...     first_point: Point
...     second_point: Point
...
>>> @yaml_conf(conf_path="index.yaml")
... class ExampleClass:
...     integer: int
...     string: str
...     point: Point
...     line_segment: LineSegment
...
>>> example_obj = ExampleClass()
>>> example_obj
ExampleClass(integer=23, string='Hello world', point=Point(x=0, y=0), line_segment=LineSegment(first_point=Point(x=10, y=10), second_point=Point(x=10, y=10)))

Roadmap

Currently the project only supports Python3.8

Runtime type checking is supported for the following types:

  • int
  • float
  • str
  • bool
  • typing.List
  • typing.Dict
  • typing.Union
  • Any user defined dataclass

The ultimate aim is to support all python versions Python3.8+ and all possible type combinations.

Contributing

Pull requests are welcome !!! Please make sure to update tests as appropriate.

For major changes, please open an issue first to discuss what you would like to change.

Please do go through the Contributing Guide if some help is required.

Note: anton currently in active development. Please open an issue if you find anything that isn't working as expected.

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

anton-0.2.0.tar.gz (10.4 kB view hashes)

Uploaded Source

Built Distribution

anton-0.2.0-py3-none-any.whl (13.2 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