class_docstr: Fill-in metadata and options that can be automatically derived
  (from other metadata/options, the file system or conventions)
class_docstr_tok: ["Fill-in","metadata","and","options","that","can","be","automatically","derived","(","from","other","metadata\/options",",","the","file","system","or","conventions",")"]
docstr: Automatically discover missing configuration fields
  and modifies the given ``distribution`` object in-place.
  
  Note that by default this will only have an effect the first time the
  ``ConfigDiscovery`` object is called.
  
  To repeatedly invoke automatic discovery (e.g. when the project
  directory changes), please use ``force=True`` (or create a new
  ``ConfigDiscovery`` instance).
code: def __call__(self, force=False, name=True, ignore_ext_modules=False):
      """Automatically discover missing configuration fields
      and modifies the given ``distribution`` object in-place.
  
      Note that by default this will only have an effect the first time the
      ``ConfigDiscovery`` object is called.
  
      To repeatedly invoke automatic discovery (e.g. when the project
      directory changes), please use ``force=True`` (or create a new
      ``ConfigDiscovery`` instance).
      """
      if force is False and (self._called or self._disabled):
          # Avoid overhead of multiple calls
          return
  
      self._analyse_package_layout(ignore_ext_modules)
      if name:
          self.analyse_name()  # depends on ``packages`` and ``py_modules``
  
      self._called = True
  
imports: import itertools
  import os
  from fnmatch import fnmatchcase
  from glob import glob
  from pathlib import Path
  from typing import TYPE_CHECKING, Dict, Iterable, Iterator, List, Mapping, Optional, Tuple, Union
  import _distutils_hack.override
  from distutils import log
  from distutils.util import convert_path
label_desc: Use image node_id 6 for calling the ConfigDiscovery obj's underlying member method code with example usage: obj.__call__(force, name, ignore_ext_modules) without return types