Skip to content

controllers

oxytcmri.interface.controllers

Classes:

Name Description
Controller

Controller(persistence_gateway, importers, listeners=None)

Initialize the controller.

Parameters:

persistence_gateway: DataBaseGateway The persistence gateway for database operations. importers: list[Importer] List of importers to use for importing data. listeners: list[Listener], optional List of listeners for event dispatching.

Methods:

Name Description
compute_normative_dti_values

Attributes:

Name Type Description
event_dispatcher
repository_registry
Source code in oxytcmri/interface/controllers.py
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
def __init__(self,
             persistence_gateway: DataBaseGateway,
             importers: list[Importer],
             listeners: Optional[list[Listener]] = None):
    """
    Initialize the controller.

    Parameters:
    -----------
    persistence_gateway: DataBaseGateway
        The persistence gateway for database operations.
    importers: list[Importer]
        List of importers to use for importing data.
    listeners: list[Listener], optional
        List of listeners for event dispatching.
    """
    # event dispatcher
    self.event_dispatcher = EventDispatcher()
    if listeners is not None:
        for listener in listeners:
            self.event_dispatcher.register(listener)

    # create repositories
    self.repository_registry = DataBaseRepositoriesRegistry(persistence_gateway)

    # import data from files
    for importer in importers:
        importer.register_repository(self.repository_registry.list_all_repositories())
        importer.import_data()

event_dispatcher = EventDispatcher() instance-attribute

repository_registry = DataBaseRepositoriesRegistry(persistence_gateway) instance-attribute

compute_normative_dti_values(dti_metrics=None, statistics_strategies=None)

Source code in oxytcmri/interface/controllers.py
46
47
48
49
50
51
52
53
54
55
56
57
58
59
def compute_normative_dti_values(self,
                                 dti_metrics: Optional[list[DTIMetric]] = None,
                                 statistics_strategies: Optional[list[StatisticStrategy]] = None):

    # default values
    dti_metrics = dti_metrics or list(DTIMetric)
    statistics_strategies = statistics_strategies or StatisticsStrategies.all()
    compute_normative_dti_values = ComputeDTINormativeValues(
        repositories_registry=self.repository_registry,
        dispatcher=self.event_dispatcher
    )
    compute_normative_dti_values(
        dti_metrics=dti_metrics,
        statistics_strategies=statistics_strategies,)