Sophie

Sophie

distrib > * > cooker > x86_64 > by-pkgid > 635dc0b7819f4e396a16d64269572c71 > files > 1850

biopython-doc-1.58-1.x86_64.rpm

<?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>Bio.SeqRecord._RestrictedDict</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>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</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">
        <a href="Bio-module.html">Package&nbsp;Bio</a> ::
        <a href="Bio.SeqRecord-module.html">Module&nbsp;SeqRecord</a> ::
        Class&nbsp;_RestrictedDict
      </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&nbsp;private</a>]</span></td></tr>
        <tr><td align="right"><span class="options"
            >[<a href="frames.html" target="_top">frames</a
            >]&nbsp;|&nbsp;<a href="Bio.SeqRecord._RestrictedDict-class.html"
            target="_top">no&nbsp;frames</a>]</span></td></tr>
      </table>
    </td>
  </tr>
</table>
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class _RestrictedDict</h1><p class="nomargin-top"><span class="codelink"><a href="Bio.SeqRecord-pysrc.html#_RestrictedDict">source&nbsp;code</a></span></p>
<pre class="base-tree">
object --+    
         |    
      dict --+
             |
            <strong class="uidshort">_RestrictedDict</strong>
</pre>

<hr />
<p>Dict which only allows sequences of given length as values 
  (PRIVATE).</p>
  <p>This simple subclass of the Python dictionary is used in the SeqRecord
  object for holding per-letter-annotations.  This class is intended to 
  prevent simple errors by only allowing python sequences (e.g. lists, 
  strings and tuples) to be stored, and only if their length matches that 
  expected (the length of the SeqRecord's seq object).  It cannot however 
  prevent the entries being edited in situ (for example appending entries 
  to a list).</p>
<pre class="py-doctest">
<span class="py-prompt">&gt;&gt;&gt; </span>x = _RestrictedDict(5)
<span class="py-prompt">&gt;&gt;&gt; </span>x[<span class="py-string">&quot;test&quot;</span>] = <span class="py-string">&quot;hello&quot;</span>
<span class="py-prompt">&gt;&gt;&gt; </span>x
<span class="py-output">{'test': 'hello'}</span></pre>
  <p>Adding entries which don't have the expected length are blocked:</p>
<pre class="py-doctest">
<span class="py-prompt">&gt;&gt;&gt; </span>x[<span class="py-string">&quot;test&quot;</span>] = <span class="py-string">&quot;hello world&quot;</span>
<span class="py-except">Traceback (most recent call last):</span>
<span class="py-except">...</span>
<span class="py-except">TypeError: We only allow python sequences (lists, tuples or strings) of length 5.</span></pre>
  <p>The expected length is stored as a private attribute,</p>
<pre class="py-doctest">
<span class="py-prompt">&gt;&gt;&gt; </span>x._length
<span class="py-output">5</span></pre>
  <p>In order that the SeqRecord (and other objects using this class) can 
  be pickled, for example for use in the multiprocessing library, we need 
  to be able to pickle the restricted dictionary objects.</p>
  <p>Using the default protocol, which is 0 on Python 2.x,</p>
<pre class="py-doctest">
<span class="py-prompt">&gt;&gt;&gt; </span><span class="py-keyword">import</span> pickle
<span class="py-prompt">&gt;&gt;&gt; </span>y = pickle.loads(pickle.dumps(x))
<span class="py-prompt">&gt;&gt;&gt; </span>y
<span class="py-output">{'test': 'hello'}</span>
<span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>y._length
<span class="py-output">5</span></pre>
  <p>Using the highest protocol, which is 2 on Python 2.x,</p>
<pre class="py-doctest">
<span class="py-prompt">&gt;&gt;&gt; </span><span class="py-keyword">import</span> pickle
<span class="py-prompt">&gt;&gt;&gt; </span>z = pickle.loads(pickle.dumps(x, pickle.HIGHEST_PROTOCOL))
<span class="py-prompt">&gt;&gt;&gt; </span>z
<span class="py-output">{'test': 'hello'}</span>
<span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>z._length
<span class="py-output">5</span></pre>

<!-- ==================== INSTANCE METHODS ==================== -->
<a name="section-InstanceMethods"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Instance Methods</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-InstanceMethods"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type"><pre class="literalblock">
new empty dictionary

</pre></span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="Bio.SeqRecord._RestrictedDict-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">length</span>)</span><br />
      Create an EMPTY restricted dictionary.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="Bio.SeqRecord-pysrc.html#_RestrictedDict.__init__">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="Bio.SeqRecord._RestrictedDict-class.html#__setitem__" class="summary-sig-name">__setitem__</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">key</span>,
        <span class="summary-sig-arg">value</span>)</span><br />
      x[i]=y</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="Bio.SeqRecord-pysrc.html#_RestrictedDict.__setitem__">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">None</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="Bio.SeqRecord._RestrictedDict-class.html#update" class="summary-sig-name">update</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">new_dict</span>)</span><br />
      Update D from dict/iterable E and F.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="Bio.SeqRecord-pysrc.html#_RestrictedDict.update">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code>dict</code></b>:
      <code>__cmp__</code>,
      <code>__contains__</code>,
      <code>__delitem__</code>,
      <code>__eq__</code>,
      <code>__ge__</code>,
      <code>__getattribute__</code>,
      <code>__getitem__</code>,
      <code>__gt__</code>,
      <code>__iter__</code>,
      <code>__le__</code>,
      <code>__len__</code>,
      <code>__lt__</code>,
      <code>__ne__</code>,
      <code>__new__</code>,
      <code>__repr__</code>,
      <code>__sizeof__</code>,
      <code>clear</code>,
      <code>copy</code>,
      <code>fromkeys</code>,
      <code>get</code>,
      <code>has_key</code>,
      <code>items</code>,
      <code>iteritems</code>,
      <code>iterkeys</code>,
      <code>itervalues</code>,
      <code>keys</code>,
      <code>pop</code>,
      <code>popitem</code>,
      <code>setdefault</code>,
      <code>values</code>,
      <code>viewitems</code>,
      <code>viewkeys</code>,
      <code>viewvalues</code>
      </p>
    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
      <code>__delattr__</code>,
      <code>__format__</code>,
      <code>__reduce__</code>,
      <code>__reduce_ex__</code>,
      <code>__setattr__</code>,
      <code>__str__</code>,
      <code>__subclasshook__</code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== CLASS VARIABLES ==================== -->
