ó
è?F[c           @   s9   d  Z  d d l Z d d l m Z d d d „  ƒ  YZ d S(   sº   
Wrapper class to expose a Key being read via a partial implementaiton of the
Python file interface. The only functions supported are those needed for seeking
in a Key open for reading.
iÿÿÿÿN(   t   StorageResponseErrort   KeyFilec           B   s§   e  Z d  „  Z d „  Z e j d „ Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   se   | |  _  |  j  j ƒ  d |  _ t |  _ d |  _ d |  _ d |  _ d |  _ d |  _	 | j
 |  _
 d  S(   Ni    iÿÿÿÿt   rs   Undefined in KeyFile(   t   keyt	   open_readt   locationt   Falset   closedt	   softspacet   modet   encodingt   errorst   newlinest   name(   t   selfR   (    (    s.   lib/python2.7/site-packages/boto/s3/keyfile.pyt   __init__"   s    								c         C   s%   |  j  d  k r t d ƒ ‚ n  |  j  S(   Ns   I/O operation on closed file(   R   t   Nonet
   ValueError(   R   (    (    s.   lib/python2.7/site-packages/boto/s3/keyfile.pyt   tell.   s    c         C   s\  |  j  j d t ƒ | t j k r¦ |  j  j d k r8 d  S|  j  j | d } | d k  rg t d ƒ ‚ n  |  j  j d i d | d 6ƒ |  j  j d ƒ | d |  _	 d  S| t j
 k rÓ | d k  rt d ƒ ‚ qn/ | t j k rò | |  j	 7} n t d | ƒ ‚ y" |  j  j d i d | d 6ƒ Wn( t k
 rN} | j d	 k rO‚  qOn X| |  _	 d  S(
   Nt   fasti    i   s   Invalid argumentt   headerss	   bytes=%d-t   Ranges(   Invalid whence param (%d) passed to seeki   (   R   t   closet   Truet   ost   SEEK_ENDt   sizet   IOErrorR   t   readR   t   SEEK_SETt   SEEK_CURR    t   status(   R   t   post   whencet   e(    (    s.   lib/python2.7/site-packages/boto/s3/keyfile.pyt   seek3   s.    "
c         C   s   |  j  | 7_  |  j j | ƒ S(   N(   R   R   R   (   R   R   (    (    s.   lib/python2.7/site-packages/boto/s3/keyfile.pyR   W   s    c         C   s#   |  j  j ƒ  d  |  _ t |  _ d  S(   N(   R   R   R   R   R   R   (   R   (    (    s.   lib/python2.7/site-packages/boto/s3/keyfile.pyR   [   s    	c         C   s   t  S(   N(   R   (   R   (    (    s.   lib/python2.7/site-packages/boto/s3/keyfile.pyt   isatty`   s    c         C   s   |  j  S(   N(   R   (   R   (    (    s.   lib/python2.7/site-packages/boto/s3/keyfile.pyt   getkeye   s    c         C   s   t  d ƒ ‚ d  S(   Ns    write not implemented in KeyFile(   t   NotImplementedError(   R   t   buf(    (    s.   lib/python2.7/site-packages/boto/s3/keyfile.pyt   writej   s    c         C   s   t  d ƒ ‚ d  S(   Ns!   fileno not implemented in KeyFile(   R&   (   R   (    (    s.   lib/python2.7/site-packages/boto/s3/keyfile.pyt   filenom   s    c         C   s   t  d ƒ ‚ d  S(   Ns    flush not implemented in KeyFile(   R&   (   R   (    (    s.   lib/python2.7/site-packages/boto/s3/keyfile.pyt   flushp   s    c         C   s   t  d ƒ ‚ d  S(   Ns   next not implemented in KeyFile(   R&   (   R   (    (    s.   lib/python2.7/site-packages/boto/s3/keyfile.pyt   nexts   s    c         C   s   t  d ƒ ‚ d  S(   Ns#   readinto not implemented in KeyFile(   R&   (   R   (    (    s.   lib/python2.7/site-packages/boto/s3/keyfile.pyt   readintov   s    c         C   s   t  d ƒ ‚ d  S(   Ns#   readline not implemented in KeyFile(   R&   (   R   (    (    s.   lib/python2.7/site-packages/boto/s3/keyfile.pyt   readliney   s    c         C   s   t  d ƒ ‚ d  S(   Ns$   readlines not implemented in KeyFile(   R&   (   R   (    (    s.   lib/python2.7/site-packages/boto/s3/keyfile.pyt	   readlines|   s    c         C   s   t  d ƒ ‚ d  S(   Ns#   truncate not implemented in KeyFile(   R&   (   R   (    (    s.   lib/python2.7/site-packages/boto/s3/keyfile.pyt   truncate   s    c         C   s   t  d ƒ ‚ d  S(   Ns%   writelines not implemented in KeyFile(   R&   (   R   (    (    s.   lib/python2.7/site-packages/boto/s3/keyfile.pyt
   writelines‚   s    c         C   s   t  d ƒ ‚ d  S(   Ns%   xreadlines not implemented in KeyFile(   R&   (   R   (    (    s.   lib/python2.7/site-packages/boto/s3/keyfile.pyt
   xreadlines…   s    (   t   __name__t
   __module__R   R   R   R   R#   R   R   R$   R%   R(   R)   R*   R+   R,   R-   R.   R/   R0   R1   (    (    (    s.   lib/python2.7/site-packages/boto/s3/keyfile.pyR       s"   		$													(    (   t   __doc__R   t   boto.exceptionR    R   (    (    (    s.   lib/python2.7/site-packages/boto/s3/keyfile.pyt   <module>   s   