code: def config_dir(self):
          "Return dir(self)."
  
          my_vars = set(self)
          skips = self.bad_names | my_vars
  
          yield from (
              attr
              for attr in dir(type(self))
              if (
                  attr not in skips and
                  not (
                      attr.startswith('_') and
                      not attr.startswith('__') and
                      hasattr(self, attr[1:])
                  ) and hasattr(self, attr)
              )
          )
  
          yield from my_varf config_dir(self):
          "Return dir(self)."
  
          my_vars = set(self)
          skips = self.bad_names | my_vars
  
          yield from (
              attr
              for attr in dir(type(self))
              if (
                  attr not in skips and
                  not (
                      attr.startswith('_') and
                      not attr.startswith('__') and
                      hasattr(self, attr[1:])
                  ) and hasattr(self, attr)
              )
          )
  
          yield from my_vars
docs: Return dir(self).