def set_config(self, config): """set runtime time options""" try: options = _python_to_pressio(config) if pressio.compressor_set_options(self._compressor, options): raise PressioCompressor.from_compressor(self._compressor) finally: pressio.options_free(options)
def evaluate(self, input=None, compressed=None, output=None): results_lp = None try: input_lp = input if input is None else pressio.io_data_from_numpy( input) compressed_lp = compressed if compressed is None else pressio.io_data_from_bytes( compressed) output_lp = output if output is None else pressio.io_data_from_numpy( output) results_lp = pressio.metrics_evaluate(self._metric, input_lp, compressed_lp, output_lp) return _pressio_to_python(results_lp) finally: if input_lp is not None: pressio.data_free(input_lp) if output_lp is not None: pressio.data_free(output_lp) if compressed_lp is not None: pressio.data_free(compressed_lp) if results_lp is not None: pressio.options_free(results_lp)
def __init__(self, ids, early_config, metrics_config, name): try: config_lp = None library = pressio.instance() metrics_ids = pressio.vector_string([i.encode() for i in ids]) self._metric = pressio.new_metrics(library, metrics_ids) self._metric_id = "composite" if not self._metric: raise PressioException.from_library(library) if name is not None: pressio.metrics_set_name(self._metric, name.encode()) early_config_lp = _python_to_pressio(early_config) pressio.metrics_set_options(self._metric, early_config_lp) pressio.options_free(early_config_lp) config_lp_template = pressio.metrics_get_options(self._metric) config_lp = _python_to_pressio(metrics_config, config_lp_template) pressio.metrics_set_options(self._metric, config_lp) finally: pressio.release(library) pressio.options_free(config_lp) pressio.options_free(config_lp_template)
def __init__(self, io, early_config, io_config, name): try: config_lp = None library = pressio.instance() self._io = pressio.get_io(library, io.encode()) if not self._io: raise PressioException.from_library(library) if name is not None: pressio.compressor_set_name(self._io, name.encode()) early_config_lp = _python_to_pressio(early_config) pressio.io_set_options(self._io, early_config_lp) pressio.options_free(early_config_lp) config_lp = pressio.io_get_options(self._io) config_lp = _python_to_pressio(io_config, config_lp) pressio.io_set_options(self._io, config_lp) finally: pressio.release(library) pressio.options_free(config_lp)
def __init__(self, compressor_id="noop", early_config={}, compressor_config={}, name=""): """wrapper for a libpressio compressor object params: compressor_id: str - the compressor_id for the underlying compressor early_config: dict - converted to pressio_options to configure the structure of the compressor compressor_config: dict - converted to pressio_options to configure the compressor name: str - name to use for the compressor when used in a hierarchical mode """ try: library = pressio.instance() self._name = name self._compressor_id = compressor_id self._compressor = pressio.get_compressor(library, compressor_id.encode()) if self._compressor is None: raise PressioException.from_library(library) if name: pressio.compressor_set_name(self._compressor, name.encode()) early_config_lp = _python_to_pressio(early_config) pressio.compressor_set_options(self._compressor, early_config_lp) pressio.options_free(early_config_lp) config_lp = pressio.compressor_get_options(self._compressor) config_lp = _python_to_pressio(compressor_config, config_lp) pressio.compressor_set_options(self._compressor, config_lp) pressio.options_free(config_lp) finally: pressio.release(library)
def get_configuration(self): """get compile time configuration""" lp_options = pressio.io_get_configuration(self._io) options = _pressio_to_python(lp_options) pressio.options_free(lp_options) return options
def get_config(self): """get runtime time options""" lp_options = pressio.compressor_get_options(self._compressor) options = _pressio_to_python(lp_options) pressio.options_free(lp_options) return options
def get_metrics(self): """get runtime time metrics""" lp_options = pressio.compressor_get_metrics_results(self._compressor) options = _pressio_to_python(lp_options) pressio.options_free(lp_options) return options
def _get_config(self): lp_options = pressio.metrics_get_options(self._metric) options = _pressio_to_python(lp_options) pressio.options_free(lp_options) return options
def _get_config(self): lp_options = pressio.compressor_get_options(self._compressor) options = _pressio_to_python(lp_options) pressio.options_free(lp_options) return options