fusion-platform-python-sdk 2.2.2__py3-none-any.whl → 2.2.5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- fusion_platform/__init__.py +2 -2
- fusion_platform/command.py +9 -6
- fusion_platform/models/process.py +11 -11
- fusion_platform/translations.py +15 -9
- {fusion_platform_python_sdk-2.2.2.dist-info → fusion_platform_python_sdk-2.2.5.dist-info}/METADATA +1 -1
- {fusion_platform_python_sdk-2.2.2.dist-info → fusion_platform_python_sdk-2.2.5.dist-info}/RECORD +10 -10
- {fusion_platform_python_sdk-2.2.2.dist-info → fusion_platform_python_sdk-2.2.5.dist-info}/WHEEL +1 -1
- {fusion_platform_python_sdk-2.2.2.dist-info → fusion_platform_python_sdk-2.2.5.dist-info}/entry_points.txt +0 -0
- {fusion_platform_python_sdk-2.2.2.dist-info → fusion_platform_python_sdk-2.2.5.dist-info}/licenses/LICENSE.txt +0 -0
- {fusion_platform_python_sdk-2.2.2.dist-info → fusion_platform_python_sdk-2.2.5.dist-info}/top_level.txt +0 -0
fusion_platform/__init__.py
CHANGED
|
@@ -11,8 +11,8 @@ API, and this is defined within the corresponding OpenAPI 3.0 specification, whi
|
|
|
11
11
|
"""
|
|
12
12
|
|
|
13
13
|
# Do not modify the following two lines as they are maintained by the version.sh script.
|
|
14
|
-
__version__ = '2.2.
|
|
15
|
-
__version_date__ = '2026-
|
|
14
|
+
__version__ = '2.2.5'
|
|
15
|
+
__version_date__ = '2026-09-01T12:45:40Z'
|
|
16
16
|
|
|
17
17
|
# Exclude certain sub-modules from documentation.
|
|
18
18
|
# @formatter:off
|
fusion_platform/command.py
CHANGED
|
@@ -1264,16 +1264,19 @@ class Command(Base):
|
|
|
1264
1264
|
)
|
|
1265
1265
|
|
|
1266
1266
|
# Create the subparsers.
|
|
1267
|
-
subparsers = parser.add_subparsers(
|
|
1267
|
+
subparsers = parser.add_subparsers(description=i18n.t('command.subparser'), dest='command')
|
|
1268
1268
|
parser.add_argument(i18n.t('command.version_short'), i18n.t('command.version_long'), help=i18n.t('command.version_help'), action='version',
|
|
1269
1269
|
version=i18n.t('command.version_content', version=fusion_platform.__version__, version_date=fusion_platform.__version_date__))
|
|
1270
1270
|
|
|
1271
1271
|
subparsers.required = True
|
|
1272
|
-
parser_list = subparsers.add_parser(i18n.t('command.list.command'), help=i18n.t('command.list.help'))
|
|
1273
|
-
parser_display = subparsers.add_parser(i18n.t('command.display.command'), help=i18n.t('command.display.help')
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1272
|
+
parser_list = subparsers.add_parser(i18n.t('command.list.command'), help=i18n.t('command.list.help'), description=i18n.t('command.list.description'))
|
|
1273
|
+
parser_display = subparsers.add_parser(i18n.t('command.display.command'), help=i18n.t('command.display.help'),
|
|
1274
|
+
description=i18n.t('command.display.description'))
|
|
1275
|
+
parser_start = subparsers.add_parser(i18n.t('command.start.command'), help=i18n.t('command.start.help'), description=i18n.t('command.start.description'))
|
|
1276
|
+
parser_define = subparsers.add_parser(i18n.t('command.define.command'), help=i18n.t('command.define.help'),
|
|
1277
|
+
description=i18n.t('command.define.description'))
|
|
1278
|
+
parser_download = subparsers.add_parser(i18n.t('command.download.command'), help=i18n.t('command.download.help'),
|
|
1279
|
+
description=i18n.t('command.download.description'))
|
|
1277
1280
|
|
|
1278
1281
|
# Add in the common arguments.
|
|
1279
1282
|
for subparser in [parser_list, parser_display, parser_start, parser_define, parser_download]:
|
|
@@ -588,7 +588,7 @@ class Process(Model):
|
|
|
588
588
|
break
|
|
589
589
|
|
|
590
590
|
if found_dispatcher is None:
|
|
591
|
-
raise ModelError(i18n.t('models.process.cannot_find_dispatcher'))
|
|
591
|
+
raise ModelError(i18n.t('models.process.cannot_find_dispatcher', dispatcher=name if name is not None else number))
|
|
592
592
|
|
|
593
593
|
# Add the dispatcher to the end of the existing list.
|
|
594
594
|
dispatchers = list(self._model.get(self.__class__._FIELD_DISPATCHERS, [])) # Convert read-only tuple to list, so we can modify it.
|
|
@@ -850,7 +850,7 @@ class Process(Model):
|
|
|
850
850
|
break
|
|
851
851
|
|
|
852
852
|
if found_dispatcher is None:
|
|
853
|
-
raise ModelError(i18n.t('models.process.cannot_find_dispatcher'))
|
|
853
|
+
raise ModelError(i18n.t('models.process.cannot_find_dispatcher', dispatcher=number))
|
|
854
854
|
|
|
855
855
|
# Remove the dispatcher from the existing list.
|
|
856
856
|
dispatchers = list(self._model.get(self.__class__._FIELD_DISPATCHERS, [])) # Convert read-only tuple to list, so we can modify it.
|
|
@@ -899,7 +899,7 @@ class Process(Model):
|
|
|
899
899
|
break
|
|
900
900
|
|
|
901
901
|
if found_dispatcher is None:
|
|
902
|
-
raise ModelError(i18n.t('models.process.cannot_find_dispatcher'))
|
|
902
|
+
raise ModelError(i18n.t('models.process.cannot_find_dispatcher', dispatcher=number))
|
|
903
903
|
|
|
904
904
|
# Get the dispatcher so that it can be modified.
|
|
905
905
|
dispatchers = list(self._model.get(self.__class__._FIELD_DISPATCHERS, [])) # Convert read-only tuple to list, so we can access it.
|
|
@@ -921,7 +921,7 @@ class Process(Model):
|
|
|
921
921
|
break
|
|
922
922
|
|
|
923
923
|
if found_option is None:
|
|
924
|
-
raise ModelError(i18n.t('models.process.
|
|
924
|
+
raise ModelError(i18n.t('models.process.cannot_find_dispatcher_option', option=option_name))
|
|
925
925
|
|
|
926
926
|
# We can now update the option. All options are expressed as strings with the correct format.
|
|
927
927
|
option_value = Option.get_option_value(found_option, value, coerce_value)
|
|
@@ -981,7 +981,7 @@ class Process(Model):
|
|
|
981
981
|
break
|
|
982
982
|
|
|
983
983
|
if found_input is None:
|
|
984
|
-
raise ModelError(i18n.t('models.process.cannot_find_input'))
|
|
984
|
+
raise ModelError(i18n.t('models.process.cannot_find_input', input=input.input if input is not None else number))
|
|
985
985
|
|
|
986
986
|
# Check that all the files in the data object are ready to be used. Along the way, pick out the first file type.
|
|
987
987
|
found_file_type = None
|
|
@@ -1041,7 +1041,7 @@ class Process(Model):
|
|
|
1041
1041
|
break
|
|
1042
1042
|
|
|
1043
1043
|
if found_option is None:
|
|
1044
|
-
raise ModelError(i18n.t('models.process.cannot_find_option'))
|
|
1044
|
+
raise ModelError(i18n.t('models.process.cannot_find_option', option=option.name if option is not None else name))
|
|
1045
1045
|
|
|
1046
1046
|
# We can now update the option. All options are expressed as strings with the correct format.
|
|
1047
1047
|
option_value = Option.get_option_value(found_option, value, coerce_value)
|
|
@@ -1113,15 +1113,15 @@ class Process(Model):
|
|
|
1113
1113
|
RequestError: if any request fails.
|
|
1114
1114
|
ModelError: if a model could not be loaded or validated from the Fusion Platform<sup>®</sup>.
|
|
1115
1115
|
"""
|
|
1116
|
+
# Confirm that the model is executing. We do not do this in the loop as the process will be set to stop once all of its executions have finished.
|
|
1117
|
+
if hasattr(self, self.__class__._FIELD_PROCESS_STATUS) and (self.process_status == Process._PROCESS_STATUS_STOP):
|
|
1118
|
+
raise ModelError(i18n.t('models.process.execution_stopped'))
|
|
1119
|
+
|
|
1116
1120
|
# Wait until we find the next execution.
|
|
1117
1121
|
while True:
|
|
1118
1122
|
# Load in the most recent version of the model.
|
|
1119
1123
|
self.get(organisation_id=self.organisation_id)
|
|
1120
1124
|
|
|
1121
|
-
# Check that the model is executing. It may have stopped on error.
|
|
1122
|
-
if hasattr(self, self.__class__._FIELD_PROCESS_STATUS) and (self.process_status == Process._PROCESS_STATUS_STOP):
|
|
1123
|
-
raise ModelError(i18n.t('models.process.execution_stopped'))
|
|
1124
|
-
|
|
1125
1125
|
# Check whether we have the next execution listed in the model. We sort the list to find the most recent.
|
|
1126
1126
|
self._logger.debug('checking for next execution')
|
|
1127
1127
|
executions = []
|
|
@@ -1143,7 +1143,7 @@ class Process(Model):
|
|
|
1143
1143
|
|
|
1144
1144
|
# Stop if we have an execution which is beyond the repeat start date.
|
|
1145
1145
|
if execution is not None:
|
|
1146
|
-
self._logger.debug('execution %s found', execution
|
|
1146
|
+
self._logger.debug('execution %s found', execution)
|
|
1147
1147
|
break
|
|
1148
1148
|
|
|
1149
1149
|
# If we have no recent executions, and longer than the allowed period has elapsed since the next execution was meant to start, then raise an exception.
|
fusion_platform/translations.py
CHANGED
|
@@ -80,11 +80,13 @@ i18n.add_translation('command.dispatch_intermediate', 'Dispatch intermediate com
|
|
|
80
80
|
i18n.add_translation('command.add_dispatcher', 'Add %{dispatcher} dispatcher?', 'en')
|
|
81
81
|
i18n.add_translation('command.download.process_help', 'the name of the process, the process id or execution id to download', 'en')
|
|
82
82
|
i18n.add_translation('command.download.process_long', 'process', 'en')
|
|
83
|
-
i18n.add_translation('command.download.
|
|
83
|
+
i18n.add_translation('command.download.description', 'Downloads the inputs and/or outputs for existing processes.', 'en')
|
|
84
|
+
i18n.add_translation('command.download.help', 'downloads the inputs and/or outputs for existing processes', 'en')
|
|
84
85
|
i18n.add_translation('command.download.command', 'download', 'en')
|
|
85
86
|
i18n.add_translation('command.define.process_help', 'the name of the process, the process id or execution id to build the YAML file', 'en')
|
|
86
87
|
i18n.add_translation('command.define.process_long', 'process', 'en')
|
|
87
|
-
i18n.add_translation('command.define.
|
|
88
|
+
i18n.add_translation('command.define.description', 'Creates new YAML files to define existing processes.', 'en')
|
|
89
|
+
i18n.add_translation('command.define.help', 'creates new YAML files to define existing processes', 'en')
|
|
88
90
|
i18n.add_translation('command.define.command', 'define', 'en')
|
|
89
91
|
i18n.add_translation('command.start.no_wait_for_completion_help', 'do not wait for the execution to complete (default %%(default)s)', 'en')
|
|
90
92
|
i18n.add_translation('command.start.no_wait_for_completion_long', '--no_wait_for_completion', 'en')
|
|
@@ -127,15 +129,18 @@ i18n.add_translation('command.start.input_list_long', '--input_list', 'en')
|
|
|
127
129
|
i18n.add_translation('command.start.input_list_short', '-l', 'en')
|
|
128
130
|
i18n.add_translation('command.start.definition_help', 'the names of the service used to start processes or YAML files which defines everything', 'en')
|
|
129
131
|
i18n.add_translation('command.start.definition_long', 'service_or_yaml', 'en')
|
|
130
|
-
i18n.add_translation('command.start.
|
|
132
|
+
i18n.add_translation('command.start.description', 'Creates and starts new processes.', 'en')
|
|
133
|
+
i18n.add_translation('command.start.help', 'creates and starts new processes', 'en')
|
|
131
134
|
i18n.add_translation('command.start.command', 'start', 'en')
|
|
132
135
|
i18n.add_translation('command.display.service_or_process_help', 'the names of the service, id, SSD id, process, process id or associated execution id that are to be displayed', 'en')
|
|
133
136
|
i18n.add_translation('command.display.service_or_process_long', 'process_or_service', 'en')
|
|
134
|
-
i18n.add_translation('command.display.
|
|
137
|
+
i18n.add_translation('command.display.description', 'Displays details of services or existing processes.', 'en')
|
|
138
|
+
i18n.add_translation('command.display.help', 'displays details of services or existing processes', 'en')
|
|
135
139
|
i18n.add_translation('command.display.command', 'display', 'en')
|
|
136
|
-
i18n.add_translation('command.list.
|
|
140
|
+
i18n.add_translation('command.list.description', 'Lists all configured processes.', 'en')
|
|
141
|
+
i18n.add_translation('command.list.help', 'lists all configured processes', 'en')
|
|
137
142
|
i18n.add_translation('command.list.command', 'list', 'en')
|
|
138
|
-
i18n.add_translation('command.subparser', '
|
|
143
|
+
i18n.add_translation('command.subparser', 'Commands are available to display a service or process, or start, define or download a process:', 'en')
|
|
139
144
|
i18n.add_translation('command.version_content', '%%(prog)s %{version} (%{version_date})', 'en')
|
|
140
145
|
i18n.add_translation('command.version_help', 'show the version information and exit', 'en')
|
|
141
146
|
i18n.add_translation('command.version_long', '--version', 'en')
|
|
@@ -306,9 +311,10 @@ i18n.add_translation('models.process.execution_stopped', 'Process execution has
|
|
|
306
311
|
i18n.add_translation('models.process.wrong_file_type', 'File type of supplied data object (%{actual}) does not match the file type for the input (%{expected})', 'en')
|
|
307
312
|
i18n.add_translation('models.process.data_not_ready', 'Data object is not ready to be used in a process', 'en')
|
|
308
313
|
i18n.add_translation('models.process.option_wrong_type', 'Option value should be of type %{type}', 'en')
|
|
309
|
-
i18n.add_translation('models.process.
|
|
310
|
-
i18n.add_translation('models.process.
|
|
311
|
-
i18n.add_translation('models.process.
|
|
314
|
+
i18n.add_translation('models.process.cannot_find_dispatcher_option', 'No such dispatcher option \'%{option}\'', 'en')
|
|
315
|
+
i18n.add_translation('models.process.cannot_find_option', 'No such option \'%{option}\'', 'en')
|
|
316
|
+
i18n.add_translation('models.process.cannot_find_input', 'No such input %{input}', 'en')
|
|
317
|
+
i18n.add_translation('models.process.cannot_find_dispatcher', 'No such dispatcher \'%{dispatcher}\'', 'en')
|
|
312
318
|
i18n.add_translation('models.process.option_not_specified', 'Option name or object must be provided to set option', 'en')
|
|
313
319
|
i18n.add_translation('models.process.data_not_specified', 'Data object must be provided to set input', 'en')
|
|
314
320
|
i18n.add_translation('models.process.input_not_specified', 'Input number or object must be provided to set input', 'en')
|
{fusion_platform_python_sdk-2.2.2.dist-info → fusion_platform_python_sdk-2.2.5.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fusion-platform-python-sdk
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.5
|
|
4
4
|
Summary: Python SDK used to interact with the Fusion Platform(r)
|
|
5
5
|
Home-page: https://github.com/d-cat-support/fusion-platform-python-sdk
|
|
6
6
|
Author: Digital Content Analysis Technology Ltd
|
{fusion_platform_python_sdk-2.2.2.dist-info → fusion_platform_python_sdk-2.2.5.dist-info}/RECORD
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
fusion_platform/__init__.py,sha256=
|
|
1
|
+
fusion_platform/__init__.py,sha256=_qV7P3Fh1KvJlm7cnB6A6IiFe2sWDniiASuFABZIllM,7410
|
|
2
2
|
fusion_platform/__main__.py,sha256=R5HbEtVMEtyv4BqWpn1cob-wJ2-g9IFhwP1WGDLF79g,266
|
|
3
3
|
fusion_platform/base.py,sha256=QsVxjk4sXrcFB6zcH6dmP4BL956bXVFE_ksO-LmlhSk,1456
|
|
4
|
-
fusion_platform/command.py,sha256=
|
|
4
|
+
fusion_platform/command.py,sha256=Ake_YApf_MI-SpFTs2bZdRjU2kjnV8623CGsmqcLOwc,92726
|
|
5
5
|
fusion_platform/detailed_example.py,sha256=3mcv_lAmkY9bf9-ZfoY-Ug7dfDxX-GMGzf6XOLChcHw,4579
|
|
6
6
|
fusion_platform/documentation.py,sha256=m4uiD28sxNfDSkHEkaGrrW-QVPt-Ooz9Hhre1R2vwy4,4092
|
|
7
7
|
fusion_platform/fusion_platform_sdk.pdf,sha256=eu8223jBte1UbaBeQ6CNeVISU3Kb446qXLpwbJXO0Z0,1792653
|
|
@@ -11,7 +11,7 @@ fusion_platform/localisations.py,sha256=fq7kFJjEXT2S0HDhkjV5hiDoxOLJ_i-FIpq2LqrS
|
|
|
11
11
|
fusion_platform/localise.py,sha256=TDG3b9OnqxmYu7jSFaxvy3KPwUD9Llg-qYHxDc5KiyY,1189
|
|
12
12
|
fusion_platform/quick_example.py,sha256=KLb-dydYzVW_kDGf7pyFWugnVEeI69sBm3Ss0Et5HZ0,1891
|
|
13
13
|
fusion_platform/session.py,sha256=dmArPmniTreSU-cOyw1OHqVhtbViqwdA9VR9P6GdWxk,12440
|
|
14
|
-
fusion_platform/translations.py,sha256=
|
|
14
|
+
fusion_platform/translations.py,sha256=JGZlz0z7rZbg-nDOVL-cUqxY33D2jfBus5qUyeIDKJE,26483
|
|
15
15
|
fusion_platform/common/__init__.py,sha256=7hmOi1N27eeAQd8sA07nm4cs4lltqMrviO7giRFEGmc,133
|
|
16
16
|
fusion_platform/common/raise_thread.py,sha256=I3jn39VLK6LM-Q8ou-OzLk37yjABTIeklTwakO4If9Y,1398
|
|
17
17
|
fusion_platform/common/utilities.py,sha256=LCVIWF0CzNEhlug5e2PHuGfH0XSZ7V-GtlHWV1G8RyQ,6590
|
|
@@ -27,7 +27,7 @@ fusion_platform/models/model.py,sha256=jw1qs3CkGENwmdRMSgbCcYuEp8XGBhpDUxizf-lzB
|
|
|
27
27
|
fusion_platform/models/organisation.md,sha256=sEqpImqM4H7T1D_0LuUVuMD_BaWSuPL5m-P0O13Qruw,1475
|
|
28
28
|
fusion_platform/models/organisation.py,sha256=r8u7NNzh0jlcSC_QEfO8nA-ZRNz0D50AtYZTk-LoRNk,14968
|
|
29
29
|
fusion_platform/models/process.md,sha256=ipC6yu3v1SC5yO5c58LO5CVclihp_osZCLNMvQvPUhE,2154
|
|
30
|
-
fusion_platform/models/process.py,sha256=
|
|
30
|
+
fusion_platform/models/process.py,sha256=LhV8hDKJIudtrnw1rdhejZri-b2PAGMa67x-P-Tju7A,52804
|
|
31
31
|
fusion_platform/models/process_execution.md,sha256=mM1yj4iJ4XCOo6i_dqq1ck8vJkkXxhK1R19odxOjLHo,2666
|
|
32
32
|
fusion_platform/models/process_execution.py,sha256=jFWo9L980yWK1wRcSNIzHC7P-NoFgv2M9KKF1yXhL7Y,9329
|
|
33
33
|
fusion_platform/models/process_service_execution.md,sha256=upWQZ7MJ6O79tXK8fI7NvAet0XsQfwC8O2u5SURsT-A,4062
|
|
@@ -38,9 +38,9 @@ fusion_platform/models/service.md,sha256=qgZp9lEclkLT3vUDvd5SybysbnfBs0IuW3YdTup
|
|
|
38
38
|
fusion_platform/models/service.py,sha256=xTJY7EvlGgvnhGToWH4xH_Br4Xf1ur70UimkYd5qB_g,10099
|
|
39
39
|
fusion_platform/models/user.md,sha256=yTJwkwZX6ub_rL7UoJdf_FwsV4AIlDgilR5jehy9nEg,1063
|
|
40
40
|
fusion_platform/models/user.py,sha256=O9J6944eKXgIaJqiaAI8ctb4i_liqPFtc3FteFsMfg0,5630
|
|
41
|
-
fusion_platform_python_sdk-2.2.
|
|
42
|
-
fusion_platform_python_sdk-2.2.
|
|
43
|
-
fusion_platform_python_sdk-2.2.
|
|
44
|
-
fusion_platform_python_sdk-2.2.
|
|
45
|
-
fusion_platform_python_sdk-2.2.
|
|
46
|
-
fusion_platform_python_sdk-2.2.
|
|
41
|
+
fusion_platform_python_sdk-2.2.5.dist-info/licenses/LICENSE.txt,sha256=rRNH3lp1zmb02PJQpWFHR49EXtRGPGEcb-T-RVR9Hf8,1096
|
|
42
|
+
fusion_platform_python_sdk-2.2.5.dist-info/METADATA,sha256=8H2M7eY7T5llO2r4jesSKNrZmlgdukuzNquJt2PMirI,5634
|
|
43
|
+
fusion_platform_python_sdk-2.2.5.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
|
|
44
|
+
fusion_platform_python_sdk-2.2.5.dist-info/entry_points.txt,sha256=YbiPXiDDcEXfVTUXFpyojkMdN17Xe_0k_W5ia2J4ENU,65
|
|
45
|
+
fusion_platform_python_sdk-2.2.5.dist-info/top_level.txt,sha256=0fI4dcqLKd-KNt6Q20mOYdO2eVDM5r8YJmwzUT2ot2c,16
|
|
46
|
+
fusion_platform_python_sdk-2.2.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|