aboutsummaryrefslogtreecommitdiff
path: root/docs/user_guide/gaze_analysis_pipeline/advanced_topics/module_loading.md
blob: 6d37ea605db46bae6f8b8fbd30758edd80979c7c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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
45
46
47
48
49
50
51
Load modules from another package
=================================

It is possible to load [GazeMovementIdentifier](../../../argaze.md/#argaze.GazeFeatures.GazeMovementIdentifier), [ScanPathAnalyzer](../../../argaze.md/#argaze.GazeFeatures.ScanPathAnalyzer), [AOIMatcher](../../../argaze.md/#argaze.GazeFeatures.AOIMatcher) or [AOIScanPathAnalyzer](../../../argaze.md/#argaze.GazeFeatures.AOIScanPathAnalyzer) modules from another [python package](https://docs.python.org/3/tutorial/modules.html#packages).

To do so, simply prepend the package where to find the module into the JSON configuration file:

```
{
		...
		"gaze_movement_identifier": {
			"my_package.MyGazeMovementIdentifierAlgorithm": {
				"specific_plugin_parameter": 0
			}
		},
		...
		"scan_path_analyzers": {
			"my_package.MyScanPathAnalyzerAlgorithm": {
				"specific_plugin_parameter": 0
			}
		}
		...
		"aoi_matcher": {
			"my_package.MyAOIMatcherAlgorithm": {
				"specific_plugin_parameter": 0
			}
		}
		...
		"aoi_scan_path_analyzers": {
			"my_package.MyAOIScanPathAnalyzerAlgorithm": {
				"specific_plugin_parameter": 0
			}
		}
}
```

Then, load your package from the python script where the [ArFrame](../../../argaze.md/#argaze.ArFeatures.ArFrame) is created.

```python
from argaze import ArFeatures

# Import your own package
import my_package

# Load ArFrame
ar_frame = ArFeatures.ArFrame.from_json('./configuration.json')

# Print ArFrame attributes
for module, scan_path_analyzer in ar_frame.scan_path_analyzers.items():
	print('scan path analyzer type:', type(scan_path_analyzer))
```