docs: def next_available_name(self, fmt_str='arr{0}', counter=None):
          """Create a new array out of the given format string
  
          Parameters
          ----------
          format_str: str
              The base string to use. ``'{0}'`` will be replaced by a counter
          counter: iterable
              An iterable where the numbers should be drawn from. If None,
              ``range(100)`` is used
  
          Returns
          -------
          str
              A possible name that is not in the current project"""
          names = self.arr_names
          counter = counter or iter(range(1000))
          try:
              new_name = next(
                  filter(lambda n: n not in names,
                         map(fmt_str.format, counter)))
          except StopIteration:
              raise ValueError(
                  "{0} already in the list".format(fmt_str))
          return new_name