code: def _parse_dicts(self, *args) -> Tuple[np.ndarray, np.ndarray]:
          
          # initialize the X variable that will be returned
          X: np.ndarray
          dX: np.ndarray
          # get the number of arguments and inputs
          argc: int = len(args)
  
          if argc == 2:
              arg_vars = args[0]
              arg_seed = args[1]
              if arg_vars is None:
                  return (None,None)
              X = self._parse_vars_tbl(arg_vars)
              dX = self._parse_seed_tbl(arg_seed)
              # if dX was the default dict, tile dX to match T
              if X.shape[0] > 1 and dX.shape[0] == 1:
                  dX = np.tile(dX, (X.shape[0], 1))
              # Return the arrays of argument values
              return (X,dX)
          # If we reach here, the contract was broken
          msg = f'argc={argc}'
          for arg in args:
              msg += f'{arg}'
          raise ValueError(f'Contract broken. Unrecognized input type for Fluxion._parse_dicts.  Details: \n{msg}')
docs: Parse input arguments used in function evaluation.
          End result will be two arrays X of shape (m) or (T, m)
          Allowed input shapes are:
          (1) DICT:       dictionary mapping variable names to values
          (2) ARGS:       2 dictionaries mapping variable names to values