docs: def complist(self):
          """Return a list of all components and sub-components.
          This is for use with :py:meth:`~object.__iter__`.
  
          """
          ans = []
          for comp in (self.component1, self.component2):
              try:
                  ans.extend(comp.complist())
              except AttributeError:
                  ans.append(comp)
          return ans