<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Migrating from PyTables 1.x to 2.x — PyTables 3.0.0 documentation</title> <link rel="stylesheet" href="_static/cloud.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="#" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', VERSION: '3.0.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true }; </script> <script type="text/javascript" src="_static/jquery.js"></script> <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <script type="text/javascript" src="_static/jquery.cookie.js"></script> <script type="text/javascript" src="_static/toggle_sections.js"></script> <script type="text/javascript" src="_static/toggle_sidebar.js"></script> <link rel="shortcut icon" href="_static/favicon.ico"/> <link rel="top" title="PyTables 3.0.0 documentation" href="index.html" /> <link rel="up" title="PyTables Release Notes" href="release_notes.html" /> <link rel="next" title="Release notes for PyTables 3.0 series" href="release-notes/RELEASE_NOTES_v3.0.x.html" /> <link rel="prev" title="Migrating from PyTables 2.x to 3.x" href="MIGRATING_TO_3.x.html" /> </head> <body> <div class="relbar-top"> <div class="related"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="General Index" accesskey="I">index</a></li> <li class="right" > <a href="py-modindex.html" title="Python Module Index" >modules</a> </li> <li class="right" > <a href="np-modindex.html" title="Python Module Index" >modules</a> </li> <li class="right" > <a href="release-notes/RELEASE_NOTES_v3.0.x.html" title="Release notes for PyTables 3.0 series" accesskey="N">next</a> </li> <li class="right" > <a href="MIGRATING_TO_3.x.html" title="Migrating from PyTables 2.x to 3.x" accesskey="P">previous</a> </li> <li><a href="index.html">PyTables 3.0.0 documentation</a> »</li> <li><a href="release_notes.html" accesskey="U">PyTables Release Notes</a> »</li> </ul> </div> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body"> <div class="section" id="migrating-from-pytables-1-x-to-2-x"> <h1>Migrating from PyTables 1.x to 2.x<a class="headerlink" href="#migrating-from-pytables-1-x-to-2-x" title="Permalink to this headline">¶</a></h1> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Author:</th><td class="field-body">Francesc Alted i Abad</td> </tr> <tr class="field-even field"><th class="field-name">Contact:</th><td class="field-body"><a class="reference external" href="mailto:faltet%40pytables.com">faltet<span>@</span>pytables<span>.</span>com</a></td> </tr> <tr class="field-odd field"><th class="field-name">Author:</th><td class="field-body">Ivan Vilata i Balaguer</td> </tr> <tr class="field-even field"><th class="field-name">Contact:</th><td class="field-body"><a class="reference external" href="mailto:ivan%40selidor.net">ivan<span>@</span>selidor<span>.</span>net</a></td> </tr> </tbody> </table> <p>Next are described a series of issues that you must have in mind when migrating from PyTables 1.x to PyTables 2.x series.</p> <div class="section" id="new-type-system"> <h2>New type system<a class="headerlink" href="#new-type-system" title="Permalink to this headline">¶</a></h2> <p>In PyTables 2.x all the data types for leaves are described through a couple of classes:</p> <ul> <li><dl class="first docutils"> <dt><tt class="docutils literal"><span class="pre">Atom</span></tt>: Describes homogeneous types of the atomic components in <tt class="docutils literal"><span class="pre">*Array</span></tt></dt> <dd><p class="first last">objects (<tt class="docutils literal"><span class="pre">Array</span></tt>, <tt class="docutils literal"><span class="pre">CArray</span></tt>, <tt class="docutils literal"><span class="pre">EArray</span></tt> and <tt class="docutils literal"><span class="pre">VLArray</span></tt>).</p> </dd> </dl> </li> <li><p class="first"><tt class="docutils literal"><span class="pre">Description</span></tt>: Describes (possibly nested) heterogeneous types in <tt class="docutils literal"><span class="pre">Table</span></tt> objects.</p> </li> </ul> <p>So, in order to upgrade to the new type system, you must perform the next replacements:</p> <ul class="simple"> <li><tt class="docutils literal"><span class="pre">*Array.stype</span></tt> –> <tt class="docutils literal"><span class="pre">*Array.atom.type</span></tt> (PyTables type)</li> <li><tt class="docutils literal"><span class="pre">*Array.type</span></tt> –> <tt class="docutils literal"><span class="pre">*Array.atom.dtype</span></tt> (NumPy type)</li> <li><tt class="docutils literal"><span class="pre">*Array.itemsize</span></tt> –> <tt class="docutils literal"><span class="pre">*Array.atom.itemsize</span></tt> (the size of the item)</li> </ul> <p>Furthermore, the PyTables types (previously called “string types”) have changed to better adapt to NumPy conventions. The next changes have been applied:</p> <ul class="simple"> <li>PyTables types are now written in lower case, so ‘Type’ becomes ‘type’. For example, ‘Int64’ becomes now ‘int64’.</li> <li>‘CharType’ –> ‘string’</li> <li>‘Complex32’, ‘Complex64’ –> ‘complex64’, ‘complex128’. Note that the numeric part of a ‘complex’ type refers now to the <em>size in bits</em> of the type and not to the precision, as before.</li> </ul> <p>See Appendix I of the Users’ Manual on supported data types for more information on the new PyTables types.</p> </div> <div class="section" id="important-changes-in-atom-specification"> <h2>Important changes in <tt class="docutils literal"><span class="pre">Atom</span></tt> specification<a class="headerlink" href="#important-changes-in-atom-specification" title="Permalink to this headline">¶</a></h2> <ul> <li><p class="first">The <tt class="docutils literal"><span class="pre">dtype</span></tt> argument of <tt class="docutils literal"><span class="pre">EnumAtom</span></tt> and <tt class="docutils literal"><span class="pre">EnumCol</span></tt> constructors has been replaced by the <tt class="docutils literal"><span class="pre">base</span></tt> argument, which can take a full-blown atom, although it accepts bare PyTables types as well. This is a <em>mandatory</em> argument now.</p> </li> <li><p class="first"><tt class="docutils literal"><span class="pre">vlstring</span></tt> pseudo-atoms used in <tt class="docutils literal"><span class="pre">VLArray</span></tt> nodes do no longer imply UTF-8 (nor any other) encoding, they only store and load <em>raw strings of bytes</em>. All encoding and decoding is left to the user. Be warned that reading old files may yield raw UTF-8 encoded strings, which may be coverted back to Unicode in this way:</p> <div class="highlight-python"><div class="highlight"><pre><span class="n">unistr</span> <span class="o">=</span> <span class="n">vlarray</span><span class="p">[</span><span class="n">index</span><span class="p">]</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s">'utf-8'</span><span class="p">)</span> </pre></div> </div> <p>If you need to work with variable-length Unicode strings, you may want to use the new <tt class="docutils literal"><span class="pre">vlunicode</span></tt> pseudo-atom, which fully supports Unicode strings with no encoding hassles.</p> </li> <li><p class="first">Finally, <tt class="docutils literal"><span class="pre">Atom</span></tt> and <tt class="docutils literal"><span class="pre">Col</span></tt> are now abstract classes, so you can’t use them to create atoms or column definitions of an arbitrary type. If you know the particular type you need, use the proper subclass; otherwise, use the <tt class="docutils literal"><span class="pre">Atom.from_*()</span></tt> or <tt class="docutils literal"><span class="pre">Col.from_*()</span></tt> factory methods. See the section on declarative classes in the reference.</p> <p>You are also advised to avoid using the inheritance of atoms to check for their kind or type; for that purpose, use their <tt class="docutils literal"><span class="pre">kind</span></tt> and <tt class="docutils literal"><span class="pre">type</span></tt> attributes.</p> </li> </ul> </div> <div class="section" id="new-query-system"> <h2>New query system<a class="headerlink" href="#new-query-system" title="Permalink to this headline">¶</a></h2> <ul> <li><p class="first">In-kernel conditions, since they are based now in Numexpr, must be written <em>as strings</em>. For example, a condition that in 1.x was stated as:</p> <div class="highlight-python"><div class="highlight"><pre><span class="n">result</span> <span class="o">=</span> <span class="p">[</span><span class="n">row</span><span class="p">[</span><span class="s">'col2'</span><span class="p">]</span> <span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">table</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">table</span><span class="o">.</span><span class="n">cols</span><span class="o">.</span><span class="n">col1</span> <span class="o">==</span> <span class="mi">1</span><span class="p">)]</span> </pre></div> </div> <p>now should read:</p> <div class="highlight-python"><div class="highlight"><pre><span class="n">result</span> <span class="o">=</span> <span class="p">[</span><span class="n">row</span><span class="p">[</span><span class="s">'col2'</span><span class="p">]</span> <span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">table</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="s">'col1 == 1'</span><span class="p">)]</span> </pre></div> </div> <p>That means that complex selections are possible now:</p> <div class="highlight-python"><div class="highlight"><pre><span class="n">result</span> <span class="o">=</span> <span class="p">[</span> <span class="n">row</span><span class="p">[</span><span class="s">'col2'</span><span class="p">]</span> <span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">table</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="s">'(col1 == 1) & (col3**4 > 1)'</span><span class="p">)</span> <span class="p">]</span> </pre></div> </div> </li> <li><p class="first">For the same reason, conditions for indexed columns must be written as strings as well.</p> </li> </ul> </div> <div class="section" id="new-indexing-system"> <h2>New indexing system<a class="headerlink" href="#new-indexing-system" title="Permalink to this headline">¶</a></h2> <p>The indexing system has been totally rewritten from scratch for PyTables 2.0 Pro Edition (<a class="reference external" href="http://www.pytables.com/moin/PyTablesPro">http://www.pytables.com/moin/PyTablesPro</a>). The new indexing systemsame has been included into PyTables with release 2.3. Due to this, your existing indexes created with PyTables 1.x will be useless, and although you will be able to continue using the actual data in files, you won’t be able to take advantage of any improvement in speed.</p> <p>You will be offered the possibility to automatically re-create the indexes in PyTables 1.x format to the new 2.0 format by using the <tt class="docutils literal"><span class="pre">ptrepack</span></tt> utility.</p> </div> <div class="section" id="new-meanings-for-atom-shape-and-array-shape-argument"> <h2>New meanings for atom shape and <tt class="docutils literal"><span class="pre">*Array</span></tt> shape argument<a class="headerlink" href="#new-meanings-for-atom-shape-and-array-shape-argument" title="Permalink to this headline">¶</a></h2> <p>With PyTables 1.x, the atom shape was used for different goals depending on the context it was used. For example, in <tt class="docutils literal"><span class="pre">createEArray()</span></tt>, the shape of the atom was used to specify the <em>dataset shape</em> of the object on disk, while in <tt class="docutils literal"><span class="pre">CArray</span></tt> the same atom shape was used to specify the <em>chunk shape</em> of the dataset on disk. Moreover, for <tt class="docutils literal"><span class="pre">VLArray</span></tt> objects, the very same atom shape specified the <em>type shape</em> of the data type. As you see, all of these was quite a mess.</p> <p>Starting with PyTables 2.x, an <tt class="docutils literal"><span class="pre">Atom</span></tt> only specifies properties of the data type (à la <tt class="docutils literal"><span class="pre">VLArray</span></tt> in 1.x). This lets the door open for specifying multidimensional data types (that can be part of another layer of multidimensional datasets) in a consistent way along all the <tt class="docutils literal"><span class="pre">*Array</span></tt> objects in PyTables.</p> <p>As a consequence of this, <tt class="docutils literal"><span class="pre">File.createCArray()</span></tt> and <tt class="docutils literal"><span class="pre">File.createVLArray()</span></tt> methods have received new parameters in order to make possible to specify the shapes of the datasets as well as chunk sizes (in fact, it is possible now to specify the latter for all the chunked leaves, see below). Please have this in mind during the migration process.</p> <p>Another consequence is that, now that the meaning of the atom shape is clearly defined, it has been chosen as the main object to describe homogeneous data types in PyTables. See the Users’ Manual for more info on this.</p> </div> <div class="section" id="new-argument-chunkshape-of-chunked-leaves"> <h2>New argument <tt class="docutils literal"><span class="pre">chunkshape</span></tt> of chunked leaves<a class="headerlink" href="#new-argument-chunkshape-of-chunked-leaves" title="Permalink to this headline">¶</a></h2> <p>It is possible now to specify the chunk shape for all the chunked leaves in PyTables (all except <tt class="docutils literal"><span class="pre">Array</span></tt>). With PyTables 1.x this value was automatically calculated so as to achieve decent results in most of the situations. However, the user may be interested in specifying its own chunk shape based on her own needs (although this should be done only by advanced users).</p> <p>Of course, if this parameter is not specified, a sensible default is calculated for the size of the leave (which is recommended).</p> <p>A new attribute called <tt class="docutils literal"><span class="pre">chunkshape</span></tt> has been added to all leaves. It is read-only (you can’t change the size of chunks once you have created a leaf), but it can be useful for inspection by advanced users.</p> </div> <div class="section" id="new-flavor-specification"> <h2>New flavor specification<a class="headerlink" href="#new-flavor-specification" title="Permalink to this headline">¶</a></h2> <p>As of 2.x, flavors can <em>only</em> be set through the <tt class="docutils literal"><span class="pre">flavor</span></tt> attribute of leaves, and they are <em>persistent</em>, so changing a flavor requires that the file be writable.</p> <p>Flavors can no longer be set through <tt class="docutils literal"><span class="pre">File.create*()</span></tt> methods, nor the <tt class="docutils literal"><span class="pre">flavor</span></tt> argument previously found in some <tt class="docutils literal"><span class="pre">Table</span></tt> methods, nor through <tt class="docutils literal"><span class="pre">Atom</span></tt> constructors or the <tt class="docutils literal"><span class="pre">_v_flavor</span></tt> attribute of descriptions.</p> </div> <div class="section" id="system-attributes-can-be-deleted-now"> <h2>System attributes can be deleted now<a class="headerlink" href="#system-attributes-can-be-deleted-now" title="Permalink to this headline">¶</a></h2> <p>The protection against removing system attributes (like <tt class="docutils literal"><span class="pre">FILTERS</span></tt>, <tt class="docutils literal"><span class="pre">FLAVOR</span></tt> or <tt class="docutils literal"><span class="pre">CLASS</span></tt>, to name only a few) has been completely removed. It is now the responsibility of the user to make a proper use of this freedom. With this, users can get rid of all proprietary PyTables attributes if they want to (for example, for making a file to look more like an HDF5 native one).</p> </div> <div class="section" id="byteorder-issues"> <h2>Byteorder issues<a class="headerlink" href="#byteorder-issues" title="Permalink to this headline">¶</a></h2> <p>Now, all the data coming from reads and internal buffers is always converted on-the-fly, if needed, to the <em>native</em> byteorder. This represents a big advantage in terms of speed when operating with objects coming from files that have been created in machines with a byte ordering different from native.</p> <p>Besides, all leaf constructors have received a new <tt class="docutils literal"><span class="pre">byteorder</span></tt> parameter that allows specifying the byteorder of data on disk. In particular, a <tt class="docutils literal"><span class="pre">_v_byteorder</span></tt> entry in a Table description is no longer honored and you should use the aforementioned <tt class="docutils literal"><span class="pre">byteorder</span></tt> parameter.</p> </div> <div class="section" id="tunable-internal-buffer-sizes"> <h2>Tunable internal buffer sizes<a class="headerlink" href="#tunable-internal-buffer-sizes" title="Permalink to this headline">¶</a></h2> <p>You can change the size of the internal buffers for I/O purposes of PyTables by changing the value of the new public attribute <tt class="docutils literal"><span class="pre">nrowsinbuf</span></tt> that is present in all leaves. By default, this contains a sensible value so as to achieve a good balance between speed and memory consumption. Be careful when changing it, if you don’t want to get unwanted results (very slow I/O, huge memory consumption...).</p> </div> <div class="section" id="changes-to-module-names"> <h2>Changes to module names<a class="headerlink" href="#changes-to-module-names" title="Permalink to this headline">¶</a></h2> <p>If your application is directly accessing modules under the <tt class="docutils literal"><span class="pre">tables</span></tt> package, you need to know that <em>the names of all modules are now all in lowercase</em>. This allows one to tell apart the <tt class="docutils literal"><span class="pre">tables.Array</span></tt> <em>class</em> from the <tt class="docutils literal"><span class="pre">tables.array</span></tt> <em>module</em> (which was also called <tt class="docutils literal"><span class="pre">tables.Array</span></tt> before). This includes subpackages like <tt class="docutils literal"><span class="pre">tables.nodes.FileNode</span></tt>.</p> <p>On top of that, more-or-less independent modules have also been renamed and some of them grouped into subpackages. The most important are:</p> <ul class="simple"> <li>The <tt class="docutils literal"><span class="pre">tables.netcdf3</span></tt> subpackage replaces the old <tt class="docutils literal"><span class="pre">tables.NetCDF</span></tt> module.</li> <li>The <tt class="docutils literal"><span class="pre">tables.nra</span></tt> subpackage replaces the old <tt class="docutils literal"><span class="pre">nestedrecords.py</span></tt> with the implementation of the <tt class="docutils literal"><span class="pre">NestedRecArray</span></tt> class.</li> </ul> <p>Also, the <tt class="docutils literal"><span class="pre">tables.misc</span></tt> package includes utility modules which do not depend on PyTables.</p> </div> <div class="section" id="other-changes"> <h2>Other changes<a class="headerlink" href="#other-changes" title="Permalink to this headline">¶</a></h2> <ul> <li><p class="first"><tt class="docutils literal"><span class="pre">Filters.complib</span></tt> is <tt class="docutils literal"><span class="pre">None</span></tt> for filter properties created with <tt class="docutils literal"><span class="pre">complevel=0</span></tt> (i.e. disabled compression, which is the default).</p> </li> <li><p class="first">‘non-relevant’ –> ‘irrelevant’ (applied to byteorders)</p> </li> <li><p class="first"><tt class="docutils literal"><span class="pre">Table.colstypes</span></tt> –> <tt class="docutils literal"><span class="pre">Table.coltypes</span></tt></p> </li> <li><p class="first"><tt class="docutils literal"><span class="pre">Table.coltypes</span></tt> –> <tt class="docutils literal"><span class="pre">Table.coldtypes</span></tt></p> </li> <li><p class="first">Added <tt class="docutils literal"><span class="pre">Table.coldescr</span></tt>, dictionary of the <tt class="docutils literal"><span class="pre">Col</span></tt> descriptions.</p> </li> <li><p class="first"><tt class="docutils literal"><span class="pre">Table.colshapes</span></tt> has disappeared. You can get it this way:</p> <div class="highlight-python"><div class="highlight"><pre><span class="n">colshapes</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span> <span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">col</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span> <span class="k">for</span> <span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">col</span><span class="p">)</span> <span class="ow">in</span> <span class="n">table</span><span class="o">.</span><span class="n">coldescr</span><span class="o">.</span><span class="n">iteritems</span><span class="p">()</span> <span class="p">)</span> </pre></div> </div> </li> <li><p class="first"><tt class="docutils literal"><span class="pre">Table.colitemsizes</span></tt> has disappeared. You can get it this way:</p> <div class="highlight-python"><div class="highlight"><pre><span class="n">colitemsizes</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span> <span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">col</span><span class="o">.</span><span class="n">itemsize</span><span class="p">)</span> <span class="k">for</span> <span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">col</span><span class="p">)</span> <span class="ow">in</span> <span class="n">table</span><span class="o">.</span><span class="n">coldescr</span><span class="o">.</span><span class="n">iteritems</span><span class="p">()</span> <span class="p">)</span> </pre></div> </div> </li> <li><p class="first"><tt class="docutils literal"><span class="pre">Description._v_totalsize</span></tt> –> <tt class="docutils literal"><span class="pre">Description._v_itemsize</span></tt></p> </li> <li><p class="first"><tt class="docutils literal"><span class="pre">Description._v_itemsizes</span></tt> and <tt class="docutils literal"><span class="pre">Description._v_totalsizes</span></tt> have disappeared.</p> </li> <li><p class="first"><tt class="docutils literal"><span class="pre">Leaf._v_chunksize</span></tt> –> <tt class="docutils literal"><span class="pre">Leaf.chunkshape</span></tt></p> </li> </ul> <hr class="docutils" /> <blockquote> <div><p><strong>Enjoy data!</strong></p> <p class="attribution">—The PyTables Team</p> </div></blockquote> </div> </div> </div> </div> </div> <div class="sphinxsidebar"> <div class="sphinxsidebarwrapper"> <p class="logo"><a href="index.html"> <img class="logo" src="_static/logo-pytables-small.png" alt="Logo"/> </a></p> <h3><a href="index.html">Table Of Contents</a></h3> <ul> <li><a class="reference internal" href="#">Migrating from PyTables 1.x to 2.x</a><ul> <li><a class="reference internal" href="#new-type-system">New type system</a></li> <li><a class="reference internal" href="#important-changes-in-atom-specification">Important changes in <tt class="docutils literal"><span class="pre">Atom</span></tt> specification</a></li> <li><a class="reference internal" href="#new-query-system">New query system</a></li> <li><a class="reference internal" href="#new-indexing-system">New indexing system</a></li> <li><a class="reference internal" href="#new-meanings-for-atom-shape-and-array-shape-argument">New meanings for atom shape and <tt class="docutils literal"><span class="pre">*Array</span></tt> shape argument</a></li> <li><a class="reference internal" href="#new-argument-chunkshape-of-chunked-leaves">New argument <tt class="docutils literal"><span class="pre">chunkshape</span></tt> of chunked leaves</a></li> <li><a class="reference internal" href="#new-flavor-specification">New flavor specification</a></li> <li><a class="reference internal" href="#system-attributes-can-be-deleted-now">System attributes can be deleted now</a></li> <li><a class="reference internal" href="#byteorder-issues">Byteorder issues</a></li> <li><a class="reference internal" href="#tunable-internal-buffer-sizes">Tunable internal buffer sizes</a></li> <li><a class="reference internal" href="#changes-to-module-names">Changes to module names</a></li> <li><a class="reference internal" href="#other-changes">Other changes</a></li> </ul> </li> </ul> <h4>Previous topic</h4> <p class="topless"><a href="MIGRATING_TO_3.x.html" title="previous chapter">Migrating from PyTables 2.x to 3.x</a></p> <h4>Next topic</h4> <p class="topless"><a href="release-notes/RELEASE_NOTES_v3.0.x.html" title="next chapter">Release notes for PyTables 3.0 series</a></p> <h3>This Page</h3> <ul class="this-page-menu"> <li><a href="_sources/MIGRATING_TO_2.x.txt" rel="nofollow">Show Source</a></li> </ul> <div id="searchbox" style="display: none"> <h3>Quick search</h3> <form class="search" action="search.html" method="get"> <input type="text" name="q" /> <input type="submit" value="Go" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> <p class="searchtip" style="font-size: 90%"> Enter search terms or a module, class or function name. </p> </div> <script type="text/javascript">$('#searchbox').show(0);</script> </div> </div> <div class="clearer"></div> </div> <div class="relbar-bottom"> <div class="related"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="General Index" >index</a></li> <li class="right" > <a href="py-modindex.html" title="Python Module Index" >modules</a> </li> <li class="right" > <a href="np-modindex.html" title="Python Module Index" >modules</a> </li> <li class="right" > <a href="release-notes/RELEASE_NOTES_v3.0.x.html" title="Release notes for PyTables 3.0 series" >next</a> </li> <li class="right" > <a href="MIGRATING_TO_3.x.html" title="Migrating from PyTables 2.x to 3.x" >previous</a> </li> <li><a href="index.html">PyTables 3.0.0 documentation</a> »</li> <li><a href="release_notes.html" >PyTables Release Notes</a> »</li> </ul> </div> </div> <div class="footer"> © Copyright 2011-2013, PyTables maintainers. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3. </div> <!-- cloud_sptheme 1.3 --> </body> </html>