Martel is a 'regular expressions on steroids' parser generator
(DEPRECATED).
A goal of the Biopython project is to reduce the amount of effort
needed to do computational biology. A large part of that work turns out
to be parsing file formats, which lead to the development of Martel, a
parser generator which uses a regular expression as the format
description to create a parser that returns the parse tree using the SAX
API common in XML processing.
While intended to be both fast and relatively easy to understand,
Martel did struggle with some very large records (e.g. GenBank files for
whole genomes or chromosomes), and in practice debugging the Martel
format specifications for evolving file formats like GenBank proved
non-trivial.
Andrew Dalke is no longer maintaining Martel or Bio.Mindy, and these
modules are now deprecated. They are no longer used in any of the
current Biopython parsers, and are likely to be removed in a future
release of Biopython.
|
|
|
Str(*args)
(s1, s2, ...) -> match s1 or s2 or ... |
source code
|
|
|
|
|
AnyBut(s)
s -> match any character not in s |
source code
|
|
|
|
|
|
|
Opt(expr)
expr -> match 'expr' 1 or 0 times |
source code
|
|
|
Rep(expr)
expr -> match 'expr' as many times as possible, even 0 time |
source code
|
|
|
Rep1(expr)
expr -> match 'expr' as many times as possible, but at least once |
source code
|
|
|
NoCase(expr)
expression -> expression where the text is case insensitive |
source code
|
|
|
|
|
|
|
|
|
|
|
|
|
MaxRepeat(expr,
min_count,
max_count=Expression.MAXREPEAT)
expr, min_count, max_count = 65535 -> match between min- and
max_count times |
source code
|
|
|
RepN(expr,
count)
expr, count -> match the expression 'count' number of time |
source code
|
|
|
Group(name,
expr,
attrs=None)
name, expr -> use 'name' to describe a successful match of the
expression |
source code
|
|
|
|
|
Re(pattern,
fix_newlines=0)
pattern -> the expression tree for the regexp pattern string |
source code
|
|
|
|
|
|
|
|
|
|
|
Integer(name=None,
attrs=None)
match an integer (digits w/ optional leading + or - sign) |
source code
|
|
|
Float(name=None,
attrs=None)
match floating point numbers like 6, 6., -.1, 2.3, +4E-5, ... |
source code
|
|
|
|
|
Spaces(name=None,
attrs=None)
match one or more whitespace (except newline) |
source code
|
|
|
Unprintable(name=None,
attrs=None)
match an unprintable character (characters not in string.printable) |
source code
|
|
|
Punctuation(name=None,
attrs=None)
match a punctuation character (characters in string.punctuation) |
source code
|
|
|
ToEol(name=None,
attrs=None)
match everything up to and including the end of line |
source code
|
|
|
UntilEol(name=None,
attrs=None)
match everything up to but not including the end of line |
source code
|
|
|
SkipLinesUntil(expr)
read and ignore lines up to, but excluding, the line matching expr |
source code
|
|
|
SkipLinesTo(expr)
read and ignore lines up to and including, the line matching expr |
source code
|
|
|
ToSep(name=None,
sep=None,
attrs=None)
match all characters up to the given seperator(s) |
source code
|
|
|
UntilSep(name=None,
sep=None,
attrs=None)
match all characters up to the given seperators(s) |
source code
|
|
|
|
|
|
|
|
|
SimpleRecordFilter(expr,
make_reader,
reader_args=()) |
source code
|
|