Source code for bspump.analyzer.sessionanalyzer

import logging

from .analyzer import Analyzer
from ..matrix.sessionmatrix import SessionMatrix, PersistentSessionMatrix

###

L = logging.getLogger(__name__)

###


[docs] class SessionAnalyzer(Analyzer): """ This is the analyzer for events with multiple different dimensions. `SessionAnalyzer` operates over the `SessionMatrix` object. `column_formats` is an array, each element contains the letter from the table + number: +------------+------------------+ | Name | Definition | +============+==================+ | 'b' | Byte | +------------+------------------+ | 'i' | Signed integer | +------------+------------------+ | 'u' | Unsigned integer | +------------+------------------+ | 'f' | Floating point | +------------+------------------+ | 'c' | Complex floating | | | point | +------------+------------------+ | 'S' | String | +------------+------------------+ | 'U' | Unicode string | +------------+------------------+ | 'V' | Raw data | +------------+------------------+ Example: 'i8' stands for int64. Important! However it is possible to use all these letters, it is recommended to use only 'i' for integers, 'f' for floats, 'U' for strings. Anything else might cause problems in serialization. It is possible to create a matrix with elements of specified format. The tuple with number of dimensions should stand before the letter. Example: '(6, 3)i8' will create the matrix with n rows, 6 columns and 3 third dimensions with integer elements. `column_names` is an array with names of each column, with the same length as `column_formats`. `matrix_id` is an id of `SessionMatrix` object defined alternatively. """
[docs] def __init__( self, app, pipeline, matrix_id=None, dtype="float_", analyze_on_clock=False, persistent=False, id=None, config=None, ): """ Description: **Parameters** app : Application Name of the Application. pipeline : Pipeline Name of the Pipeline matrix_id : str, default = None dtype : str, default = 'float_' analyze_on_clock : bool, default = False persistent : bool, default = False id : str, default = None config : JSON, default = None configuration file with additional information. """ super().__init__( app, pipeline, analyze_on_clock=analyze_on_clock, id=id, config=config ) svc = app.get_service("bspump.PumpService") if matrix_id is None: s_id = self.Id + "Matrix" if persistent: self.Sessions = PersistentSessionMatrix( app, dtype, id=s_id, config=config ) else: self.Sessions = SessionMatrix(app, dtype, id=s_id, config=config) svc.add_matrix(self.Sessions) else: self.Sessions = svc.locate_matrix(matrix_id)