ó
[³XMc           @   s  d  Z  d d l m Z d d l Z d d l Z d d l m Z d d l m Z m Z e j	 d d e
 d d	 ƒd
 d d „  ƒ  YZ 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 d d „  ƒ  YZ d S(   sa   
Path-based references for PB, and other reference-based protocols.

Maintainer: Glyph Lefkowitz
iÿÿÿÿ(   t   copyN(   t   log(   t   Referenceablet   Viewables7   twisted.spread.refpath is deprecated since Twisted 9.0.t   categoryt
   stackleveli   t   PathReferenceContextc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s   i  |  _  | |  _ | |  _ d  S(   N(   t   metadatat   patht   root(   t   selfR   R	   (    (    s:   /usr/lib/python2.7/dist-packages/twisted/spread/refpath.pyt   __init__   s    		c         C   s   | |  j  | <d  S(   N(   R   (   R
   t   keyt   item(    (    s:   /usr/lib/python2.7/dist-packages/twisted/spread/refpath.pyt   __setitem__   s    c         C   s   |  j  | S(   N(   R   (   R
   R   (    (    s:   /usr/lib/python2.7/dist-packages/twisted/spread/refpath.pyt   __getitem__    s    c         C   s3   |  j  } x# |  j D] } | j | |  ƒ } q W| S(   N(   R	   R   t   getChild(   R
   t   ot   p(    (    s:   /usr/lib/python2.7/dist-packages/twisted/spread/refpath.pyt	   getObject#   s    	(   t   __name__t
   __module__R   R   R   R   (    (    (    s:   /usr/lib/python2.7/dist-packages/twisted/spread/refpath.pyR      s   			t   PathReferencec           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   i  |  _  d  S(   N(   t   children(   R
   (    (    s:   /usr/lib/python2.7/dist-packages/twisted/spread/refpath.pyR   *   s    c         C   s   |  j  | S(   N(   R   (   R
   t   childt   ctx(    (    s:   /usr/lib/python2.7/dist-packages/twisted/spread/refpath.pyR   ,   s    (   R   R   R   R   (    (    (    s:   /usr/lib/python2.7/dist-packages/twisted/spread/refpath.pyR   )   s   	t   PathReferenceDirectoryc           B   s   e  Z d  d „ Z d „  Z RS(   t   remotec         C   s   | |  _  | |  _ d  S(   N(   R	   t   prefix(   R
   R	   R   (    (    s:   /usr/lib/python2.7/dist-packages/twisted/spread/refpath.pyR   0   s    	c         O   sA   t  | |  ƒ } | j ƒ  } t t | d |  j | f ƒ | | ƒ S(   Ns   %s_%s(   R   R   t   applyt   getattrR   (   R
   R   t   namet   argst   kwR   t   obj(    (    s:   /usr/lib/python2.7/dist-packages/twisted/spread/refpath.pyt   remote_callPath3   s    (   R   R   R   R#   (    (    (    s:   /usr/lib/python2.7/dist-packages/twisted/spread/refpath.pyR   /   s   t   PathReferenceContextDirectoryc           B   s   e  Z d  d „ Z d „  Z RS(   R   c         C   s   | |  _  | |  _ d  S(   N(   R	   R   (   R
   R	   R   (    (    s:   /usr/lib/python2.7/dist-packages/twisted/spread/refpath.pyR   9   s    	c         O   sH   t  | |  ƒ } | j ƒ  } t t | d |  j | f ƒ | f | | ƒ S(   Ns   %s_%s(   R   R   R   R   R   (   R
   R   R   R    R!   R   R"   (    (    s:   /usr/lib/python2.7/dist-packages/twisted/spread/refpath.pyR#   <   s    (   R   R   R   R#   (    (    (    s:   /usr/lib/python2.7/dist-packages/twisted/spread/refpath.pyR$   8   s   t   PathViewDirectoryc           B   s   e  Z d  d „ Z d „  Z RS(   t   viewc         C   s   | |  _  | |  _ d  S(   N(   R	   R   (   R
   R	   R   (    (    s:   /usr/lib/python2.7/dist-packages/twisted/spread/refpath.pyR   C   s    	c         O   sH   t  | |  ƒ } | j ƒ  } t t | d |  j | f ƒ | f | | ƒ S(   Ns   %s_%s(   R   R   R   R   R   (   R
   t   perspectiveR   R   R    R!   R   R"   (    (    s:   /usr/lib/python2.7/dist-packages/twisted/spread/refpath.pyt   view_callPathF   s    (   R   R   R   R(   (    (    (    s:   /usr/lib/python2.7/dist-packages/twisted/spread/refpath.pyR%   B   s   t   PathViewContextDirectoryc           B   s   e  Z d  d „ Z d „  Z RS(   R&   c         C   s   | |  _  | |  _ d  S(   N(   R	   R   (   R
   R	   R   (    (    s:   /usr/lib/python2.7/dist-packages/twisted/spread/refpath.pyR   M   s    	c         O   sK   t  | |  ƒ } | j ƒ  } t t | d |  j | f ƒ | | f | | ƒ S(   Ns   %s_%s(   R   R   R   R   R   (   R
   R'   R   R   R    R!   R   R"   (    (    s:   /usr/lib/python2.7/dist-packages/twisted/spread/refpath.pyR(   P   s    (   R   R   R   R(   (    (    (    s:   /usr/lib/python2.7/dist-packages/twisted/spread/refpath.pyR)   L   s   t   RemotePathReferencec           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   t   refR   (   R
   R+   R   (    (    s:   /usr/lib/python2.7/dist-packages/twisted/spread/refpath.pyR   Y   s    	c         O   s*   t  |  j j d |  j | f | | ƒ d  S(   Nt   callPath(   R   R+   t
   callRemoteR   (   R
   R   R    R!   (    (    s:   /usr/lib/python2.7/dist-packages/twisted/spread/refpath.pyR-   ]   s    (   R   R   R   R-   (    (    (    s:   /usr/lib/python2.7/dist-packages/twisted/spread/refpath.pyR*   X   s   	(    (    (    (   t   __doc__R    t   ost   warningst   twisted.pythonR   t   twisted.spread.flavorsR   R   t   warnt   DeprecationWarningR   R   R   R$   R%   R)   R*   (    (    (    s:   /usr/lib/python2.7/dist-packages/twisted/spread/refpath.pyt   <module>   s   	

