class_docstr: These are situations that can be tested in our pythran tests:
  - A function with multiple array arguments and then
    other positional and keyword arguments.
  - A function with array-like keywords (e.g. `def somefunc(x0, x1=None)`.
  Note: list/tuple input is not yet tested!
  
  `self.arguments`: A dictionary which key is the index of the argument,
                    value is tuple(array value, all supported dtypes)
  `self.partialfunc`: A function used to freeze some non-array argument
                      that of no interests in the original function
code: def get_optional_args(self, func):
      # get optional arguments with its default value,
      # used for testing keywords
      signature = inspect.signature(func)
      optional_args = {}
      for k, v in signature.parameters.items():
          if v.default is not inspect.Parameter.empty:
              optional_args[k] = v.default
      return optional_args
  
imports: import os
  import re
  import sys
  import numpy
  import inspect
  import sysconfig
label_desc: Use image node_id 2 for calling the _TestPythranFunc obj's underlying member method code with example usage: obj.get_optional_args(func) and returns: optional_args