-
Notifications
You must be signed in to change notification settings - Fork 1
Closed
Description
Here is a traceback:
Traceback (most recent call last):
File "C:\Users\cetus\AppData\Local\ESRI\conda\envs\arcgispro-py3-mget1\Lib\site-packages\GeoEco\ArcToolbox\Marine Geospatial Ecology Tools.atbx\CMEMSARCOArrayCreateArcGISRasters.tool\tool.script.execute.py", line 14, in
File "C:\Users\cetus\AppData\Local\ESRI\conda\envs\arcgispro-py3-mget1\Lib\site-packages\GeoEco\ArcToolbox\Marine Geospatial Ecology Tools.atbx\CMEMSARCOArrayCreateArcGISRasters.tool\tool.script.execute.py", line 11, in Main
File "C:\Users\cetus\AppData\Local\ESRI\conda\envs\arcgispro-py3-mget1\Lib\site-packages\GeoEco\ArcToolbox.py", line 662, in ExecuteMethodAsGeoprocessingTool
results = method(**argValues)
^^^^^^^^^^^^^^^^^^^
File "C:\Users\cetus\AppData\Local\ESRI\conda\envs\arcgispro-py3-mget1\Lib\site-packages\GeoEco\DataProducts\CMEMS.py", line 890, in CreateArcGISRasters
cls.doc.Obj.ValidateMethodInvocation()
File "C:\Users\cetus\AppData\Local\ESRI\conda\envs\arcgispro-py3-mget1\Lib\site-packages\GeoEco\Metadata.py", line 329, in ValidateMethodInvocation
(valueChanged, value) = argMetadata.Type.ValidateValue(parentFrame.f_locals[argMetadata.Name], '%s parameter' % argMetadata.Name, parentFrame.f_locals, argMetadata)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\cetus\AppData\Local\ESRI\conda\envs\arcgispro-py3-mget1\Lib\site-packages\GeoEco\Types_StoredObject.py", line 173, in ValidateValue
(valueChanged2, value) = super(StoredObjectTypeMetadata, self).ValidateValue(value, variableName, methodLocals, argMetadata)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\cetus\AppData\Local\ESRI\conda\envs\arcgispro-py3-mget1\Lib\site-packages\GeoEco\Types_Base.py", line 913, in ValidateValue
(valueChanged2, value) = super(UnicodeStringTypeMetadata, self).ValidateValue(value, variableName, methodLocals, argMetadata)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\cetus\AppData\Local\ESRI\conda\envs\arcgispro-py3-mget1\Lib\site-packages\GeoEco\Types_Base.py", line 153, in ValidateValue
Logger.RaiseException(TypeError(('The value provided for the %(variable)s is an instance of %(badType)s, an invalid type. Please provide an instance of %(goodType)s.') % {'variable' : variableName, 'badType' : type(value), 'goodType' : self.PythonType}))
File "C:\Users\cetus\AppData\Local\ESRI\conda\envs\arcgispro-py3-mget1\Lib\site-packages\GeoEco\Logging.py", line 70, in RaiseException
raise exception
TypeError: The value provided for the outputWorkspace parameter is an instance of <class 'GeoEco.ArcGIS._ArcGISObjectWrapper'>, an invalid type. Please provide an instance of <class 'str'>.
Please see #29 for more details.
The problem is in _ExecuteMethodAsGeoprocessingTool of ArcToolbox.py, which assumes that the value attribute of an arcpy.Parameter object always returns an instance of a base Python type, when in fact it can return an arcpy object, which will be wrapped with _ArcGISObjectWrapper. It should account for this and obtain the instance of the base Python type that is expected according to the argument's metadata.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels