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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 2 Python 3

File details

Details for the file surquest_utils_loader-0.0.1.tar.gz.

File metadata

  • Download URL: surquest_utils_loader-0.0.1.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for surquest_utils_loader-0.0.1.tar.gz
Algorithm Hash digest
SHA256 17bb44f48f46c884f9985b023a70c1b4a3701b9caec610e212631a8452268cd4
MD5 dd593c7d3524270b1e8c16189faf28e6
BLAKE2b-256 9b3b398b036544eeaa412d4c927cc6eb53812bb77a09bcb9caefe84ce78fc668

See more details on using hashes here.

File details

Details for the file surquest_utils_loader-0.0.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for surquest_utils_loader-0.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 aa501edb5916cd54d824fe1df7f7df0a0645c2b6aacb0abf1c9e8e559bd31444
MD5 799b4d5f6d734094e8c50c5cdb0a2ee1
BLAKE2b-256 08a1b8bcce5aa9ed37383e64e835bacdaf856d48c0eb5de0006196d0220a0a3d

See more details on using hashes here.

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