docs: def from_string(cls, text, comments="#", error="warn"):
          """Generator of TLEs from a string
  
          Args:
              text (str): A text containing many TLEs
              comments (str): If a line starts with this character, it is ignored
              error (str): How to handle errors while parsing the text. Could be
                  'raise', 'warn' or 'ignore'.
          Yields:
              Tle:
          """
  
          cache = []
          for line in text.splitlines():
  
              # If the line is empty or begins with a comment mark, we skip it.
              if not line.strip() or line.startswith(comments):
                  continue
  
              # The startswith conditions include a blank space in order to not take into account
              # lines containing only a COSPAR ID, which happens when an object is detected but the
              # JSpOc doesn't know what is the source yet.
              if line.startswith('1 '):
                  cache.append(line)
              elif line.startswith('2 '):
                  cache.append(line)
                  try:
                      yield cls("\n".join(cache))
                  except ValueError as e:
                      if error in ('raise', 'warn'):
                          if error == "raise":
                              raise
                          else:
                              log.warning(str(e))
  
                  cache = []
              else:
                  # In the 3LE format, the first line (numbered 0, or unnumbered) contains the name
                  # of the satellite
                  # In the TLE format, this line doesn't exists.
                  cache = [line]