Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > 4726f970c4b56b9a0ebb9a03a0b6522e > files > 156

python-tables-doc-3.0.0-4.mga4.noarch.rpm




<!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>Release notes for PyTables 2.0 series &mdash; 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="What’s new in PyTables 1.4" href="RELEASE_NOTES_v1.4.html" />
    <link rel="prev" title="Release notes for PyTables 2.1 series" href="RELEASE_NOTES_v2.1.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> &nbsp; &nbsp;</li>
        <li class="right" >
          <a href="../np-modindex.html" title="Python Module Index"
             >modules</a> &nbsp; &nbsp;</li>
        <li class="right" >
          <a href="RELEASE_NOTES_v1.4.html" title="What’s new in PyTables 1.4"
             accesskey="N">next</a> &nbsp; &nbsp;</li>
        <li class="right" >
          <a href="RELEASE_NOTES_v2.1.x.html" title="Release notes for PyTables 2.1 series"
             accesskey="P">previous</a> &nbsp; &nbsp;</li>
    <li><a href="../index.html">PyTables 3.0.0 documentation</a> &raquo;</li>

          <li><a href="../release_notes.html" accesskey="U">PyTables Release Notes</a> &raquo;</li> 
      </ul>
    </div>
    </div>
  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="release-notes-for-pytables-2-0-series">
