;
Êâ"Ic               @   so   d  Z  d d l Z d d l Z d d g Z Gd   d e  Z Gd   d  Z e d k o e e    n d S(   u-   An object-oriented interface to .netrc files.i    Nu   netrcu   NetrcParseErrorc             B   s,   |  Ee  Z d  Z d d d  Z d   Z d S(   u5   Exception raised on syntax errors in the .netrc file.c             C   s/   | |  _  | |  _ | |  _ t j |  |  d  S(   N(   u   filenameu   linenou   msgu	   Exceptionu   __init__(   u   selfu   msgu   filenameu   lineno(    (    u"   /mit/python/lib/python3.0/netrc.pyu   __init__   s    			c             C   s   d |  j  |  j |  j f S(   Nu   %s (%s, line %s)(   u   msgu   filenameu   lineno(   u   self(    (    u"   /mit/python/lib/python3.0/netrc.pyu   __str__   s    N(   u   __name__u
   __module__u   __doc__u   Noneu   __init__u   __str__(   u
   __locals__(    (    u"   /mit/python/lib/python3.0/netrc.pyu   NetrcParseError
   s   
c             B   s5   |  Ee  Z d d   Z d   Z d   Z d   Z d S(   c             C   s«   | d  k oG y  t j j t j d d  } WqT t k
 o t d   YqT Xn i  |  _ i  |  _ t	 |  j
 } j   } z | ~ } |  j | |  Wd  | ~ QXd  S(   Nu   HOMEu   .netrcu'   Could not find .netrc: $HOME is not set(   u   Noneu   osu   pathu   joinu   environu   KeyErroru   IOErroru   hostsu   macrosu   openu   __exit__u	   __enter__u   _parse(   u   selfu   fileu   _[2]u   _[1]u   fp(    (    u"   /mit/python/lib/python3.0/netrc.pyu   __init__   s     		%c             C   sN  t  j  |  } | j d 7_ x)| j   } } | p PnÐ | d k o | j   } n³ | d k o
 d } n | d k ou | j   } g  |  j | <d | _ xI | j j   } | p | d k o d | _ Pn |  j | j |  q£ q! n t d | | | j	   d	 } d  }	 }
 i  |  j | <x| j   } | d	 k p' | d k p | d k p | d k o[ |
 o( | |	 |
 f |  j | <| j |  PqDt d
 | | t |  f | | j	   q,| d k p | d k o | j   } q,| d k o | j   }	 q,| d k o | j   }
 q,t d | | | j	   q,q! d  S(   Nu    !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~u   machineu   defaultu   macdefu    	u   
u    	
u   bad toplevel token %ru    u&   malformed %s entry %s terminated by %su   loginu   useru   accountu   passwordu   bad follower token %r(   u   shlexu	   wordcharsu	   get_tokenu   macrosu
   whitespaceu   instreamu   readlineu   appendu   NetrcParseErroru   linenou   Noneu   hostsu
   push_tokenu   repr(   u   selfu   fileu   fpu   lexeru   toplevelu   ttu	   entrynameu   lineu   loginu   accountu   password(    (    u"   /mit/python/lib/python3.0/netrc.pyu   _parse"   s\    
		

c             C   s@   | |  j  k o |  j  | Sd |  j  k o |  j  d Sd Sd S(   u8   Return a (user, account, password) tuple for given host.u   defaultN(   u   hostsu   None(   u   selfu   host(    (    u"   /mit/python/lib/python3.0/netrc.pyu   authenticatorsX   s
    c             C   sð   d } x |  j  j   D]z } |  j  | } | d | d t | d  d } | d o | d t | d  } n | d t | d	  d } q WxU |  j j   D]D } | d
 | d } x |  j | D] } | | } qÊ W| d } q€ W| S(   u3   Dump the class data in the format of a .netrc file.u    u   machine u   
	login i    u   
i   u   account u
   	password i   u   macdef (   u   hostsu   keysu   repru   macros(   u   selfu   repu   hostu   attrsu   macrou   line(    (    u"   /mit/python/lib/python3.0/netrc.pyu   __repr__a   s      $   N(   u   __name__u
   __module__u   Noneu   __init__u   _parseu   authenticatorsu   __repr__(   u
   __locals__(    (    u"   /mit/python/lib/python3.0/netrc.pyu   netrc   s   
	6		u   __main__(	   u   __doc__u   osu   shlexu   __all__u	   Exceptionu   NetrcParseErroru   netrcu   __name__u   print(    (    (    u"   /mit/python/lib/python3.0/netrc.pyu   <module>   s   [