Ticket #11121 (assigned)
Accept non-ADS workspaces in python simpleapi
Reported by: | Harry Jeffery | Owned by: | Martyn Gigg |
---|---|---|---|
Priority: | major | Milestone: | Release 3.5 |
Component: | Python | Keywords: | CORE |
Cc: | Blocked By: | ||
Blocking: | Tester: |
Description
If a workspace is not in the ads, it cannot be given to an algorithm using the simple api. The original reason for this seems to have been resolved by ticket #5157.
Let's see if this restriction can now be lifted.
Change History
comment:3 Changed 6 years ago by Harry Jeffery
- Status changed from inprogress to assigned
After applying this patch:
diff --git a/Code/Mantid/Framework/PythonInterface/mantid/simpleapi.py b/Code/Mantid/Framework/PythonInterface/mantid/simpleapi.py index c85f036..bf0c7c6 100644 --- a/Code/Mantid/Framework/PythonInterface/mantid/simpleapi.py +++ b/Code/Mantid/Framework/PythonInterface/mantid/simpleapi.py @@ -518,18 +518,15 @@ def _set_properties(alg_object, *args, **kwargs): # Set the properties of the algorithm. for key in kwargs.keys(): value = kwargs[key] if value is None: continue - # The correct parent/child relationship is not quite set up yet: #5157 - # ChildAlgorithms in Python are marked as children but their output is in the - # ADS meaning we cannot just set DataItem properties by value. At the moment - # they are just set with strings + if isinstance(value, _kernel.DataItem): alg_object.setPropertyValue(key, value.name()) - else: - alg_object.setProperty(key, value) + + alg_object.setProperty(key, value) def _create_algorithm_function(algorithm, version, _algm_object): """ Create a function that will set up and execute an algorithm. The help that will be displayed is that of the most recent version.
the following tests failed:
PythonAlgorithms_MolDynTest PythonAlgorithms_VesuvioResolutionTest
At least in the Vesuvio case, the failure seems to stem from calling setPropertyValue and then setProperty.
Handing over to Martyn for further analysis.
Note: See
TracTickets for help on using
tickets.