;
Éâ"Ic            	   @   s*  d  Z  d d l Z d d l Z d d l Z d d l Z d d l Z d d d g Z Gd „  d e ƒ Z e	 d ƒ \ Z
 Z Z d Z d	 Z d
 Z Gd „  d ƒ Z d „  Z Gd „  d ƒ Z Gd „  d ƒ Z Gd „  d ƒ Z Gd „  d ƒ Z d „  Z Gd „  d ƒ Z Gd „  d ƒ Z Gd „  d ƒ Z d „  Z d S(   u‰   Macintosh binhex compression/decompression.

easy interface:
binhex(inputfilename, outputfilename)
hexbin(inputfilename, outputfilename)
i    Nu   binhexu   hexbinu   Errorc             B   s   |  Ee  Z d  S(   N(   u   __name__u
   __module__(   u
   __locals__(    (    u#   /mit/python/lib/python3.0/binhex.pyu   Error    s   
i   i €  i@   s   c             B   s   |  Ee  Z d  „  Z d S(   c             C   s   d |  _  d |  _ d |  _ d  S(   Nu   ????i    (   u   Typeu   Creatoru   Flags(   u   self(    (    u#   /mit/python/lib/python3.0/binhex.pyu   __init__0   s    		N(   u   __name__u
   __module__u   __init__(   u
   __locals__(    (    u#   /mit/python/lib/python3.0/binhex.pyu   FInfo/   s   
u   FInfoc             C   s§   t  ƒ  } t j |  d ƒ } | j d ƒ } d | k o d | _ n | j d d ƒ | j ƒ  } | j ƒ  t j	 j
 |  ƒ \ } } | j d d d ƒ } | | | d f S(	   Nu   rbi   i    u   TEXTi   u   :u   -i   (   u   FInfou   iou   openu   readu   Typeu   seeku   tellu   closeu   osu   pathu   splitu   replace(   u   nameu   finfou   fpu   datau   dsizeu   diru   file(    (    u#   /mit/python/lib/python3.0/binhex.pyu   getfileinfo5   s    	
c             B   s2   |  Ee  Z d  „  Z d „  Z d „  Z d „  Z d S(   c             G   s   d  S(   N(    (   u   selfu   args(    (    u#   /mit/python/lib/python3.0/binhex.pyu   __init__D   s    c             G   s   d S(   Ns    (    (   u   selfu   args(    (    u#   /mit/python/lib/python3.0/binhex.pyu   readG   s    c             G   s   d  S(   N(    (   u   selfu   args(    (    u#   /mit/python/lib/python3.0/binhex.pyu   writeJ   s    c             C   s   d  S(   N(    (   u   self(    (    u#   /mit/python/lib/python3.0/binhex.pyu   closeM   s    N(   u   __name__u
   __module__u   __init__u   readu   writeu   close(   u
   __locals__(    (    u#   /mit/python/lib/python3.0/binhex.pyu   openrsrcC   s   
			u   openrsrcc             B   s8   |  Ee  Z d  Z d „  Z d „  Z d „  Z d „  Z d S(   u(   Write data to the coder in 3-byte chunksc             C   s,   | |  _  d |  _ d |  _ t d |  _ d  S(   Ns    i   (   u   ofpu   datau   hqxdatau   LINELENu   linelen(   u   selfu   ofp(    (    u#   /mit/python/lib/python3.0/binhex.pyu   __init__S   s    			c             C   sŒ   |  j  | |  _  t |  j  ƒ } | d d } |  j  d  | … } |  j  | d  … |  _  | p d  S|  j t j | ƒ |  _ |  j d ƒ d  S(   Ni   i    (   u   datau   lenu   hqxdatau   binasciiu   b2a_hqxu   _flush(   u   selfu   datau   datalenu   todo(    (    u#   /mit/python/lib/python3.0/binhex.pyu   writeY   s    c             C   s¤   d } x_ | t  |  j ƒ |  j k oA | |  j } |  j j |  j | | … d ƒ t |  _ | } q	 W|  j | d  … |  _ | o |  j j |  j d ƒ n d  S(   Ni    s   
s   :
(   u   lenu   hqxdatau   linelenu   ofpu   writeu   LINELEN(   u   selfu   forceu   firstu   last(    (    u#   /mit/python/lib/python3.0/binhex.pyu   _flushd   s     !	c             C   sN   |  j  o  |  j t j |  j  ƒ |  _ n |  j d ƒ |  j j ƒ  |  ` d  S(   Ni   (   u   datau   hqxdatau   binasciiu   b2a_hqxu   _flushu   ofpu   close(   u   self(    (    u#   /mit/python/lib/python3.0/binhex.pyu   closeo   s
    
 N(   u   __name__u
   __module__u   __doc__u   __init__u   writeu   _flushu   close(   u
   __locals__(    (    u#   /mit/python/lib/python3.0/binhex.pyu   _HqxcoderengineP   s
   
			u   _Hqxcoderenginec             B   s/   |  Ee  Z d  Z d „  Z d „  Z d „  Z d S(   u4   Write data to the RLE-coder in suitably large chunksc             C   s   | |  _  d |  _ d  S(   Ns    (   u   ofpu   data(   u   selfu   ofp(    (    u#   /mit/python/lib/python3.0/binhex.pyu   __init__y   s    	c             C   sZ   |  j  | |  _  t |  j  ƒ t k  o d  St j |  j  ƒ } |  j j | ƒ d |  _  d  S(   Ns    (   u   datau   lenu   REASONABLY_LARGEu   binasciiu   rlecode_hqxu   ofpu   write(   u   selfu   datau   rledata(    (    u#   /mit/python/lib/python3.0/binhex.pyu   write}   s    c             C   sG   |  j  o& t j |  j  ƒ } |  j j | ƒ n |  j j ƒ  |  ` d  S(   N(   u   datau   binasciiu   rlecode_hqxu   ofpu   writeu   close(   u   selfu   rledata(    (    u#   /mit/python/lib/python3.0/binhex.pyu   close…   s
    
N(   u   __name__u
   __module__u   __doc__u   __init__u   writeu   close(   u
   __locals__(    (    u#   /mit/python/lib/python3.0/binhex.pyu   _Rlecoderenginev   s   
		u   _Rlecoderenginec             B   sV   |  Ee  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d S(	   c       
      C   sè   | \ } } } } t  | t ƒ oL | } t j | d ƒ } t j d k o  t | ƒ } | j d d ƒ qn n | j d ƒ t	 | ƒ }	 t
 |	 ƒ |  _ d |  _ | d  k o t ƒ  } n | |  _ | |  _ |  j | | ƒ t |  _ d  S(   Nu   wbu   macu   BnHqu   TEXTs0   (This file must be converted with BinHex 4.0):i    (   u
   isinstanceu   stru   iou   openu   osu   nameu   FSSpecu   SetCreatorTypeu   writeu   _Hqxcoderengineu   _Rlecoderengineu   ofpu   crcu   Noneu   FInfou   dlenu   rlenu
   _writeinfou   _DID_HEADERu   state(
   u   selfu   name_finfo_dlen_rlenu   ofpu   nameu   finfou   dlenu   rlenu   ofnameu   fssu   hqxer(    (    u#   /mit/python/lib/python3.0/binhex.pyu   __init__   s"    			c             C   s	  t  | ƒ } | d k o t d ƒ ‚ n t | g ƒ | j d ƒ d } | j | j } } t | t ƒ o | j d ƒ } n t | t ƒ o | j d ƒ } n | | } t j	 d | j
 ƒ } t j	 d |  j |  j ƒ }	 | | | |	 }
 |  j |
 ƒ |  j ƒ  d  S(   Ni?   u   Filename too longu   latin-1s    u   >hu   >ii(   u   lenu   Erroru   bytesu   encodeu   Typeu   Creatoru
   isinstanceu   stru   structu   packu   Flagsu   dlenu   rlenu   _writeu	   _writecrc(   u   selfu   nameu   finfou   nlu   du   tpu   cru   d2u   d3u   d4u   info(    (    u#   /mit/python/lib/python3.0/binhex.pyu
   _writeinfo    s     
c             C   s,   t  j | |  j ƒ |  _ |  j j | ƒ d  S(   N(   u   binasciiu   crc_hqxu   crcu   ofpu   write(   u   selfu   data(    (    u#   /mit/python/lib/python3.0/binhex.pyu   _write³   s    c             C   sL   |  j  d k  o
 d } n d } |  j j t j | |  j  ƒ ƒ d |  _  d  S(   Ni    u   >hu   >H(   u   crcu   ofpu   writeu   structu   pack(   u   selfu   fmt(    (    u#   /mit/python/lib/python3.0/binhex.pyu	   _writecrc·   s
    
c             C   sG   |  j  t k o t d ƒ ‚ n |  j t | ƒ |  _ |  j | ƒ d  S(   Nu   Writing data at the wrong time(   u   stateu   _DID_HEADERu   Erroru   dlenu   lenu   _write(   u   selfu   data(    (    u#   /mit/python/lib/python3.0/binhex.pyu   writeÁ   s    c             C   sA   |  j  d k o t d |  j f ƒ ‚ n |  j ƒ  t |  _ d  S(   Ni    u   Incorrect data size, diff=%r(   u   dlenu   Erroru   rlenu	   _writecrcu	   _DID_DATAu   state(   u   self(    (    u#   /mit/python/lib/python3.0/binhex.pyu
   close_dataÇ   s    
c             C   se   |  j  t k  o |  j ƒ  n |  j  t k o t d ƒ ‚ n |  j t | ƒ |  _ |  j | ƒ d  S(   Nu'   Writing resource data at the wrong time(   u   stateu	   _DID_DATAu
   close_datau   Erroru   rlenu   lenu   _write(   u   selfu   data(    (    u#   /mit/python/lib/python3.0/binhex.pyu
   write_rsrcÍ   s    c             C   s’   |  j  t k  o |  j ƒ  n |  j  t k o t d ƒ ‚ n |  j d k o t d |  j f ƒ ‚ n |  j ƒ  |  j j ƒ  d  |  _  |  ` d  S(   Nu   Close at the wrong timei    u$   Incorrect resource-datasize, diff=%r(	   u   stateu	   _DID_DATAu
   close_datau   Erroru   rlenu	   _writecrcu   ofpu   closeu   None(   u   self(    (    u#   /mit/python/lib/python3.0/binhex.pyu   closeÕ   s    
	N(
   u   __name__u
   __module__u   __init__u
   _writeinfou   _writeu	   _writecrcu   writeu
   close_datau
   write_rsrcu   close(   u
   __locals__(    (    u#   /mit/python/lib/python3.0/binhex.pyu   BinHexŒ   s   
				
			u   BinHexc             C   sÄ   t  |  ƒ } t | | ƒ } t j |  d ƒ } x+ | j d ƒ } | p Pn | j | ƒ q0 | j ƒ  | j ƒ  t |  d ƒ } x+ | j d ƒ } | p Pn | j	 | ƒ q | j ƒ  | j ƒ  d S(   uE   binhex(infilename, outfilename): create binhex-encoded copy of a fileu   rbi ô N(
   u   getfileinfou   BinHexu   iou   openu   readu   writeu
   close_datau   closeu   openrsrcu
   write_rsrc(   u   inpu   outu   finfou   ofpu   ifpu   d(    (    u#   /mit/python/lib/python3.0/binhex.pyu   binhexá   s$     

 
c             B   s/   |  Ee  Z d  Z d „  Z d „  Z d „  Z d S(   u*   Read data via the decoder in 4-byte chunksc             C   s   | |  _  d |  _ d  S(   Ni    (   u   ifpu   eof(   u   selfu   ifp(    (    u#   /mit/python/lib/python3.0/binhex.pyu   __init__ú   s    	c             C   s  d } | } xò | d k oä |  j  o | S| d d d } |  j j | ƒ } xm y t j | ƒ \ } |  _  PWn t j k
 o Yn X|  j j d ƒ } | p t d ƒ ‚ n | | } qR | | } | t | ƒ } | o |  j  o t d ƒ ‚ q q W| S(   u&   Read at least wtd bytes (or until EOF)s    i    i   i   i   i   u   Premature EOF on binhex file(   u   eofu   ifpu   readu   binasciiu   a2b_hqxu
   Incompleteu   Erroru   len(   u   selfu   totalwtdu   decdatau   wtdu   datau
   decdatacuru   newdata(    (    u#   /mit/python/lib/python3.0/binhex.pyu   readþ   s.     
 
c             C   s   |  j  j ƒ  d  S(   N(   u   ifpu   close(   u   self(    (    u#   /mit/python/lib/python3.0/binhex.pyu   close  s    N(   u   __name__u
   __module__u   __doc__u   __init__u   readu   close(   u
   __locals__(    (    u#   /mit/python/lib/python3.0/binhex.pyu   _Hqxdecoderengine÷   s   
		 u   _Hqxdecoderenginec             B   s8   |  Ee  Z d  Z d „  Z d „  Z d „  Z d „  Z d S(   u   Read data via the RLE-coderc             C   s(   | |  _  d |  _ d |  _ d |  _ d  S(   Ns    i    (   u   ifpu
   pre_bufferu   post_bufferu   eof(   u   selfu   ifp(    (    u#   /mit/python/lib/python3.0/binhex.pyu   __init__$  s    			c             C   sa   | t  |  j ƒ k o |  j | t  |  j ƒ ƒ n |  j d  | … } |  j | d  … |  _ | S(   N(   u   lenu   post_bufferu   _fill(   u   selfu   wtdu   rv(    (    u#   /mit/python/lib/python3.0/binhex.pyu   read*  s
    c             C   sF  |  j  |  j j | d ƒ |  _  |  j j o* |  j t j |  j  ƒ |  _ d |  _  d  St |  j  ƒ } |  j  d d  … t d t k o | d } nq |  j  d t k o | d } nO |  j  d d  … t d k o | d } n# |  j  d t k o n | d	 } |  j t j |  j  d  | … ƒ |  _ |  j  | d  … |  _  d  S(
   Ni   s    iýÿÿÿs    i   iÿÿÿÿi   iþÿÿÿi   (	   u
   pre_bufferu   ifpu   readu   eofu   post_bufferu   binasciiu   rledecode_hqxu   lenu   RUNCHAR(   u   selfu   wtdu   mark(    (    u#   /mit/python/lib/python3.0/binhex.pyu   _fill1  s&     	"
 c             C   s   |  j  j ƒ  d  S(   N(   u   ifpu   close(   u   self(    (    u#   /mit/python/lib/python3.0/binhex.pyu   closeT  s    N(   u   __name__u
   __module__u   __doc__u   __init__u   readu   _fillu   close(   u
   __locals__(    (    u#   /mit/python/lib/python3.0/binhex.pyu   _Rledecoderengine!  s
   
			#u   _Rledecoderenginec             B   sV   |  Ee  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d S(	   c             C   sª   t  | t ƒ o t j | d ƒ } n xO | j d ƒ } | p t d ƒ ‚ n | d k o q) n | d k o Pq) q) t | ƒ } t | ƒ |  _ d |  _	 |  j
 ƒ  d  S(   Nu   rbi   u   No binhex data founds   s   :i    (   u
   isinstanceu   stru   iou   openu   readu   Erroru   _Hqxdecoderengineu   _Rledecoderengineu   ifpu   crcu   _readheader(   u   selfu   ifpu   chu   hqxifp(    (    u#   /mit/python/lib/python3.0/binhex.pyu   __init__X  s    	c             C   s.   |  j  j | ƒ } t j | |  j ƒ |  _ | S(   N(   u   ifpu   readu   binasciiu   crc_hqxu   crc(   u   selfu   lenu   data(    (    u#   /mit/python/lib/python3.0/binhex.pyu   _readn  s    c             C   sp   t  j d |  j j d ƒ ƒ d d @} |  j d @|  _ | |  j k o t d |  j | f ƒ ‚ n d |  _ d  S(   Nu   >hi   i    iÿÿ  u   CRC error, computed %x, read %x(   u   structu   unpacku   ifpu   readu   crcu   Error(   u   selfu   filecrc(    (    u#   /mit/python/lib/python3.0/binhex.pyu	   _checkcrcs  s    &c             C   s	  |  j  d ƒ } |  j  t | ƒ ƒ } |  j  d ƒ } |  j ƒ  | d d … } | d d … } t j d | d d … ƒ d } t j d	 | d d
 … ƒ d |  _ t j d	 | d
 d … ƒ d |  _ | |  _ t ƒ  |  _ | |  j _	 | |  j _
 | |  j _ t |  _ d  S(   Ni   i   i   i   i	   u   >hi   i    u   >li   i   i   i	   i   i   i   (   u   _readu   ordu	   _checkcrcu   structu   unpacku   dlenu   rlenu   FNameu   FInfou   Creatoru   Typeu   Flagsu   _DID_HEADERu   state(   u   selfu   lenu   fnameu   restu   typeu   creatoru   flags(    (    u#   /mit/python/lib/python3.0/binhex.pyu   _readheader}  s    
 ##	c             G   s¢   |  j  t k o t d ƒ ‚ n | o  | d } t | |  j ƒ } n
 |  j } d } x5 t | ƒ | k  o! | |  j | t | ƒ ƒ } qY W|  j | |  _ | S(   Nu   Read data at wrong timei    s    (   u   stateu   _DID_HEADERu   Erroru   minu   dlenu   lenu   _read(   u   selfu   nu   rv(    (    u#   /mit/python/lib/python3.0/binhex.pyu   read‘  s    
	 "c             C   sW   |  j  t k o t d ƒ ‚ n |  j o |  j |  j ƒ } n |  j ƒ  t |  _  d  S(   Nu   close_data at wrong time(   u   stateu   _DID_HEADERu   Erroru   dlenu   _readu	   _checkcrcu	   _DID_DATA(   u   selfu   dummy(    (    u#   /mit/python/lib/python3.0/binhex.pyu
   close_dataŸ  s    

c             G   s‹   |  j  t k o |  j ƒ  n |  j  t k o t d ƒ ‚ n | o  | d } t | |  j ƒ } n
 |  j } |  j | |  _ |  j | ƒ S(   Nu    Read resource data at wrong timei    (   u   stateu   _DID_HEADERu
   close_datau	   _DID_DATAu   Erroru   minu   rlenu   _read(   u   selfu   n(    (    u#   /mit/python/lib/python3.0/binhex.pyu	   read_rsrc§  s    
	c             C   sD   |  j  o |  j |  j  ƒ } n |  j ƒ  t |  _ |  j j ƒ  d  S(   N(   u   rlenu	   read_rsrcu	   _checkcrcu	   _DID_RSRCu   stateu   ifpu   close(   u   selfu   dummy(    (    u#   /mit/python/lib/python3.0/binhex.pyu   close´  s
    

	N(
   u   __name__u
   __module__u   __init__u   _readu	   _checkcrcu   _readheaderu   readu
   close_datau	   read_rsrcu   close(   u
   __locals__(    (    u#   /mit/python/lib/python3.0/binhex.pyu   HexBinW  s   
			
				u   HexBinc             C   sv  t  |  ƒ } | j } | p | j } n t j d k o t | ƒ } | j ƒ  } n t j | d ƒ } x+ | j	 d ƒ } | p Pn | j
 | ƒ qj | j ƒ  | j ƒ  | j d ƒ } | oX t | d ƒ } | j
 | ƒ x+ | j d ƒ } | p Pn | j
 | ƒ qÞ | j ƒ  n t j d k oA | j ƒ  } | j | _ | j | _ | j | _ | j | ƒ n | j ƒ  d S(   u6   hexbin(infilename, outfilename) - Decode binhexed fileu   macu   wbi ô N(   u   HexBinu   FInfou   FNameu   osu   nameu   FSSpecu   as_pathnameu   iou   openu   readu   writeu   closeu
   close_datau	   read_rsrcu   openrsrcu   GetFInfou   Creatoru   Typeu   Flagsu   SetFInfo(   u   inpu   outu   ifpu   finfou   ofssu   ofpu   du   nfinfo(    (    u#   /mit/python/lib/python3.0/binhex.pyu   hexbin»  s@    	 

 (   u   __doc__u   iou   osu   sysu   structu   binasciiu   __all__u	   Exceptionu   Erroru   rangeu   _DID_HEADERu	   _DID_DATAu	   _DID_RSRCu   REASONABLY_LARGEu   LINELENu   RUNCHARu   FInfou   getfileinfou   openrsrcu   _Hqxcoderengineu   _Rlecoderengineu   BinHexu   binhexu   _Hqxdecoderengineu   _Rledecoderengineu   HexBinu   hexbin(    (    (    u#   /mit/python/lib/python3.0/binhex.pyu   <module>   s,   	&U	*6d