code: def list_from_args(args):
      
      # Empty args
      if not args:
          return []
  
      # Get argument type
      arg_type = type(args[0])
      is_list = arg_type in LIST_TYPES
  
      # Check that the arguments are uniforn (of same type)
      same_type = all([
          isinstance(arg, arg_type)
          for arg in args
      ])
  
      if not same_type:
          raise Exception('Expected uniform arguments of same type !')
  
      # Flatten iterables
      # ['x', 'y'], ...
      if is_list:
          args_lists = map(list, args)
          flattened_args = sum(args_lists, [])
          return flattened_args
      # Flatten set
      # 'x', 'y'
      return list(args)
docs: Flatten list of args
      So as to accept either an array
      Or as many arguments
      For example:
      func(['x', 'y'])
      func('x', 'y')