<?xml version="1.0" encoding="ascii"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Martel</title> <link rel="stylesheet" href="epydoc.css" type="text/css" /> <script type="text/javascript" src="epydoc.js"></script> </head> <body bgcolor="white" text="black" link="blue" vlink="#204080" alink="#204080"> <!-- ==================== NAVIGATION BAR ==================== --> <table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0"> <tr valign="middle"> <!-- Tree link --> <th> <a href="module-tree.html">Trees</a> </th> <!-- Index link --> <th> <a href="identifier-index.html">Indices</a> </th> <!-- Help link --> <th> <a href="help.html">Help</a> </th> <th class="navbar" width="100%"></th> </tr> </table> <table width="100%" cellpadding="0" cellspacing="0"> <tr valign="top"> <td width="100%"> <span class="breadcrumbs"> Package Martel </span> </td> <td> <table cellpadding="0" cellspacing="0"> <!-- hide/show private --> <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink" onclick="toggle_private();">hide private</a>]</span></td></tr> <tr><td align="right"><span class="options" >[<a href="frames.html" target="_top">frames</a >] | <a href="Martel-pysrc.html" target="_top">no frames</a>]</span></td></tr> </table> </td> </tr> </table> <h1 class="epydoc">Source Code for <a href="Martel-module.html">Package Martel</a></h1> <pre class="py-src"> <a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright 2000-2001, Dalke Scientific Software, LLC</tt> </tt> <a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Distributed under the Biopython License Agreement (see the LICENSE file).</tt> </tt> <a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt> <a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-name">__version__</tt> <tt class="py-op">=</tt> <tt class="py-docstring">"1.47"</tt> </tt> <a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"> </tt> <a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-0" class="py-name" targets="Class Bio.EUtils.Datatypes.Expression=Bio.EUtils.Datatypes.Expression-class.html,Module Martel.Expression=Martel.Expression-module.html,Class Martel.Expression.Expression=Martel.Expression.Expression-class.html"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-0', 'Expression', 'link-0');">Expression</a></tt> </tt> <a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-1" class="py-name" targets="Module Martel.convert_re=Martel.convert_re-module.html"><a title="Martel.convert_re" class="py-name" href="#" onclick="return doclink('link-1', 'convert_re', 'link-1');">convert_re</a></tt> </tt> <a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">string</tt> </tt> <a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">xml</tt><tt class="py-op">.</tt><tt class="py-name">sax</tt> <tt class="py-keyword">import</tt> <tt class="py-name">xmlreader</tt> </tt> <a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"> </tt> <a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># This interface is based off of Greg Ewing's Plex parser.</tt> </tt> <a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt> <a name="Str1"></a><div id="Str1-def"><a name="L13"></a><tt class="py-lineno"> 13</tt> <a class="py-toggle" href="#" id="Str1-toggle" onclick="return toggle('Str1');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#Str1">Str1</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="Str1-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Str1-expanded"><a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"> <tt class="py-docstring">"""(s) -> match the literal string"""</tt> </tt> <a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-2" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-2', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Class Martel.Expression.Str=Martel.Expression.Str-class.html,Function Martel.Str()=Martel-module.html#Str"><a title="Martel.Expression.Str Martel.Str" class="py-name" href="#" onclick="return doclink('link-3', 'Str', 'link-3');">Str</a></tt><tt class="py-op">(</tt><tt id="link-4" class="py-name" targets="Variable Martel.test.test_swissprot38.s=Martel.test.test_swissprot38-module.html#s"><a title="Martel.test.test_swissprot38.s" class="py-name" href="#" onclick="return doclink('link-4', 's', 'link-4');">s</a></tt><tt class="py-op">)</tt> </tt> </div><a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"> </tt> <a name="Str"></a><div id="Str-def"><a name="L17"></a><tt class="py-lineno"> 17</tt> <a class="py-toggle" href="#" id="Str-toggle" onclick="return toggle('Str');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#Str">Str</a><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="Str-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Str-expanded"><a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> <tt class="py-docstring">"""(s1, s2, ...) -> match s1 or s2 or ..."""</tt> </tt> <a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt> <a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-5" class="py-name" targets="Function Martel.Str1()=Martel-module.html#Str1"><a title="Martel.Str1" class="py-name" href="#" onclick="return doclink('link-5', 'Str1', 'link-5');">Str1</a></tt><tt class="py-op">(</tt><tt class="py-name">args</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt> <a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-6" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-6', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-7" class="py-name" targets="Function Martel.Alt()=Martel-module.html#Alt,Class Martel.Expression.Alt=Martel.Expression.Alt-class.html"><a title="Martel.Alt Martel.Expression.Alt" class="py-name" href="#" onclick="return doclink('link-7', 'Alt', 'link-7');">Alt</a></tt><tt class="py-op">(</tt><tt class="py-name">tuple</tt><tt class="py-op">(</tt><tt id="link-8" class="py-name" targets="Method Bio.GFF.FeatureAggregate.map()=Bio.GFF.FeatureAggregate-class.html#map"><a title="Bio.GFF.FeatureAggregate.map" class="py-name" href="#" onclick="return doclink('link-8', 'map', 'link-8');">map</a></tt><tt class="py-op">(</tt><tt id="link-9" class="py-name"><a title="Martel.Expression.Str Martel.Str" class="py-name" href="#" onclick="return doclink('link-9', 'Str', 'link-3');">Str</a></tt><tt class="py-op">,</tt> <tt class="py-name">args</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt> </div><a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line"> </tt> <a name="Any"></a><div id="Any-def"><a name="L23"></a><tt class="py-lineno"> 23</tt> <a class="py-toggle" href="#" id="Any-toggle" onclick="return toggle('Any');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#Any">Any</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="Any-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Any-expanded"><a name="L24"></a><tt class="py-lineno"> 24</tt> <tt class="py-line"> <tt class="py-docstring">"""(s) -> match any character in s"""</tt> </tt> <a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-10" class="py-name"><a title="Martel.test.test_swissprot38.s" class="py-name" href="#" onclick="return doclink('link-10', 's', 'link-4');">s</a></tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt> <a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-11" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-11', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-12" class="py-name" targets="Class Martel.Expression.Literal=Martel.Expression.Literal-class.html"><a title="Martel.Expression.Literal" class="py-name" href="#" onclick="return doclink('link-12', 'Literal', 'link-12');">Literal</a></tt><tt class="py-op">(</tt><tt id="link-13" class="py-name"><a title="Martel.test.test_swissprot38.s" class="py-name" href="#" onclick="return doclink('link-13', 's', 'link-4');">s</a></tt><tt class="py-op">)</tt> </tt> <a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-14" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-14', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-15" class="py-name" targets="Function Martel.Any()=Martel-module.html#Any,Class Martel.Expression.Any=Martel.Expression.Any-class.html"><a title="Martel.Any Martel.Expression.Any" class="py-name" href="#" onclick="return doclink('link-15', 'Any', 'link-15');">Any</a></tt><tt class="py-op">(</tt><tt id="link-16" class="py-name"><a title="Martel.test.test_swissprot38.s" class="py-name" href="#" onclick="return doclink('link-16', 's', 'link-4');">s</a></tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt> </div><a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"> </tt> <a name="AnyBut"></a><div id="AnyBut-def"><a name="L29"></a><tt class="py-lineno"> 29</tt> <a class="py-toggle" href="#" id="AnyBut-toggle" onclick="return toggle('AnyBut');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#AnyBut">AnyBut</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="AnyBut-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="AnyBut-expanded"><a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"> <tt class="py-docstring">"""s -> match any character not in s"""</tt> </tt> <a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-17" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-17', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="Martel.Any Martel.Expression.Any" class="py-name" href="#" onclick="return doclink('link-18', 'Any', 'link-15');">Any</a></tt><tt class="py-op">(</tt><tt id="link-19" class="py-name"><a title="Martel.test.test_swissprot38.s" class="py-name" href="#" onclick="return doclink('link-19', 's', 'link-4');">s</a></tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt> </div><a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"> </tt> <a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"><tt class="py-comment">## Untested!</tt> </tt> <a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">##def AnyChar():</tt> </tt> <a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">## """match any character, including newline"""</tt> </tt> <a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">## return Expression.Re("(?:.|\n)")</tt> </tt> <a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt> <a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"> </tt> <a name="Seq"></a><div id="Seq-def"><a name="L39"></a><tt class="py-lineno"> 39</tt> <a class="py-toggle" href="#" id="Seq-toggle" onclick="return toggle('Seq');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#Seq">Seq</a><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="Seq-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Seq-expanded"><a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"> <tt class="py-docstring">"""exp1, exp2, ... -> match exp1 followed by exp2 followed by ..."""</tt> </tt> <a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> <tt class="py-comment"># I'm always forgetting and passing strings into this function,</tt> </tt> <a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># so make sure the arguments are expressions</tt> </tt> <a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">for</tt> <tt class="py-name">arg</tt> <tt class="py-keyword">in</tt> <tt class="py-name">args</tt><tt class="py-op">:</tt> </tt> <a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">arg</tt><tt class="py-op">,</tt> <tt id="link-20" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-20', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-21" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-21', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> \ </tt> <a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"> <tt class="py-string">"expecting an Expression, not a %s"</tt> <tt class="py-op">%</tt> <tt id="link-22" class="py-name" targets="Variable Bio.GenBank.LocationParser.Integer.type=Bio.GenBank.LocationParser.Integer-class.html#type,Variable Bio.GenBank.LocationParser.Symbol.type=Bio.GenBank.LocationParser.Symbol-class.html#type,Variable Bio.GenBank.LocationParser.UnsignedInteger.type=Bio.GenBank.LocationParser.UnsignedInteger-class.html#type"><a title="Bio.GenBank.LocationParser.Integer.type Bio.GenBank.LocationParser.Symbol.type Bio.GenBank.LocationParser.UnsignedInteger.type" class="py-name" href="#" onclick="return doclink('link-22', 'type', 'link-22');">type</a></tt><tt class="py-op">(</tt><tt class="py-name">arg</tt><tt class="py-op">)</tt> </tt> <a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> </tt> <a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-23" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-23', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Module Bio.Seq=Bio.Seq-module.html,Class Bio.Seq.Seq=Bio.Seq.Seq-class.html,Class Martel.Expression.Seq=Martel.Expression.Seq-class.html,Function Martel.Seq()=Martel-module.html#Seq"><a title="Bio.Seq Bio.Seq.Seq Martel.Expression.Seq Martel.Seq" class="py-name" href="#" onclick="return doclink('link-24', 'Seq', 'link-24');">Seq</a></tt><tt class="py-op">(</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> </tt> </div><a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> </tt> <a name="Alt"></a><div id="Alt-def"><a name="L49"></a><tt class="py-lineno"> 49</tt> <a class="py-toggle" href="#" id="Alt-toggle" onclick="return toggle('Alt');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#Alt">Alt</a><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="Alt-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Alt-expanded"><a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> <tt class="py-docstring">"""exp1, exp2, ... -> match exp1 or (if that fails) match exp2 or ..."""</tt> </tt> <a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> <tt class="py-comment"># Do some type checking</tt> </tt> <a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">for</tt> <tt class="py-name">arg</tt> <tt class="py-keyword">in</tt> <tt class="py-name">args</tt><tt class="py-op">:</tt> </tt> <a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">arg</tt><tt class="py-op">,</tt> <tt id="link-25" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-25', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-26', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> \ </tt> <a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt class="py-string">"expecting an Expression, not a %s"</tt> <tt class="py-op">%</tt> <tt id="link-27" class="py-name"><a title="Bio.GenBank.LocationParser.Integer.type Bio.GenBank.LocationParser.Symbol.type Bio.GenBank.LocationParser.UnsignedInteger.type" class="py-name" href="#" onclick="return doclink('link-27', 'type', 'link-22');">type</a></tt><tt class="py-op">(</tt><tt class="py-name">arg</tt><tt class="py-op">)</tt> </tt> <a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-28" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-28', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="Martel.Alt Martel.Expression.Alt" class="py-name" href="#" onclick="return doclink('link-29', 'Alt', 'link-7');">Alt</a></tt><tt class="py-op">(</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> </tt> </div><a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> </tt> <a name="Opt"></a><div id="Opt-def"><a name="L57"></a><tt class="py-lineno"> 57</tt> <a class="py-toggle" href="#" id="Opt-toggle" onclick="return toggle('Opt');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#Opt">Opt</a><tt class="py-op">(</tt><tt class="py-param">expr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="Opt-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Opt-expanded"><a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-docstring">"""expr -> match 'expr' 1 or 0 times"""</tt> </tt> <a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">expr</tt><tt class="py-op">,</tt> <tt id="link-30" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-30', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-31', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> \ </tt> <a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt class="py-string">"expecting an Expression, not a %s"</tt> <tt class="py-op">%</tt> <tt id="link-32" class="py-name"><a title="Bio.GenBank.LocationParser.Integer.type Bio.GenBank.LocationParser.Symbol.type Bio.GenBank.LocationParser.UnsignedInteger.type" class="py-name" href="#" onclick="return doclink('link-32', 'type', 'link-22');">type</a></tt><tt class="py-op">(</tt><tt class="py-name">expr</tt><tt class="py-op">)</tt> </tt> <a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-33" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-33', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-34" class="py-name" targets="Class Martel.Expression.MaxRepeat=Martel.Expression.MaxRepeat-class.html,Function Martel.MaxRepeat()=Martel-module.html#MaxRepeat"><a title="Martel.Expression.MaxRepeat Martel.MaxRepeat" class="py-name" href="#" onclick="return doclink('link-34', 'MaxRepeat', 'link-34');">MaxRepeat</a></tt><tt class="py-op">(</tt><tt class="py-name">expr</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt> </div><a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> </tt> <a name="Rep"></a><div id="Rep-def"><a name="L63"></a><tt class="py-lineno"> 63</tt> <a class="py-toggle" href="#" id="Rep-toggle" onclick="return toggle('Rep');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#Rep">Rep</a><tt class="py-op">(</tt><tt class="py-param">expr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="Rep-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Rep-expanded"><a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt class="py-docstring">"""expr -> match 'expr' as many times as possible, even 0 time"""</tt> </tt> <a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">expr</tt><tt class="py-op">,</tt> <tt id="link-35" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-35', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-36', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> \ </tt> <a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-string">"expecting an Expression, not a %s"</tt> <tt class="py-op">%</tt> <tt id="link-37" class="py-name"><a title="Bio.GenBank.LocationParser.Integer.type Bio.GenBank.LocationParser.Symbol.type Bio.GenBank.LocationParser.UnsignedInteger.type" class="py-name" href="#" onclick="return doclink('link-37', 'type', 'link-22');">type</a></tt><tt class="py-op">(</tt><tt class="py-name">expr</tt><tt class="py-op">)</tt> </tt> <a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-38" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-38', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="Martel.Expression.MaxRepeat Martel.MaxRepeat" class="py-name" href="#" onclick="return doclink('link-39', 'MaxRepeat', 'link-34');">MaxRepeat</a></tt><tt class="py-op">(</tt><tt class="py-name">expr</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt> </div><a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> </tt> <a name="Rep1"></a><div id="Rep1-def"><a name="L69"></a><tt class="py-lineno"> 69</tt> <a class="py-toggle" href="#" id="Rep1-toggle" onclick="return toggle('Rep1');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#Rep1">Rep1</a><tt class="py-op">(</tt><tt class="py-param">expr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="Rep1-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Rep1-expanded"><a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-docstring">"""expr -> match 'expr' as many times as possible, but at least once"""</tt> </tt> <a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">expr</tt><tt class="py-op">,</tt> <tt id="link-40" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-40', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-41', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> \ </tt> <a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt class="py-string">"expecting an Expression, not a %s"</tt> <tt class="py-op">%</tt> <tt id="link-42" class="py-name"><a title="Bio.GenBank.LocationParser.Integer.type Bio.GenBank.LocationParser.Symbol.type Bio.GenBank.LocationParser.UnsignedInteger.type" class="py-name" href="#" onclick="return doclink('link-42', 'type', 'link-22');">type</a></tt><tt class="py-op">(</tt><tt class="py-name">expr</tt><tt class="py-op">)</tt> </tt> <a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-43" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-43', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="Martel.Expression.MaxRepeat Martel.MaxRepeat" class="py-name" href="#" onclick="return doclink('link-44', 'MaxRepeat', 'link-34');">MaxRepeat</a></tt><tt class="py-op">(</tt><tt class="py-name">expr</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt> </div><a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> </tt> <a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> </tt> <a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"><tt class="py-comment"># These are in Plex, but I don't (yet?) implement them</tt> </tt> <a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt> <a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"><tt id="link-45" class="py-name" targets="Function Martel.Expression.NoCase()=Martel.Expression-module.html#NoCase"><a title="Martel.Expression.NoCase" class="py-name" href="#" onclick="return doclink('link-45', 'NoCase', 'link-45');">NoCase</a></tt> <tt class="py-op">=</tt> <tt id="link-46" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-46', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="Martel.Expression.NoCase" class="py-name" href="#" onclick="return doclink('link-47', 'NoCase', 'link-45');">NoCase</a></tt> </tt> <a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> </tt> <a name="Case"></a><div id="Case-def"><a name="L80"></a><tt class="py-lineno"> 80</tt> <a class="py-toggle" href="#" id="Case-toggle" onclick="return toggle('Case');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#Case">Case</a><tt class="py-op">(</tt><tt class="py-param">expr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="Case-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Case-expanded"><a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt> </tt> </div><a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> </tt> <a name="Bol"></a><div id="Bol-def"><a name="L83"></a><tt class="py-lineno"> 83</tt> <a class="py-toggle" href="#" id="Bol-toggle" onclick="return toggle('Bol');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#Bol">Bol</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="Bol-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Bol-expanded"><a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt> </tt> </div><a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> </tt> <a name="Eol"></a><div id="Eol-def"><a name="L86"></a><tt class="py-lineno"> 86</tt> <a class="py-toggle" href="#" id="Eol-toggle" onclick="return toggle('Eol');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#Eol">Eol</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="Eol-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Eol-expanded"><a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt> </tt> </div><a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> </tt> <a name="Empty"></a><div id="Empty-def"><a name="L89"></a><tt class="py-lineno"> 89</tt> <a class="py-toggle" href="#" id="Empty-toggle" onclick="return toggle('Empty');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#Empty">Empty</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="Empty-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Empty-expanded"><a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt> </tt> </div><a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> </tt> <a name="Eof"></a><div id="Eof-def"><a name="L92"></a><tt class="py-lineno"> 92</tt> <a class="py-toggle" href="#" id="Eof-toggle" onclick="return toggle('Eof');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#Eof">Eof</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="Eof-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Eof-expanded"><a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt> </tt> <a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-48" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-48', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-49" class="py-name" targets="Class Martel.Expression.AtEnd=Martel.Expression.AtEnd-class.html"><a title="Martel.Expression.AtEnd" class="py-name" href="#" onclick="return doclink('link-49', 'AtEnd', 'link-49');">AtEnd</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> </div><a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> </tt> <a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> </tt> <a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"><tt class="py-comment"># Not in Plex, but useful</tt> </tt> <a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt> <a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"><tt id="link-50" class="py-name" targets="Class Martel.Expression.AnyEol=Martel.Expression.AnyEol-class.html"><a title="Martel.Expression.AnyEol" class="py-name" href="#" onclick="return doclink('link-50', 'AnyEol', 'link-50');">AnyEol</a></tt> <tt class="py-op">=</tt> <tt id="link-51" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-51', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="Martel.Expression.AnyEol" class="py-name" href="#" onclick="return doclink('link-52', 'AnyEol', 'link-50');">AnyEol</a></tt> </tt> <a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> </tt> <a name="MaxRepeat"></a><div id="MaxRepeat-def"><a name="L101"></a><tt class="py-lineno">101</tt> <a class="py-toggle" href="#" id="MaxRepeat-toggle" onclick="return toggle('MaxRepeat');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#MaxRepeat">MaxRepeat</a><tt class="py-op">(</tt><tt class="py-param">expr</tt><tt class="py-op">,</tt> <tt class="py-param">min_count</tt><tt class="py-op">,</tt> <tt class="py-param">max_count</tt> <tt class="py-op">=</tt> <tt id="link-53" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-53', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-54" class="py-name" targets="Variable Martel.Expression.MAXREPEAT=Martel.Expression-module.html#MAXREPEAT,Variable Martel.msre_constants.MAXREPEAT=Martel.msre_constants-module.html#MAXREPEAT,Variable Martel.msre_parse.MAXREPEAT=Martel.msre_parse-module.html#MAXREPEAT,Variable Martel.test.test_Expression.MAXREPEAT=Martel.test.test_Expression-module.html#MAXREPEAT"><a title="Martel.Expression.MAXREPEAT Martel.msre_constants.MAXREPEAT Martel.msre_parse.MAXREPEAT Martel.test.test_Expression.MAXREPEAT" class="py-name" href="#" onclick="return doclink('link-54', 'MAXREPEAT', 'link-54');">MAXREPEAT</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="MaxRepeat-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="MaxRepeat-expanded"><a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-docstring">"""expr, min_count, max_count = 65535 -> match between min- and max_count times</tt> </tt> <a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"><tt class="py-docstring"> If max_count == 65535 (which is Expression.MAXREPEAT) then there</tt> </tt> <a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"><tt class="py-docstring"> is no upper limit.</tt> </tt> <a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> <a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">expr</tt><tt class="py-op">,</tt> <tt id="link-55" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-55', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-56', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> \ </tt> <a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-string">"expecting an Expression, not a %s"</tt> <tt class="py-op">%</tt> <tt id="link-57" class="py-name"><a title="Bio.GenBank.LocationParser.Integer.type Bio.GenBank.LocationParser.Symbol.type Bio.GenBank.LocationParser.UnsignedInteger.type" class="py-name" href="#" onclick="return doclink('link-57', 'type', 'link-22');">type</a></tt><tt class="py-op">(</tt><tt class="py-name">expr</tt><tt class="py-op">)</tt> </tt> <a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-58" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-58', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="Martel.Expression.MaxRepeat Martel.MaxRepeat" class="py-name" href="#" onclick="return doclink('link-59', 'MaxRepeat', 'link-34');">MaxRepeat</a></tt><tt class="py-op">(</tt><tt class="py-name">expr</tt><tt class="py-op">,</tt> <tt class="py-name">min_count</tt><tt class="py-op">,</tt> <tt class="py-name">max_count</tt><tt class="py-op">)</tt> </tt> </div><a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> </tt> <a name="RepN"></a><div id="RepN-def"><a name="L111"></a><tt class="py-lineno">111</tt> <a class="py-toggle" href="#" id="RepN-toggle" onclick="return toggle('RepN');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#RepN">RepN</a><tt class="py-op">(</tt><tt class="py-param">expr</tt><tt class="py-op">,</tt> <tt class="py-param">count</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="RepN-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="RepN-expanded"><a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-docstring">"""expr, count -> match the expression 'count' number of time</tt> </tt> <a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"><tt class="py-docstring"> This option is handy for named group repeats since you don't have</tt> </tt> <a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"><tt class="py-docstring"> to use the name twice; for the min_count and max_count fields.</tt> </tt> <a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> <a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-60" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-60', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="Martel.Expression.MaxRepeat Martel.MaxRepeat" class="py-name" href="#" onclick="return doclink('link-61', 'MaxRepeat', 'link-34');">MaxRepeat</a></tt><tt class="py-op">(</tt><tt class="py-name">expr</tt><tt class="py-op">,</tt> <tt id="link-62" class="py-name" targets="Method Bio.Crystal.Chain.count()=Bio.Crystal.Chain-class.html#count,Method Bio.NeuralNetwork.Gene.Pattern.PatternRepository.count()=Bio.NeuralNetwork.Gene.Pattern.PatternRepository-class.html#count,Method Bio.Seq.MutableSeq.count()=Bio.Seq.MutableSeq-class.html#count,Method Bio.Seq.Seq.count()=Bio.Seq.Seq-class.html#count,Function Bio.listfns.count()=Bio.listfns-module.html#count"><a title="Bio.Crystal.Chain.count Bio.NeuralNetwork.Gene.Pattern.PatternRepository.count Bio.Seq.MutableSeq.count Bio.Seq.Seq.count Bio.listfns.count" class="py-name" href="#" onclick="return doclink('link-62', 'count', 'link-62');">count</a></tt><tt class="py-op">,</tt> <tt id="link-63" class="py-name"><a title="Bio.Crystal.Chain.count Bio.NeuralNetwork.Gene.Pattern.PatternRepository.count Bio.Seq.MutableSeq.count Bio.Seq.Seq.count Bio.listfns.count" class="py-name" href="#" onclick="return doclink('link-63', 'count', 'link-62');">count</a></tt><tt class="py-op">)</tt> </tt> </div><a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> </tt> <a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> </tt> <a name="Group"></a><div id="Group-def"><a name="L120"></a><tt class="py-lineno">120</tt> <a class="py-toggle" href="#" id="Group-toggle" onclick="return toggle('Group');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#Group">Group</a><tt class="py-op">(</tt><tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">expr</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="Group-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Group-expanded"><a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-docstring">"""name, expr -> use 'name' to describe a successful match of the expression"""</tt> </tt> <a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">expr</tt><tt class="py-op">,</tt> <tt id="link-64" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-64', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-65', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> \ </tt> <a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-string">"expecting an Expression, not a %s"</tt> <tt class="py-op">%</tt> <tt id="link-66" class="py-name"><a title="Bio.GenBank.LocationParser.Integer.type Bio.GenBank.LocationParser.Symbol.type Bio.GenBank.LocationParser.UnsignedInteger.type" class="py-name" href="#" onclick="return doclink('link-66', 'type', 'link-22');">type</a></tt><tt class="py-op">(</tt><tt class="py-name">expr</tt><tt class="py-op">)</tt> </tt> <a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-67" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-67', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-68" class="py-name" targets="Class Martel.Expression.Group=Martel.Expression.Group-class.html,Function Martel.Group()=Martel-module.html#Group"><a title="Martel.Expression.Group Martel.Group" class="py-name" href="#" onclick="return doclink('link-68', 'Group', 'link-68');">Group</a></tt><tt class="py-op">(</tt><tt id="link-69" class="py-name" targets="Variable Bio.Encodings.IUPACEncoding.name=Bio.Encodings.IUPACEncoding-module.html#name"><a title="Bio.Encodings.IUPACEncoding.name" class="py-name" href="#" onclick="return doclink('link-69', 'name', 'link-69');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">expr</tt><tt class="py-op">,</tt> <tt id="link-70" class="py-name" targets="Variable Martel.Time.attrs=Martel.Time-module.html#attrs"><a title="Martel.Time.attrs" class="py-name" href="#" onclick="return doclink('link-70', 'attrs', 'link-70');">attrs</a></tt><tt class="py-op">)</tt> </tt> </div><a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> </tt> <a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> </tt> <a name="_fix_newlines"></a><div id="_fix_newlines-def"><a name="L127"></a><tt class="py-lineno">127</tt> <a class="py-toggle" href="#" id="_fix_newlines-toggle" onclick="return toggle('_fix_newlines');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#_fix_newlines">_fix_newlines</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="_fix_newlines-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_fix_newlines-expanded"><a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-comment"># Replace the characters "\r\n", "\r" and "\n" with \R.</tt> </tt> <a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># Does not affect the substrings '\' + 'n' or '\' + 'n'</tt> </tt> <a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt id="link-71" class="py-name"><a title="Martel.test.test_swissprot38.s" class="py-name" href="#" onclick="return doclink('link-71', 's', 'link-4');">s</a></tt> <tt class="py-op">=</tt> <tt class="py-name">string</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt id="link-72" class="py-name"><a title="Martel.test.test_swissprot38.s" class="py-name" href="#" onclick="return doclink('link-72', 's', 'link-4');">s</a></tt><tt class="py-op">,</tt> <tt class="py-string">"\r\n"</tt><tt class="py-op">,</tt> <tt class="py-string">"\n"</tt><tt class="py-op">)</tt> </tt> <a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt id="link-73" class="py-name"><a title="Martel.test.test_swissprot38.s" class="py-name" href="#" onclick="return doclink('link-73', 's', 'link-4');">s</a></tt> <tt class="py-op">=</tt> <tt class="py-name">string</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt id="link-74" class="py-name"><a title="Martel.test.test_swissprot38.s" class="py-name" href="#" onclick="return doclink('link-74', 's', 'link-4');">s</a></tt><tt class="py-op">,</tt> <tt class="py-string">"\r"</tt><tt class="py-op">,</tt> <tt class="py-string">"\n"</tt><tt class="py-op">)</tt> </tt> <a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">string</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt id="link-75" class="py-name"><a title="Martel.test.test_swissprot38.s" class="py-name" href="#" onclick="return doclink('link-75', 's', 'link-4');">s</a></tt><tt class="py-op">,</tt> <tt class="py-string">"\n"</tt><tt class="py-op">,</tt> <tt class="py-string">r"\R"</tt><tt class="py-op">)</tt> </tt> </div><a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> </tt> <a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> </tt> <a name="Re"></a><div id="Re-def"><a name="L135"></a><tt class="py-lineno">135</tt> <a class="py-toggle" href="#" id="Re-toggle" onclick="return toggle('Re');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#Re">Re</a><tt class="py-op">(</tt><tt class="py-param">pattern</tt><tt class="py-op">,</tt> <tt class="py-param">fix_newlines</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="Re-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Re-expanded"><a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-docstring">"""pattern -> the expression tree for the regexp pattern string"""</tt> </tt> <a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">fix_newlines</tt><tt class="py-op">:</tt> </tt> <a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt id="link-76" class="py-name" targets="Method Bio.Prosite._RecordConsumer.pattern()=Bio.Prosite._RecordConsumer-class.html#pattern"><a title="Bio.Prosite._RecordConsumer.pattern" class="py-name" href="#" onclick="return doclink('link-76', 'pattern', 'link-76');">pattern</a></tt> <tt class="py-op">=</tt> <tt id="link-77" class="py-name" targets="Function Martel._fix_newlines()=Martel-module.html#_fix_newlines"><a title="Martel._fix_newlines" class="py-name" href="#" onclick="return doclink('link-77', '_fix_newlines', 'link-77');">_fix_newlines</a></tt><tt class="py-op">(</tt><tt id="link-78" class="py-name"><a title="Bio.Prosite._RecordConsumer.pattern" class="py-name" href="#" onclick="return doclink('link-78', 'pattern', 'link-76');">pattern</a></tt><tt class="py-op">)</tt> </tt> <a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-79" class="py-name"><a title="Martel.convert_re" class="py-name" href="#" onclick="return doclink('link-79', 'convert_re', 'link-1');">convert_re</a></tt><tt class="py-op">.</tt><tt id="link-80" class="py-name" targets="Function Martel.Time.make_expression()=Martel.Time-module.html#make_expression,Function Martel.convert_re.make_expression()=Martel.convert_re-module.html#make_expression"><a title="Martel.Time.make_expression Martel.convert_re.make_expression" class="py-name" href="#" onclick="return doclink('link-80', 'make_expression', 'link-80');">make_expression</a></tt><tt class="py-op">(</tt><tt id="link-81" class="py-name"><a title="Bio.Prosite._RecordConsumer.pattern" class="py-name" href="#" onclick="return doclink('link-81', 'pattern', 'link-76');">pattern</a></tt><tt class="py-op">)</tt> </tt> </div><a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> </tt> <a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"><tt id="link-82" class="py-name" targets="Class Martel.Expression.NullOp=Martel.Expression.NullOp-class.html"><a title="Martel.Expression.NullOp" class="py-name" href="#" onclick="return doclink('link-82', 'NullOp', 'link-82');">NullOp</a></tt> <tt class="py-op">=</tt> <tt id="link-83" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-83', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="Martel.Expression.NullOp" class="py-name" href="#" onclick="return doclink('link-84', 'NullOp', 'link-82');">NullOp</a></tt> </tt> <a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"><tt id="link-85" class="py-name" targets="Class Martel.Expression.Debug=Martel.Expression.Debug-class.html"><a title="Martel.Expression.Debug" class="py-name" href="#" onclick="return doclink('link-85', 'Debug', 'link-85');">Debug</a></tt> <tt class="py-op">=</tt> <tt id="link-86" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-86', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="Martel.Expression.Debug" class="py-name" href="#" onclick="return doclink('link-87', 'Debug', 'link-85');">Debug</a></tt> </tt> <a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> </tt> <a name="Assert"></a><div id="Assert-def"><a name="L144"></a><tt class="py-lineno">144</tt> <a class="py-toggle" href="#" id="Assert-toggle" onclick="return toggle('Assert');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#Assert">Assert</a><tt class="py-op">(</tt><tt class="py-param">expression</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="Assert-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Assert-expanded"><a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-88" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-88', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-89" class="py-name" targets="Function Martel.Assert()=Martel-module.html#Assert,Class Martel.Expression.Assert=Martel.Expression.Assert-class.html"><a title="Martel.Assert Martel.Expression.Assert" class="py-name" href="#" onclick="return doclink('link-89', 'Assert', 'link-89');">Assert</a></tt><tt class="py-op">(</tt><tt class="py-name">expression</tt><tt class="py-op">)</tt> </tt> </div><a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> </tt> <a name="AssertNot"></a><div id="AssertNot-def"><a name="L147"></a><tt class="py-lineno">147</tt> <a class="py-toggle" href="#" id="AssertNot-toggle" onclick="return toggle('AssertNot');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#AssertNot">AssertNot</a><tt class="py-op">(</tt><tt class="py-param">expression</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="AssertNot-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="AssertNot-expanded"><a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-90" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-90', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="Martel.Assert Martel.Expression.Assert" class="py-name" href="#" onclick="return doclink('link-91', 'Assert', 'link-89');">Assert</a></tt><tt class="py-op">(</tt><tt class="py-name">expression</tt><tt class="py-op">,</tt> <tt id="link-92" class="py-name" targets="Variable Bio.Affy.CelFile.invert=Bio.Affy.CelFile-module.html#invert,Variable Bio.LogisticRegression.invert=Bio.LogisticRegression-module.html#invert,Variable Bio.MarkovModel.invert=Bio.MarkovModel-module.html#invert,Variable Bio.MaxEntropy.invert=Bio.MaxEntropy-module.html#invert,Variable Bio.NaiveBayes.invert=Bio.NaiveBayes-module.html#invert,Method Bio.Nexus.Nexus.Nexus.invert()=Bio.Nexus.Nexus.Nexus-class.html#invert,Variable Bio.Statistics.lowess.invert=Bio.Statistics.lowess-module.html#invert,Variable Bio.distance.invert=Bio.distance-module.html#invert,Variable Bio.kNN.invert=Bio.kNN-module.html#invert,Function Martel.convert_re.invert()=Martel.convert_re-module.html#invert"><a title="Bio.Affy.CelFile.invert Bio.LogisticRegression.invert Bio.MarkovModel.invert Bio.MaxEntropy.invert Bio.NaiveBayes.invert Bio.Nexus.Nexus.Nexus.invert Bio.Statistics.lowess.invert Bio.distance.invert Bio.kNN.invert Martel.convert_re.invert" class="py-name" href="#" onclick="return doclink('link-92', 'invert', 'link-92');">invert</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt> </div><a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"> </tt> <a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"><tt class="py-comment"># helper function</tt> </tt> <a name="_group"></a><div id="_group-def"><a name="L151"></a><tt class="py-lineno">151</tt> <a class="py-toggle" href="#" id="_group-toggle" onclick="return toggle('_group');">-</a><tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#_group">_group</a><tt class="py-op">(</tt><tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">exp</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="_group-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_group-expanded"><a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-93" class="py-name"><a title="Bio.Encodings.IUPACEncoding.name" class="py-name" href="#" onclick="return doclink('link-93', 'name', 'link-69');">name</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt> <a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt id="link-94" class="py-name"><a title="Martel.Time.attrs" class="py-name" href="#" onclick="return doclink('link-94', 'attrs', 'link-70');">attrs</a></tt><tt class="py-op">,</tt> <tt class="py-string">"Attributes (%s) require a group name"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-95" class="py-name"><a title="Martel.Time.attrs" class="py-name" href="#" onclick="return doclink('link-95', 'attrs', 'link-70');">attrs</a></tt><tt class="py-op">,</tt><tt class="py-op">)</tt> </tt> <a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-96" class="py-name" targets="Variable Bio.Affy.CelFile.exp=Bio.Affy.CelFile-module.html#exp,Variable Bio.LogisticRegression.exp=Bio.LogisticRegression-module.html#exp,Variable Bio.MarkovModel.exp=Bio.MarkovModel-module.html#exp,Variable Bio.MaxEntropy.exp=Bio.MaxEntropy-module.html#exp,Variable Bio.NaiveBayes.exp=Bio.NaiveBayes-module.html#exp,Variable Bio.Statistics.lowess.exp=Bio.Statistics.lowess-module.html#exp,Variable Bio.distance.exp=Bio.distance-module.html#exp,Variable Bio.kNN.exp=Bio.kNN-module.html#exp"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-96', 'exp', 'link-96');">exp</a></tt> </tt> <a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-97" class="py-name"><a title="Martel.Expression.Group Martel.Group" class="py-name" href="#" onclick="return doclink('link-97', 'Group', 'link-68');">Group</a></tt><tt class="py-op">(</tt><tt id="link-98" class="py-name"><a title="Bio.Encodings.IUPACEncoding.name" class="py-name" href="#" onclick="return doclink('link-98', 'name', 'link-69');">name</a></tt><tt class="py-op">,</tt> <tt id="link-99" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-99', 'exp', 'link-96');">exp</a></tt><tt class="py-op">,</tt> <tt id="link-100" class="py-name"><a title="Martel.Time.attrs" class="py-name" href="#" onclick="return doclink('link-100', 'attrs', 'link-70');">attrs</a></tt><tt class="py-op">)</tt> </tt> </div><a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"> </tt> <a name="Digits"></a><div id="Digits-def"><a name="L157"></a><tt class="py-lineno">157</tt> <a class="py-toggle" href="#" id="Digits-toggle" onclick="return toggle('Digits');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#Digits">Digits</a><tt class="py-op">(</tt><tt class="py-param">name</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="Digits-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Digits-expanded"><a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"> <tt class="py-docstring">"""match one or more decimal digits</tt> </tt> <a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"><tt class="py-docstring"> This is the same as (?P<name?attrs>\d+).</tt> </tt> <a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> <a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"><tt class="py-docstring"> If 'name' is not None, the matching text will be put inside a</tt> </tt> <a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"><tt class="py-docstring"> group of the given name. You can optionally include group</tt> </tt> <a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"><tt class="py-docstring"> attributes. </tt> </tt> <a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> <a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-101" class="py-name" targets="Function Martel._group()=Martel-module.html#_group,Function Martel.msre_parse._group()=Martel.msre_parse-module.html#_group"><a title="Martel._group Martel.msre_parse._group" class="py-name" href="#" onclick="return doclink('link-101', '_group', 'link-101');">_group</a></tt><tt class="py-op">(</tt><tt id="link-102" class="py-name"><a title="Bio.Encodings.IUPACEncoding.name" class="py-name" href="#" onclick="return doclink('link-102', 'name', 'link-69');">name</a></tt><tt class="py-op">,</tt> <tt id="link-103" class="py-name" targets="Function Martel.Re()=Martel-module.html#Re"><a title="Martel.Re" class="py-name" href="#" onclick="return doclink('link-103', 'Re', 'link-103');">Re</a></tt><tt class="py-op">(</tt><tt class="py-string">r"\d+"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-104" class="py-name"><a title="Martel.Time.attrs" class="py-name" href="#" onclick="return doclink('link-104', 'attrs', 'link-70');">attrs</a></tt><tt class="py-op">)</tt> </tt> </div><a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"> </tt> <a name="Integer"></a><div id="Integer-def"><a name="L168"></a><tt class="py-lineno">168</tt> <a class="py-toggle" href="#" id="Integer-toggle" onclick="return toggle('Integer');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#Integer">Integer</a><tt class="py-op">(</tt><tt class="py-param">name</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="Integer-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Integer-expanded"><a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> <tt class="py-docstring">"""match an integer (digits w/ optional leading + or - sign)</tt> </tt> <a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"><tt class="py-docstring"> If 'name' is not None, the matching text will be put inside a</tt> </tt> <a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"><tt class="py-docstring"> group of the given name. You can optionally include group</tt> </tt> <a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"><tt class="py-docstring"> attributes. </tt> </tt> <a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> <a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt id="link-105" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-105', 'exp', 'link-96');">exp</a></tt> <tt class="py-op">=</tt> <tt id="link-106" class="py-name"><a title="Martel.Re" class="py-name" href="#" onclick="return doclink('link-106', 'Re', 'link-103');">Re</a></tt><tt class="py-op">(</tt><tt class="py-string">r"[+-]?\d+"</tt><tt class="py-op">)</tt> </tt> <a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-107" class="py-name"><a title="Martel._group Martel.msre_parse._group" class="py-name" href="#" onclick="return doclink('link-107', '_group', 'link-101');">_group</a></tt><tt class="py-op">(</tt><tt id="link-108" class="py-name"><a title="Bio.Encodings.IUPACEncoding.name" class="py-name" href="#" onclick="return doclink('link-108', 'name', 'link-69');">name</a></tt><tt class="py-op">,</tt> <tt id="link-109" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-109', 'exp', 'link-96');">exp</a></tt><tt class="py-op">,</tt> <tt id="link-110" class="py-name"><a title="Martel.Time.attrs" class="py-name" href="#" onclick="return doclink('link-110', 'attrs', 'link-70');">attrs</a></tt><tt class="py-op">)</tt> </tt> </div><a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> </tt> <a name="Float"></a><div id="Float-def"><a name="L178"></a><tt class="py-lineno">178</tt> <a class="py-toggle" href="#" id="Float-toggle" onclick="return toggle('Float');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#Float">Float</a><tt class="py-op">(</tt><tt class="py-param">name</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="Float-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Float-expanded"><a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-docstring">"""match floating point numbers like 6, 6., -.1, 2.3, +4E-5, ...</tt> </tt> <a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"><tt class="py-docstring"> If 'name' is not None, the matching text will be put inside of a</tt> </tt> <a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"><tt class="py-docstring"> group of the given name. You can optionally include group</tt> </tt> <a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"><tt class="py-docstring"> attributes.</tt> </tt> <a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> <a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> <tt id="link-111" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-111', 'exp', 'link-96');">exp</a></tt> <tt class="py-op">=</tt> <tt id="link-112" class="py-name"><a title="Martel.Re" class="py-name" href="#" onclick="return doclink('link-112', 'Re', 'link-103');">Re</a></tt><tt class="py-op">(</tt><tt class="py-string">r"[+-]?((\d+(\.\d*)?)|\.\d+)([eE][+-]?[0-9]+)?"</tt><tt class="py-op">)</tt> </tt> <a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-113" class="py-name"><a title="Martel._group Martel.msre_parse._group" class="py-name" href="#" onclick="return doclink('link-113', '_group', 'link-101');">_group</a></tt><tt class="py-op">(</tt><tt id="link-114" class="py-name"><a title="Bio.Encodings.IUPACEncoding.name" class="py-name" href="#" onclick="return doclink('link-114', 'name', 'link-69');">name</a></tt><tt class="py-op">,</tt> <tt id="link-115" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-115', 'exp', 'link-96');">exp</a></tt><tt class="py-op">,</tt> <tt id="link-116" class="py-name"><a title="Martel.Time.attrs" class="py-name" href="#" onclick="return doclink('link-116', 'attrs', 'link-70');">attrs</a></tt><tt class="py-op">)</tt> </tt> </div><a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> </tt> <a name="Word"></a><div id="Word-def"><a name="L188"></a><tt class="py-lineno">188</tt> <a class="py-toggle" href="#" id="Word-toggle" onclick="return toggle('Word');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#Word">Word</a><tt class="py-op">(</tt><tt class="py-param">name</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="Word-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Word-expanded"><a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> <tt class="py-docstring">"""match a 'word'</tt> </tt> <a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> <a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"><tt class="py-docstring"> A 'word' is defined as '\w+', and \w is [a-zA-Z0-9_].</tt> </tt> <a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> <a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"><tt class="py-docstring"> If 'name' is not None, the matching text will be put inside of a</tt> </tt> <a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"><tt class="py-docstring"> group of the given name. You can optionally include group</tt> </tt> <a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"><tt class="py-docstring"> attributes. </tt> </tt> <a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> <a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"><tt class="py-docstring"> In other words, this is the short way to write (?P<name>\w+).</tt> </tt> <a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> <a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> <tt id="link-117" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-117', 'exp', 'link-96');">exp</a></tt> <tt class="py-op">=</tt> <tt id="link-118" class="py-name"><a title="Martel.Re" class="py-name" href="#" onclick="return doclink('link-118', 'Re', 'link-103');">Re</a></tt><tt class="py-op">(</tt><tt class="py-string">r"\w+"</tt><tt class="py-op">)</tt> </tt> <a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-119" class="py-name"><a title="Martel._group Martel.msre_parse._group" class="py-name" href="#" onclick="return doclink('link-119', '_group', 'link-101');">_group</a></tt><tt class="py-op">(</tt><tt id="link-120" class="py-name"><a title="Bio.Encodings.IUPACEncoding.name" class="py-name" href="#" onclick="return doclink('link-120', 'name', 'link-69');">name</a></tt><tt class="py-op">,</tt> <tt id="link-121" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-121', 'exp', 'link-96');">exp</a></tt><tt class="py-op">,</tt> <tt id="link-122" class="py-name"><a title="Martel.Time.attrs" class="py-name" href="#" onclick="return doclink('link-122', 'attrs', 'link-70');">attrs</a></tt><tt class="py-op">)</tt> </tt> </div><a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> </tt> <a name="Spaces"></a><div id="Spaces-def"><a name="L202"></a><tt class="py-lineno">202</tt> <a class="py-toggle" href="#" id="Spaces-toggle" onclick="return toggle('Spaces');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#Spaces">Spaces</a><tt class="py-op">(</tt><tt class="py-param">name</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="Spaces-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Spaces-expanded"><a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"> <tt class="py-docstring">"""match one or more whitespace (except newline)</tt> </tt> <a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> <a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"><tt class="py-docstring"> "Spaces" is defined as [\\t\\v\\f\\r ]+, which is *not* the same</tt> </tt> <a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"><tt class="py-docstring"> as '\\s+'. (It's missing the '\\n', which is useful since you</tt> </tt> <a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"><tt class="py-docstring"> almost never mean for whitespace to go beyond the newline.)</tt> </tt> <a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> <a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"><tt class="py-docstring"> If 'name' is not None, the matching text will be put inside of a</tt> </tt> <a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"><tt class="py-docstring"> group of the given name. You can optionally include group</tt> </tt> <a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"><tt class="py-docstring"> attributes.</tt> </tt> <a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> <a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"> <tt id="link-123" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-123', 'exp', 'link-96');">exp</a></tt> <tt class="py-op">=</tt> <tt id="link-124" class="py-name"><a title="Martel.Re" class="py-name" href="#" onclick="return doclink('link-124', 'Re', 'link-103');">Re</a></tt><tt class="py-op">(</tt><tt class="py-string">r"[\t\v\f ]+"</tt><tt class="py-op">)</tt> </tt> <a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-125" class="py-name"><a title="Martel._group Martel.msre_parse._group" class="py-name" href="#" onclick="return doclink('link-125', '_group', 'link-101');">_group</a></tt><tt class="py-op">(</tt><tt id="link-126" class="py-name"><a title="Bio.Encodings.IUPACEncoding.name" class="py-name" href="#" onclick="return doclink('link-126', 'name', 'link-69');">name</a></tt><tt class="py-op">,</tt> <tt id="link-127" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-127', 'exp', 'link-96');">exp</a></tt><tt class="py-op">,</tt> <tt id="link-128" class="py-name"><a title="Martel.Time.attrs" class="py-name" href="#" onclick="return doclink('link-128', 'attrs', 'link-70');">attrs</a></tt><tt class="py-op">)</tt> </tt> </div><a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"> </tt> <a name="Unprintable"></a><div id="Unprintable-def"><a name="L216"></a><tt class="py-lineno">216</tt> <a class="py-toggle" href="#" id="Unprintable-toggle" onclick="return toggle('Unprintable');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#Unprintable">Unprintable</a><tt class="py-op">(</tt><tt class="py-param">name</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="Unprintable-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Unprintable-expanded"><a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"> <tt class="py-docstring">"""match an unprintable character (characters not in string.printable)</tt> </tt> <a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"><tt class="py-docstring"> If 'name' is not None, the matching text will be put inside of a</tt> </tt> <a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"><tt class="py-docstring"> group of the given name. You can optionally include group</tt> </tt> <a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"><tt class="py-docstring"> attributes. </tt> </tt> <a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> <a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-129" class="py-name"><a title="Martel._group Martel.msre_parse._group" class="py-name" href="#" onclick="return doclink('link-129', '_group', 'link-101');">_group</a></tt><tt class="py-op">(</tt><tt id="link-130" class="py-name"><a title="Bio.Encodings.IUPACEncoding.name" class="py-name" href="#" onclick="return doclink('link-130', 'name', 'link-69');">name</a></tt><tt class="py-op">,</tt> <tt id="link-131" class="py-name" targets="Function Martel.AnyBut()=Martel-module.html#AnyBut"><a title="Martel.AnyBut" class="py-name" href="#" onclick="return doclink('link-131', 'AnyBut', 'link-131');">AnyBut</a></tt><tt class="py-op">(</tt><tt class="py-name">string</tt><tt class="py-op">.</tt><tt class="py-name">printable</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-132" class="py-name"><a title="Martel.Time.attrs" class="py-name" href="#" onclick="return doclink('link-132', 'attrs', 'link-70');">attrs</a></tt><tt class="py-op">)</tt> </tt> </div><a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> </tt> <a name="Punctuation"></a><div id="Punctuation-def"><a name="L225"></a><tt class="py-lineno">225</tt> <a class="py-toggle" href="#" id="Punctuation-toggle" onclick="return toggle('Punctuation');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#Punctuation">Punctuation</a><tt class="py-op">(</tt><tt class="py-param">name</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="Punctuation-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Punctuation-expanded"><a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> <tt class="py-docstring">"""match a punctuation character (characters in string.punctuation)</tt> </tt> <a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"><tt class="py-docstring"> If 'name' is not None, the matching text will be put inside of a</tt> </tt> <a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"><tt class="py-docstring"> group of the given name. You can optionally include group</tt> </tt> <a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"><tt class="py-docstring"> attributes. </tt> </tt> <a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> <a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-133" class="py-name"><a title="Martel._group Martel.msre_parse._group" class="py-name" href="#" onclick="return doclink('link-133', '_group', 'link-101');">_group</a></tt><tt class="py-op">(</tt><tt id="link-134" class="py-name"><a title="Bio.Encodings.IUPACEncoding.name" class="py-name" href="#" onclick="return doclink('link-134', 'name', 'link-69');">name</a></tt><tt class="py-op">,</tt> <tt id="link-135" class="py-name"><a title="Martel.Any Martel.Expression.Any" class="py-name" href="#" onclick="return doclink('link-135', 'Any', 'link-15');">Any</a></tt><tt class="py-op">(</tt><tt class="py-name">string</tt><tt class="py-op">.</tt><tt class="py-name">punctuation</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-136" class="py-name"><a title="Martel.Time.attrs" class="py-name" href="#" onclick="return doclink('link-136', 'attrs', 'link-70');">attrs</a></tt><tt class="py-op">)</tt> </tt> </div><a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"> </tt> <a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"> </tt> <a name="ToEol"></a><div id="ToEol-def"><a name="L235"></a><tt class="py-lineno">235</tt> <a class="py-toggle" href="#" id="ToEol-toggle" onclick="return toggle('ToEol');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#ToEol">ToEol</a><tt class="py-op">(</tt><tt class="py-param">name</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="ToEol-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="ToEol-expanded"><a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"> <tt class="py-docstring">"""match everything up to and including the end of line</tt> </tt> <a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"><tt class="py-docstring"> If 'name' is not None, the matching text, except for the newline,</tt> </tt> <a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"><tt class="py-docstring"> will be put inside a group of the given name. You can optionally</tt> </tt> <a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"><tt class="py-docstring"> include group attributes. </tt> </tt> <a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> <a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-137" class="py-name"><a title="Bio.Encodings.IUPACEncoding.name" class="py-name" href="#" onclick="return doclink('link-137', 'name', 'link-69');">name</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt> <a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt id="link-138" class="py-name"><a title="Martel.Time.attrs" class="py-name" href="#" onclick="return doclink('link-138', 'attrs', 'link-70');">attrs</a></tt><tt class="py-op">,</tt> <tt class="py-string">"Attributes (%s) require a group name"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-139" class="py-name"><a title="Martel.Time.attrs" class="py-name" href="#" onclick="return doclink('link-139', 'attrs', 'link-70');">attrs</a></tt><tt class="py-op">,</tt><tt class="py-op">)</tt> </tt> <a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-140" class="py-name"><a title="Martel.Re" class="py-name" href="#" onclick="return doclink('link-140', 'Re', 'link-103');">Re</a></tt><tt class="py-op">(</tt><tt class="py-string">r"[^\R]*\R"</tt><tt class="py-op">)</tt> </tt> <a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> <a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-141" class="py-name"><a title="Martel.Expression.Group Martel.Group" class="py-name" href="#" onclick="return doclink('link-141', 'Group', 'link-68');">Group</a></tt><tt class="py-op">(</tt><tt id="link-142" class="py-name"><a title="Bio.Encodings.IUPACEncoding.name" class="py-name" href="#" onclick="return doclink('link-142', 'name', 'link-69');">name</a></tt><tt class="py-op">,</tt> <tt id="link-143" class="py-name"><a title="Martel.Re" class="py-name" href="#" onclick="return doclink('link-143', 'Re', 'link-103');">Re</a></tt><tt class="py-op">(</tt><tt class="py-string">r"[^\R]*"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-144" class="py-name"><a title="Martel.Time.attrs" class="py-name" href="#" onclick="return doclink('link-144', 'attrs', 'link-70');">attrs</a></tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt id="link-145" class="py-name"><a title="Martel.Expression.AnyEol" class="py-name" href="#" onclick="return doclink('link-145', 'AnyEol', 'link-50');">AnyEol</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> </div><a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"> </tt> <a name="UntilEol"></a><div id="UntilEol-def"><a name="L248"></a><tt class="py-lineno">248</tt> <a class="py-toggle" href="#" id="UntilEol-toggle" onclick="return toggle('UntilEol');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#UntilEol">UntilEol</a><tt class="py-op">(</tt><tt class="py-param">name</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="UntilEol-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="UntilEol-expanded"><a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"> <tt class="py-docstring">"""match everything up to but not including the end of line</tt> </tt> <a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"><tt class="py-docstring"> If 'name' is not None, the matching text, except for the newline,</tt> </tt> <a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"><tt class="py-docstring"> will be put inside a group of the given name. You can optionally</tt> </tt> <a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"><tt class="py-docstring"> include group attributes. </tt> </tt> <a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> <a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-146" class="py-name"><a title="Bio.Encodings.IUPACEncoding.name" class="py-name" href="#" onclick="return doclink('link-146', 'name', 'link-69');">name</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt> <a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt id="link-147" class="py-name"><a title="Martel.Time.attrs" class="py-name" href="#" onclick="return doclink('link-147', 'attrs', 'link-70');">attrs</a></tt><tt class="py-op">,</tt> <tt class="py-string">"Attributes (%s) require a group name"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-148" class="py-name"><a title="Martel.Time.attrs" class="py-name" href="#" onclick="return doclink('link-148', 'attrs', 'link-70');">attrs</a></tt><tt class="py-op">,</tt><tt class="py-op">)</tt> </tt> <a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-149" class="py-name"><a title="Martel.Re" class="py-name" href="#" onclick="return doclink('link-149', 'Re', 'link-103');">Re</a></tt><tt class="py-op">(</tt><tt class="py-string">r"[^\R]*"</tt><tt class="py-op">)</tt> </tt> <a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> <a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-150" class="py-name"><a title="Martel.Expression.Group Martel.Group" class="py-name" href="#" onclick="return doclink('link-150', 'Group', 'link-68');">Group</a></tt><tt class="py-op">(</tt><tt id="link-151" class="py-name"><a title="Bio.Encodings.IUPACEncoding.name" class="py-name" href="#" onclick="return doclink('link-151', 'name', 'link-69');">name</a></tt><tt class="py-op">,</tt> <tt id="link-152" class="py-name"><a title="Martel.Re" class="py-name" href="#" onclick="return doclink('link-152', 'Re', 'link-103');">Re</a></tt><tt class="py-op">(</tt><tt class="py-string">r"[^\R]*"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-153" class="py-name"><a title="Martel.Time.attrs" class="py-name" href="#" onclick="return doclink('link-153', 'attrs', 'link-70');">attrs</a></tt><tt class="py-op">)</tt> </tt> </div><a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"> </tt> <a name="SkipLinesUntil"></a><div id="SkipLinesUntil-def"><a name="L261"></a><tt class="py-lineno">261</tt> <a class="py-toggle" href="#" id="SkipLinesUntil-toggle" onclick="return toggle('SkipLinesUntil');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#SkipLinesUntil">SkipLinesUntil</a><tt class="py-op">(</tt><tt class="py-param">expr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="SkipLinesUntil-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="SkipLinesUntil-expanded"><a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"> <tt class="py-docstring">"""read and ignore lines up to, but excluding, the line matching expr"""</tt> </tt> <a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-154" class="py-name" targets="Package Bio.Pathway.Rep=Bio.Pathway.Rep-module.html,Function Martel.Rep()=Martel-module.html#Rep"><a title="Bio.Pathway.Rep Martel.Rep" class="py-name" href="#" onclick="return doclink('link-154', 'Rep', 'link-154');">Rep</a></tt><tt class="py-op">(</tt><tt id="link-155" class="py-name" targets="Function Martel.AssertNot()=Martel-module.html#AssertNot"><a title="Martel.AssertNot" class="py-name" href="#" onclick="return doclink('link-155', 'AssertNot', 'link-155');">AssertNot</a></tt><tt class="py-op">(</tt><tt class="py-name">expr</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt id="link-156" class="py-name" targets="Function Martel.ToEol()=Martel-module.html#ToEol"><a title="Martel.ToEol" class="py-name" href="#" onclick="return doclink('link-156', 'ToEol', 'link-156');">ToEol</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt> </div><a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"> </tt> <a name="SkipLinesTo"></a><div id="SkipLinesTo-def"><a name="L265"></a><tt class="py-lineno">265</tt> <a class="py-toggle" href="#" id="SkipLinesTo-toggle" onclick="return toggle('SkipLinesTo');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#SkipLinesTo">SkipLinesTo</a><tt class="py-op">(</tt><tt class="py-param">expr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="SkipLinesTo-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="SkipLinesTo-expanded"><a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"> <tt class="py-docstring">"""read and ignore lines up to and including, the line matching expr"""</tt> </tt> <a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-157" class="py-name"><a title="Bio.Pathway.Rep Martel.Rep" class="py-name" href="#" onclick="return doclink('link-157', 'Rep', 'link-154');">Rep</a></tt><tt class="py-op">(</tt><tt id="link-158" class="py-name"><a title="Martel.AssertNot" class="py-name" href="#" onclick="return doclink('link-158', 'AssertNot', 'link-155');">AssertNot</a></tt><tt class="py-op">(</tt><tt class="py-name">expr</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt id="link-159" class="py-name"><a title="Martel.ToEol" class="py-name" href="#" onclick="return doclink('link-159', 'ToEol', 'link-156');">ToEol</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">expr</tt> <tt class="py-op">+</tt> <tt id="link-160" class="py-name"><a title="Martel.ToEol" class="py-name" href="#" onclick="return doclink('link-160', 'ToEol', 'link-156');">ToEol</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> </div><a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"> </tt> <a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"> </tt> <a name="ToSep"></a><div id="ToSep-def"><a name="L270"></a><tt class="py-lineno">270</tt> <a class="py-toggle" href="#" id="ToSep-toggle" onclick="return toggle('ToSep');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#ToSep">ToSep</a><tt class="py-op">(</tt><tt class="py-param">name</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">sep</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="ToSep-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="ToSep-expanded"><a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"> <tt class="py-docstring">"""match all characters up to the given seperator(s)</tt> </tt> <a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"><tt class="py-docstring"> This is useful for parsing space, tab, color, or other character</tt> </tt> <a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"><tt class="py-docstring"> delimited fields. There is no default seperator character.</tt> </tt> <a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> <a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"><tt class="py-docstring"> If 'name' is not None, the matching text, except for the seperator</tt> </tt> <a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"><tt class="py-docstring"> will be put inside a group of the given name. You can optionally</tt> </tt> <a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"><tt class="py-docstring"> include group attributes. The seperator character will also be</tt> </tt> <a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"><tt class="py-docstring"> consumed.</tt> </tt> <a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"><tt class="py-docstring"> Neither "\\r" nor "\\n" may be used as a seperator</tt> </tt> <a name="L282"></a><tt class="py-lineno">282</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> <a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">sep</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt> <a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> <tt class="py-comment"># I found it was too easy to make a mistake with a default</tt> </tt> <a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt><tt class="py-string">"Must specify a seperator (the 'sep' parameter)"</tt><tt class="py-op">)</tt> </tt> <a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"> </tt> <a name="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-string">"\r"</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">sep</tt> <tt class="py-keyword">and</tt> <tt class="py-string">"\n"</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">sep</tt><tt class="py-op">,</tt> \ </tt> <a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"> <tt class="py-string">"cannot use %s as a seperator"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">repr</tt><tt class="py-op">(</tt><tt class="py-name">seperator</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-op">)</tt> </tt> <a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> </tt> <a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"> <tt id="link-161" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-161', 'exp', 'link-96');">exp</a></tt> <tt class="py-op">=</tt> <tt id="link-162" class="py-name"><a title="Bio.Pathway.Rep Martel.Rep" class="py-name" href="#" onclick="return doclink('link-162', 'Rep', 'link-154');">Rep</a></tt><tt class="py-op">(</tt><tt id="link-163" class="py-name"><a title="Martel.AnyBut" class="py-name" href="#" onclick="return doclink('link-163', 'AnyBut', 'link-131');">AnyBut</a></tt><tt class="py-op">(</tt><tt class="py-name">sep</tt> <tt class="py-op">+</tt> <tt class="py-string">"\r\n"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt> <a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-164" class="py-name"><a title="Martel._group Martel.msre_parse._group" class="py-name" href="#" onclick="return doclink('link-164', '_group', 'link-101');">_group</a></tt><tt class="py-op">(</tt><tt id="link-165" class="py-name"><a title="Bio.Encodings.IUPACEncoding.name" class="py-name" href="#" onclick="return doclink('link-165', 'name', 'link-69');">name</a></tt><tt class="py-op">,</tt> <tt id="link-166" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-166', 'exp', 'link-96');">exp</a></tt><tt class="py-op">,</tt> <tt id="link-167" class="py-name"><a title="Martel.Time.attrs" class="py-name" href="#" onclick="return doclink('link-167', 'attrs', 'link-70');">attrs</a></tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt id="link-168" class="py-name"><a title="Martel.Expression.Str Martel.Str" class="py-name" href="#" onclick="return doclink('link-168', 'Str', 'link-3');">Str</a></tt><tt class="py-op">(</tt><tt class="py-name">sep</tt><tt class="py-op">)</tt> </tt> </div><a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"> </tt> <a name="UntilSep"></a><div id="UntilSep-def"><a name="L293"></a><tt class="py-lineno">293</tt> <a class="py-toggle" href="#" id="UntilSep-toggle" onclick="return toggle('UntilSep');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#UntilSep">UntilSep</a><tt class="py-op">(</tt><tt class="py-param">name</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">sep</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="UntilSep-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="UntilSep-expanded"><a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"> <tt class="py-docstring">"""match all characters up to the given seperators(s)</tt> </tt> <a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"><tt class="py-docstring"> This is useful for parsing space, tab, color, or other character</tt> </tt> <a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"><tt class="py-docstring"> delimited fields. There is no default seperator.</tt> </tt> <a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt> <a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"><tt class="py-docstring"> If 'name' is not None, the matching text, except for the seperator</tt> </tt> <a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"><tt class="py-docstring"> will be put inside a group of the given name. You can optionally</tt> </tt> <a name="L301"></a><tt class="py-lineno">301</tt> <tt class="py-line"><tt class="py-docstring"> include group attributes. The seperator character will not be</tt> </tt> <a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"><tt class="py-docstring"> consumed.</tt> </tt> <a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"><tt class="py-docstring"> Neither "\\r" nor "\\n" may be used as a seperator.</tt> </tt> <a name="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> <a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">sep</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt> <a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"> <tt class="py-comment"># I found it was too easy to make a mistake with a default</tt> </tt> <a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt><tt class="py-string">"Must specify a seperator (the 'sep' parameter)"</tt><tt class="py-op">)</tt> </tt> <a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"> </tt> <a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-string">"\r"</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">sep</tt> <tt class="py-keyword">and</tt> <tt class="py-string">"\n"</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">sep</tt><tt class="py-op">,</tt> \ </tt> <a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"> <tt class="py-string">"cannot use %s as a seperator"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">repr</tt><tt class="py-op">(</tt><tt class="py-name">sep</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-op">)</tt> </tt> <a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"> </tt> <a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt id="link-169" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-169', 'exp', 'link-96');">exp</a></tt> <tt class="py-op">=</tt> <tt id="link-170" class="py-name"><a title="Bio.Pathway.Rep Martel.Rep" class="py-name" href="#" onclick="return doclink('link-170', 'Rep', 'link-154');">Rep</a></tt><tt class="py-op">(</tt><tt id="link-171" class="py-name"><a title="Martel.AnyBut" class="py-name" href="#" onclick="return doclink('link-171', 'AnyBut', 'link-131');">AnyBut</a></tt><tt class="py-op">(</tt><tt class="py-name">sep</tt> <tt class="py-op">+</tt> <tt class="py-string">"\r\n"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt> <a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-172" class="py-name"><a title="Martel._group Martel.msre_parse._group" class="py-name" href="#" onclick="return doclink('link-172', '_group', 'link-101');">_group</a></tt><tt class="py-op">(</tt><tt id="link-173" class="py-name"><a title="Bio.Encodings.IUPACEncoding.name" class="py-name" href="#" onclick="return doclink('link-173', 'name', 'link-69');">name</a></tt><tt class="py-op">,</tt> <tt id="link-174" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-174', 'exp', 'link-96');">exp</a></tt><tt class="py-op">,</tt> <tt id="link-175" class="py-name"><a title="Martel.Time.attrs" class="py-name" href="#" onclick="return doclink('link-175', 'attrs', 'link-70');">attrs</a></tt><tt class="py-op">)</tt> </tt> </div><a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"> </tt> <a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"> </tt> <a name="DelimitedFields"></a><div id="DelimitedFields-def"><a name="L317"></a><tt class="py-lineno">317</tt> <a class="py-toggle" href="#" id="DelimitedFields-toggle" onclick="return toggle('DelimitedFields');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#DelimitedFields">DelimitedFields</a><tt class="py-op">(</tt><tt class="py-param">name</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">sep</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="DelimitedFields-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="DelimitedFields-expanded"><a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"> <tt class="py-docstring">"""match 0 or more fields seperated by the given seperator(s)</tt> </tt> <a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"><tt class="py-docstring"> This is useful for parsing space, tab, color, or other character</tt> </tt> <a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"><tt class="py-docstring"> delimited fields. There is no default seperator.</tt> </tt> <a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"><tt class="py-docstring"> If 'name' is not None, the delimited text, excluding the seperator,</tt> </tt> <a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"><tt class="py-docstring"> will be put inside groups of the given name. You can optionally</tt> </tt> <a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"><tt class="py-docstring"> include group attributes. The seperator character is consumed,</tt> </tt> <a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"><tt class="py-docstring"> but not accessible using a group.</tt> </tt> <a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"><tt class="py-docstring"> Neither "\\r" nor "\\n" may be used as a seperator.</tt> </tt> <a name="L329"></a><tt class="py-lineno">329</tt> <tt class="py-line"><tt class="py-docstring"> The line as a whole is not included in a group.</tt> </tt> <a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> <a name="L331"></a><tt class="py-lineno">331</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">sep</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt> <a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"> <tt class="py-comment"># I found it was too easy to make a mistake with a default</tt> </tt> <a name="L333"></a><tt class="py-lineno">333</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt><tt class="py-string">"Must specify a sep (via the 'sep' parameter)"</tt><tt class="py-op">)</tt> </tt> <a name="L334"></a><tt class="py-lineno">334</tt> <tt class="py-line"> </tt> <a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-string">"\r"</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">sep</tt> <tt class="py-keyword">and</tt> <tt class="py-string">"\n"</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">sep</tt><tt class="py-op">,</tt> \ </tt> <a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"> <tt class="py-string">"cannot use %s as a seperator"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">repr</tt><tt class="py-op">(</tt><tt class="py-name">sep</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-op">)</tt> </tt> <a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"> </tt> <a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"> <tt class="py-name">term</tt> <tt class="py-op">=</tt> <tt id="link-176" class="py-name"><a title="Martel._group Martel.msre_parse._group" class="py-name" href="#" onclick="return doclink('link-176', '_group', 'link-101');">_group</a></tt><tt class="py-op">(</tt><tt id="link-177" class="py-name"><a title="Bio.Encodings.IUPACEncoding.name" class="py-name" href="#" onclick="return doclink('link-177', 'name', 'link-69');">name</a></tt><tt class="py-op">,</tt> <tt id="link-178" class="py-name"><a title="Bio.Pathway.Rep Martel.Rep" class="py-name" href="#" onclick="return doclink('link-178', 'Rep', 'link-154');">Rep</a></tt><tt class="py-op">(</tt><tt id="link-179" class="py-name"><a title="Martel.AnyBut" class="py-name" href="#" onclick="return doclink('link-179', 'AnyBut', 'link-131');">AnyBut</a></tt><tt class="py-op">(</tt><tt class="py-name">sep</tt> <tt class="py-op">+</tt> <tt class="py-string">"\r\n"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-180" class="py-name"><a title="Martel.Time.attrs" class="py-name" href="#" onclick="return doclink('link-180', 'attrs', 'link-70');">attrs</a></tt><tt class="py-op">)</tt> </tt> <a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"> <tt class="py-name">rep</tt> <tt class="py-op">=</tt> <tt id="link-181" class="py-name"><a title="Bio.Pathway.Rep Martel.Rep" class="py-name" href="#" onclick="return doclink('link-181', 'Rep', 'link-154');">Rep</a></tt><tt class="py-op">(</tt><tt id="link-182" class="py-name"><a title="Martel.Any Martel.Expression.Any" class="py-name" href="#" onclick="return doclink('link-182', 'Any', 'link-15');">Any</a></tt><tt class="py-op">(</tt><tt class="py-name">sep</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">term</tt><tt class="py-op">)</tt> </tt> <a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">term</tt> <tt class="py-op">+</tt> <tt class="py-name">rep</tt> <tt class="py-op">+</tt> <tt id="link-183" class="py-name"><a title="Martel.Expression.AnyEol" class="py-name" href="#" onclick="return doclink('link-183', 'AnyEol', 'link-50');">AnyEol</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> </div><a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"> </tt> <a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"><tt class="py-comment"># Allows some optimizations</tt> </tt> <a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"><tt class="py-comment"></tt><tt id="link-184" class="py-name" targets="Class Martel.Expression.FastFeature=Martel.Expression.FastFeature-class.html"><a title="Martel.Expression.FastFeature" class="py-name" href="#" onclick="return doclink('link-184', 'FastFeature', 'link-184');">FastFeature</a></tt> <tt class="py-op">=</tt> <tt id="link-185" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-185', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-186" class="py-name"><a title="Martel.Expression.FastFeature" class="py-name" href="#" onclick="return doclink('link-186', 'FastFeature', 'link-184');">FastFeature</a></tt> </tt> <a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"> </tt> <a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"> </tt> <a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"><tt class="py-comment"># Used when making parsers which read a record at a time</tt> </tt> <a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"><tt class="py-comment"></tt><tt id="link-187" class="py-name" targets="Class Martel.Expression.ParseRecords=Martel.Expression.ParseRecords-class.html"><a title="Martel.Expression.ParseRecords" class="py-name" href="#" onclick="return doclink('link-187', 'ParseRecords', 'link-187');">ParseRecords</a></tt> <tt class="py-op">=</tt> <tt id="link-188" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-188', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-189" class="py-name"><a title="Martel.Expression.ParseRecords" class="py-name" href="#" onclick="return doclink('link-189', 'ParseRecords', 'link-187');">ParseRecords</a></tt> </tt> <a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"><tt id="link-190" class="py-name" targets="Class Martel.Expression.HeaderFooter=Martel.Expression.HeaderFooter-class.html"><a title="Martel.Expression.HeaderFooter" class="py-name" href="#" onclick="return doclink('link-190', 'HeaderFooter', 'link-190');">HeaderFooter</a></tt> <tt class="py-op">=</tt> <tt id="link-191" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-191', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-192" class="py-name"><a title="Martel.Expression.HeaderFooter" class="py-name" href="#" onclick="return doclink('link-192', 'HeaderFooter', 'link-190');">HeaderFooter</a></tt> </tt> <a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"> </tt> <a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"><tt class="py-comment"># Use this to prune out group names you aren't</tt> </tt> <a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># interested in seeing, which reduces the number of method</tt> </tt> <a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># calls back to the parser.</tt> </tt> <a name="select_names"></a><div id="select_names-def"><a name="L353"></a><tt class="py-lineno">353</tt> <a class="py-toggle" href="#" id="select_names-toggle" onclick="return toggle('select_names');">-</a><tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#select_names">select_names</a><tt class="py-op">(</tt><tt class="py-param">expression</tt><tt class="py-op">,</tt> <tt class="py-param">names</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="select_names-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="select_names-expanded"><a name="L354"></a><tt class="py-lineno">354</tt> <tt class="py-line"> <tt class="py-comment"># Make a copy so I know I don't share subexpressions which other</tt> </tt> <a name="L355"></a><tt class="py-lineno">355</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># expressions.</tt> </tt> <a name="L356"></a><tt class="py-lineno">356</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt id="link-193" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-193', 'exp', 'link-96');">exp</a></tt> <tt class="py-op">=</tt> <tt class="py-name">expression</tt><tt class="py-op">.</tt><tt id="link-194" class="py-name" targets="Method Bio.Crystal.Crystal.copy()=Bio.Crystal.Crystal-class.html#copy,Method Bio.GA.Organism.Organism.copy()=Bio.GA.Organism.Organism-class.html#copy,Method Bio.GenBank.NCBIDictionary.copy()=Bio.GenBank.NCBIDictionary-class.html#copy,Method Bio.PDB.Vector'.Vector.copy()=Bio.PDB.Vector%27.Vector-class.html#copy,Method Bio.Prosite.ExPASyDictionary.copy()=Bio.Prosite.ExPASyDictionary-class.html#copy,Method Bio.Prosite.Pattern.PrositeTerm.copy()=Bio.Prosite.Pattern.PrositeTerm-class.html#copy,Method Bio.Prosite.Prodoc.ExPASyDictionary.copy()=Bio.Prosite.Prodoc.ExPASyDictionary-class.html#copy,Method Bio.PubMed.Dictionary.copy()=Bio.PubMed.Dictionary-class.html#copy,Method Bio.SwissProt.SProt.ExPASyDictionary.copy()=Bio.SwissProt.SProt.ExPASyDictionary-class.html#copy,Method Martel.Expression.Any.copy()=Martel.Expression.Any-class.html#copy,Method Martel.Expression.AnyEol.copy()=Martel.Expression.AnyEol-class.html#copy,Method Martel.Expression.Assert.copy()=Martel.Expression.Assert-class.html#copy,Method Martel.Expression.AtBeginning.copy()=Martel.Expression.AtBeginning-class.html#copy,Method Martel.Expression.AtEnd.copy()=Martel.Expression.AtEnd-class.html#copy,Method Martel.Expression.Debug.copy()=Martel.Expression.Debug-class.html#copy,Method Martel.Expression.Dot.copy()=Martel.Expression.Dot-class.html#copy,Method Martel.Expression.Expression.copy()=Martel.Expression.Expression-class.html#copy,Method Martel.Expression.ExpressionList.copy()=Martel.Expression.ExpressionList-class.html#copy,Method Martel.Expression.FastFeature.copy()=Martel.Expression.FastFeature-class.html#copy,Method Martel.Expression.Group.copy()=Martel.Expression.Group-class.html#copy,Method Martel.Expression.GroupRef.copy()=Martel.Expression.GroupRef-class.html#copy,Method Martel.Expression.HeaderFooter.copy()=Martel.Expression.HeaderFooter-class.html#copy,Method Martel.Expression.Literal.copy()=Martel.Expression.Literal-class.html#copy,Method Martel.Expression.MaxRepeat.copy()=Martel.Expression.MaxRepeat-class.html#copy,Method Martel.Expression.NullOp.copy()=Martel.Expression.NullOp-class.html#copy,Method Martel.Expression.ParseRecords.copy()=Martel.Expression.ParseRecords-class.html#copy,Method Martel.Expression.PassThrough.copy()=Martel.Expression.PassThrough-class.html#copy,Method Martel.Expression.Str.copy()=Martel.Expression.Str-class.html#copy,Method Martel.IterParser.IterHeaderFooter.copy()=Martel.IterParser.IterHeaderFooter-class.html#copy,Method Martel.IterParser.IterRecords.copy()=Martel.IterParser.IterRecords-class.html#copy,Method Martel.Iterator.IteratorRecords.copy()=Martel.Iterator.IteratorRecords-class.html#copy,Method Martel.Parser.HeaderFooterParser.copy()=Martel.Parser.HeaderFooterParser-class.html#copy,Method Martel.Parser.Parser.copy()=Martel.Parser.Parser-class.html#copy,Method Martel.Parser.RecordParser.copy()=Martel.Parser.RecordParser-class.html#copy"><a title="Bio.Crystal.Crystal.copy Bio.GA.Organism.Organism.copy Bio.GenBank.NCBIDictionary.copy Bio.PDB.Vector'.Vector.copy Bio.Prosite.ExPASyDictionary.copy Bio.Prosite.Pattern.PrositeTerm.copy Bio.Prosite.Prodoc.ExPASyDictionary.copy Bio.PubMed.Dictionary.copy Bio.SwissProt.SProt.ExPASyDictionary.copy Martel.Expression.Any.copy Martel.Expression.AnyEol.copy Martel.Expression.Assert.copy Martel.Expression.AtBeginning.copy Martel.Expression.AtEnd.copy Martel.Expression.Debug.copy Martel.Expression.Dot.copy Martel.Expression.Expression.copy Martel.Expression.ExpressionList.copy Martel.Expression.FastFeature.copy Martel.Expression.Group.copy Martel.Expression.GroupRef.copy Martel.Expression.HeaderFooter.copy Martel.Expression.Literal.copy Martel.Expression.MaxRepeat.copy Martel.Expression.NullOp.copy Martel.Expression.ParseRecords.copy Martel.Expression.PassThrough.copy Martel.Expression.Str.copy Martel.IterParser.IterHeaderFooter.copy Martel.IterParser.IterRecords.copy Martel.Iterator.IteratorRecords.copy Martel.Parser.HeaderFooterParser.copy Martel.Parser.Parser.copy Martel.Parser.RecordParser.copy" class="py-name" href="#" onclick="return doclink('link-194', 'copy', 'link-194');">copy</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> <a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"> </tt> <a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"> <tt class="py-comment"># Use that internal method I told you not to use :)</tt> </tt> <a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt id="link-195" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-195', 'exp', 'link-96');">exp</a></tt><tt class="py-op">.</tt><tt id="link-196" class="py-name" targets="Method Martel.Expression.Expression._select_names()=Martel.Expression.Expression-class.html#_select_names,Method Martel.Expression.ExpressionList._select_names()=Martel.Expression.ExpressionList-class.html#_select_names,Method Martel.Expression.Group._select_names()=Martel.Expression.Group-class.html#_select_names,Method Martel.Expression.MaxRepeat._select_names()=Martel.Expression.MaxRepeat-class.html#_select_names,Method Martel.Expression.NullOp._select_names()=Martel.Expression.NullOp-class.html#_select_names,Method Martel.Expression.PassThrough._select_names()=Martel.Expression.PassThrough-class.html#_select_names"><a title="Martel.Expression.Expression._select_names Martel.Expression.ExpressionList._select_names Martel.Expression.Group._select_names Martel.Expression.MaxRepeat._select_names Martel.Expression.NullOp._select_names Martel.Expression.PassThrough._select_names" class="py-name" href="#" onclick="return doclink('link-196', '_select_names', 'link-196');">_select_names</a></tt><tt class="py-op">(</tt><tt id="link-197" class="py-name" targets="Method Bio.Compass._Consumer.names()=Bio.Compass._Consumer-class.html#names"><a title="Bio.Compass._Consumer.names" class="py-name" href="#" onclick="return doclink('link-197', 'names', 'link-197');">names</a></tt><tt class="py-op">)</tt> </tt> <a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"> </tt> <a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"> <tt class="py-comment"># Get rid of unnamed groups</tt> </tt> <a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">import</tt> <tt id="link-198" class="py-name" targets="Module Martel.optimize=Martel.optimize-module.html,Function Martel.optimize.optimize()=Martel.optimize-module.html#optimize"><a title="Martel.optimize Martel.optimize.optimize" class="py-name" href="#" onclick="return doclink('link-198', 'optimize', 'link-198');">optimize</a></tt> </tt> <a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-199" class="py-name"><a title="Martel.optimize Martel.optimize.optimize" class="py-name" href="#" onclick="return doclink('link-199', 'optimize', 'link-198');">optimize</a></tt><tt class="py-op">.</tt><tt id="link-200" class="py-name" targets="Function Martel.optimize.optimize_unnamed_groups()=Martel.optimize-module.html#optimize_unnamed_groups"><a title="Martel.optimize.optimize_unnamed_groups" class="py-name" href="#" onclick="return doclink('link-200', 'optimize_unnamed_groups', 'link-200');">optimize_unnamed_groups</a></tt><tt class="py-op">(</tt><tt id="link-201" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-201', 'exp', 'link-96');">exp</a></tt><tt class="py-op">)</tt> </tt> </div><a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"> </tt> <a name="replace_groups"></a><div id="replace_groups-def"><a name="L365"></a><tt class="py-lineno">365</tt> <a class="py-toggle" href="#" id="replace_groups-toggle" onclick="return toggle('replace_groups');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#replace_groups">replace_groups</a><tt class="py-op">(</tt><tt class="py-param">expr</tt><tt class="py-op">,</tt> <tt class="py-param">replacements</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="replace_groups-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="replace_groups-expanded"><a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"> <tt class="py-name">expr</tt> <tt class="py-op">=</tt> <tt class="py-name">expr</tt><tt class="py-op">.</tt><tt id="link-202" class="py-name"><a title="Bio.Crystal.Crystal.copy Bio.GA.Organism.Organism.copy Bio.GenBank.NCBIDictionary.copy Bio.PDB.Vector'.Vector.copy Bio.Prosite.ExPASyDictionary.copy Bio.Prosite.Pattern.PrositeTerm.copy Bio.Prosite.Prodoc.ExPASyDictionary.copy Bio.PubMed.Dictionary.copy Bio.SwissProt.SProt.ExPASyDictionary.copy Martel.Expression.Any.copy Martel.Expression.AnyEol.copy Martel.Expression.Assert.copy Martel.Expression.AtBeginning.copy Martel.Expression.AtEnd.copy Martel.Expression.Debug.copy Martel.Expression.Dot.copy Martel.Expression.Expression.copy Martel.Expression.ExpressionList.copy Martel.Expression.FastFeature.copy Martel.Expression.Group.copy Martel.Expression.GroupRef.copy Martel.Expression.HeaderFooter.copy Martel.Expression.Literal.copy Martel.Expression.MaxRepeat.copy Martel.Expression.NullOp.copy Martel.Expression.ParseRecords.copy Martel.Expression.PassThrough.copy Martel.Expression.Str.copy Martel.IterParser.IterHeaderFooter.copy Martel.IterParser.IterRecords.copy Martel.Iterator.IteratorRecords.copy Martel.Parser.HeaderFooterParser.copy Martel.Parser.Parser.copy Martel.Parser.RecordParser.copy" class="py-name" href="#" onclick="return doclink('link-202', 'copy', 'link-194');">copy</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> <a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">tagname</tt><tt class="py-op">,</tt> <tt class="py-name">replacement_expr</tt> <tt class="py-keyword">in</tt> <tt id="link-203" class="py-name" targets="Variable Bio.expressions.swissprot.ipi.replacements=Bio.expressions.swissprot.ipi-module.html#replacements,Variable Bio.expressions.swissprot.sprot40.replacements=Bio.expressions.swissprot.sprot40-module.html#replacements"><a title="Bio.expressions.swissprot.ipi.replacements Bio.expressions.swissprot.sprot40.replacements" class="py-name" href="#" onclick="return doclink('link-203', 'replacements', 'link-203');">replacements</a></tt><tt class="py-op">:</tt> </tt> <a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"> <tt class="py-name">matches</tt> <tt class="py-op">=</tt> <tt class="py-name">expr</tt><tt class="py-op">.</tt><tt id="link-204" class="py-name" targets="Method Martel.Expression.Expression._find_groups()=Martel.Expression.Expression-class.html#_find_groups,Method Martel.Expression.ExpressionList._find_groups()=Martel.Expression.ExpressionList-class.html#_find_groups,Method Martel.Expression.Group._find_groups()=Martel.Expression.Group-class.html#_find_groups,Method Martel.Expression.HeaderFooter._find_groups()=Martel.Expression.HeaderFooter-class.html#_find_groups,Method Martel.Expression.MaxRepeat._find_groups()=Martel.Expression.MaxRepeat-class.html#_find_groups,Method Martel.Expression.ParseRecords._find_groups()=Martel.Expression.ParseRecords-class.html#_find_groups,Method Martel.Expression.PassThrough._find_groups()=Martel.Expression.PassThrough-class.html#_find_groups"><a title="Martel.Expression.Expression._find_groups Martel.Expression.ExpressionList._find_groups Martel.Expression.Group._find_groups Martel.Expression.HeaderFooter._find_groups Martel.Expression.MaxRepeat._find_groups Martel.Expression.ParseRecords._find_groups Martel.Expression.PassThrough._find_groups" class="py-name" href="#" onclick="return doclink('link-204', '_find_groups', 'link-204');">_find_groups</a></tt><tt class="py-op">(</tt><tt class="py-name">tagname</tt><tt class="py-op">)</tt> </tt> <a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-205" class="py-name" targets="Method Bio.Parsers.spark.GenericASTMatcher.match()=Bio.Parsers.spark.GenericASTMatcher-class.html#match,Method Bio.Prosite.Pattern.Prosite.match()=Bio.Prosite.Pattern.Prosite-class.html#match,Function Bio.triefind.match()=Bio.triefind-module.html#match,Method Martel.msre_parse.Tokenizer.match()=Martel.msre_parse.Tokenizer-class.html#match"><a title="Bio.Parsers.spark.GenericASTMatcher.match Bio.Prosite.Pattern.Prosite.match Bio.triefind.match Martel.msre_parse.Tokenizer.match" class="py-name" href="#" onclick="return doclink('link-205', 'match', 'link-205');">match</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">matches</tt><tt class="py-op">:</tt> </tt> <a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"> <tt id="link-206" class="py-name"><a title="Bio.Parsers.spark.GenericASTMatcher.match Bio.Prosite.Pattern.Prosite.match Bio.triefind.match Martel.msre_parse.Tokenizer.match" class="py-name" href="#" onclick="return doclink('link-206', 'match', 'link-205');">match</a></tt><tt class="py-op">.</tt><tt class="py-name">expression</tt> <tt class="py-op">=</tt> <tt class="py-name">replacement_expr</tt> </tt> <a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">expr</tt> </tt> </div><a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"> </tt> <a name="SimpleRecordFilter"></a><div id="SimpleRecordFilter-def"><a name="L373"></a><tt class="py-lineno">373</tt> <a class="py-toggle" href="#" id="SimpleRecordFilter-toggle" onclick="return toggle('SimpleRecordFilter');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel-module.html#SimpleRecordFilter">SimpleRecordFilter</a><tt class="py-op">(</tt><tt class="py-param">expr</tt><tt class="py-op">,</tt> <tt class="py-param">make_reader</tt><tt class="py-op">,</tt> <tt class="py-param">reader_args</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="SimpleRecordFilter-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="SimpleRecordFilter-expanded"><a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-207" class="py-name"><a title="Martel.Expression.ParseRecords" class="py-name" href="#" onclick="return doclink('link-207', 'ParseRecords', 'link-187');">ParseRecords</a></tt><tt class="py-op">(</tt><tt class="py-string">"dataset"</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">"format"</tt><tt class="py-op">:</tt> <tt class="py-string">"*filter*"</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> </tt> <a name="L375"></a><tt class="py-lineno">375</tt> <tt class="py-line"> <tt id="link-208" class="py-name"><a title="Martel.Expression.Group Martel.Group" class="py-name" href="#" onclick="return doclink('link-208', 'Group', 'link-68');">Group</a></tt><tt class="py-op">(</tt><tt class="py-string">"record"</tt><tt class="py-op">,</tt> <tt class="py-name">expr</tt> <tt class="py-op">+</tt> <tt id="link-209" class="py-name"><a title="Bio.Pathway.Rep Martel.Rep" class="py-name" href="#" onclick="return doclink('link-209', 'Rep', 'link-154');">Rep</a></tt><tt class="py-op">(</tt><tt id="link-210" class="py-name"><a title="Martel.ToEol" class="py-name" href="#" onclick="return doclink('link-210', 'ToEol', 'link-156');">ToEol</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt> <a name="L376"></a><tt class="py-lineno">376</tt> <tt class="py-line"> <tt class="py-name">make_reader</tt><tt class="py-op">,</tt> <tt class="py-name">reader_args</tt><tt class="py-op">)</tt> </tt> </div><a name="L377"></a><tt class="py-lineno">377</tt> <tt class="py-line"> </tt><script type="text/javascript"> <!-- expandto(location.href); // --> </script> </pre> <br /> <!-- ==================== NAVIGATION BAR ==================== --> <table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0"> <tr valign="middle"> <!-- Tree link --> <th> <a href="module-tree.html">Trees</a> </th> <!-- Index link --> <th> <a href="identifier-index.html">Indices</a> </th> <!-- Help link --> <th> <a href="help.html">Help</a> </th> <th class="navbar" width="100%"></th> </tr> </table> <table border="0" cellpadding="0" cellspacing="0" width="100%%"> <tr> <td align="left" class="footer"> Generated by Epydoc 3.0.1 on Mon Sep 15 09:28:06 2008 </td> <td align="right" class="footer"> <a target="mainFrame" href="http://epydoc.sourceforge.net" >http://epydoc.sourceforge.net</a> </td> </tr> </table> <script type="text/javascript"> <!-- // Private objects are initially displayed (because if // javascript is turned off then we want them to be // visible); but by default, we want to hide them. So hide // them unless we have a cookie that says to show them. checkCookie(); // --> </script> </body> </html>