ķ
6j/Qc           @   sl   d  Z  d d l m Z d d l m Z d d l m Z d d l m Z e e  d e f d     Y Z	 d S(	   s   Factory object
i˙˙˙˙(   t   implementer(   t   implementedBy(   t
   Implements(   t   IFactoryt   Factoryc           B   s;   e  Z d  Z d d d d  Z d   Z d   Z d   Z RS(   sĒ   Generic factory implementation.

    The purpose of this implementation is to provide a quick way of creating
    factories for classes, functions and other objects.
    t    c         C   s(   | |  _  | |  _ | |  _ | |  _ d  S(   N(   t	   _callablet   titlet   descriptiont   _interfaces(   t   selft   callableR   R   t
   interfaces(    (    s:   /usr/lib/python2.7/site-packages/zope/component/factory.pyt   __init__   s    			c         O   s   |  j  | |   S(   N(   R   (   R
   t   argst   kw(    (    s:   /usr/lib/python2.7/site-packages/zope/component/factory.pyt   __call__$   s    c         C   sG   |  j  d  k	 r: t |  j    } t |  j d d  | _ | St |  j  S(   Nt   __name__s
   [callable](   R	   t   NoneR   t   getattrR   R   R   (   R
   t   spec(    (    s:   /usr/lib/python2.7/site-packages/zope/component/factory.pyt   getInterfaces'   s
    c         C   s   d |  j  j t |  j  f S(   Ns   <%s for %s>(   t	   __class__R   t   reprR   (   R
   (    (    s:   /usr/lib/python2.7/site-packages/zope/component/factory.pyt   __repr__.   s    N(   R   t
   __module__t   __doc__R   R   R   R   R   (    (    (    s:   /usr/lib/python2.7/site-packages/zope/component/factory.pyR      s
   		N(
   R   t   zope.interfaceR    R   t   zope.interface.declarationsR   t   zope.component.interfacesR   t   objectR   (    (    (    s:   /usr/lib/python2.7/site-packages/zope/component/factory.pyt   <module>   s   