code: def iter_distribution_names(self):
          
  
          for pkg in self.packages or ():
              yield pkg
  
          for module in self.py_modules or ():
              yield module
  
          for ext in self.ext_modules or ():
              if isinstance(ext, tuple):
                  name, buildinfo = ext
              else:
                  name = ext.name
              if name.endswith('module'):
                  name = name[:-6]
              yield name
docs: Yield all packages, modules, and extension names in distribution