Metadata-Version: 2.1
Name: cafram
Version: 0.2.0a0
Summary: Config as Framework
License: GPL
Author: mrjk
Requires-Python: >=3.8,<4.0
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: jsonschema (>=4.16.0,<5.0.0)
Requires-Dist: python-log-indenter (>=0.9,<0.10)
Requires-Dist: ruamel.yaml (>=0.17.21,<0.18.0)
Requires-Dist: sh (>=1.14.3,<2.0.0)
Description-Content-Type: text/markdown

# CAFRAM - Config as Framework


Cafram is a hierarchical configuration framework for Python. It provides classes to map a hierarchical configuration (usually loaded from YAML files) to Python objects. Then it provides a foundation to organize your application code. 

## Quickstart

On it's simplest form, it can load a simple yaml file and create a NodeObject:

```
import yaml
from cafram.nodes import ConfAuto

yaml_config = """
config:
  namespace: "my_ns"
  create_file: True
  backups: 3
  backup_prefix: null
files:
  - name: hello
  - name: world
filters:
  content:
    prepend: "Added at first"
    append: "Added at last"
  author:
    name: MyName
    date: True
"""

config = yaml.safe_load(yaml_config)

app = ConfAuto(ident="app", payload=config, autoconf=-1)
print ("List of files: ", app.files.get())
app.dump()
```

This is quite convenient, but it's quite useless.



## Meta

Author: MrJK
License: GPLv3



