ó
Xé?_c           @   sc   d  Z  d d l m Z m Z m Z d „  Z d „  Z d e f d „  ƒ  YZ d d „ Z	 d	 „  Z
 d
 S(   s   CherryPy Libraryiÿÿÿÿ(   t   unreprt   modulest
   attributesc         C   sJ   d d l  m } t |  | ƒ r# t St |  d ƒ s6 t St |  ƒ |  k Sd S(   sÈ   Returns a boolean indicating if the object provided implements
     the iterator protocol (i.e. like a generator). This will return
     false for objects which iterable, but not iterators themselves.iÿÿÿÿ(   t   GeneratorTypet   __iter__N(   t   typesR   t
   isinstancet   Truet   hasattrt   Falset   iter(   t   objR   (    (    s|   /local/mnt/workspace/CRMBuilds/Saipan.LA.2.0-00145-STD.PROD-1_20200821_083004/b/common/sectools/ext/cherrypy/lib/__init__.pyt   is_iterator   s    c         C   s‚   t  |  ƒ s t Sd d  l } | j |  ƒ r/ t St |  d ƒ oJ t |  j ƒ sQ t Sy | j |  j ƒ Wn t	 k
 ry t SXt Sd  S(   Niÿÿÿÿt   close(
   R   R	   t   inspectt   isgeneratorR   R   t   callableR   t   getcallargst	   TypeError(   R   R   (    (    s|   /local/mnt/workspace/CRMBuilds/Saipan.LA.2.0-00145-STD.PROD-1_20200821_083004/b/common/sectools/ext/cherrypy/lib/__init__.pyt   is_closable_iterator   s    t   file_generatorc           B   s2   e  Z d  Z d d „ Z d „  Z d „  Z e Z RS(   sE   Yield the given input (a file object) in chunks (default 64k). (Core)i   c         C   s   | |  _  | |  _ d  S(   N(   t   inputt	   chunkSize(   t   selfR   R   (    (    s|   /local/mnt/workspace/CRMBuilds/Saipan.LA.2.0-00145-STD.PROD-1_20200821_083004/b/common/sectools/ext/cherrypy/lib/__init__.pyt   __init__/   s    	c         C   s   |  S(   N(    (   R   (    (    s|   /local/mnt/workspace/CRMBuilds/Saipan.LA.2.0-00145-STD.PROD-1_20200821_083004/b/common/sectools/ext/cherrypy/lib/__init__.pyR   3   s    c         C   sN   |  j  j |  j ƒ } | r | St |  j  d ƒ rA |  j  j ƒ  n  t ƒ  ‚ d  S(   NR   (   R   t   readR   R   R   t   StopIteration(   R   t   chunk(    (    s|   /local/mnt/workspace/CRMBuilds/Saipan.LA.2.0-00145-STD.PROD-1_20200821_083004/b/common/sectools/ext/cherrypy/lib/__init__.pyt   __next__6   s    (   t   __name__t
   __module__t   __doc__R   R   R   t   next(    (    (    s|   /local/mnt/workspace/CRMBuilds/Saipan.LA.2.0-00145-STD.PROD-1_20200821_083004/b/common/sectools/ext/cherrypy/lib/__init__.pyR   +   s
   		i   c         c   s`   | } xS | d k r[ |  j  t | | ƒ ƒ } t | ƒ } | d k rI d S| | 8} | Vq	 Wd S(   s‚   Yield the given file object in chunks, stopping after `count`
    bytes has been emitted.  Default chunk size is 64kB. (Core)
    i    N(   R   t   mint   len(   t   fileobjt   countt
   chunk_sizet	   remainingR   t   chunklen(    (    s|   /local/mnt/workspace/CRMBuilds/Saipan.LA.2.0-00145-STD.PROD-1_20200821_083004/b/common/sectools/ext/cherrypy/lib/__init__.pyt   file_generator_limitedA   s    
c         C   s   |  j  j d d ƒ } g  | j d ƒ D] } | j ƒ  r% | j ƒ  ^ q% } | | k re | j | ƒ n  d j | ƒ |  j  d <d S(   s   Add a Vary header to a responset   Varyt    t   ,s   , N(   t   headerst   gett   splitt   stript   appendt   join(   t   responset   header_namet   variest   x(    (    s|   /local/mnt/workspace/CRMBuilds/Saipan.LA.2.0-00145-STD.PROD-1_20200821_083004/b/common/sectools/ext/cherrypy/lib/__init__.pyt   set_vary_headerO   s
    4N(   R   t   cherrypy.lib.reprconfR    R   R   R   R   t   objectR   R(   R6   (    (    (    s|   /local/mnt/workspace/CRMBuilds/Saipan.LA.2.0-00145-STD.PROD-1_20200821_083004/b/common/sectools/ext/cherrypy/lib/__init__.pyt   <module>   s   		