# Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or # implied. # See the License for the specific language governing permissions and # limitations under the License. import os import pathlib import yaml __all__ = ["read_data"] DATA_DIR = os.path.dirname(__file__) def read_data(filename): """Return data that is shipped inside the Python package.""" filepath = os.path.join(DATA_DIR, filename) with open(filepath, "r") as fd: data = yaml.safe_load(fd) # Merge data found in individual element files data.setdefault("documents", list()) data.setdefault("services", list()) data.setdefault("service_categories", list()) for item in pathlib.Path(DATA_DIR, "documents").glob("*.yaml"): with open(item, "r") as fp: data["documents"].append(yaml.safe_load(fp)) for item in pathlib.Path(DATA_DIR, "services").glob("*.yaml"): with open(item, "r") as fp: data["services"].append(yaml.safe_load(fp)) for item in pathlib.Path(DATA_DIR, "service_categories").glob( "*.yaml" ): with open(item, "r") as fp: data["service_categories"].append(yaml.safe_load(fp)) return data def rewrite_data(filename, data): """Rewrites data formatting it""" from ruamel.yaml import YAML _yaml = YAML() _yaml.indent(mapping=2, sequence=4, offset=2) filepath = os.path.join(DATA_DIR, filename) with open(filepath, "w") as fd: _yaml.dump(data, fd)