aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThéo de la Hogue2024-04-10 12:37:08 +0200
committerThéo de la Hogue2024-04-10 12:37:08 +0200
commitc03097c7b8e9b3fbbe188c0c99908fae2b28ba37 (patch)
treec7a5d1db9d65e27db19c0f91d74c8cd3202ffc8a
parentf3a09d79cafef66693c1792d21d722870ab53dc7 (diff)
downloadargaze-c03097c7b8e9b3fbbe188c0c99908fae2b28ba37.zip
argaze-c03097c7b8e9b3fbbe188c0c99908fae2b28ba37.tar.gz
argaze-c03097c7b8e9b3fbbe188c0c99908fae2b28ba37.tar.bz2
argaze-c03097c7b8e9b3fbbe188c0c99908fae2b28ba37.tar.xz
Adding new argaze.load package function to ease the access to DataFeatures.from_json function.
-rw-r--r--docs/user_guide/aruco_markers_pipeline/configuration_and_execution.md6
-rw-r--r--docs/user_guide/gaze_analysis_pipeline/advanced_topics/module_loading.md4
-rw-r--r--docs/user_guide/gaze_analysis_pipeline/configuration_and_execution.md6
-rw-r--r--src/argaze.test/ArUcoMarkers/ArUcoCamera.py4
-rw-r--r--src/argaze/__init__.py15
-rw-r--r--src/argaze/__main__.py4
6 files changed, 27 insertions, 12 deletions
diff --git a/docs/user_guide/aruco_markers_pipeline/configuration_and_execution.md b/docs/user_guide/aruco_markers_pipeline/configuration_and_execution.md
index 885db50..dd36ed3 100644
--- a/docs/user_guide/aruco_markers_pipeline/configuration_and_execution.md
+++ b/docs/user_guide/aruco_markers_pipeline/configuration_and_execution.md
@@ -9,7 +9,7 @@ As [ArUcoCamera](../../argaze.md/#argaze.ArUcoMarkers.ArUcoCamera) inherits from
## Load JSON configuration file
-The [ArUcoCamera](../../argaze.md/#argaze.ArUcoMarkers.ArUcoCamera) internal pipeline loads from a JSON configuration file thanks to [ArUcoCamera.from_json](../../argaze.md/#argaze.ArUcoMarkers.ArUcoCamera.from_json) class method.
+An [ArUcoCamera](../../argaze.md/#argaze.ArUcoMarkers.ArUcoCamera) pipeline can be loaded from a JSON configuration file thanks to [argaze.load](../../argaze.md/#argaze.load) package method.
Here is a simple JSON [ArUcoCamera](../../argaze.md/#argaze.ArUcoMarkers.ArUcoCamera) configuration file example:
@@ -53,10 +53,10 @@ Here is a simple JSON [ArUcoCamera](../../argaze.md/#argaze.ArUcoMarkers.ArUcoCa
Then, here is how to load the JSON file:
```python
-from argaze.ArUcoMarkers import ArUcoCamera
+import argaze
# Load ArUcoCamera
-with ArUcoCamera.ArUcoCamera.from_json('./configuration.json') as aruco_camera:
+with argaze.load('./configuration.json') as aruco_camera:
# Do something with ArUcoCamera
...
diff --git a/docs/user_guide/gaze_analysis_pipeline/advanced_topics/module_loading.md b/docs/user_guide/gaze_analysis_pipeline/advanced_topics/module_loading.md
index fb717b6..0e439a9 100644
--- a/docs/user_guide/gaze_analysis_pipeline/advanced_topics/module_loading.md
+++ b/docs/user_guide/gaze_analysis_pipeline/advanced_topics/module_loading.md
@@ -37,13 +37,13 @@ To do so, simply prepend the package where to find the module into the JSON conf
Then, load your package from the python script where the [ArFrame](../../../argaze.md/#argaze.ArFeatures.ArFrame) is created.
```python
-from argaze import ArFeatures
+import argaze
# Import your own package
import my_package
# Load ArFrame
-with ArFeatures.ArFrame.from_json('./configuration.json') as ar_frame:
+with argaze.load('./configuration.json') as ar_frame:
# Print ArFrame attributes
for module, scan_path_analyzer in ar_frame.scan_path_analyzers.items():
diff --git a/docs/user_guide/gaze_analysis_pipeline/configuration_and_execution.md b/docs/user_guide/gaze_analysis_pipeline/configuration_and_execution.md
index 7fbbef0..47b820b 100644
--- a/docs/user_guide/gaze_analysis_pipeline/configuration_and_execution.md
+++ b/docs/user_guide/gaze_analysis_pipeline/configuration_and_execution.md
@@ -7,7 +7,7 @@ The [ArFrame](../../argaze.md/#argaze.ArFeatures.ArFrame) class defines a rectan
## Load JSON configuration file
-The [ArFrame](../../argaze.md/#argaze.ArFeatures.ArFrame) internal pipeline is entirely customizable from a JSON configuration file thanks to [ArFrame.from_json](../../argaze.md/#argaze.ArFeatures.ArFrame.from_json) class method.
+An [ArFrame](../../argaze.md/#argaze.ArFeatures.ArFrame) pipeline can be loaded from a JSON configuration file thanks to [argaze.load](../../argaze.md/#argaze.load) package method.
Here is a simple JSON [ArFrame](../../argaze.md/#argaze.ArFeatures.ArFrame) configuration file example:
@@ -36,10 +36,10 @@ Here is a simple JSON [ArFrame](../../argaze.md/#argaze.ArFeatures.ArFrame) conf
Then, here is how to load the JSON file:
```python
-from argaze import ArFeatures
+import argaze
# Load ArFrame
-with ArFeatures.ArFrame.from_json('./configuration.json') as ar_frame:
+with argaze.load('./configuration.json') as ar_frame:
# Do something with ArFrame
...
diff --git a/src/argaze.test/ArUcoMarkers/ArUcoCamera.py b/src/argaze.test/ArUcoMarkers/ArUcoCamera.py
index 091383e..eb930ab 100644
--- a/src/argaze.test/ArUcoMarkers/ArUcoCamera.py
+++ b/src/argaze.test/ArUcoMarkers/ArUcoCamera.py
@@ -19,7 +19,7 @@ __license__ = "GPLv3"
import unittest
import os
-from argaze.ArUcoMarkers import ArUcoCamera
+import argaze
import numpy
@@ -34,7 +34,7 @@ class TestArUcoCameraClass(unittest.TestCase):
json_filepath = os.path.join(current_directory, 'utils/aruco_camera.json')
# Load test aruco camera
- with ArUcoCamera.ArUcoCamera.from_json(json_filepath) as aruco_camera:
+ with argaze.load(json_filepath) as aruco_camera:
# Check aruco camera meta data
self.assertEqual(aruco_camera.name, "TestArUcoCamera")
diff --git a/src/argaze/__init__.py b/src/argaze/__init__.py
index 8c0068f..c492882 100644
--- a/src/argaze/__init__.py
+++ b/src/argaze/__init__.py
@@ -3,3 +3,18 @@ ArGaze is divided in submodules dedicated to various specifics features.
"""
__all__ = ['ArUcoMarkers', 'AreaOfInterest', 'ArFeatures', 'GazeFeatures', 'GazeAnalysis', 'PupilFeatures',
'PupilAnalysis', 'DataFeatures', 'utils']
+
+def load(filepath: str) -> any:
+ """
+ Load object instance from .json file.
+
+ !!! note
+ The directory where configuration file is will be the global working directory.
+
+ Parameters:
+ configuration_filepath: path to json configuration file
+ """
+
+ from argaze import DataFeatures
+
+ return DataFeatures.from_json(filepath) \ No newline at end of file
diff --git a/src/argaze/__main__.py b/src/argaze/__main__.py
index 3e1fe9e..bd0f34c 100644
--- a/src/argaze/__main__.py
+++ b/src/argaze/__main__.py
@@ -20,7 +20,7 @@ import argparse
import logging
import contextlib
-from .DataFeatures import from_json
+from . import load
from .ArFeatures import ArCamera, ArContext
import cv2
@@ -37,7 +37,7 @@ args = parser.parse_args()
logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG if args.verbose else logging.INFO)
# Load context from JSON file
-with from_json(args.context_file) as context:
+with load(args.context_file) as context:
# Loaded object must be a subclass of ArContext
if not issubclass(type(context), ArContext):