mocap-desktop-gui 0.22.0__py3-none-any.whl → 0.24.6__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (136) hide show
  1. mocap_desktop_gui/__init__.py +4 -4
  2. mocap_desktop_gui/axengine_1738076939_1010362681.py +246 -0
  3. mocap_desktop_gui/gen/__init__.py +4 -4
  4. mocap_desktop_gui/gen/rc_icons.py +4 -4
  5. mocap_desktop_gui/gen/rc_qml.py +4 -4
  6. mocap_desktop_gui/gen/rc_style.py +4 -4
  7. mocap_desktop_gui/main.py +4 -4
  8. mocap_desktop_gui/mc/__init__.py +4 -4
  9. mocap_desktop_gui/mc/bld_fbx_2_glb.py +3 -3
  10. mocap_desktop_gui/mc/bld_utils.py +4 -4
  11. mocap_desktop_gui/mc/camera_models.py +4 -4
  12. mocap_desktop_gui/mc/mc_actor_profile.py +3 -3
  13. mocap_desktop_gui/mc/mc_actor_profile_model.py +3 -3
  14. mocap_desktop_gui/mc/mc_app_manager.py +4 -4
  15. mocap_desktop_gui/mc/mc_auth_core.py +3 -3
  16. mocap_desktop_gui/mc/mc_auth_service.py +4 -4
  17. mocap_desktop_gui/mc/mc_calib.py +4 -4
  18. mocap_desktop_gui/mc/mc_camera_views_model.py +3 -3
  19. mocap_desktop_gui/mc/mc_cloud_service.py +3 -3
  20. mocap_desktop_gui/mc/mc_common_paths.py +3 -3
  21. mocap_desktop_gui/mc/mc_context.py +3 -3
  22. mocap_desktop_gui/mc/mc_diagnosis.py +4 -4
  23. mocap_desktop_gui/mc/mc_file_util.py +3 -3
  24. mocap_desktop_gui/mc/mc_import_folder.py +3 -3
  25. mocap_desktop_gui/mc/mc_project.py +3 -3
  26. mocap_desktop_gui/mc/mc_project_manager.py +3 -3
  27. mocap_desktop_gui/mc/mc_scene_3d_service.py +3 -3
  28. mocap_desktop_gui/mc/mc_sync_media_player.py +4 -4
  29. mocap_desktop_gui/mc/mc_sync_video_decoder_service.py +4 -4
  30. mocap_desktop_gui/mc/mc_sync_video_paint_item.py +3 -3
  31. mocap_desktop_gui/mc/mc_take.py +3 -3
  32. mocap_desktop_gui/mc/mc_take_cloud_job.py +3 -3
  33. mocap_desktop_gui/mc/mc_take_cloud_job_action.py +4 -4
  34. mocap_desktop_gui/mc/mc_take_cloud_job_calib.py +3 -3
  35. mocap_desktop_gui/mc/mc_take_list_model.py +3 -3
  36. mocap_desktop_gui/mc/mc_take_local_job.py +3 -3
  37. mocap_desktop_gui/mc/mc_take_local_job_service.py +3 -3
  38. mocap_desktop_gui/mc/mc_take_run_common.py +3 -3
  39. mocap_desktop_gui/mc/mc_take_run_data_prep.py +4 -4
  40. mocap_desktop_gui/mc/mc_take_run_settings.py +3 -3
  41. mocap_desktop_gui/mc/mc_take_runs_cloud_manager.py +3 -3
  42. mocap_desktop_gui/mc/mc_take_runs_local_manager.py +3 -3
  43. mocap_desktop_gui/mc/mc_take_runs_manager.py +3 -3
  44. mocap_desktop_gui/mc/mc_take_settings.py +3 -3
  45. mocap_desktop_gui/mc/mc_take_settings_action.py +3 -3
  46. mocap_desktop_gui/mc/mc_take_video_model.py +3 -3
  47. mocap_desktop_gui/mc/mc_task_trt_engine_gen.py +3 -3
  48. mocap_desktop_gui/mc/mc_video.py +3 -3
  49. mocap_desktop_gui/mc/mc_video_manager.py +4 -4
  50. mocap_desktop_gui/mc/mc_video_uploader.py +4 -4
  51. mocap_desktop_gui/mc/mc_videos_uploader.py +3 -3
  52. mocap_desktop_gui/mc/mc_worker.py +3 -3
  53. mocap_desktop_gui/mc/qml_engine.py +3 -3
  54. mocap_desktop_gui/mc/rig/rig_path.py +3 -3
  55. mocap_desktop_gui/mc/util.py +3 -3
  56. mocap_desktop_gui/sample.py +4 -4
  57. {mocap_desktop_gui-0.22.0.dist-info → mocap_desktop_gui-0.24.6.dist-info}/METADATA +1 -1
  58. mocap_desktop_gui-0.24.6.dist-info/RECORD +167 -0
  59. move-errors/move_errors/__init__.py +1 -0
  60. move-errors/move_errors/codes/__init__.py +1 -0
  61. move-errors/move_errors/codes/base.py +62 -0
  62. move-errors/move_errors/codes/constants.py +2 -0
  63. move-errors/move_errors/codes/engine/__init__.py +1 -0
  64. move-errors/move_errors/codes/engine/base.py +29 -0
  65. move-errors/move_errors/codes/engine/enums.py +47 -0
  66. move-errors/move_errors/codes/engine/ops_blender_fbx_export.py +41 -0
  67. move-errors/move_errors/codes/engine/ops_calibrate.py +41 -0
  68. move-errors/move_errors/codes/engine/ops_calibrate_aruco.py +44 -0
  69. move-errors/move_errors/codes/engine/ops_correct_calib.py +44 -0
  70. move-errors/move_errors/codes/engine/ops_detect_marker_objects.py +40 -0
  71. move-errors/move_errors/codes/engine/ops_detect_objects.py +40 -0
  72. move-errors/move_errors/codes/engine/ops_download_dataset.py +41 -0
  73. move-errors/move_errors/codes/engine/ops_download_inputs.py +40 -0
  74. move-errors/move_errors/codes/engine/ops_extract_move_file.py +40 -0
  75. move-errors/move_errors/codes/engine/ops_finalize_a_run.py +44 -0
  76. move-errors/move_errors/codes/engine/ops_floor_plane_root_adjustment.py +44 -0
  77. move-errors/move_errors/codes/engine/ops_hand3d_pose_on_tracks.py +40 -0
  78. move-errors/move_errors/codes/engine/ops_input_videos_audios.py +40 -0
  79. move-errors/move_errors/codes/engine/ops_jersey_classify.py +44 -0
  80. move-errors/move_errors/codes/engine/ops_kalman.py +44 -0
  81. move-errors/move_errors/codes/engine/ops_kalman_monocular.py +44 -0
  82. move-errors/move_errors/codes/engine/ops_marker_kalman_filter.py +44 -0
  83. move-errors/move_errors/codes/engine/ops_markers_to_blend.py +40 -0
  84. move-errors/move_errors/codes/engine/ops_maya_export.py +41 -0
  85. move-errors/move_errors/codes/engine/ops_mdc_detections.py +44 -0
  86. move-errors/move_errors/codes/engine/ops_mdc_tracking.py +44 -0
  87. move-errors/move_errors/codes/engine/ops_mocap.py +40 -0
  88. move-errors/move_errors/codes/engine/ops_on_failure.py +44 -0
  89. move-errors/move_errors/codes/engine/ops_pose2d_single_frame.py +40 -0
  90. move-errors/move_errors/codes/engine/ops_pose3d_mono.py +40 -0
  91. move-errors/move_errors/codes/engine/ops_pose3d_multiview.py +44 -0
  92. move-errors/move_errors/codes/engine/ops_prep_kalman_data.py +44 -0
  93. move-errors/move_errors/codes/engine/ops_prepare_actor_profile.py +40 -0
  94. move-errors/move_errors/codes/engine/ops_prepare_run_data.py +44 -0
  95. move-errors/move_errors/codes/engine/ops_quality_metrics.py +44 -0
  96. move-errors/move_errors/codes/engine/ops_report_calib.py +41 -0
  97. move-errors/move_errors/codes/engine/ops_rigs_prep_constrain_to_urdf.py +44 -0
  98. move-errors/move_errors/codes/engine/ops_rigs_prep_fbx_to_blend.py +44 -0
  99. move-errors/move_errors/codes/engine/ops_rigs_prep_render360_preview.py +47 -0
  100. move-errors/move_errors/codes/engine/ops_sync_multiview_videos.py +40 -0
  101. move-errors/move_errors/codes/engine/ops_tracking_calib.py +41 -0
  102. move-errors/move_errors/codes/engine/ops_unknown.py +37 -0
  103. move-errors/move_errors/codes/engine/ops_upload_outputs.py +41 -0
  104. move-errors/move_errors/codes/engine/ops_visualization.py +44 -0
  105. move-errors/move_errors/codes/engine/ops_zip_data.py +41 -0
  106. move-errors/move_errors/codes/internal_services/__init__.py +1 -0
  107. move-errors/move_errors/codes/internal_services/accounts_service.py +22 -0
  108. move-errors/move_errors/codes/internal_services/camera_settings_api.py +22 -0
  109. move-errors/move_errors/codes/internal_services/core_api.py +22 -0
  110. move-errors/move_errors/codes/internal_services/files_api.py +22 -0
  111. move-errors/move_errors/codes/internal_services/jobs_runner.py +33 -0
  112. move-errors/move_errors/codes/internal_services/jobs_service.py +22 -0
  113. move-errors/move_errors/codes/internal_services/move_rigs.py +22 -0
  114. move-errors/move_errors/codes/internal_services/notifications_api.py +22 -0
  115. move-errors/move_errors/codes/internal_services/run_manager.py +18 -0
  116. move-errors/move_errors/codes/messages.py +22 -0
  117. move-errors/move_errors/codes/public_apis/__init__.py +1 -0
  118. move-errors/move_errors/codes/public_apis/move_platform_backend.py +95 -0
  119. move-errors/move_errors/codes/public_apis/ugc_api_clients.py +22 -0
  120. move-errors/move_errors/codes/public_apis/ugc_api_files.py +47 -0
  121. move-errors/move_errors/codes/public_apis/ugc_api_jobs.py +22 -0
  122. move-errors/move_errors/codes/public_apis/ugc_api_takes.py +59 -0
  123. move-errors/move_errors/codes/public_apis/ugc_api_volumes.py +22 -0
  124. move-errors/move_errors/codes/public_apis/ugc_api_webhooks.py +22 -0
  125. move-errors/move_errors/exceptions.py +64 -0
  126. move-errors/move_errors/py.typed +0 -0
  127. move-errors/move_errors/settings.py +14 -0
  128. move-errors/move_errors/utils/__init__.py +1 -0
  129. move-errors/move_errors/utils/codes.py +108 -0
  130. move-errors/move_errors/utils/engine.py +46 -0
  131. move-errors/move_errors/utils/fastapi.py +36 -0
  132. move-errors/move_errors/utils/repository.py +82 -0
  133. mocap_desktop_gui/axengine_1737993822_1010362681.py +0 -246
  134. mocap_desktop_gui-0.22.0.dist-info/RECORD +0 -93
  135. {mocap_desktop_gui-0.22.0.dist-info → mocap_desktop_gui-0.24.6.dist-info}/WHEEL +0 -0
  136. {mocap_desktop_gui-0.22.0.dist-info → mocap_desktop_gui-0.24.6.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,108 @@
1
+ """Util methods for move-error codes."""
2
+ import os
3
+ from typing import Any
4
+
5
+ from move_errors.codes.messages import (
6
+ UNKNOWN_ERROR_MESSAGE,
7
+ UNKNOWN_ERROR_SUGGESTION_MESSAGE,
8
+ )
9
+
10
+ SUGGESTIONS_LITERAL = "suggestions"
11
+
12
+
13
+ def get_default_error_code(code: str) -> tuple[dict[str, Any], str, bool, str]:
14
+ """Get the default error code.
15
+
16
+ Args:
17
+ code: The error code.
18
+
19
+ Returns:
20
+ The default error code tuple.
21
+ """
22
+ return (
23
+ {
24
+ "suggestions": [
25
+ UNKNOWN_ERROR_SUGGESTION_MESSAGE,
26
+ ],
27
+ },
28
+ code,
29
+ True,
30
+ UNKNOWN_ERROR_MESSAGE,
31
+ )
32
+
33
+
34
+ def get_default_pydantic_error_code(code: str) -> tuple[dict[str, Any], str, bool, str]:
35
+ """Get the default error code for pydantic errors.
36
+
37
+ Args:
38
+ code: The error code.
39
+
40
+ Returns:
41
+ The default error code tuple.
42
+ """
43
+ return (
44
+ {
45
+ SUGGESTIONS_LITERAL: [
46
+ "Please verify that you've provided the correct data.",
47
+ "Please refer to the data key for invalid data related to this error.",
48
+ "{0} {1}.".format(
49
+ "Please check the api documentation for the correct data format at",
50
+ "https://move-ai.github.io/move-ugc-api/schema/",
51
+ ),
52
+ ],
53
+ },
54
+ code,
55
+ True,
56
+ # This message will most likely be overridden by the pydantic error message
57
+ "Data validation failed.",
58
+ )
59
+
60
+
61
+ def get_default_error_code404(code: str) -> tuple[dict[str, Any], str, bool, str]:
62
+ """Get the default error code for not found errors.
63
+
64
+ Args:
65
+ code: The error code.
66
+
67
+ Returns:
68
+ The default error code tuple.
69
+ """
70
+ service: str = os.getenv("SERVICE_NAME", "Move.ai")
71
+ return (
72
+ {
73
+ SUGGESTIONS_LITERAL: [
74
+ "Please verify that the resource you're requesting exists.",
75
+ ],
76
+ },
77
+ code,
78
+ True,
79
+ # This message will most likely be overridden by the pydantic error message
80
+ f"Resource not found in {service}.",
81
+ )
82
+
83
+
84
+ def get_default_bad_request_error_code(
85
+ code: str,
86
+ ) -> tuple[dict[str, Any], str, bool, str]:
87
+ """Get the default error code for bad requests.
88
+
89
+ This is typically used for internal bad requests.
90
+
91
+ Args:
92
+ code: The error code.
93
+
94
+ Returns:
95
+ The default error code tuple.
96
+ """
97
+ return (
98
+ {
99
+ SUGGESTIONS_LITERAL: [
100
+ "Please verify that you've provided the correct data.",
101
+ ],
102
+ },
103
+ code,
104
+ # By default, don't display this error to the user, as it's an internal error
105
+ # This can be overridden on api by api basis.
106
+ False,
107
+ "Bad request.",
108
+ )
@@ -0,0 +1,46 @@
1
+ """Operation name to engine error code mapping."""
2
+ import importlib
3
+ import inspect
4
+ import os
5
+ from pathlib import Path
6
+ from types import ModuleType
7
+
8
+ from move_errors.codes import engine
9
+ from move_errors.codes.base import BaseErrorCode
10
+
11
+ # The engine error codes mapping.
12
+ # This allows the engine to provide an operation name and for us to then map that
13
+ # to the correct error code class.
14
+ codes = {}
15
+
16
+
17
+ def _build_code_for_module(module: ModuleType) -> None:
18
+ """Build the error code mapping for the module.
19
+
20
+ Args:
21
+ module: The module to build the codes for.
22
+ """
23
+ ops_classes = inspect.getmembers(module, inspect.isclass)
24
+ for ops_class_name, ops_class in ops_classes:
25
+ # Ensure that we only load classes that are named with `Ops`
26
+ is_ops_error_code_class = issubclass(ops_class, (BaseErrorCode,))
27
+ if ops_class_name.startswith("Ops") and is_ops_error_code_class:
28
+ codes[str(ops_class.operation_name())] = ops_class
29
+
30
+
31
+ def _init() -> None:
32
+ """Initialise the engine error codes dynamically.
33
+
34
+ We don't want to have to remember to add ops error codes and classes. Therefore,
35
+ build the list dynamically. This functionality is inspired by requests.status_codes
36
+ """
37
+ for module_name in os.listdir(os.path.dirname(inspect.getfile(engine))):
38
+ if module_name.startswith("ops_"):
39
+ # Ensure that we only import modules that begin with `ops_`
40
+ imported_sub_module = importlib.import_module(
41
+ "{0}.{1}".format(engine.__name__, Path(module_name).stem),
42
+ )
43
+ _build_code_for_module(imported_sub_module)
44
+
45
+
46
+ _init()
@@ -0,0 +1,36 @@
1
+ """Define Error Handlers."""
2
+ import httpx
3
+ from starlette.requests import Request
4
+ from starlette.responses import JSONResponse
5
+
6
+ from move_errors.exceptions import MoveError
7
+
8
+
9
+ def move_error_handler(
10
+ request: Request,
11
+ exc: MoveError,
12
+ ) -> JSONResponse:
13
+ """Exception Handler for Move Error.
14
+
15
+ Args:
16
+ request: Request object.
17
+ exc: Exception object.
18
+
19
+ Returns:
20
+ JSONResponse: JSON response when MoveError is raised.
21
+ """
22
+ status_code = httpx.codes.BAD_REQUEST
23
+ if isinstance(exc.data, dict) and exc.data.get("status_code"):
24
+ status_code = exc.data["status_code"]
25
+ return JSONResponse(
26
+ status_code=status_code,
27
+ content={
28
+ "error": {
29
+ "code": exc.code.code,
30
+ "message": exc.message,
31
+ "info": exc.info,
32
+ "data": exc.data or {},
33
+ "is_display": exc.is_display,
34
+ },
35
+ },
36
+ )
@@ -0,0 +1,82 @@
1
+ """Move errors repository."""
2
+ import importlib
3
+ import inspect
4
+ import os
5
+ from enum import Enum
6
+ from itertools import chain
7
+ from pathlib import Path
8
+ from types import ModuleType
9
+ from typing import Type
10
+
11
+ from move_errors.codes import engine, internal_services, public_apis
12
+ from move_errors.codes.base import BaseErrorCode
13
+ from move_errors.codes.engine.base import BaseEngineOpsErrorCode
14
+
15
+
16
+ def _import_all_error_codes_by_submodule(
17
+ module: ModuleType,
18
+ ) -> None:
19
+ """Import all error codes by submodule.
20
+
21
+ Args:
22
+ module (ModuleType): The module to import the error codes from.
23
+ """
24
+ for submodule in os.listdir(os.path.dirname(inspect.getfile(module))):
25
+ importlib.import_module(
26
+ "{0}.{1}".format(module.__name__, Path(submodule).stem),
27
+ )
28
+
29
+
30
+ def _get_child_error_codes(
31
+ base_class: Type[BaseErrorCode],
32
+ exclude_list: list[Type[BaseErrorCode]] | None = None,
33
+ ) -> list[Type[BaseErrorCode]]:
34
+ """Get all the child error codes of the given base class.
35
+
36
+ Args:
37
+ base_class (Type[BaseErrorCode]):
38
+ The base class to get the child error codes for.
39
+ exclude_list (list[Type[BaseErrorCode]], optional):
40
+ The list of error codes to exclude. Defaults to ().
41
+
42
+ Returns:
43
+ list[Type[BaseErrorCode]]: The list of child error codes.
44
+ """
45
+ return [
46
+ code_class
47
+ for code_class in base_class.__subclasses__()
48
+ if code_class not in (exclude_list or [])
49
+ ]
50
+
51
+
52
+ def _build_unified_enum() -> Enum:
53
+ """Build the unified error codes enum.
54
+
55
+ Returns:
56
+ Enum: The unified error codes enum.
57
+ """
58
+ chained_codes = chain.from_iterable( # type: ignore[var-annotated]
59
+ _get_child_error_codes( # type: ignore[arg-type]
60
+ BaseErrorCode,
61
+ exclude_list=[BaseEngineOpsErrorCode],
62
+ ),
63
+ )
64
+ engine_chained_codes = chain.from_iterable( # type: ignore[var-annotated]
65
+ _get_child_error_codes(BaseEngineOpsErrorCode), # type: ignore[arg-type]
66
+ )
67
+ chained_codes = chain(chained_codes, engine_chained_codes)
68
+ return Enum(
69
+ "MoveErrorCodes",
70
+ [(code.name, code.value) for code in chained_codes],
71
+ )
72
+
73
+
74
+ def _init() -> None:
75
+ """Initialise the error codes dynamically."""
76
+ _import_all_error_codes_by_submodule(internal_services)
77
+ _import_all_error_codes_by_submodule(public_apis)
78
+ _import_all_error_codes_by_submodule(engine)
79
+
80
+
81
+ _init()
82
+ MoveErrorCodes = _build_unified_enum()