Hydra utility library¶
Utility functions¶
Units and Dimensions¶
-
hydra_base.lib.units.
add_dimension
(dimension, **kwargs)¶ Add the dimension defined into the object “dimension” to the DB If dimension[“project_id”] is None it means that the dimension is global, otherwise is property of a project If the dimension exists emits an exception
-
hydra_base.lib.units.
add_unit
(unit, **kwargs)¶ Add the unit defined into the object “unit” to the DB If unit[“project_id”] is None it means that the unit is global, otherwise is property of a project If the unit exists emits an exception
A minimal example:
new_unit = dict( name = 'Teaspoons per second', abbreviation = 'tsp s^-1', cf = 0, # Constant conversion factor lf = 1.47867648e-05, # Linear conversion factor dimension_id = 2, description = 'A flow of one teaspoon per second.', ) add_unit(new_unit)
-
hydra_base.lib.units.
bulk_add_dimensions
(dimension_list, **kwargs)¶ Save all the dimensions contained in the passed list.
-
hydra_base.lib.units.
bulk_add_units
(unit_list, **kwargs)¶ Save all the units contained in the passed list, with the name of their dimension.
-
hydra_base.lib.units.
check_consistency
(measure_or_unit_abbreviation, dimension, **kwargs)¶ Check whether a specified unit is consistent with the physical dimension asked for by the attribute or the dataset.
-
hydra_base.lib.units.
check_unit_matches_dimension
(unit_id, dimension_id, **kwargs)¶ Check whether a specified unit is part of the specified dimension.
- Args:
unit_id (int): The ID of the unit to compare with the dimension dimension_id (int): The ID of the dimension to check
- Throws:
hydra_base.ValidationError when the unit_id does not match the supplied dimension
- Returns:
None
-
hydra_base.lib.units.
convert
(values, source_measure_or_unit_abbreviation, target_measure_or_unit_abbreviation)¶ Convert a value or a list of values from an unit to another one. The two units must represent the same physical dimension.
-
hydra_base.lib.units.
convert_dataset
(dataset_id, target_unit_abbreviation, **kwargs)¶ Convert a whole dataset (specified by ‘dataset_id’) to new unit (‘target_unit_abbreviation’). Conversion ALWAYS creates a NEW dataset, so function returns the dataset ID of new dataset.
-
hydra_base.lib.units.
convert_units
(values, source_measure_or_unit_abbreviation, target_measure_or_unit_abbreviation, **kwargs)¶ Convert a value from one unit to another one.
- Args:
values: single measure or an array of measures source_measure_or_unit_abbreviation: A measure in the source unit, or just the abbreviation of the source unit, from which convert the provided measure value/values target_measure_or_unit_abbreviation: A measure in the target unit, or just the abbreviation of the target unit, into which convert the provided measure value/values
Example:
>>> cli = PluginLib.connect() >>> cli.service.convert_units(20.0, 'm', 'km') 0.02
- Returns:
Always a list
-
hydra_base.lib.units.
delete_dimension
(dimension_id, **kwargs)¶ Delete a dimension from the DB. Raises and exception if the dimension does not exist
-
hydra_base.lib.units.
delete_unit
(unit_id, **kwargs)¶ Delete a unit from the DB. Raises and exception if the unit does not exist
-
hydra_base.lib.units.
exists_dimension
(dimension_name, **kwargs)¶ Given a dimension returns True if it exists, False otherwise
-
hydra_base.lib.units.
get_dimension
(dimension_id, do_accept_dimension_id_none=False, **kwargs)¶ Given a dimension id returns all its data
-
hydra_base.lib.units.
get_dimension_by_name
(dimension_name, **kwargs)¶ Given a dimension name returns all its data. Used in convert functions
-
hydra_base.lib.units.
get_dimension_by_unit_id
(unit_id, do_accept_unit_id_none=False, **kwargs)¶ Return the physical dimension a given unit id refers to. if do_accept_unit_id_none is False, it raises an exception if unit_id is not valid or None if do_accept_unit_id_none is True, and unit_id is None, the function returns a Dimension with id None (unit_id can be none in some cases)
-
hydra_base.lib.units.
get_dimension_by_unit_measure_or_abbreviation
(measure_or_unit_abbreviation, **kwargs)¶ Return the physical dimension a given unit abbreviation of a measure, or the measure itself, refers to. The search key is the abbreviation or the full measure
-
hydra_base.lib.units.
get_dimensions
(**kwargs)¶ Returns a list of objects describing all the dimensions with all the units.
-
hydra_base.lib.units.
get_empty_dimension
(**kwargs)¶ Returns a dimension object initialized with empty values
-
hydra_base.lib.units.
get_unit
(unit_id, **kwargs)¶ Returns a single unit
-
hydra_base.lib.units.
get_unit_by_abbreviation
(unit_abbreviation, **kwargs)¶ Returns a single unit by abbreviation. Used as utility function to resolve string to id
-
hydra_base.lib.units.
get_units
(**kwargs)¶ Returns all the units
-
hydra_base.lib.units.
is_global_dimension
(dimension_id, **kwargs)¶ Returns True if the dimension is Global, False is it is assigned to a project
-
hydra_base.lib.units.
is_global_unit
(unit_id, **kwargs)¶ Returns True if the Unit is Global, False is it is assigned to a project ‘unit’ is a Unit object
-
hydra_base.lib.units.
log
= <Logger hydra_base.lib.units (INFO)>¶ DIMENSION FUNCTIONS - VARIOUS
-
hydra_base.lib.units.
update_dimension
(dimension, **kwargs)¶ Update a dimension in the DB. Raises and exception if the dimension does not exist. The key is ALWAYS the name and the name itself is not modificable
-
hydra_base.lib.units.
update_unit
(unit, **kwargs)¶ Update a unit in the DB. Raises and exception if the unit does not exist
-
hydra_base.lib.units.
validate_resource_attributes
(resource, attributes, template, check_unit=True, exact_match=False, **kwargs)¶ Validate that the resource provided matches the template. Only passes if the resource contains ONLY the attributes specified in the template.
The template should take the form of a dictionary, as should the resources.
- check_unit: Makes sure that if a unit is specified in the template, it
is the same in the data
- exact_match: Ensures that all the attributes in the template are in
the data also. By default this is false, meaning a subset of the template attributes may be specified in the data. An attribute specified in the data must be defined in the template.
@returns a list of error messages. An empty list indicates no errors were found.
Logging¶
-
class
hydra_base.hydra_logging.
ColorizingStreamHandler
(stream=None)¶ -
emit
(record)¶ Emit a record.
If a formatter is specified, it is used to format the record. The record is then written to the stream with a trailing newline. If exception information is present, it is formatted using traceback.print_exception and appended to the stream. If the stream has an ‘encoding’ attribute, it is used to determine how to do the output to the stream.
-
format
(record)¶ Format the specified record.
If a formatter is set, use it. Otherwise, use the default formatter for the module.
-
Error classes¶
-
exception
hydra_base.exceptions.
DataError
(message='A hydra error has occurred')¶
-
exception
hydra_base.exceptions.
HydraAttributeError
(message='A hydra error has occurred')¶
-
exception
hydra_base.exceptions.
HydraDBError
(message='A hydra error has occurred')¶
-
exception
hydra_base.exceptions.
HydraError
(message='A hydra error has occurred')¶
-
exception
hydra_base.exceptions.
HydraPluginError
(message='A hydra error has occurred')¶
-
exception
hydra_base.exceptions.
OwnershipError
(message='A hydra error has occurred')¶
-
exception
hydra_base.exceptions.
PermissionError
(message='A hydra error has occurred')¶
-
exception
hydra_base.exceptions.
ResourceNotFoundError
(message='A hydra error has occurred')¶
-
exception
hydra_base.exceptions.
ValidationError
(message='A hydra error has occurred')¶