def __call__(self, *args, **kwargs): # Update arguments from ordered list if len(args) > 0 and self.argnames is not None: kwargs.update( {aname: arg for aname, arg in zip(self.argnames, args)}) try: argtuple, initargtuple = self._construct_args(kwargs) # Call initializer function if necessary, then SDFG if self._initialized is False: self._lib.load() self.initialize(*initargtuple) # PROFILING if Config.get_bool('profiling'): operations.timethis(self._sdfg, 'DaCe', 0, self._cfunc, self._libhandle, *argtuple) else: self._cfunc(self._libhandle, *argtuple) return self._return_arrays except (RuntimeError, TypeError, UnboundLocalError, KeyError, cgx.DuplicateDLLError, ReferenceError): self._lib.unload() raise
def __call__(self, *args, **kwargs): argtuple = self._construct_args(*args, **kwargs) # Call initializer function if necessary, then SDFG if self._initialized == False: self.initialize(*argtuple) # PROFILING if Config.get_bool('profiling'): operations.timethis(self._sdfg.name, 'DaCe', 0, self._cfunc, *argtuple) else: return self._cfunc(*argtuple)
def __call__(self, **kwargs): try: argtuple = self._construct_args(**kwargs) # Call initializer function if necessary, then SDFG if self._initialized is False: self.initialize(*argtuple) # PROFILING if Config.get_bool('profiling'): operations.timethis(self._sdfg.name, 'DaCe', 0, self._cfunc, *argtuple) else: return self._cfunc(*argtuple) except (RuntimeError, TypeError, UnboundLocalError, KeyError, DuplicateDLLError, ReferenceError): self._lib.unload() raise