Esempio n. 1
0
 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)
Esempio n. 2
0
 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)
Esempio n. 3
0
    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)
Esempio n. 4
0
    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)
Esempio n. 5
0
    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)
Esempio n. 6
0
 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
Esempio n. 7
0
 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
Esempio n. 8
0
 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
Esempio n. 9
0
 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
Esempio n. 10
0
 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