3 \* ã " @ s° d Z ddlmZ ddlmZ ddlmZ yddlZW n2 ek rf Z zejdkrR‚ dZW Y ddZ[X nX yddl Z W n& ek rš Z z eZ W Y ddZ[X nX ddl Z dd „ ZG d d„ de jd�Z G d d„ de ƒZeeejejejejƒ G dd„ de ƒZeeejƒ G dd„ de jd�ZG dd„ deƒZG dd„ deƒZeeejejƒ G dd„ deƒZeeejƒ G dd„ dejeeƒZeeejejƒ G dd„ dejeeƒZeeejƒ dS )z(Abstract base classes related to import.é )Ú _bootstrap)Ú_bootstrap_external)Ú machineryé NÚ_frozen_importlibc G s` xZ|D ]R}| j |ƒ td k rytt|jƒ}W n tk rL tt|jƒ}Y nX | j |ƒ qW d S )N)Úregisterr ÚgetattrÚ__name__ÚAttributeErrorÚ_frozen_importlib_external)Úabstract_clsÚclassesÚclsÚ frozen_cls© r ú%/usr/lib64/python3.6/importlib/abc.pyÚ _register s r c @ s e Zd ZdZejddd„ƒZdS )ÚFindera Legacy abstract base class for import finders. It may be subclassed for compatibility with legacy third party reimplementations of the import system. Otherwise, finder implementations should derive from the more specific MetaPathFinder or PathEntryFinder ABCs. Nc C s dS )z¥An abstract method that should find a module. The fullname is a str and the optional path is a str or None. Returns a Loader object or None. Nr )ÚselfÚfullnameÚpathr r r Úfind_module' s zFinder.find_module)N)r Ú __module__Ú__qualname__Ú__doc__ÚabcÚabstractmethodr r r r r r s r )Ú metaclassc @ s e Zd ZdZdd„ Zdd„ ZdS )ÚMetaPathFinderz8Abstract base class for import finders on sys.meta_path.c C s, t | dƒsdS | j||ƒ}|dk r(|jS dS )aN Return a loader for the module. If no module is found, return None. The fullname is a str and the path is a list of strings or None. This method is deprecated in favor of finder.find_spec(). If find_spec() exists then backwards-compatible functionality is provided for this method. Ú find_specN)Úhasattrr Úloader)r r r Úfoundr r r r 6 s zMetaPathFinder.find_modulec C s dS )z‚An optional method for clearing the finder's cache, if any. This method is used by importlib.invalidate_caches(). Nr )r r r r Úinvalidate_cachesF s z MetaPathFinder.invalidate_cachesN)r r r r r r# r r r r r / s r c @ s&