File: //lib64/python2.7/ihooks.pyo
�
zfc           @   s�  d  Z  d d l m Z m Z e d d d �[ d d l Z d d l Z d d l Z d d l Z d d d	 d
 d d d
 d g Z d Z	 d d l m
 Z
 m Z m Z d d l m
 Z
 m Z m Z e
 Z e Z d d d �  �  YZ d e f d �  �  YZ d e f d �  �  YZ d	 e f d �  �  YZ d
 e f d �  �  YZ d e f d �  �  YZ d e f d �  �  YZ d Z d a d d � Z d �  Z d S(   s,	  Import hook support.
Consistent use of this module will make it possible to change the
different mechanisms involved in loading modules independently.
While the built-in module imp exports interfaces to the built-in
module searching and loading algorithm, and it is possible to replace
the built-in function __import__ in order to change the semantics of
the import statement, until now it has been difficult to combine the
effect of different __import__ hacks, like loading modules from URLs
by rimport.py, or restricted execution by rexec.py.
This module defines three new concepts:
1) A "file system hooks" class provides an interface to a filesystem.
One hooks class is defined (Hooks), which uses the interface provided
by standard modules os and os.path.  It should be used as the base
class for other hooks classes.
2) A "module loader" class provides an interface to search for a
module in a search path and to load it.  It defines a method which
searches for a module in a single directory; by overriding this method
one can redefine the details of the search.  If the directory is None,
built-in and frozen modules are searched instead.
Two module loader class are defined, both implementing the search
strategy used by the built-in __import__ function: ModuleLoader uses
the imp module's find_module interface, while HookableModuleLoader
uses a file system hooks class to interact with the file system.  Both
use the imp module's load_* interfaces to actually load the module.
3) A "module importer" class provides an interface to import a
module, as well as interfaces to reload and unload a module.  It also
provides interfaces to install and uninstall itself instead of the
default __import__ and reload (and unload) functions.
One module importer class is defined (ModuleImporter), which uses a
module loader instance passed in (by default HookableModuleLoader is
instantiated).
The classes defined here should be used as base classes for extended
functionality along those lines.
If a module importer class supports dotted names, its import_module()
must return a different value depending on whether it is called on
behalf of a "from ... import ..." statement or not.  (This is caused
by the way the __import__ hook is used by the Python interpreter.)  It
would also do wise to install a different version of reload().
i����(   t   warnpy3kt   warns0   the ihooks module has been removed in Python 3.0t
   stackleveli   Nt   BasicModuleLoadert   Hookst   ModuleLoadert   FancyModuleLoadert   BasicModuleImportert   ModuleImportert   installt	   uninstalli    (   t   C_EXTENSIONt	   PY_SOURCEt   PY_COMPILED(   t	   C_BUILTINt	   PY_FROZENt
   PKG_DIRECTORYt   _Verbosec           B   s8   e  Z e d  � Z d �  Z d �  Z d �  Z d �  Z RS(   c         C   s
   | |  _  d  S(   N(   t   verbose(   t   selfR   (    (    s   /usr/lib64/python2.7/ihooks.pyt   __init__K   s    c         C   s   |  j  S(   N(   R   (   R   (    (    s   /usr/lib64/python2.7/ihooks.pyt   get_verboseN   s    c         C   s
   | |  _  d  S(   N(   R   (   R   R   (    (    s   /usr/lib64/python2.7/ihooks.pyt   set_verboseQ   s    c         G   s   |  j  r |  j | �  n  d  S(   N(   R   t   message(   R   t   args(    (    s   /usr/lib64/python2.7/ihooks.pyt   noteV   s    	c         G   s   | r | | GHn | GHd  S(   N(    (   R   t   formatR   (    (    s   /usr/lib64/python2.7/ihooks.pyR   Z   s    (   t   __name__t
   __module__t   VERBOSER   R   R   R   R   (    (    (    s   /usr/lib64/python2.7/ihooks.pyR   I   s
   			c           B   s>