code: def __init__(self, func: Union[Callable, str]) -> None:
      if isinstance(func, str):
          # Try to load the function from a string notion
          self.function = get_callable(func)
      else:
          self.function = func
  
      self._name = "Opyrator"
      self._description = ""
      self._input_type = None
      self._output_type = None
  
      if not callable(self.function):
          raise ValueError(
              "The provided function parameters is not a callable."
          )
  
      if inspect.isclass(self.function):
          raise ValueError(
              "The provided callable is an uninitialized Class. This is not allowed."
          )
  
      if inspect.isfunction(self.function):
          # The provided callable is a function
          self._input_type = get_input_type(self.function)
          self._output_type = get_output_type(self.function)
  
          try:
              # Get name
              self._name = name_to_title(self.function.__name__)
          except Exception:
              pass
  
          try:
              # Get description from function
              doc_string = inspect.getdoc(self.function)
              if doc_string:
                  self._description = doc_string
          except Exception:
              pass
      elif hasattr(self.function, "__call__"):
          # The provided callable is a function
          self._input_type = get_input_type(self.function.__call__)  # type: ignore
          self._output_type = get_output_type(self.function.__call__)  # type: ignore
  
          try:
              # Get name
              self._name = name_to_title(type(self.function).__name__)
          except Exception:
              pass
  
          try:
              # Get description from
              doc_string = inspect.getdoc(self.function.__call__)  # type: ignore
              if doc_string:
                  self._description = doc_string
  
              if (
                  not self._description
                  or self._description == "Call self as a function."
              ):
                  # Get docstring from class instead of __call__ function
                  doc_string = inspect.getdoc(self.function)
                  if doc_string:
                      self._description = doc_string
          except Exception:
              pass
      else:
          raise ValueError("Unknown callable type.")
  
file_path: opyrator/src/opyrator/core.py
imports: import importlib
  import inspect
  import re
  from typing import Any, Callable, Type, Union, get_type_hints
  from pydantic import BaseModel, parse_raw_as
  from pydantic.tools import parse_obj_as
label_desc: Use image node_id 1 to create a new Opyrator object  with example: obj = Opyrator(func)