Parser for standard FTP file listings

This is the evil required to match:

   -rw-r--r--   1 root     other        531 Jan 29 03:26 README

If you need different evil for a wacky FTP server, you can override either fileLinePattern or parseDirectoryLine().

It populates the instance attribute self.files, which is a list containing dicts with the following keys (examples from the above line):

  • filetype: e.g. 'd' for directories, or '-' for an ordinary file
  • perms: e.g. 'rw-r--r--'
  • nlinks: e.g. 1
  • owner: e.g. 'root'
  • group: e.g. 'other'
  • size: e.g. 531
  • date: e.g. 'Jan 29 03:26'
  • filename: e.g. 'README'
  • linktarget: e.g. 'some/file'

Note that the 'date' value will be formatted differently depending on the date. Check http://cr.yp.to/ftp.html if you really want to try to parse it.

It also matches the following:

   -rw-r--r--   1 root     other        531 Jan 29 03:26 I HAVE\ SPACE
      - filename:   e.g. 'I HAVE SPACE'

   -rw-r--r--   1 root     other        531 Jan 29 03:26 LINK -> TARGET
      - filename:   e.g. 'LINK'
      - linktarget: e.g. 'TARGET'

   -rw-r--r--   1 root     other        531 Jan 29 03:26 N S -> L S
      - filename:   e.g. 'N S'
      - linktarget: e.g. 'L S'
Instance Variable files list of dicts describing the files in this listing
Method __init__ Undocumented
Method lineReceived Override this for when each line is received.
Method parseDirectoryLine Return a dictionary of fields, or None if line cannot be parsed.
Method addFile Append file information dictionary to the list of known files.
Method unknownLine Deal with received lines which could not be parsed as file information.

Inherited from _PauseableMixin (via LineReceiver):

Method pauseProducing Undocumented
Method resumeProducing Undocumented
Method stopProducing Undocumented

Inherited from _PauseableMixin (via LineReceiver):

Method pauseProducing Undocumented
Method resumeProducing Undocumented
Method stopProducing Undocumented

Inherited from _PauseableMixin (via LineReceiver):

Method pauseProducing Undocumented
Method resumeProducing Undocumented
Method stopProducing Undocumented

Inherited from _PauseableMixin (via LineReceiver):

Method pauseProducing Undocumented
Method resumeProducing Undocumented
Method stopProducing Undocumented
files =
list of dicts describing the files in this listing
def __init__(self): (source)
Undocumented
def lineReceived(self, line): (source)

Override this for when each line is received.

ParameterslineThe line which was received with the delimiter removed. (type: bytes)
def parseDirectoryLine(self, line): (source)

Return a dictionary of fields, or None if line cannot be parsed.

Parameterslineline of text expected to contain a directory entry (type: str)
Returnsdict
def addFile(self, info): (source)

Append file information dictionary to the list of known files.

Subclasses can override or extend this method to handle file information differently without affecting the parsing of data from the server.

Parametersinfodictionary containing the parsed representation of the file information (type: dict)
def unknownLine(self, line): (source)

Deal with received lines which could not be parsed as file information.

Subclasses can override this to perform any special processing needed.

Parameterslineunparsable line as received (type: str)
API Documentation for Twisted, generated by pydoctor at 2017-06-11 10:59:01.