ó
šJc           @   sU   d  Z  d e f d     YZ d   Z d e f d     YZ d e f d     YZ d S(	   sF   Simple plug-in mechanism to provide replacement for setuptools pluginst   Pluginc           B   sG   e  Z d  Z e Z d d  Z d   Z e d    Z	 e d    Z
 RS(   s#   Base class for plugins to be loadedc         C   s/   | |  _  | |  _ | |  _ |  j j |   d S(   s   Register the plug-inN(   t   namet   import_patht   checkt   registryt   append(   t   selfR   R   R   (    (    s/   C:\Python27\Lib\site-packages\OpenGL\plugins.pyt   __init__   s    			c         C   s   t  |  j  S(   s*   Attempt to load and return our entry point(   t   importByNameR   (   R   (    (    s/   C:\Python27\Lib\site-packages\OpenGL\plugins.pyt   load   s    c         G   s   d S(   s7   Match to return the plugin which is appropriate to loadN(    (   t   clst   args(    (    s/   C:\Python27\Lib\site-packages\OpenGL\plugins.pyt   match   s    c         C   s   |  j  S(   s#   Iterate over all registered plugins(   R   (   R
   (    (    s/   C:\Python27\Lib\site-packages\OpenGL\plugins.pyt   all   s    N(   t   __name__t
   __module__t   __doc__t   Falset   loadedt   NoneR   R	   t   classmethodR   R   (    (    (    s/   C:\Python27\Lib\site-packages\OpenGL\plugins.pyR       s   	c         C   sN   |  j  d  } | d  } | d } t d j |  i  i  |  } t | |  S(   s   Import a class by namet   .i˙˙˙˙(   t   splitt
   __import__t   joint   getattr(   t   fullNameR   t
   moduleNamet	   classNamet   module(    (    s/   C:\Python27\Lib\site-packages\OpenGL\plugins.pyR      s
    

t   PlatformPluginc           B   s#   e  Z d  Z g  Z e d    Z RS(   s"   Platform-level plugin registrationc         C   sO   x5 | D]- } x$ |  j  D] } | j | k r | Sq Wq Wt d | f   d S(   sk   Determine what platform module to load
        
        key -- (sys.platform,os.name) key to load 
        s$   No platform plugin registered for %sN(   R   R   t   KeyError(   R
   t   keyt   possiblet   plugin(    (    s/   C:\Python27\Lib\site-packages\OpenGL\plugins.pyR   #   s
    (   R   R   R   R   R   R   (    (    (    s/   C:\Python27\Lib\site-packages\OpenGL\plugins.pyR       s   t   FormatHandlerc           B   s#   e  Z d  Z g  Z e d    Z RS(   s    Data-type storage-format handlerc         C   sV   d | j  | j f } x9 |  j D]. } t | d d  } | r  | | k r  | Sq  Wd S(   s2   Lookup appropriate handler based on value (a type)s   %s.%sR   (    N(   R   R   R   R   R   (   R
   t   valueR    R"   t   set(    (    s/   C:\Python27\Lib\site-packages\OpenGL\plugins.pyR   3   s    (   R   R   R   R   R   R   (    (    (    s/   C:\Python27\Lib\site-packages\OpenGL\plugins.pyR#   0   s   N(   R   t   objectR    R   R   R#   (    (    (    s/   C:\Python27\Lib\site-packages\OpenGL\plugins.pyt   <module>   s   		