unitpackage.local
Utilities to work with local frictionless Data Packages such as collecting Data Packages and creating unitpackages.
- unitpackage.local.collect_datapackage(filename)
Return a Data Package from a :param filename which must be a valid frictionless Data Package (JSON).
EXAMPLES:
>>> package = collect_datapackage("./examples/local/no_bibliography/no_bibliography.json") >>> package {'resources': [{'name': ...
- unitpackage.local.collect_datapackages(data)
Return a list of data packages defined in the directory data and its subdirectories.
EXAMPLES:
>>> packages = collect_datapackages("./examples/local") >>> packages[0] {'resources': [{'name': ...
- unitpackage.local.collect_resources(datapackages)
Return a list of resources from a list of Data Packages.
EXAMPLES:
>>> packages = collect_datapackages("./examples/local") >>> resources = collect_resources(packages) >>> [resource.name for resource in resources] ['alves_2011_electrochemistry_6010_f1a_solid', 'engstfeld_2018_polycrystalline_17743_f4b_1', 'no_bibliography']
- unitpackage.local.create_df_resource(resource)
Return a pandas dataframe resource for a frictionless Tabular Resource.
EXAMPLES:
>>> from frictionless import Package >>> resource = Package("./examples/local/no_bibliography/no_bibliography.json").resources[0] >>> df_resource = create_df_resource(resource) >>> df_resource {'name': 'memory', ... 'format': 'pandas', ... >>> df_resource.data t E j ...
- unitpackage.local.create_unitpackage(csvname, metadata=None, fields=None)
Return a Data Package built from a :param metadata: dict and tabular data in :param csvname: str.
The :param fields: list must must be structured such as [{‘name’:’E’, ‘unit’: ‘mV’}, {‘name’:’T’, ‘unit’: ‘K’}].
EXAMPLES:
>>> fields = [{'name':'E', 'unit': 'mV'}, {'name':'I', 'unit': 'A'}] >>> package = create_unitpackage("./examples/from_csv/from_csv.csv", fields=fields) >>> package {'resources': [{'name': ...
TESTS:
Invalid fields:
>>> fields = 'not a list' >>> package = create_unitpackage("./examples/from_csv/from_csv.csv", fields=fields) Traceback (most recent call last): ... ValueError: 'fields' must be a list such as [{'name': '<fieldname>', 'unit':'<field unit>'}]`, e.g., `[{'name':'E', 'unit': 'mV}, {'name':'T', 'unit': 'K}]`
More fields than required:
>>> fields = [{'name':'E', 'unit': 'mV'}, {'name':'I', 'unit': 'A'}, {'name':'x', 'unit': 'm'}] >>> package = create_unitpackage("./examples/from_csv/from_csv.csv", fields=fields)
Part of the fields specified:
>>> fields = [{'name':'E', 'unit': 'mV'}] >>> package = create_unitpackage("./examples/from_csv/from_csv.csv", fields=fields)
- unitpackage.local.write_metadata(out, metadata)
Write metadata to the out stream in JSON format.