diff options
author | Théo de la Hogue | 2024-04-22 15:06:50 +0200 |
---|---|---|
committer | Théo de la Hogue | 2024-04-22 15:06:50 +0200 |
commit | c0cd527c8977ad56102f86ec9daecea10db901c6 (patch) | |
tree | d838ea1eb56910116f513dd45eb09e6810f1400f /docs/user_guide/pipeline_input_context/context_definition.md | |
parent | 81e6bbf2e4b4c9ba93690dc0989cbf5686243b03 (diff) | |
parent | e7344955a1368c24c55fc12b2cb9ff2582278785 (diff) | |
download | argaze-c0cd527c8977ad56102f86ec9daecea10db901c6.zip argaze-c0cd527c8977ad56102f86ec9daecea10db901c6.tar.gz argaze-c0cd527c8977ad56102f86ec9daecea10db901c6.tar.bz2 argaze-c0cd527c8977ad56102f86ec9daecea10db901c6.tar.xz |
Merge doc/update branch.
Diffstat (limited to 'docs/user_guide/pipeline_input_context/context_definition.md')
-rw-r--r-- | docs/user_guide/pipeline_input_context/context_definition.md | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/docs/user_guide/pipeline_input_context/context_definition.md b/docs/user_guide/pipeline_input_context/context_definition.md new file mode 100644 index 0000000..9f4981c --- /dev/null +++ b/docs/user_guide/pipeline_input_context/context_definition.md @@ -0,0 +1,58 @@ +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 required parameter.""" + return self.__parameter + + @parameter.setter + def parameter(self, parameter): + self.__parameter = parameter + + @DataFeatures.PipelineStepEnter + def __enter__(self): + + # Start context according any required 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) + + return self + + @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).
\ No newline at end of file |