class_docstr: A class to manage IPython extensions.
  
  An IPython extension is an importable Python module that has
  a function with the signature::
  
      def load_ipython_extension(ipython):
          # Do things with ipython
  
  This function is called after your extension is imported and the
  currently active :class:`InteractiveShell` instance is passed as
  the only argument.  You can do anything you want with IPython at
  that point, including defining new magic and aliases, adding new
  components, etc.
  
  You can also optionally define an :func:`unload_ipython_extension(ipython)`
  function, which will be called if the user unloads or reloads the extension.
  The extension manager will only call :func:`load_ipython_extension` again
  if the extension is reloaded.
  
  You can put your extension modules anywhere you want, as long as
  they can be imported by Python's standard import mechanism.  However,
  to make it easy to write extensions, you can also put your extensions
  in ``os.path.join(self.ipython_dir, 'extensions')``.  This directory
  is added to ``sys.path`` automatically.
class_docstr_tok: ["A","class","to","manage","IPython","extensions",".","An","IPython","extension","is","an","importable","Python","module","that","has","a","function","with","the","signature",":",":","def","load_ipython_extension","(","ipython",")",":","#","Do","things","with","ipython","This","function","is","called","after","your","extension","is","imported","and","the","currently","active",":","class",":","`","InteractiveShell","`","instance","is","passed","as","the","only","argument",".","You","can","do","anything","you","want","with","IPython","at","that","point",",","including","defining","new","magic","and","aliases",",","adding","new","components",",","etc",".","You","can","also","optionally","define","an",":","func",":","`","unload_ipython_extension","(","ipython",")","`","function",",","which","will","be","called","if","the","user","unloads","or","reloads","the","extension",".","The","extension","manager","will","only","call",":","func",":","`","load_ipython_extension","`","again","if","the","extension","is","reloaded",".","You","can","put","your","extension","modules","anywhere","you","want",",","as","long","as","they","can","be","imported","by","Python","'s","standard","import","mechanism",".","However",",","to","make","it","easy","to","write","extensions",",","you","can","also","put","your","extensions","in","``","os.path.join","(","self.ipython_dir",",","'extensions","'",")","``",".","This","directory","is","added","to","``","sys.path","``","automatically","."]
code: def _call_load_ipython_extension(self, mod):
      if hasattr(mod, "load_ipython_extension"):
          mod.load_ipython_extension(self.shell)
          return True
  
file_path: catboost/contrib/python/ipython/py3/IPython/core/extensions.py
imports: import os
  import os.path
  import sys
  from importlib import import_module, reload
  from traitlets.config.configurable import Configurable
  from IPython.utils.path import ensure_dir_exists, compress_user
  from IPython.utils.decorators import undoc
  from traitlets import Instance
label_desc: Use image node_id 8 for calling the ExtensionManager obj's underlying member method code with example usage: obj._call_load_ipython_extension(mod) and returns: True