<h1>Release notes for PyTables 2.0 series<a class="headerlink" href="#release-notes-for-pytables-2-0-series" 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&#37;&#52;&#48;pytables&#46;com">faltet<span>&#64;</span>pytables<span>&#46;</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&#37;&#52;&#48;selidor&#46;net">ivan<span>&#64;</span>selidor<span>&#46;</span>net</a></td>
</tr>
</tbody>
</table>
<div class="section" id="changes-from-2-0-3-to-2-0-4">
<h2>Changes from 2.0.3 to 2.0.4<a class="headerlink" href="#changes-from-2-0-3-to-2-0-4" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li>Selections in tables works now in threaded environments.  The problem was in
the Numexpr package &#8211; the solution has been reported to the upstream
authors too.  Fixes #164.</li>
<li>PyTables had problems importing native HDF5 files with gaps in nested
compound types.  This has been solved.  Fixes #173.</li>
<li>In order to prevent a bug existing in HDF5 1.6 series, the
<tt class="docutils literal"><span class="pre">EArray.truncate()</span></tt> method refused to accept a 0 as parameter
(i.e. truncate an existing EArray to have zero rows did not work).  As this
has been fixed in the recent HDF5 1.8 series, this limitation has been
removed (but only if the user has one of these installed).  Fixes #171.</li>
<li>Small fixes for allowing the test suite to pass when using the new NumPy
1.1.  However, it remains a small issue with the way the new NumPy
represents complex numbers.  I&#8217;m not fixing that in the PyTables suite, as
there are chances that this can be fixed in NumPy itself (see ticket #841).</li>
</ul>
</div>
<div class="section" id="changes-from-2-0-2-to-2-0-3">
<h2>Changes from 2.0.2 to 2.0.3<a class="headerlink" href="#changes-from-2-0-2-to-2-0-3" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li>Replaced the algorithm for computing chunksizes by another that is
more general and useful for a larger range of expected dataset sizes.
The outcome of the new calculation is the same than before for
dataset sizes &lt;= 100 GB. For datasets between 100 GB &lt;= size &lt; 10
TB, larger values are returned. For sizes &gt;= 10 TB a maximum value
of 1 MB is always returned.</li>
<li>Fixed a problem when updating multidimensional cells using the
Row.update() method in the middle of table iterators .  Fixes #149.</li>
<li>Added support for the latest 1.8.0 version of the HDF5 library.
Fixes ticket #127.</li>
<li>PyTables compiles now against latest versions of Pyrex (0.9.6.4).  For the
first time, the extensions do compile without warnings!  Fixes #159.</li>
<li>Numexpr module has been put in sync with the version in SciPy sandbox.</li>
<li>Added a couple of warnings in User&#8217;s Guide so as to tell the user that it is
not safe to use methods that can change the number of rows of a table in the
middle of a row iterator. Fixes #153.</li>
</ul>
</div>
<div class="section" id="changes-from-2-0-1-to-2-0-2">
<h2>Changes from 2.0.1 to 2.0.2<a class="headerlink" href="#changes-from-2-0-1-to-2-0-2" title="Permalink to this headline">¶</a></h2>
<ul>
<li><p class="first">Added <tt class="docutils literal"><span class="pre">__enter__()</span></tt> and <tt class="docutils literal"><span class="pre">__exit__()</span></tt> methods to <tt class="docutils literal"><span class="pre">File</span></tt>; fixes #113.
With this, and if using Python 2.5 you can do things like:</p>
<blockquote>
<div><dl class="docutils">
<dt>with tables.openFile(&#8220;test.h5&#8221;) as h5file:</dt>
<dd><p class="first last">...</p>
</dd>
</dl>
</div></blockquote>
</li>
<li><p class="first">Carefully preserve type when converting NumPy scalar to numarray; fixes
#125.</p>
</li>
<li><p class="first">Fixed a nasty bug that appeared when moving or renaming groups due to a bad
interaction between <tt class="docutils literal"><span class="pre">Group._g_updateChildrenLocation()</span></tt> and the LRU cache.
Solves #126.</p>
</li>
<li><p class="first">Return 0 when no rows are given to <tt class="docutils literal"><span class="pre">Table.modifyRows()</span></tt>; fixes #128.</p>
</li>
<li><p class="first">Added an informative message when the <tt class="docutils literal"><span class="pre">nctoh5</span></tt> utility is run without the
NetCDF interface of ScientificPython bening installed.</p>
</li>
<li><p class="first">Now, a default representation of closed nodes is provided; fixes #129.</p>
</li>
</ul>
</div>
<div class="section" id="changes-from-2-0-to-2-0-1">
<h2>Changes from 2.0 to 2.0.1<a class="headerlink" href="#changes-from-2-0-to-2-0-1" title="Permalink to this headline">¶</a></h2>
<ul>
<li><p class="first">The <tt class="docutils literal"><span class="pre">coords</span></tt> argument of <tt class="docutils literal"><span class="pre">Table.readCoords()</span></tt> was not checked
for contiguousness, raising fatal errors when it was discontiguous.
This has been fixed.</p>
</li>
<li><p class="first">There is an inconsistency in the way used to specify the atom shape
in <tt class="docutils literal"><span class="pre">Atom</span></tt> constructors.  When the shape is specified as
<tt class="docutils literal"><span class="pre">shape=()</span></tt> it means a scalar atom and when it is specified as
<tt class="docutils literal"><span class="pre">shape=N</span></tt> it means an atom with <tt class="docutils literal"><span class="pre">shape=(N,)</span></tt>.  But when the
shape is specified as <tt class="docutils literal"><span class="pre">shape=1</span></tt> (i.e. in the default case) then a
scalar atom is obtained instead of an atom with <tt class="docutils literal"><span class="pre">shape=(1,)</span></tt>.
This is inconsistent and not the behavior that NumPy exhibits.</p>
<p>Changing this will require a migration path which includes
deprecating the old behaviour if we want to make the change happen
before a new major version.  The proposed path is:</p>
<blockquote>
<div><ol class="arabic simple">
<li>In PyTables 2.0.1, we are changing the default value of the
<tt class="docutils literal"><span class="pre">shape</span></tt> argument to <tt class="docutils literal"><span class="pre">()</span></tt>, and issue a <tt class="docutils literal"><span class="pre">DeprecationWarning</span></tt>
when someone uses <tt class="docutils literal"><span class="pre">shape=1</span></tt> stating that, for the time being,
it is equivalent to <tt class="docutils literal"><span class="pre">()</span></tt>, but in near future versions it will
become equivalent to <tt class="docutils literal"><span class="pre">(1,)</span></tt>, and recommending the user to pass
<tt class="docutils literal"><span class="pre">shape=()</span></tt> if a scalar is desired.</li>
<li>In PyTables 2.1, we will remove the previous warning and take
<tt class="docutils literal"><span class="pre">shape=N</span></tt> to mean <tt class="docutils literal"><span class="pre">shape=(N,)</span></tt> for any value of N.</li>
</ol>
</div></blockquote>
<p>See ticket #96 for more info.</p>
</li>
<li><p class="first">The info about the <tt class="docutils literal"><span class="pre">chunkshape</span></tt> attribute of a leaf is now printed
in the <tt class="docutils literal"><span class="pre">__repr__()</span></tt> of chunked leaves (all except <tt class="docutils literal"><span class="pre">Array</span></tt>).</p>
</li>
<li><p class="first">After some scrupulous benchmarking job, the size of the I/O buffer
for <tt class="docutils literal"><span class="pre">Table</span></tt> objects has been reduced to the minimum that allows
maximum performance.  This represents more than 10x of reduction in
size for that buffer, which will benefit those programs dealing with
many tables simultaneously (#109).</p>
</li>
<li><p class="first">In the <tt class="docutils literal"><span class="pre">ptrepack</span></tt> utility, when <tt class="docutils literal"><span class="pre">--complevel</span></tt> and <tt class="docutils literal"><span class="pre">--shuffle</span></tt>
were specified at the same time, the &#8216;shuffle&#8217; filter was always set
to &#8216;off&#8217;.  This has been fixed (#104).</p>
</li>
<li><p class="first">An ugly bug related with the integrated Numexpr not being aware of
all the variations of data arrangements in recarray objects has been
fixed (#103).  We should stress that the bug only affected the
Numexpr version integrated in PyTables, and <em>not</em> the original one.</p>
</li>
<li><p class="first">When passing a record array to a table at creation time, its real
length is now used instead of the default value for
<tt class="docutils literal"><span class="pre">expectedrows</span></tt>.  This allows for better performance (#97).</p>
</li>
<li><p class="first">Added some workarounds so that NumPy scalars can be successfully
converted to numarray objects.  Fixes #98.</p>
</li>
<li><p class="first">PyTables is now able to access table rows beyond 2**31 in 32-bit
Python.  The problem was a limitation of <tt class="docutils literal"><span class="pre">xrange</span></tt> and we have
replaced it by a new <tt class="docutils literal"><span class="pre">lrange</span></tt> class written in Pyrex.  Moreover,
<tt class="docutils literal"><span class="pre">lrange</span></tt> has been made publicly accessible as a safe 64-bit
replacement for <tt class="docutils literal"><span class="pre">xrange</span></tt> for 32-bit platforms users.  Fixes #99.</p>
</li>
<li><p class="first">If a group and a table are created in a function, and the table is
accessed through the group, the table can be flushed now.  Fixes
#94.</p>
</li>
<li><p class="first">It is now possible to directly assign a field in a nested record of
a table using the natural naming notation (#93).</p>
</li>
</ul>
</div>
<div class="section" id="changes-from-2-0rc2-to-2-0">
<h2>Changes from 2.0rc2 to 2.0<a class="headerlink" href="#changes-from-2-0rc2-to-2-0" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li>Added support for recognizing native HDF5 files with datasets compressed
with szip compressor.</li>
<li>Fixed a problem when asking for the string representation (str()) of closed
files. Fixes ticket #79.</li>
<li>Do not take LZO as available when its initialisation fails.</li>
<li>Fixed a glitch in ptrepack utility. When the user wants a copy of a group,
and a group is <em>to be created</em> in destination, the attributes of the
original group <em>are</em> copied. If it is <em>not to be created</em>, the attributes
will <em>not be</em> copied. I think this should be what the user would expect most
of the times.</li>
<li>Fixed the check for creating intermediate groups in ptrepack utility.
Solves ticket #83.</li>
<li>Before, when reading a dataset with an unknown CLASS id, a warning was
issued and the dataset mapped to <tt class="docutils literal"><span class="pre">UnImplemented</span></tt>. This closed the door to
have the opportunity to try to recognize the dataset and map it to a
supported CLASS. Now, when a CLASS attribute is not recognized, an attempt
to recognize its associated dataset is made. If it is recognized, the
matching class is associated with the dataset. If it is not recognized, then
a warning is issued and the dataset becomes mapped to <tt class="docutils literal"><span class="pre">UnImplemented</span></tt>.</li>
<li>Always pass verbose and heavy values in the common test module to test().
Fixes ticket #85.</li>
<li>Now, the <tt class="docutils literal"><span class="pre">verbose</span></tt> and <tt class="docutils literal"><span class="pre">--heavy</span></tt> flag passed to test_all.py are honored.</li>
<li>All the DLL&#8217;s of dependencies are included now in Windows binaries.  This
should allow for better portability of the binaries.</li>
<li>Fixed the description of Node._v_objectID that was misleading.</li>
</ul>
</div>
<div class="section" id="changes-from-2-0rc1-to-2-0rc2">
<h2>Changes from 2.0rc1 to 2.0rc2<a class="headerlink" href="#changes-from-2-0rc1-to-2-0rc2" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li>The &#8220;Optimization tips&#8221; chapter of the User&#8217;s Guide has been completely
updated to adapt to PyTables 2.0 series.  In particular, new benchmarks on
the much improved indexed queries have been included; you will see that
PyTables indexing is competitive (and sometimes much faster) than that of
traditional relational databases.  With this, the manual should be fairly
finished for 2.0 final release.</li>
<li>Large refactoring done on the <tt class="docutils literal"><span class="pre">Row</span></tt> class.  The most important change is
that <tt class="docutils literal"><span class="pre">Table.row</span></tt> is now a single object.  This allows to reuse the same
<tt class="docutils literal"><span class="pre">Row</span></tt> instance even after <tt class="docutils literal"><span class="pre">Table.flush()</span></tt> calls, which can be convenient
in many situations.</li>
<li>I/O buffers unified in the <tt class="docutils literal"><span class="pre">Row</span></tt> class.  That allows for bigger savings in
memory space whenever the <tt class="docutils literal"><span class="pre">Row</span></tt> extension is used.</li>
<li>Improved speed (up to a 70%) with unaligned column operations (a quite
common scenario when dealing with <tt class="docutils literal"><span class="pre">Table</span></tt> objects) through the integrated
Numexpr.  In-kernel searches take advantage of this optimization.</li>
<li>Added <tt class="docutils literal"><span class="pre">VLUnicodeAtom</span></tt> for storing variable-length Unicode strings in
<tt class="docutils literal"><span class="pre">VLArray</span></tt> objects regardless of encoding.  Closes ticket #51.</li>
<li>Added support for <tt class="docutils literal"><span class="pre">time</span></tt> datatypes to be portable between big-endian and
low-endian architectures.  This feature is not currently supported natively
by the HDF5 library, so the support for such conversion has been added in
PyTables itself.  Fixes #72.</li>
<li>Added slice arguments to <tt class="docutils literal"><span class="pre">Table.readWhere()</span></tt> and <tt class="docutils literal"><span class="pre">Table.getWhereList()</span></tt>.
Although API changes are frozen, this may still be seen as an inconsistency
with other query methods.  The patch is backwards-compatible anyway.</li>
<li>Added missing overwrite argument to <tt class="docutils literal"><span class="pre">File.renameNode()</span></tt> and
<tt class="docutils literal"><span class="pre">Node._f_rename()</span></tt>.  Fixes ticket #66.</li>
<li>Calling <tt class="docutils literal"><span class="pre">tables.test()</span></tt> no longer exits the interpreter session.  Fixes
ticket #67.</li>
<li>Fix comparing strings where one is a prefix of the other in integrated
Numexpr.  Fixes ticket #76.</li>
<li>Added a check for avoiding an ugly HDF5 message when copying a file over
itself (for both <tt class="docutils literal"><span class="pre">copyFile()</span></tt> and <tt class="docutils literal"><span class="pre">File.copyFile()</span></tt>).  Fixes ticket #73.</li>
<li>Corrected the appendix E, were it was said that PyTables doesn&#8217;t support
compounds of compounds (it does since version 1.2!).</li>
</ul>
</div>
<div class="section" id="changes-from-2-0b2-to-2-0rc1">
<h2>Changes from 2.0b2 to 2.0rc1<a class="headerlink" href="#changes-from-2-0b2-to-2-0rc1" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li>The API Reference section of the User&#8217;s Manual (and the matching docstrings)
has been completely reviewed, expanded and corrected.  This process has
unveiled some errors and inconsistencies which have also been fixed.</li>
<li>Fixed <tt class="docutils literal"><span class="pre">VLArray.__getitem__()</span></tt> to behave as expected in Python when using
slices, instead of following the semantics of PyTables&#8217; <tt class="docutils literal"><span class="pre">read()</span></tt> methods
(e.g. reading just one element when no stop is provided).  Fixes ticket #50.</li>
<li>Removed implicit UTF-8 encoding from <tt class="docutils literal"><span class="pre">VLArray</span></tt> data using <tt class="docutils literal"><span class="pre">vlstring</span></tt>
atoms.  Now a variable-length string is stored as is, which lets users use
any encoding of their choice, or none of them.  A <tt class="docutils literal"><span class="pre">vlunicode</span></tt> atom will
probably be added to the next release so as to fix ticket #51.</li>
<li>Allow non-sequence objects to be passed to <tt class="docutils literal"><span class="pre">VLArray.append()</span></tt> when using
an <tt class="docutils literal"><span class="pre">object</span></tt> atom.  This was already possible in 1.x but stopped working
when the old append syntax was dropped in 2.0.  Fixes ticket #63.</li>
<li>Changed <tt class="docutils literal"><span class="pre">Cols.__len__()</span></tt> to return the number of rows of the table or
nested column (instead of the number of fields), like its counterparts in
<tt class="docutils literal"><span class="pre">Table</span></tt> and <tt class="docutils literal"><span class="pre">Column</span></tt>.</li>
<li>Python scalars cached in <tt class="docutils literal"><span class="pre">AttributeSet</span></tt> instances are now kept as NumPy
objects instead of Python ones, because they do become NumPy objects when
retrieved from disk.  Fixes ticket #59.</li>
<li>Avoid HDF5 error when appending an empty array to a <tt class="docutils literal"><span class="pre">Table</span></tt> (ticket #57)
or <tt class="docutils literal"><span class="pre">EArray</span></tt> (ticket #49) dataset.</li>
<li>Fix wrong implementation of the top-level <tt class="docutils literal"><span class="pre">table.description._v_dflts</span></tt>
map, which was also including the pathnames of columns inside nested
columns.  Fixes ticket #45.</li>
<li>Optimized the access to unaligned arrays in Numexpr between a 30% and a 70%.</li>
<li>Fixed a die-hard bug that caused the loading of groups while closing a file.
This only showed with certain usage patterns of the LRU cache (e.g. the one
caused by <tt class="docutils literal"><span class="pre">ManyNodesTestCase</span></tt> in <tt class="docutils literal"><span class="pre">test_indexes.py</span></tt> under Pro).</li>
<li>Avoid copious warnings about unused functions and variables when compiling
Numexpr.</li>
<li>Several fixes to Numexpr expressions with all constant values.  Fixed
tickets #53, #54, #55, #58.  Reported bugs to mainstream developers.</li>
<li>Solved an issue when trying to open one of the included test files in append
mode on a system-wide installation by a normal user with no write privileges
on it.  The file isn&#8217;t being modified anyway, so the test is skipped then.</li>
<li>Added a new benchmark to compare the I/O speed of <tt class="docutils literal"><span class="pre">Array</span></tt> and <tt class="docutils literal"><span class="pre">EArray</span></tt>
objects with that of <tt class="docutils literal"><span class="pre">cPickle</span></tt>.</li>
<li>The old <tt class="docutils literal"><span class="pre">Row.__call__()</span></tt> is no longer available as a public method.  It
was not documented, anyway.  Fixes ticket #46.</li>
<li><tt class="docutils literal"><span class="pre">Cols._f_close()</span></tt> is no longer public.  Fixes ticket #47.</li>
<li><tt class="docutils literal"><span class="pre">Attributes._f_close()</span></tt> is no longer public.  Fixes ticket #52.</li>
<li>The undocumented <tt class="docutils literal"><span class="pre">Description.classdict</span></tt> attribute has been completely
removed.  Fixes ticket #44.</li>
</ul>
</div>
<div class="section" id="changes-from-2-0b1-to-2-0b2">
<h2>Changes from 2.0b1 to 2.0b2<a class="headerlink" href="#changes-from-2-0b1-to-2-0b2" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li>A very exhaustive overhauling of the User&#8217;s Manual is in process.  The
chapters 1 (Introduction), 2 (Installation), 3 (Tutorials) have been
completed (and hopefully, the lines of code are easier to copy&amp;paste now),
while chapter 4 (API Reference) has been done up to (and including) the
Table class.  During this tedious (but critical in a library) overhauling
work, we have tried hard to synchronize the text in the User&#8217;s Guide with
that which appears on the docstrings.</li>
<li>Removed the <tt class="docutils literal"><span class="pre">recursive</span></tt> argument in <tt class="docutils literal"><span class="pre">Group._f_walkNodes()</span></tt>.  Using it
with a false value was redundant with <tt class="docutils literal"><span class="pre">Group._f_iterNodes()</span></tt>.  Fixes
ticket #42.</li>
<li>Removed the <tt class="docutils literal"><span class="pre">coords</span></tt> argument from <tt class="docutils literal"><span class="pre">Table.read()</span></tt>.  It was undocumented
and redundant with <tt class="docutils literal"><span class="pre">Table.readCoordinates()</span></tt>.  Fixes ticket #41.</li>
<li>Fixed the signature of <tt class="docutils literal"><span class="pre">Group.__iter__()</span></tt> (by removing its parameters).</li>
<li>Added new <tt class="docutils literal"><span class="pre">Table.coldescrs</span></tt> and <tt class="docutils literal"><span class="pre">Table.description._v_itemsize</span></tt>
attributes.</li>
<li>Added a couple of new attributes for leaves:<ul>
<li><tt class="docutils literal"><span class="pre">nrowsinbuf</span></tt>: the number of rows that fit in the internal buffers.</li>
<li><tt class="docutils literal"><span class="pre">chunkshape</span></tt>: the chunk size for chunked datasets.</li>
</ul>
</li>
<li>Fixed setuptools so that making an egg out of the PyTables 2 package is
possible now.</li>
<li>Added a new <tt class="docutils literal"><span class="pre">tables.restrict_flavors()</span></tt> function allowing to restrict
available flavors to a given set.  This can be useful e.g. if you want to
force PyTables to get NumPy data out of an old, <tt class="docutils literal"><span class="pre">numarray</span></tt>-flavored
PyTables file even if the <tt class="docutils literal"><span class="pre">numarray</span></tt> package is installed.</li>
<li>Fixed a bug which caused filters of unavailable compression libraries to be
loaded as using the default Zlib library, after issuing a warning.  Added a
new <tt class="docutils literal"><span class="pre">FiltersWarning</span></tt> and a <tt class="docutils literal"><span class="pre">Filters.copy()</span></tt>.</li>
</ul>
</div>
<div class="section" id="important-changes-from-1-4-x-to-2-0">
<h2>Important changes from 1.4.x to 2.0<a class="headerlink" href="#important-changes-from-1-4-x-to-2-0" title="Permalink to this headline">¶</a></h2>
<div class="section" id="api-additions">
<h3>API additions<a class="headerlink" href="#api-additions" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li><tt class="docutils literal"><span class="pre">Column.createIndex()</span></tt> has received a couple of new parameters:
<tt class="docutils literal"><span class="pre">optlevel</span></tt> and <tt class="docutils literal"><span class="pre">filters</span></tt>.  The first one sets the desired quality level
of the index, while the second one allows the user to specify the filters
for the index.</li>
<li><tt class="docutils literal"><span class="pre">Table.indexprops</span></tt> has been split into <tt class="docutils literal"><span class="pre">Table.indexFilters</span></tt> and
<tt class="docutils literal"><span class="pre">Table.autoIndex</span></tt>.  The later groups the functionality of the old <tt class="docutils literal"><span class="pre">auto</span></tt>
and <tt class="docutils literal"><span class="pre">reindex</span></tt>.</li>
<li>The new <tt class="docutils literal"><span class="pre">Table.colpathnames</span></tt> is a sequence which contains the full
pathnames of all bottom-level columns in a table.  This can be used to walk
all <tt class="docutils literal"><span class="pre">Column</span></tt> objects in a table when used with <tt class="docutils literal"><span class="pre">Table.colinstances</span></tt>.</li>
<li>The new <tt class="docutils literal"><span class="pre">Table.colinstances</span></tt> dictionary maps column pathnames to their
associated <tt class="docutils literal"><span class="pre">Column</span></tt> or <tt class="docutils literal"><span class="pre">Cols</span></tt> object for simple or nested columns,
respectively.  This is similar to <tt class="docutils literal"><span class="pre">Table.cols._f_col()</span></tt>, but faster.</li>
<li><tt class="docutils literal"><span class="pre">Row</span></tt> has received a new <tt class="docutils literal"><span class="pre">Row.fetch_all_fields()</span></tt> method in order to
return all the fields in the current row.  This returns a NumPy void scalar
for each call.</li>
<li>New <tt class="docutils literal"><span class="pre">tables.test(verbose=False,</span> <span class="pre">heavy=False)</span></tt> high level function for
interactively running the complete test suite from the Python console.</li>
<li>Added a <tt class="docutils literal"><span class="pre">tables.print_versions()</span></tt> for easily getting the versions for all
the software on which PyTables relies on.</li>
</ul>
</div>
<div class="section" id="backward-incompatible-changes">
<h3>Backward-incompatible changes<a class="headerlink" href="#backward-incompatible-changes" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li>You can no longer mark a column for indexing in a <tt class="docutils literal"><span class="pre">Col</span></tt> declaration.  The
only way of creating an index for a column is to invoke the
<tt class="docutils literal"><span class="pre">createIndex()</span></tt> method of the proper column object <em>after the table has
been created</em>.</li>
<li>Now the <tt class="docutils literal"><span class="pre">Table.colnames</span></tt> attribute is just a list of the names of
top-level columns in a table.  You can still get something similar to the
old structure by using <tt class="docutils literal"><span class="pre">Table.description._v_nestedNames</span></tt>.  See also the
new <tt class="docutils literal"><span class="pre">Table.colpathnames</span></tt> attribute.</li>
<li>The <tt class="docutils literal"><span class="pre">File.objects</span></tt>, <tt class="docutils literal"><span class="pre">File.leaves</span></tt> and <tt class="docutils literal"><span class="pre">File.groups</span></tt> dictionaries have
been removed.  If you still need this functionality, please use the
<tt class="docutils literal"><span class="pre">File.getNode()</span></tt> and <tt class="docutils literal"><span class="pre">File.walkNodes()</span></tt> instead.</li>
<li><tt class="docutils literal"><span class="pre">Table.removeIndex()</span></tt> is no longer available; to remove an index on a
column, one must use the <tt class="docutils literal"><span class="pre">removeIndex()</span></tt> method of the associated
<tt class="docutils literal"><span class="pre">Column</span></tt> instance.</li>
<li><tt class="docutils literal"><span class="pre">Column.dirty</span></tt> is no longer available.  If you want to check
column index dirtiness, use <tt class="docutils literal"><span class="pre">Column.index.dirty</span></tt>.</li>
<li><tt class="docutils literal"><span class="pre">complib</span></tt> and <tt class="docutils literal"><span class="pre">complevel</span></tt> parameters have been removed from
<tt class="docutils literal"><span class="pre">File.createTable()</span></tt>, <tt class="docutils literal"><span class="pre">File.createEArray()</span></tt>, <tt class="docutils literal"><span class="pre">File.createCArray()</span></tt> and
<tt class="docutils literal"><span class="pre">File.createVLArray()</span></tt>.  They were already deprecated in PyTables 1.x.</li>
<li>The <tt class="docutils literal"><span class="pre">shape</span></tt> and <tt class="docutils literal"><span class="pre">atom</span></tt> parameters have been swapped in
<tt class="docutils literal"><span class="pre">File.createCArray()</span></tt>.  This has been done to be consistent with
<tt class="docutils literal"><span class="pre">Atom()</span></tt> definitions (i.e. type comes before and shape after).</li>
</ul>
</div>
<div class="section" id="deprecated-features">
<h3>Deprecated features<a class="headerlink" href="#deprecated-features" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li><tt class="docutils literal"><span class="pre">Node._v_rootgroup</span></tt> has been removed.  Please use <tt class="docutils literal"><span class="pre">node._v_file.root</span></tt>
instead.</li>
<li>The <tt class="docutils literal"><span class="pre">Node._f_isOpen()</span></tt> and <tt class="docutils literal"><span class="pre">Leaf.isOpen()</span></tt> methods have been removed.
Please use the <tt class="docutils literal"><span class="pre">Node._v_isopen</span></tt> attribute instead (it is much faster).</li>
<li>The <tt class="docutils literal"><span class="pre">File.getAttrNode()</span></tt>, <tt class="docutils literal"><span class="pre">File.setAttrNode()</span></tt> and
<tt class="docutils literal"><span class="pre">File.delAttrNode()</span></tt> methods have been removed.  Please use
<tt class="docutils literal"><span class="pre">File.getNodeAttr()</span></tt>, <tt class="docutils literal"><span class="pre">File.setNodeAttr()</span></tt> and <tt class="docutils literal"><span class="pre">File.delNodeAttr()</span></tt>
instead.</li>
<li><tt class="docutils literal"><span class="pre">File.copyAttrs()</span></tt> has been removed.  Please use <tt class="docutils literal"><span class="pre">File.copyNodeAttrs()</span></tt>
instead.</li>
<li>The <tt class="docutils literal"><span class="pre">table[colname]</span></tt> idiom is no longer supported.  You can use
<tt class="docutils literal"><span class="pre">table.cols._f_col(column)</span></tt> for doing the same.</li>
</ul>
</div>
<div class="section" id="api-refinements">
<h3>API refinements<a class="headerlink" href="#api-refinements" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li><tt class="docutils literal"><span class="pre">File.createEArray()</span></tt> received a new <tt class="docutils literal"><span class="pre">shape</span></tt> parameter.  This allows to
not have to use the shape of the atom so as to set the shape of the
underlying dataset on disk.</li>
<li>All the leaf constructors have received a new <tt class="docutils literal"><span class="pre">chunkshape</span></tt> parameter that
allows specifying the chunk sizes of datasets on disk.</li>
<li>All <tt class="docutils literal"><span class="pre">File.create*()</span></tt> factories for <tt class="docutils literal"><span class="pre">Leaf</span></tt> nodes have received a new
<tt class="docutils literal"><span class="pre">byteorder</span></tt> parameter that allows the user to specify the byteorder in
which data will be written to disk (data in memory is now always handled in
<em>native</em> order).</li>
</ul>
<hr class="docutils" />
<blockquote>
<div><p><strong>Enjoy data!</strong></p>
<p class="attribution">&mdash;The PyTables Team</p>
</div></blockquote>
</div>
</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="#">Release notes for PyTables 2.0 series</a><ul>
<li><a class="reference internal" href="#changes-from-2-0-3-to-2-0-4">Changes from 2.0.3 to 2.0.4</a></li>
<li><a class="reference internal" href="#changes-from-2-0-2-to-2-0-3">Changes from 2.0.2 to 2.0.3</a></li>
<li><a class="reference internal" href="#changes-from-2-0-1-to-2-0-2">Changes from 2.0.1 to 2.0.2</a></li>
<li><a class="reference internal" href="#changes-from-2-0-to-2-0-1">Changes from 2.0 to 2.0.1</a></li>
<li><a class="reference internal" href="#changes-from-2-0rc2-to-2-0">Changes from 2.0rc2 to 2.0</a></li>
<li><a class="reference internal" href="#changes-from-2-0rc1-to-2-0rc2">Changes from 2.0rc1 to 2.0rc2</a></li>
<li><a class="reference internal" href="#changes-from-2-0b2-to-2-0rc1">Changes from 2.0b2 to 2.0rc1</a></li>
<li><a class="reference internal" href="#changes-from-2-0b1-to-2-0b2">Changes from 2.0b1 to 2.0b2</a></li>
<li><a class="reference internal" href="#important-changes-from-1-4-x-to-2-0">Important changes from 1.4.x to 2.0</a><ul>
<li><a class="reference internal" href="#api-additions">API additions</a></li>
<li><a class="reference internal" href="#backward-incompatible-changes">Backward-incompatible changes</a></li>
<li><a class="reference internal" href="#deprecated-features">Deprecated features</a></li>
<li><a class="reference internal" href="#api-refinements">API refinements</a></li>
</ul>
</li>
</ul>
</li>
</ul>

  <h4>Previous topic</h4>
  <p class="topless"><a href="RELEASE_NOTES_v2.1.x.html"
                        title="previous chapter">Release notes for PyTables 2.1 series</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="RELEASE_NOTES_v1.4.html"
                        title="next chapter">What&#8217;s new in PyTables 1.4</a></p>
  <h3>This Page</h3>
  <ul class="this-page-menu">
    <li><a href="../_sources/release-notes/RELEASE_NOTES_v2.0.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> &nbsp; &nbsp;</li>
        <li class="right" >
          <a href="../np-modindex.html" title="Python Module Index"
             >modules</a> &nbsp; &nbsp;</li>
        <li class="right" >
          <a href="RELEASE_NOTES_v1.4.html" title="What’s new in PyTables 1.4"
             >next</a> &nbsp; &nbsp;</li>
        <li class="right" >
          <a href="RELEASE_NOTES_v2.1.x.html" title="Release notes for PyTables 2.1 series"
             >previous</a> &nbsp; &nbsp;</li>
    <li><a href="../index.html">PyTables 3.0.0 documentation</a> &raquo;</li>

          <li><a href="../release_notes.html" >PyTables Release Notes</a> &raquo;</li> 
      </ul>
    </div>
    </div>

    <div class="footer">
        &copy; 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>