Add a flexible packet-parsing framework
authorW. Trevor King <wking@tremily.us>
Thu, 19 Dec 2013 05:09:42 +0000 (21:09 -0800)
committerW. Trevor King <wking@tremily.us>
Fri, 20 Dec 2013 05:20:49 +0000 (21:20 -0800)
commit050767702cbbd8724a542ceb5ed7f618d88bd07f
tree4f087617fbfe7ceb2fe43831a538c4eb99f56c70
parente5c3d22ef14d1ef5a6e67c916077edbe4b550574
Add a flexible packet-parsing framework

Shunting packet-type processing out to type-specific methods.  For
example, 'public-key packet' packets will be parsed by
PGPPacket._parse_public_key_packet.

From the re docs [1]:

  '+'
    Causes the resulting RE to match 1 or more repetitions of the
    preceding RE. ab+ will match 'a' followed by any non-zero number
    of 'b's; it will not match just 'a'.

  ...

  \W
    For Unicode (str) patterns:
      Matches Unicode word characters; this includes most characters
      that can be part of a word in any language, as well as numbers
      and the underscore. If the ASCII flag is used, only [a-zA-Z0-9_]
      is matched (but the flag affects the entire regular expression,
      so in such cases using an explicit [a-zA-Z0-9_] may be a better
      choice).

    For 8-bit (bytes) patterns:
      Matches characters considered alphanumeric in the ASCII
      character set; this is equivalent to [a-zA-Z0-9_].

[1]: http://docs.python.org/3/library/re.html#regular-expression-syntax
gpg-migrate.py