code: def all_parts(self):
          
  
          for item in self.__parts_and_divisions:
              if item.tag == 'part' and item.is_placeholder:
                  # A real part will always return a placeholder containing
                  # its content. Placeholder parts cannot have children.
                  yield item
              else:
                  for part in item.all_parts:
                      yield part
docs: Recursively get the parts flattened and in document order constituting the entire text e.g. if something has emphasis, a footnote or is marked as foreign. Text without a container element will be returned in order and wrapped with a TextPart.