ipython2cwl icon indicating copy to clipboard operation
ipython2cwl copied to clipboard

Argument type for Input generates issues

Open mosoriob opened this issue 3 years ago • 0 comments

Problem

Argument type for InputFile (pathlib.Path) generates issues in some cases.

For example, the function tflite.Interpreter from TensorFlow library excepts a string

'InterpreterWrapper_CreateWrapperCPPFromFile'.
  Possible C/C++ prototypes are:
    tflite::interpreter_wrapper::InterpreterWrapper::CreateWrapperCPPFromFile(char const *,std::vector< std::string > const &,std::string *)

However, ipython2cwl adds the parameter as pathlib.Path. Then, the code is not the same and generates the following issue

tflite::interpreter_wrapper::InterpreterWrapper::tflite_interpreter_wrapper_InterpreterWrapper_CreateWrapperCPPFromFile__SWIG_1(char const *,PyObject *)

Solution

A quick solution can be to change the type of argument but I'm not the effects.

     54     parser.add_argument('--modelPath', type=str, required=True)

Full error

---------------------------------------------------------------------------
NotImplementedError                       Traceback (most recent call last)
/app/cwl/bin/main in <module>
     54     parser.add_argument('--modelPath', type=pathlib.Path, required=True)
     55     args = parser.parse_args()
---> 56     main(cameraType=args.cameraType, siteID=args.siteID, modelPath=args.
     57         modelPath)

/app/cwl/bin/main in main(cameraType, siteID, modelPath)
     29     testObj.urlToImage(imageURL)
     30     testObj.writeImage(imagePath)
---> 31     interpreter = tflite.Interpreter(model_path=modelPath)
     32     interpreter.allocate_tensors()
     33     result, percent = testObj.inference(interpreter)

/srv/conda/envs/notebook/lib/python3.6/site-packages/tflite_runtime/interpreter.py in __init__(self, model_path, model_content, experimental_delegates)
    202       self._interpreter = (
    203           _interpreter_wrapper.InterpreterWrapper_CreateWrapperCPPFromFile(
--> 204               model_path, self._custom_op_registerers))
    205       if not self._interpreter:
    206         raise ValueError('Failed to open {}'.format(model_path))

NotImplementedError: Wrong number or type of arguments for overloaded function 'InterpreterWrapper_CreateWrapperCPPFromFile'.
  Possible C/C++ prototypes are:
    tflite::interpreter_wrapper::InterpreterWrapper::CreateWrapperCPPFromFile(char const *,std::vector< std::string > const &,std::string *)
    tflite::interpreter_wrapper::InterpreterWrapper::tflite_interpreter_wrapper_InterpreterWrapper_CreateWrapperCPPFromFile__SWIG_1(char const *,PyObject *)


mosoriob avatar May 12 '21 13:05 mosoriob