def test_read_datapackage_schema_into_config(self): schema = read_packaged_file("datapackage.json", "otoole.preprocess") mock = MagicMock() mock.__getitem__.return_value = 0 actual = extract_config(schema, mock) expected = read_packaged_file("config.yaml", "otoole.preprocess") assert actual == expected
def _footer(self, handle: TextIO): datapackage = read_packaged_file("datapackage.json", "otoole.preprocess") filepath = os.path.join(self.filepath, "datapackage.json") with open(filepath, "w", newline="") as destination: destination.writelines(datapackage) self._write_default_values()
def validate_model(args): file_format = args.format if args.config: config = read_packaged_file(args.config) validate(file_format, args.filepath, config) else: validate(file_format, args.filepath)
def read_validation_config(): return read_packaged_file("validate.yaml", "otoole")
def _read_results_config(self) -> Dict[str, Dict]: return read_packaged_file("config.yaml", "otoole.results")
def _read_config(self) -> Dict[str, Dict]: return read_packaged_file("config.yaml", "otoole.preprocess")
def generate_package(path_to_package): """Creates a datapackage in folder ``path_to_package`` [{'fields': 'REGION', 'reference': {'resource': 'REGION', 'fields': 'VALUE'}}] """ datapath = os.path.join(path_to_package) package = Package(base_path=datapath) package.infer("data/*.csv") package.descriptor["licenses"] = [ { "name": "CC-BY-4.0", "path": "https://creativecommons.org/licenses/by/4.0/", "title": "Creative Commons Attribution 4.0", } ] package.descriptor["title"] = "The OSeMOSYS Simplicity Example Model" package.descriptor["name"] = "osemosys_model_simplicity" package.descriptor["contributors"] = [ { "title": "Will Usher", "email": "*****@*****.**", "path": "http://www.kth.se/wusher", "role": "author", } ] package.commit() config = read_packaged_file("config.yaml", "otoole.preprocess") new_resources = [] for resource in package.resources: descriptor = resource.descriptor name = resource.name if config[name]["type"] == "param": indices = config[name]["indices"] logger.debug("Indices of %s are %s", name, indices) foreign_keys = [] for index in indices: key = { "fields": index, "reference": {"resource": index, "fields": "VALUE"}, } foreign_keys.append(key) descriptor["schema"]["foreignKeys"] = foreign_keys descriptor["schema"]["primaryKey"] = indices descriptor["schema"]["missingValues"] = [""] new_resources.append(descriptor) package.descriptor["resources"] = new_resources package.commit() filepath = os.path.join(path_to_package, "datapackage.json") package.save(filepath)