<?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.EUtils.MultiDict</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"> <a href="Bio-module.html">Package Bio</a> :: <a href="Bio.EUtils-module.html">Package EUtils</a> :: Module MultiDict </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="Bio.EUtils.MultiDict-module.html" target="_top">no frames</a>]</span></td></tr> </table> </td> </tr> </table> <!-- ==================== MODULE DESCRIPTION ==================== --> <h1 class="epydoc">Module MultiDict</h1><p class="nomargin-top"><span class="codelink"><a href="Bio.EUtils.MultiDict-pysrc.html">source code</a></span></p> <pre class="literalblock"> Dictionary-like objects which allow multiple keys Python dictionaries map a key to a value. Duplicate keys are not allowed, and new entries replace old ones with the same key. Order is not otherwise preserved, so there's no way to get the items in the order they were added to a dictionary. Some types of data is best stored in dictionary-like object which allow multiple values per key. Some of these need the input order strongly preserved, so the items can be retrieved in the same order as they were added to the dictionary. That is the OrderedMultiDict. Others need a weaker ordering guarantee where the order of values for a given key is preserved but the order between the keys is not. That is UnorderedMultiDict. (Because strong ordering isn't needed, it's faster to delete from an UnorderedMultiDict.) To create a MultiDict, pass in an object which implements the 'allitems' method and returns a list of (key, value) pairs, or pass in the list of (key, value) pairs directly. The two MultiDict classes implement the following dictionary methods d["lookup"], d["key"] = value del d[key] d.get("key", default = None) d1 == d2, d1 != d2, len(d), iter(d), str(d) d.keys(), d.values(), d.items() The new methods are: d.getall(key) d.allkeys() d.allvalues() d.allitems() >>> import MultiDict >>> od = MultiDict.OrderedMultiDict() >>> od["Name"] = "Andrew" >>> od["Color"] = "BLUE" >>> od["Name"] = "Dalke" >>> od["Color"] = "Green" >>> od[3] = 9 >>> len(od) 3 >>> od["Name"] 'Dalke' >>> od.getall("Name") ['Andrew', 'Dalke'] >>> for k, v in od.allitems(): ... print "%r == %r" % (k, v) ... 'Name' == 'Andrew' 'Color' == 'BLUE' 'Name' == 'Dalke' 'Color' == 'Green' 3 == 9 >>> del od["Name"] >>> len(od) 2 >>> for k, v in od.allitems(): ... print "%r == %r" % (k, v) ... 'Color' == 'BLUE' 'Color' == 'Green' 3 == 9 >>> The latest version of this code can be found at http://www.dalkescientific.com/Python/ </pre> <!-- ==================== CLASSES ==================== --> <a name="section-Classes"></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">Classes</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-Classes" class="privatelink" onclick="toggle_private();" >hide private</a>]</span></td> </tr> </table> </td> </tr> <tr class="private"> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Bio.EUtils.MultiDict._BaseMultiDict-class.html" class="summary-name" onclick="show_private();">_BaseMultiDict</a> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Bio.EUtils.MultiDict.OrderedMultiDict-class.html" class="summary-name">OrderedMultiDict</a><br /> Store key/value mappings. </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="Bio.EUtils.MultiDict.UnorderedMultiDict-class.html" class="summary-name">UnorderedMultiDict</a><br /> Store key/value mappings. </td> </tr> </table> <!-- ==================== FUNCTIONS ==================== --> <a name="section-Functions"></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">Functions</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-Functions" class="privatelink" onclick="toggle_private();" >hide private</a>]</span></td> </tr> </table> </td> </tr> <tr class="private"> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="_test"></a><span class="summary-sig-name">_test</span>()</span></td> <td align="right" valign="top"> <span class="codelink"><a href="Bio.EUtils.MultiDict-pysrc.html#_test">source code</a></span> </td> </tr> </table> </td> </tr> </table> <!-- ==================== VARIABLES ==================== --> <a name="section-Variables"></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">Variables</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-Variables" 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"> </span> </td><td class="summary"> <a href="Bio.EUtils.MultiDict-module.html#__test__" class="summary-name">__test__</a> = <code title="{'__doc__': '''Dictionary-like objects which allow multiple keys Python dictionaries map a key to a value. Duplicate keys are not allowed, and new entries replace old ones with the same key. Order is not otherwise preserved, so there\'s no way to get the items in the order they were added to a dictionary. Some types of data is best stored in dictionary-like object which ..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">__doc__</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Dictionary-like objects which allow mu</code><code class="variable-ellipsis">...</code></code> </td> </tr> </table> <!-- ==================== VARIABLES DETAILS ==================== --> <a name="section-VariablesDetails"></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">Variables Details</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-VariablesDetails" class="privatelink" onclick="toggle_private();" >hide private</a>]</span></td> </tr> </table> </td> </tr> </table> <a name="__test__"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <h3 class="epydoc">__test__</h3> <dl class="fields"> </dl> <dl class="fields"> <dt>Value:</dt> <dd><table><tr><td><pre class="variable"> <code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">__doc__</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'''</code><code class="variable-string">Dictionary-like objects which allow multiple keys</code> <code class="variable-string"></code> <code class="variable-string">Python dictionaries map a key to a value. Duplicate keys are not</code> <code class="variable-string">allowed, and new entries replace old ones with the same key. Order is</code> <code class="variable-string">not otherwise preserved, so there\'s no way to get the items in the</code> <code class="variable-string">order they were added to a dictionary.</code> <code class="variable-string"></code> <code class="variable-string">Some types of data is best stored in dictionary-like object which</code> <code class="variable-ellipsis">...</code> </pre></td></tr></table> </dd> </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> <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:26:23 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>