five_safes_tes_analytics.aggregation package

Submodules

five_safes_tes_analytics.aggregation.data_processor module

class five_safes_tes_analytics.aggregation.data_processor.DataProcessor[source]

Bases: object

Handles data processing, aggregation, and file operations for federated analysis.

aggregate_data(inputs: List[str] | Dict[str, List[float]] | List[Dict[str, Any]], analysis_type: str) → ndarray | List[ndarray][source]

Aggregate data based on analysis type.

Parameters:
  • inputs – Either List[str] (CSV strings), Dict[str, List[float]] (pre-aggregated JSON dict), or List[Dict[str, Any]] (list of JSON results from multiple TREs)

  • analysis_type (str) – Type of analysis to perform

Returns:

Aggregated data

Return type:

Union[np.ndarray, List[np.ndarray]]

convert_csv_to_dict(csv_inputs: List[str], analysis_config: Dict[str, Any]) → Dict[str, Any][source]

Convert CSV strings to dict format matching the analysis return_format.

Parameters:
  • csv_inputs – List of CSV strings from multiple TREs

  • analysis_config – Analysis configuration with return_format

Returns:

Dict in the format expected by the analysis (dict of lists for single-row, or dict with row_data_key for row-based analyses)

five_safes_tes_analytics.aggregation.data_processor.combine_contingency_tables(contingency_tables: List[str] | Dict[str, Any]) → Dict[str, Any][source]

Combine multiple contingency tables.

Parameters:

contingency_tables (List[str]) – List of CSV strings containing contingency tables

Returns:

Combined contingency table as dictionary

Return type:

Dict[str, Any]

five_safes_tes_analytics.aggregation.data_processor.dict_to_array(contingency_dict: Dict[str, Any]) → ndarray[source]

Convert contingency table dictionary to numpy array.

Parameters:

contingency_dict (Dict[str, Any]) – Contingency table as dictionary

Returns:

Contingency table as 2D array

Return type:

np.ndarray

five_safes_tes_analytics.aggregation.statistical_analyzer module

These classes are for the aggregation of data, and the analysis of data, i.e., to be run on the aggregator, NOT the client.

class five_safes_tes_analytics.aggregation.statistical_analyzer.AnalysisBase[source]

Bases: ABC

Abstract base class for statistical analysis.

abstractmethod aggregate_data(input_data: ndarray | List[ndarray] | Dict[str, List[float]]) → ndarray | Dict[str, List[float]][source]

Aggregate data for analysis.

abstractmethod analyze(aggregated_data: ndarray | Dict[str, List[float]]) → float | Dict[str, Any][source]

Analyze aggregated data.

abstract property return_format: dict

Return format specification.

class five_safes_tes_analytics.aggregation.statistical_analyzer.ContingencyTableAnalysis[source]

Bases: AnalysisBase

Analysis class for chi-squared test using scipy.

aggregate_data(input_data: ndarray | List[ndarray] | Dict[str, List[float]]) → ndarray | Dict[str, List[float]][source]

Aggregate contingency tables.

analyze() → tuple[source]

Calculate contingency table.

property return_format: dict

Return format specification.

class five_safes_tes_analytics.aggregation.statistical_analyzer.MeanAnalysis[source]

Bases: AnalysisBase

Analysis class for calculating mean values.

aggregate_data(input_data: ndarray | List[ndarray] | Dict[str, List[float]]) → ndarray | Dict[str, List[float]][source]

Aggregate data for mean calculation.

analyze() → float[source]

Calculate mean from aggregated values.

property return_format: dict

Return format specification.

class five_safes_tes_analytics.aggregation.statistical_analyzer.MetadataAnalysis[source]

Bases: AnalysisBase

Analysis class for calculating metadata values.

aggregate_data(input_data: ndarray | List[ndarray] | Dict[str, List[float]]) → ndarray | Dict[str, List[float]][source]

Aggregate data for mean calculation.

analyze() → float[source]

Calculate mean from aggregated values.

property return_format: dict

Return format specification.

class five_safes_tes_analytics.aggregation.statistical_analyzer.PMCCAnalysis[source]

Bases: AnalysisBase

Analysis class for calculating Pearson’s correlation coefficient.

aggregate_data(input_data: ndarray | List[ndarray] | Dict[str, List[float]]) → ndarray | Dict[str, List[float]][source]

Aggregate data for PMCC calculation.

analyze() → float[source]

Calculate Pearson’s correlation coefficient from aggregated values.

property return_format: dict

Return format specification.

class five_safes_tes_analytics.aggregation.statistical_analyzer.PercentileSketchAnalysis[source]

Bases: AnalysisBase

aggregate_data(input_data: ndarray | List[ndarray] | Dict[str, List[float]]) → ndarray | Dict[str, List[float]][source]

Aggregate percentile sketches.

analyze(aggregated_data: ndarray, percentile: float) → float[source]

Analyze aggregated data.

property return_format: dict

Return format specification.

class five_safes_tes_analytics.aggregation.statistical_analyzer.StatisticalAnalyzer[source]

Bases: object

Handles statistical calculations and analysis for federated data. Uses individual analysis classes that inherit from AnalysisBase.

analyze_data(input_data: ndarray | List[ndarray] | Dict[str, List[float]], analysis_type: str) → float | Dict[str, Any][source]

Analyze data using the specified analysis type.

Parameters:
  • input_data – Input data (numpy array, list of arrays, or dict of lists)

  • analysis_type (str) – Type of analysis to perform

Returns:

Analysis result

Return type:

Union[float, Dict[str, Any]]

Raises:

ValueError – If analysis type is not supported

get_analysis_config(analysis_type: str) → Dict[str, Any][source]

Get configuration for a specific analysis type.

Parameters:

analysis_type (str) – Type of analysis

Returns:

Analysis configuration

Return type:

Dict[str, Any]

Raises:

ValueError – If analysis type is not supported

get_supported_analysis_types() → List[str][source]

Get list of supported analysis types.

Returns:

List of supported analysis types

Return type:

List[str]

class five_safes_tes_analytics.aggregation.statistical_analyzer.VarianceAnalysis[source]

Bases: AnalysisBase

Analysis class for calculating variance.

aggregate_data(input_data: ndarray | List[ndarray] | Dict[str, List[float]]) → ndarray | Dict[str, List[float]][source]

Aggregate data for variance calculation.

analyze() → float[source]

Calculate variance from aggregated values.

property return_format: dict

Return format specification.

five_safes_tes_analytics.aggregation.statistical_analyzer.get_statistical_analysis_registry()[source]

Get registry of all statistical analysis classes.

Module contents