Skip to main content

Standalone Loader class for simplification of loading configurations from YAML, JSON, SQL or TXT files.

Project description

GitHub GitHub Workflow Status (with branch) Coverage PyPI - Downloads

Introduction

Standalone Loader class simplifies loading of content from files .yaml, .json, .sql, and .txt.

Quick Start

# import the Loader class
from surquest.utils.loader import Loader

# load a yaml file
config_yaml = Loader.load(path="./path/to/config.yaml")
# alternatively load of yaml file
config_yaml = Loader.load_yaml(path="./path/to/config.yaml")

# load a json file
config_json = Loader.load(path="./path/to/config.json")
# alternatively load of json file
config_json = Loader.load_json(path="./path/to/config.json")

# load a sql file
config_sql = Loader.load(path="./path/to/config.sql")
# alternatively load of sql file
config_sql = Loader.load_sql(path="./path/to/config.sql")

Installation

pip install surquest-utils-loader

Additional information

Content loaded from JSON or YAML files is returned as a DictDot (dictionary which keys are accessible as attributes). This allows you to access the content of the file using the dot notation. Lets assume example.yaml contains the following content:

---
family:
  name: Smith
  members:
  - name: John # father
    age: 40
  - name: Jane # mother
    age: 38

You can access the content of the file using the dot notation:

from surquest.utils.loader import Loader

config = Loader.load_yaml(path="./path/to/example.yaml")

print(config.family.name) # Smith
print(config.family.members[0].name) # John
print(config.family.members[1].name) # Jane

In case you don't want to use the dot notation you can use the standard dictionary as output format for the loaded content:

from surquest.utils.loader import Loader

config = Loader.load_yaml(path="./path/to/example.yaml", output_type=dict)

Local development

You are more than welcome to contribute to this project. To make your start easier we have prepared a docker image with all the necessary tools to run it as interpreter for Pycharm or to run tests.

Build docker image

docker build `
     --tag surquest/utils/loader `
     --file package.base.dockerfile `
     --target test .

Run tests

docker run --rm -it `
 -v "${pwd}:/opt/project" `
 -w "/opt/project/test" `
 surquest/utils/loader pytest

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

surquest_utils_loader-0.0.1.tar.gz (7.1 kB view hashes)

Uploaded Source

Built Distribution

surquest_utils_loader-0.0.1-py2.py3-none-any.whl (4.3 kB view hashes)

Uploaded Python 2 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