code: def _iter_flattened_categories(self):
          
          levels = self.levels
          if not levels:
              return
          leaf_level, remaining_levels = levels[0], levels[1:]
          for category in leaf_level:
              yield self._parentage((category,), remaining_levels)
docs: Generate a ``tuple`` object for each leaf category in this
          collection, containing the leaf category followed by its "parent"
          categories, e.g. ``('San Francisco', 'CA', 'USA'). Each tuple will be
          the same length as the number of levels (excepting certain edge
          cases which I believe always indicate a chart construction error).