docs: def flatten(iterable):
      '''This function allows a simple a way to iterate over a "complex" iterable, for example,
      if the input [12, [23], (4, 3), "lkjasddf"], this will return an Iterable that returns
      12, 23, 4, 3 and "lkjasddf".
  
      Args:
          iterable (Iterable) - A complex iterable that will be flattened
  
      Returns:
          (Iterable): An Iterable that flattens multiple interables'''
      return itertools.chain.from_iterable(a if isinstance(a,Iterable) and not isinstance(a, str) else [a] for a in iterable)