<a name="section-ClassVariables"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Class Variables</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-ClassVariables"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code>dict</code></b>:
      <code>__hash__</code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== PROPERTIES ==================== -->
<a name="section-Properties"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Properties</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-Properties"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
      <code>__class__</code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== METHOD DETAILS ==================== -->
<a name="section-MethodDetails"></a>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Method Details</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-MethodDetails"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
</table>
<a name="__init__"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">length</span>)</span>
    <br /><em class="fname">(Constructor)</em>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="Bio.SeqRecord-pysrc.html#_RestrictedDict.__init__">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Create an EMPTY restricted dictionary.</p>
  <dl class="fields">
    <dt>Returns: <pre class="literalblock">
new empty dictionary

</pre></dt>
    <dt>Overrides:
        object.__init__
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="__setitem__"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">__setitem__</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">key</span>,
        <span class="sig-arg">value</span>)</span>
    <br /><em class="fname">(Index assignment operator)</em>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="Bio.SeqRecord-pysrc.html#_RestrictedDict.__setitem__">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>x[i]=y</p>
  <dl class="fields">
    <dt>Overrides:
        dict.__setitem__
        <dd><em class="note">(inherited documentation)</em></dd>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="update"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">update</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">new_dict</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="Bio.SeqRecord-pysrc.html#_RestrictedDict.update">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Update D from dict/iterable E and F. If E has a .keys() method, does:
  for k in E: D[k] = E[k] If E lacks .keys() method, does:     for (k, v) 
  in E: D[k] = v In either case, this is followed by: for k in F: D[k] = 
  F[k]</p>
  <dl class="fields">
    <dt>Returns: None</dt>
    <dt>Overrides:
        dict.update
        <dd><em class="note">(inherited documentation)</em></dd>
    </dt>
  </dl>
</td></tr></table>
</div>
<br />
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</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 Thu Aug 18 18:22:16 2011
    </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>