docstr: configure IPython
  
      %config Class[.trait=value]
  
  This magic exposes most of the IPython config system. Any
  Configurable class should be able to be configured with the simple
  line::
  
      %config Class.trait=value
  
  Where `value` will be resolved in the user's namespace, if it is an
  expression or variable name.
  
  Examples
  --------
  
  To see what classes are available for config, pass no arguments::
  
      In [1]: %config
      Available objects for config:
          AliasManager
          DisplayFormatter
          HistoryManager
          IPCompleter
          LoggingMagics
          MagicsManager
          OSMagics
          PrefilterManager
          ScriptMagics
          TerminalInteractiveShell
  
  To view what is configurable on a given class, just pass the class
  name::
  
      In [2]: %config LoggingMagics
      LoggingMagics(Magics) options
      ---------------------------
      LoggingMagics.quiet=<Bool>
          Suppress output of log state when logging is enabled
          Current: False
  
  but the real use is in setting values::
  
      In [3]: %config LoggingMagics.quiet = True
  
  and these values are read from the user_ns if they are variables::
  
      In [4]: feeling_quiet=False
  
      In [5]: %config LoggingMagics.quiet = feeling_quiet
docstr_tok: ["configure","IPython","%","config","Class","[",".trait=value","]","This","magic","exposes","most","of","the","IPython","config","system",".","Any","Configurable","class","should","be","able","to","be","configured","with","the","simple","line",":",":","%","config","Class.trait=value","Where","`","value","`","will","be","resolved","in","the","user","'s","namespace",",","if","it","is","an","expression","or","variable","name",".","Examples","--","--","--","--","To","see","what","classes","are","available","for","config",",","pass","no","arguments",":",":","In","[","1","]",":","%","config","Available","objects","for","config",":","AliasManager","DisplayFormatter","HistoryManager","IPCompleter","LoggingMagics","MagicsManager","OSMagics","PrefilterManager","ScriptMagics","TerminalInteractiveShell","To","view","what","is","configurable","on","a","given","class",",","just","pass","the","class","name",":",":","In","[","2","]",":","%","config","LoggingMagics","LoggingMagics","(","Magics",")","options","--","--","--","--","--","--","--","--","--","--","--","--","--","-","LoggingMagics.quiet=","<","Bool",">","Suppress","output","of","log","state","when","logging","is","enabled","Current",":","False","but","the","real","use","is","in","setting","values",":",":","In","[","3","]",":","%","config","LoggingMagics.quiet","=","True","and","these","values","are","read","from","the","user_ns","if","they","are","variables",":",":","In","[","4","]",":","feeling_quiet=False","In","[","5","]",":","%","config","LoggingMagics.quiet","=","feeling_quiet"]
code: def config(self, s):
      """configure IPython
  
          %config Class[.trait=value]
  
      This magic exposes most of the IPython config system. Any
      Configurable class should be able to be configured with the simple
      line::
  
          %config Class.trait=value
  
      Where `value` will be resolved in the user's namespace, if it is an
      expression or variable name.
  
      Examples
      --------
  
      To see what classes are available for config, pass no arguments::
  
          In [1]: %config
          Available objects for config:
              AliasManager
              DisplayFormatter
              HistoryManager
              IPCompleter
              LoggingMagics
              MagicsManager
              OSMagics
              PrefilterManager
              ScriptMagics
              TerminalInteractiveShell
  
      To view what is configurable on a given class, just pass the class
      name::
  
          In [2]: %config LoggingMagics
          LoggingMagics(Magics) options
          ---------------------------
          LoggingMagics.quiet=<Bool>
              Suppress output of log state when logging is enabled
              Current: False
  
      but the real use is in setting values::
  
          In [3]: %config LoggingMagics.quiet = True
  
      and these values are read from the user_ns if they are variables::
  
          In [4]: feeling_quiet=False
  
          In [5]: %config LoggingMagics.quiet = feeling_quiet
  
      """
      from traitlets.config.loader import Config
  
      # some IPython objects are Configurable, but do not yet have
      # any configurable traits.  Exclude them from the effects of
      # this magic, as their presence is just noise:
      configurables = sorted(
          set(
              [
                  c
                  for c in self.shell.configurables
                  if c.__class__.class_traits(config=True)
              ]
          ),
          key=lambda x: x.__class__.__name__,
      )
      classnames = [c.__class__.__name__ for c in configurables]
  
      line = s.strip()
      if not line:
          # print available configurable names
          print("Available objects for config:")
          for name in classnames:
              print("   ", name)
          return
      elif line in classnames:
          # `%config TerminalInteractiveShell` will print trait info for
          # TerminalInteractiveShell
          c = configurables[classnames.index(line)]
          cls = c.__class__
          help = cls.class_get_help(c)
          # strip leading '--' from cl-args:
          help = re.sub(re.compile(r"^--", re.MULTILINE), "", help)
          print(help)
          return
      elif reg.match(line):
          cls, attr = line.split(".")
          return getattr(configurables[classnames.index(cls)], attr)
      elif "=" not in line:
          msg = (
              "Invalid config statement: %r, "
              "should be `Class.trait = value`."
          )
  
          ll = line.lower()
          for classname in classnames:
              if ll == classname.lower():
                  msg = (
                      msg
                      + "\nDid you mean %s (note the case)?" % classname
                  )
                  break
  
          raise UsageError(msg % line)
  
      # otherwise, assume we are setting configurables.
      # leave quotes on args when splitting, because we want
      # unquoted args to eval in user_ns
      cfg = Config()
      exec("cfg." + line, self.shell.user_ns, locals())
  
      for configurable in configurables:
          try:
              configurable.update_config(cfg)
          except Exception as e:
              error(e)
  
file_path: catboost/contrib/python/ipython/py3/IPython/core/magics/config.py
imports: import re
  from IPython.core.error import UsageError
  from IPython.core.magic import Magics, magics_class, line_magic
  from logging import error
label_desc: Use image node_id 2 for calling the ConfigMagics obj's underlying member method code with example usage: obj.config(s) and returns: getattr