MINI MINI MANI MO
3
  \                 @   sV  d Z ddlZddlZddlmZ dddddd	gZd
ZdZdZG d
d deZ	G dd de	Z
G dd de	ZG dd de	ZG dd de	Z
e	eefZdZdZG dd dZyddlZW n ek
r   dZY n0X ejZG dd deZejd e	eeejfZdadd Zdadd Zdd Zdd Z d d! Z!d)d$d%Z"d&d' Z#e$d(krRe#  dS )*aS  An FTP client class and some helper functions.
Based on RFC 959: File Transfer Protocol (FTP), by J. Postel and J. Reynolds
Example:
>>> from ftplib import FTP
>>> ftp = FTP('ftp.python.org') # connect to host, default port
>>> ftp.login() # default, i.e.: user anonymous, passwd anonymous@
'230 Guest login ok, access restrictions apply.'
>>> ftp.retrlines('LIST') # list directory contents
total 9
drwxr-xr-x   8 root     wheel        1024 Jan  3  1994 .
drwxr-xr-x   8 root     wheel        1024 Jan  3  1994 ..
drwxr-xr-x   2 root     wheel        1024 Jan  3  1994 bin
drwxr-xr-x   2 root     wheel        1024 Jan  3  1994 etc
d-wxrwxr-x   2 ftp      wheel        1024 Sep  5 13:43 incoming
drwxr-xr-x   2 root     wheel        1024 Nov 17  1993 lib
drwxr-xr-x   6 1094     wheel        1024 Sep 13 19:07 pub
drwxr-xr-x   3 root     wheel        1024 Jan  3  1994 usr
-rw-r--r--   1 root     root          312 Aug  1  1994 welcome.msg
'226 Transfer complete.'
>>> ftp.quit()
'221 Goodbye.'
>>>
A nice test that reveals some of the network dialogue would be:
python ftplib.py -d localhost -l -p -l
    N)_GLOBAL_DEFAULT_TIMEOUTFTPerror_reply
error_temp
error_permerror_proto
all_errors      i    c               @   s   e Zd ZdS )ErrorN)__name__
__module____qualname__ r   r   /usr/lib64/python3.6/ftplib.pyr   9   s    r   c               @   s   e Zd ZdS )r   N)r   r
   r   r   r   r   r   r   :   s    c               @   s   e Zd ZdS )r   N)r   r
   r   r   r   r   r   r   ;   s    c               @   s   e Zd ZdS )r   N)r   r
   r   r   r   r   r   r   <