blob: 7d30438e5ebc2bf9eca8798edced70346b8dc1e3 (
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
52
53
54
55
56
57
|
Define a context class
======================
The [ArContext](../../argaze.md/#argaze.ArFeatures.ArContext) class defines a generic class interface to handle pipeline inputs according to [Python context manager feature](https://docs.python.org/3/reference/datamodel.html#context-managers).
# Write Python context file
A specific [ArContext](../../argaze.md/#argaze.ArFeatures.ArContext) can be defined into a Python file.
Here is an example context defined into *my_context.py* file:
```python
from argaze import ArFeatures, DataFeatures
class Example(ArFeatures.ArContext):
@DataFeatures.PipelineStepInit
def __init__(self, **kwargs):
# Init ArContext class
super().__init__()
# Init private attribute
self.__parameter = ...
@property
def parameter(self):
"""Any context specific parameter."""
return self.__parameter
@parameter.setter
def parameter(self, parameter):
self.__parameter = parameter
@DataFeatures.PipelineStepEnter
def __enter__(self):
# Start context according any specific parameter
... self.parameter
# Assuming that timestamp, x and y values are available
...
# Process timestamped gaze position
self._process_gaze_position(timestamp = timestamp, x = x, y = y)
@DataFeatures.PipelineStepExit
def __exit__(self, exception_type, exception_value, exception_traceback):
# End context
...
```
!!! note ""
The next chapter explains how to [load a context to connect it with a pipeline](configuration_and_connection.md).
|