Skip to main content

Import JSON/YAML like importing .py files

Project description

Build Status Supported Python versions PyPI version Coverage Status

ezcf stands for easy configuration, it allows you to import JSON/YAML like importing .py files, which is very useful for reading conf files with these formats.

OK, stop talking, show us some code!

On the left is what you’ll normally do, on the right is the ezcf way. Much more elegant isn’t it?

Install

pip install ezcf

If you run into error: yaml.h: No such file or directory, don’t worry, you can still use ezcf without any problem.

Supported File Types

Currently ezcf supports JSON, YAML and INI with extension json, yaml, yml, ini.

Sample Usage

ezcf supports all kinds of valid import statements, here’s an example:

├── subdir
│   ├── __init__.py
│   └── sample_yaml.yaml
├── test_normal.py
└── sample_json.json

Various ways to use configurations in sample_yaml.yaml and sample_json.json:

import ezcf

from subdir.sample_yaml import *
# or
from subdir.sample_yaml import something
# or
import subdir.sample_yaml as sy
print(sy.something)

from sample_json import *
# or
from sample_json import something
# or
import sample_json as sj
print(sj.something)

You can assume they’re just regular python files.(Currently ezcf only supports files with utf-8 encoding)

What about relative import? Yes, ezcf supports relative import, as long as you use it correctly.

Something to note before using ezcf:

  1. ezcf is still in developement. If you find any bug, please report it in issues;

  2. Be careful importing YAML which contains multiple documents: if there exists keys with the same name, only one of them will be loaded. So it’s better not to use multiple documents;

  3. All values in .ini files are kept as it is and loaded as a string;

  4. Namespace package is not supported yet, pull requests are welcome.

Run Tests

python setup.py test

Roadmap

  • [x] Use dot to seperate folder/subfolder/file

  • [x] Unicode support

  • [x] JSON support

  • [x] YAML support

  • [x] INI support

  • [ ] XML support

  • [ ] Auto encoding detect?

  • [x] CI

  • [ ] coverage

  • [x] pypi

License

MIT

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

ezcf-0.1.0.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ezcf-0.1.0-py2.py3-none-any.whl (8.7 kB view details)

Uploaded Python 2Python 3

File details

Details for the file ezcf-0.1.0.tar.gz.

File metadata

  • Download URL: ezcf-0.1.0.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for ezcf-0.1.0.tar.gz
Algorithm Hash digest
SHA256 158378e6dae44a79f90c43a071899f0259e0613e2729b55987f46784ed36c863
MD5 a90ad12cf2202539a4cc097a6ff461e0
BLAKE2b-256 165b309396b2e2fe06c64520e22a7196c2551b160d7abfcc603ef751ea6490fd

See more details on using hashes here.

File details

Details for the file ezcf-0.1.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for ezcf-0.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 f9cb91a17ee271a7f9c4af45fe9b2acfb13612170ffc63ff61db1eb14097ed15
MD5 f1fbaeef1fdcda8e73a89e3a4d38467f
BLAKE2b-256 99ae75f29159f0f38f02c62f9c124bfb0e4ab29ec522f315e8221d07620b73c4

See more details on using hashes here.

Supported by

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