meta

Utility functions for merging metadata for multiple files.

class meta.MergeMetaAll[source]

Merge metadata by taking the set of values.

add(value)[source]

Add a new value to the metadata.

property valid

Check if the value is valid.

property value

Get the merged value.

class meta.MergeMetaMax[source]

Merge metadata by taking the maximum value.

add(value)[source]

Add a new value to the metadata.

property valid

Check if the value is valid.

class meta.MergeMetaMin[source]

Merge metadata by taking the minimum value.

add(value)[source]

Add a new value to the metadata.

property valid

Check if the value is valid.

class meta.MergeMetaOverride(value=None)[source]

Merge metadata by overriding the value.

add(value)[source]

Add a new value to the metadata.

property valid

Check if the value is valid.

class meta.MergeMetaSubset(value=None)[source]

Merge metadata by taking the subset of consistent values.

add(value)[source]

Add a new value to the metadata.

property valid

Check if the value is valid.

property warn

Whether to warn about inconsistent metadata.

class meta.MergeMetaSum[source]

Merge metadata by adding the values.

add(value)[source]

Add a new value to the metadata.

property valid

Check if the value is valid.

class meta.MergeMetaUnion[source]

Merge metadata by taking the union.

add(value)[source]

Add a new value to the metadata.

property valid

Check if the value is valid.

property value

Get the merged value.

class meta.MergeMetaUnique(value=None)[source]

Merge metadata by taking the unique values.

add(value)[source]

Add a new value to the metadata.

property valid

Check if the value is valid.

meta.add_origin(metadata: dict, app: str) None[source]

Add origin information to the metadata dictionary for transform jobs.

Parameters:
  • metadata – metadata dictionary

  • app – name of the application

meta.auto_output(files: list) None[source]

Auto-generate an output file name with the same extension as the inputs, if needed.

Parameters:

files – list of files to merge

meta.check_method(files: list) None[source]

Check and set the merging method based on the input file metadata.

Parameters:

files – list of files to merge

meta.check_required(metadata: dict) list[source]

Check if the metadata dictionary contains all required keys.

Parameters:

metadata – metadata dictionary

Returns:

List of any missing required keys

meta.fix(name: str, metadata: dict) None[source]

Fix the metadata dictionary.

Parameters:
  • name – name of the file (for logging)

  • metadata – metadata dictionary

meta.log_method() None[source]

Log the final merging method configuration.

meta.make_names(files: list)[source]

Update merging method and create a name for the merged files.

Parameters:

files – list of files to merge

meta.match_method(name: str | None = None, metadata: dict | None = None) ConfigDict[source]

Find a built-in merging method by name or metadata conditions.

Parameters:
  • name – name of the merging method

  • metadata – metadata dictionary

Returns:

merging method ConfigDict

meta.merge_cfg_keys() dict[source]

Get special merging configuration keys from the global config.

Returns:

dictionary of merging configuration keys

meta.merged_keys(files: list, warn: bool = False) dict[source]

Merge metadata from multiple files into a single dictionary.

Parameters:
  • files – list of files to merge

  • warn – whether to warn about inconsistent metadata

Returns:

merged metadata

meta.parents(files: list) list[source]

Retrieve all the parents from a set of files.

Parameters:

files – list of files to merge

Returns:

list of parent dictionaries of the form {“fid”: fid}

meta.set_method(method: ConfigDict, warn: bool = False) None[source]

Set merging method parameters.

Parameters:
  • method – merging method ConfigDict

  • warn – whether to warn about overriding existing method parameters

meta.set_method_auto(metadata: dict) None[source]

Auto-select merging method based on metadata conditions.

Parameters:

metadata – metadata dictionary

meta.set_method_custom() None[source]

Set merging method parameters for a custom script.

meta.validate(name: str, metadata: dict, requirements: bool = True) bool[source]

Validate the metadata dictionary.

Parameters:
  • name – name of the file (for logging)

  • metadata – metadata dictionary

  • requirements – whether to check for required keys

Returns:

True if metadata is valid, False otherwise