Sophie

Sophie

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

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.2 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="Release notes for PyTables 2.1 series" href="RELEASE_NOTES_v2.1.x.html" />
    <link rel="prev" title="Release notes for PyTables 2.3 series" href="RELEASE_NOTES_v2.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> &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_v2.1.x.html" title="Release notes for PyTables 2.1 series"
             accesskey="N">next</a> &nbsp; &nbsp;</li>
        <li class="right" >
          <a href="RELEASE_NOTES_v2.3.x.html" title="Release notes for PyTables 2.3 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-2-series">
<h1>Release notes for PyTables 2.2 series<a class="headerlink" href="#release-notes-for-pytables-2-2-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;org">faltet<span>&#64;</span>pytables<span>&#46;</span>org</a></td>
</tr>
</tbody>
</table>
<div class="section" id="changes-from-2-2-1rc1-to-2-2-1">
<h2>Changes from 2.2.1rc1 to 2.2.1<a class="headerlink" href="#changes-from-2-2-1rc1-to-2-2-1" title="Permalink to this headline">¶</a></h2>
<ul>
<li><p class="first">The <cite>Row</cite> accessor implements a new <cite>__contains__</cite> special method that
allows doing things like:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">table</span><span class="p">:</span>
    <span class="k">if</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">row</span><span class="p">:</span>
        <span class="k">print</span> <span class="s">&quot;Value found in row&quot;</span><span class="p">,</span> <span class="n">row</span><span class="o">.</span><span class="n">nrow</span>
        <span class="k">break</span>
</pre></div>
</div>
<p>Closes #309.</p>
</li>
<li><p class="first">PyTables is more friendly with easy_install and pip now, as all the
Python dependencies should be installed automatically.  Closes #298.</p>
</li>
</ul>
</div>
<div class="section" id="changes-from-2-2-to-2-2-1rc1">
<h2>Changes from 2.2 to 2.2.1rc1<a class="headerlink" href="#changes-from-2-2-to-2-2-1rc1" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li>When using <cite>ObjectAtom</cite> objects in <cite>VLArrays</cite> the <tt class="docutils literal"><span class="pre">HIGHEST_PROTOCOL</span></tt>
is used for pickling objects.  For NumPy arrays, this simple change
leads to space savings up to 3x and time improvements up to 30x.
Closes #301.</li>
<li>tables.Expr can perform operations on scalars now.  Thanks to Gaëtan
de Menten for providing a patch for this.  Closes #287.</li>
<li>Fixed a problem with indexes larger than 32-bit on leaf objects on
32-bit machines.  Fixes #283.</li>
<li>Merged in Blosc 1.1.2 for fixing a problem with large datatypes and
subprocess issues.  Closes #288 and #295.</li>
<li>Due to the adoption of Blosc 1.1.2, the pthreads-win32 library
dependency is dropped on Windows platforms.</li>
<li>Fixed a problem with tables.Expr and operands with vary large
rowsizes. Closes #300.</li>
<li><tt class="docutils literal"><span class="pre">leaf[numpy.array[scalar]]</span></tt> idiom returns a NumPy array instead of
an scalar.  This has been done for compatibility with NumPy.  Closes
#303.</li>
<li>Optimization for <cite>Table.copy()</cite> so that <tt class="docutils literal"><span class="pre">FIELD_*</span></tt> attrs are not
overwritten during the copy.  This can lead to speed-ups up to 100x
for short tables that have hundreds of columns.  Closes #304.</li>
<li>For external links, its relative paths are resolved now with respect
to the directory of the main HDF5 file, rather than with respect to
the current directory.  Closes #306.</li>
<li><tt class="docutils literal"><span class="pre">Expr.setInputsRange()</span></tt> and <tt class="docutils literal"><span class="pre">Expr.setOutputRange()</span></tt> do support
<tt class="docutils literal"><span class="pre">numpy.integer</span></tt> types now.  Closes #285.</li>
<li>Column names in tables can start with &#8216;__&#8217; now.  Closes #291.</li>
<li>Unicode empty strings are supported now as atributes.  Addresses #307.</li>
<li>Cython 0.13 and higher is supported now.  Fixes #293.</li>
<li>PyTables should be more &#8216;easy_install&#8217;-able now.  Addresses #298.</li>
</ul>
</div>
<div class="section" id="changes-from-2-2rc2-to-2-2-final">
<h2>Changes from 2.2rc2 to 2.2 (final)<a class="headerlink" href="#changes-from-2-2rc2-to-2-2-final" title="Permalink to this headline">¶</a></h2>
<ul>
<li><p class="first">Updated Blosc to 1.0 (final).</p>
</li>
<li><p class="first">Filter ID of Blosc changed from wrong 32010 to reserved 32001.  This
will prevent PyTables 2.2 (final) to read files created with Blosc and
PyTables 2.2 pre-final.  <cite>ptrepack</cite> can be used to retrieve those
files, if necessary.  More info in ticket #281.</p>
</li>
<li><p class="first">Recent benchmarks suggest a new parametrization is better in most
scenarios:</p>
<ul class="simple">
<li>The default chunksize has been doubled for every dataset size.  This
works better in most of scenarios, specially with the new Blosc
compressor.</li>
<li>The HDF5 CHUNK_CACHE_SIZE parameter has been raised to 2 MB in order
to better adapt to the chunksize increase.  This provides better hit
ratio (at the cost of consuming more memory).</li>
</ul>
<p>Some plots have been added to the User&#8217;s Manual (chapter 5) showing
how the new parametrization works.</p>
</li>
</ul>
</div>
<div class="section" id="changes-from-2-2rc1-to-2-2rc2">
<h2>Changes from 2.2rc1 to 2.2rc2<a class="headerlink" href="#changes-from-2-2rc1-to-2-2rc2" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li>A new version of Blosc (0.9.5) is included.  This version is now
considered to be stable and apt for production.  Thanks for all
PyTables users that have contributed to find and report bugs.</li>
<li>Added a new <cite>IO_BUFFER_SIZE</cite> parameter to <tt class="docutils literal"><span class="pre">tables/parameters.py</span></tt>
that allows to set the internal PyTables&#8217; buffer for doing I/O.  This
replaces <cite>CHUNKTIMES</cite> but it is more general because it affects to all
<cite>Leaf</cite> objects and also the <cite>tables.Expr</cite> module (and not only tables
as before).</li>
<li><cite>BUFFERTIMES</cite> parameter in <tt class="docutils literal"><span class="pre">tables/parameters.py</span></tt> has been
renamed to <cite>BUFFER_TIMES</cite> which is more consistent with other
parameter names.</li>
<li>On Windows platforms, the path to the tables module is now appended to
sys.path and the PATH environment variable. That way DLLs and PYDs in
the tables directory are to be found now.  Thanks to Christoph Gohlke
for the hint.</li>
<li>A replacement for barriers for Mac OSX, or other systems not
implementing them, has been carried out.  This allows to compile
PyTables on such platforms.  Fixes #278</li>
<li>Fixed a couple of warts that raise compatibility warnings with
forthcoming Python 2.7.</li>
<li>HDF5 1.8.5 is used in Windows binaries.</li>
</ul>
</div>
<div class="section" id="changes-from-2-2b3-to-2-2rc1">
<h2>Changes from 2.2b3 to 2.2rc1<a class="headerlink" href="#changes-from-2-2b3-to-2-2rc1" title="Permalink to this headline">¶</a></h2>
<ul>
<li><p class="first">Numexpr is not included anymore in PyTables and has become a requisite
instead.  This is because Numexpr already has decent enough installers
and is available in the PyPI repository also, so it should be easy for
users to fulfill this dependency.</p>
</li>
<li><p class="first">When using a Numexpr package that is turbo-loaded with Intel&#8217;s
VML/MKL, the parameter <cite>MAX_THREADS</cite> will control the number of
threads that VML can use during computations.  For a finer control,
the <cite>numexpr.set_vml_num_threads()</cite> can always be used.</p>
</li>
<li><p class="first">Cython is used now instead of Pyrex for Pyrex extensions.</p>
</li>
<li><p class="first">Updated to 0.9 version of Blosc compressor.  This version can make use
of threads so as to accelerate the compression/decompression process.
In order to change the maximum number of threads that Blosc can use (2
by default), you can modify the <cite>MAX_THREADS</cite> variable in
<tt class="docutils literal"><span class="pre">tables/parameters.py</span></tt> or make use of the new <cite>setBloscMaxThreads()</cite>
global function.</p>
</li>
<li><p class="first">Reopening already opened files is supported now, provided that there is
not incompatibility among intended usages (for example, you cannot
reopen in append mode an already opened file in read-only mode).</p>
</li>
<li><p class="first">Option <tt class="docutils literal"><span class="pre">--print-versions</span></tt> for <tt class="docutils literal"><span class="pre">test_all.py</span></tt> script is now
preferred over the deprecated <tt class="docutils literal"><span class="pre">--show-versions</span></tt>.  This is more
consistent with the existing <cite>print_versions()</cite> function.</p>
</li>
<li><p class="first">Fixed a bug that, under some circumstances, prevented the use of table
iterators in <cite>itertool.groupby()</cite>.  Now, you can safely do things
like:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">sel_rows</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="s">&#39;(row_id &gt;= 3)&#39;</span><span class="p">)</span>
<span class="k">for</span> <span class="n">group_id</span><span class="p">,</span> <span class="n">grouped_rows</span> <span class="ow">in</span> <span class="n">itertools</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span><span class="n">sel_rows</span><span class="p">,</span> <span class="n">f_group</span><span class="p">):</span>
    <span class="n">group_mean</span> <span class="o">=</span> <span class="n">average</span><span class="p">([</span><span class="n">row</span><span class="p">[</span><span class="s">&#39;row_id&#39;</span><span class="p">]</span> <span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">grouped_rows</span><span class="p">])</span>
</pre></div>
</div>
<p>Fixes #264.</p>
</li>
<li><p class="first">Copies of <cite>Array</cite> objects with multidimensional atoms (coming from
native HDF5 files) work correctly now (i.e. the copy holds the atom
dimensionality).  Fixes #275.</p>
</li>
<li><p class="first">The <cite>tables.openFile()</cite> function does not try anymore to open/close
the file in order to guess whether it is a HDF5 or PyTables one before
opening it definitely.  This allows the <cite>fcntl.flock()</cite> and
<cite>fcntl.lockf()</cite> Python functions to work correctly now (that&#8217;s useful
for arbitrating access to the file by different processes).  Thanks to
Dag Sverre Seljebotn and Ivan Vilata for their suggestions on hunting
this one!  Fixes #185.</p>
</li>
<li><p class="first">The estimation of the chunksize when using multidimensional atoms in
EArray/Carray was wrong because it did not take in account the shape
of the atom.  Thanks to Ralf Juengling for reporting.  Fixes #273.</p>
</li>
<li><p class="first">Non-contiguous arrays can now safely be saved as attributes.  Before,
if arrays were not contiguous, incorrect data was saved in attr.
Fixes #270.</p>
</li>
<li><p class="first">EXTDIM attribute for CArray/EArray now saves the correct extendeable
dimension, instead of rubbish.  This does not affected functionality,
because extendeable dimension was retrieved directly from shape
information, but it was providing misleading information to the user.
Fixes #268.</p>
</li>
</ul>
<div class="section" id="api-changes">
<h3>API changes<a class="headerlink" href="#api-changes" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li>Now, <cite>Table.Cols.__len__()</cite> returns the number of top level columns
instead of the number of rows in table.  This is more consistent in
that <cite>Table.Cols</cite> is an accessor for <em>columns</em>.  Fixes #276.</li>
</ul>
</div>
</div>
<div class="section" id="changes-from-2-2b2-to-2-2b3">
<h2>Changes from 2.2b2 to 2.2b3<a class="headerlink" href="#changes-from-2-2b2-to-2-2b3" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li>Blosc compressor has been added as an additional filter, in addition
to the existing Zlib, LZO and bzip2.  This new compressor is meant for
fast compression and extremely fast decompression.  Fixes #265.</li>
<li>In <cite>File.copyFile()</cite> method, <cite>copyuserattrs</cite> was set to false as
default.  This was unconsistent with other methods where the default
value for <cite>copyuserattrs</cite> is true.  The default for this is true now.
Closes #261.</li>
<li><cite>tables.copyFile</cite> and <cite>File.copyFile</cite> recognize now the parameters
present in <tt class="docutils literal"><span class="pre">tables/parameters.py</span></tt>.  Fixes #262.</li>
<li>Backported fix for issue #25 in Numexpr (OP_NEG_LL treats the argument
as an int, not a long long).  Thanks to David Cooke for this.</li>
<li>CHUNK_CACHE_NELMTS in <cite>tables/paramters.py</cite> set to a prime number as
Neil Fortner suggested.</li>
<li>Workaround for a problem in Python 2.6.4 (and probably other versions
too) for pickling strings like &#8220;0&#8221; or &#8220;0.&#8221;.  Fixes #253.</li>
</ul>
</div>
<div class="section" id="changes-from-2-2b1-to-2-2b2">
<h2>Changes from 2.2b1 to 2.2b2<a class="headerlink" href="#changes-from-2-2b1-to-2-2b2" title="Permalink to this headline">¶</a></h2>
<div class="section" id="enhancements">
<h3>Enhancements<a class="headerlink" href="#enhancements" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li>Support for HDF5 hard links, soft links and external links (when
PyTables is compiled against HDF5 1.8.x series).  A new tutorial about
its usage has been added to the &#8216;Tutorials&#8217; chapter of User&#8217;s Manual.
Closes #239 and #247.</li>
<li>Added support for setting HDF5 chunk cache parameters in file
opening/creating time.  &#8216;CHUNK_CACHE_NELMTS&#8217;, &#8216;CHUNK_CACHE_PREEMPT&#8217;
and &#8216;CHUNK_CACHE_SIZE&#8217; are the new parameters.  See &#8220;PyTables&#8217;
parameter files&#8221; appendix in User&#8217;s Manual for more info.  Closes
#221.</li>
<li>New <cite>Unknown</cite> class added so that objects that HDF5 identifies as
<tt class="docutils literal"><span class="pre">H5G_UNKNOWN</span></tt> can be mapped to it and continue operations
gracefully.</li>
<li>Added flag <cite>&#8211;dont-create-sysattrs</cite> to <tt class="docutils literal"><span class="pre">ptrepack</span></tt> so as to not
create sys attrs (default is to do it).</li>
<li>Support for native compound types in attributes.  This allows for
better compatibility with HDF5 files.  Closes #208.</li>
<li>Support for native NumPy dtype in the description parameter of
<cite>File.createTable()</cite>.  Closes #238.</li>
</ul>
</div>
<div class="section" id="bugs-fixed">
<h3>Bugs fixed<a class="headerlink" href="#bugs-fixed" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li>Added missing <cite>_c_classId</cite> attribute to the <cite>UnImplemented</cite> class.
<tt class="docutils literal"><span class="pre">ptrepack</span></tt> no longer chokes while copying <cite>Unimplemented</cite> classes.</li>
<li>The <tt class="docutils literal"><span class="pre">FIELD_*</span></tt> sys attrs are no longer copied when the
<tt class="docutils literal"><span class="pre">PYTABLES_SYS_ATTRS</span></tt> parameter is set to false.</li>
<li><cite>File.createTable()</cite> no longer segfaults if description=None.  Closes
#248.</li>
<li>Workaround for avoiding a Python issue causing a segfault when saving
and then retrieving a string attribute with values &#8220;0&#8221; or &#8220;0.&#8221;.
Closes #253.</li>
</ul>
</div>
<div class="section" id="id1">
<h3>API changes<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h3>
<ul>
<li><p class="first"><cite>Row.__contains__()</cite> disabled because it has little sense to query for
a key in Row, and the correct way should be to query for it in
<cite>Table.colnames</cite> or <cite>Table.colpathnames</cite> better.  Closes #241.</p>
</li>
<li><p class="first">[Semantic change] To avoid a common pitfall when asking for the string
representation of a <cite>Row</cite> class, <cite>Row.__str__()</cite> has been redefined.
Now, it prints something like:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">table</span><span class="p">:</span>
<span class="gp">... </span>    <span class="k">print</span> <span class="n">row</span>
<span class="gp">...</span>
<span class="go">/newgroup/table.row (Row), pointing to row #0</span>
<span class="go">/newgroup/table.row (Row), pointing to row #1</span>
<span class="go">/newgroup/table.row (Row), pointing to row #2</span>
</pre></div>
</div>
<p>instead of:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">table</span><span class="p">:</span>
<span class="gp">... </span>    <span class="k">print</span> <span class="n">row</span>
<span class="gp">...</span>
<span class="go">(&#39;Particle:      0&#39;, 0, 10, 0.0, 0.0)</span>
<span class="go">(&#39;Particle:      1&#39;, 1, 9, 1.0, 1.0)</span>
<span class="go">(&#39;Particle:      2&#39;, 2, 8, 4.0, 4.0)</span>
</pre></div>
</div>
<p>Use <cite>print row[:]</cite> idiom if you want to reproduce the old behaviour.
Closes #252.</p>
</li>
</ul>
</div>
<div class="section" id="other-changes">
<h3>Other changes<a class="headerlink" href="#other-changes" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li>After some improvements in both HDF5 and PyTables, the limit before
emitting a <cite>PerformanceWarning</cite> on the number of children in a group
has been raised from 4096 to 16384.</li>
</ul>
</div>
</div>
<div class="section" id="changes-from-2-1-1-to-2-2b1">
<h2>Changes from 2.1.1 to 2.2b1<a class="headerlink" href="#changes-from-2-1-1-to-2-2b1" title="Permalink to this headline">¶</a></h2>
<div class="section" id="id2">
<h3>Enhancements<a class="headerlink" href="#id2" title="Permalink to this headline">¶</a></h3>
<ul>
<li><p class="first">Added <cite>Expr</cite>, a class for evaluating expressions containing
array-like objects.  It can evaluate expressions (like &#8216;3*a+4*b&#8217;)
that operate on arbitrary large arrays while optimizing the
resources (basically main memory and CPU cache memory) required to
perform them.  It is similar to the Numexpr package, but in addition
to NumPy objects, it also accepts disk-based homogeneous arrays,
like the <cite>Array</cite>, <cite>CArray</cite>, <cite>EArray</cite> and <cite>Column</cite> PyTables objects.</p>
</li>
<li><p class="first">Added support for NumPy&#8217;s extended slicing in all <cite>Leaf</cite> objects.
With that, you can do the next sort of selections:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">array1</span> <span class="o">=</span> <span class="n">array</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span>                       <span class="c"># simple selection</span>
<span class="n">array2</span> <span class="o">=</span> <span class="n">array</span><span class="p">[</span><span class="mi">4</span><span class="p">:</span><span class="mi">1000</span><span class="p">:</span><span class="mi">2</span><span class="p">]</span>                <span class="c"># slice selection</span>
<span class="n">array3</span> <span class="o">=</span> <span class="n">array</span><span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="o">...</span><span class="p">,</span> <span class="p">::</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">:</span><span class="mi">4</span><span class="p">,</span> <span class="mi">4</span><span class="p">:]</span>    <span class="c"># general slice selection</span>
<span class="n">array4</span> <span class="o">=</span> <span class="n">array</span><span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">10</span><span class="p">],</span> <span class="o">...</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">]</span>    <span class="c"># fancy selection</span>
<span class="n">array5</span> <span class="o">=</span> <span class="n">array</span><span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">array</span><span class="p">[:]</span> <span class="o">&gt;</span> <span class="mi">4</span><span class="p">)]</span>  <span class="c"># point selection</span>
<span class="n">array6</span> <span class="o">=</span> <span class="n">array</span><span class="p">[</span><span class="n">array</span><span class="p">[:]</span> <span class="o">&gt;</span> <span class="mi">4</span><span class="p">]</span>            <span class="c"># boolean selection</span>
</pre></div>
</div>
<p>Thanks to Andrew Collette for implementing this for h5py, from which
it has been backported.  Closes #198 and #209.</p>
</li>
<li><p class="first">Numexpr updated to 1.3.1.  This can lead to up a 25% improvement of
the time for both in-kernel and indexed queries for unaligned
tables.</p>
</li>
<li><p class="first">HDF5 1.8.3 supported.</p>
</li>
</ul>
</div>
<div class="section" id="id3">
<h3>Bugs fixed<a class="headerlink" href="#id3" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li>Fixed problems when modifying multidimensional columns in Table
objects.  Closes #228.</li>
<li>Row attribute is no longer stalled after a table move or rename.
Fixes #224.</li>
<li>Array.__getitem__(scalar) returns a NumPy scalar now, instead of a
0-dim NumPy array.  This should not be noticed by normal users,
unless they check for the type of returned value.  Fixes #222.</li>
</ul>
</div>
<div class="section" id="id4">
<h3>API changes<a class="headerlink" href="#id4" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li>Added a <cite>dtype</cite> attribute for all leaves.  This is the NumPy
<tt class="docutils literal"><span class="pre">dtype</span></tt> that most closely matches the leaf type.  This allows for
a quick-and-dirty check of leaf types.  Closes #230.</li>
<li>Added a <cite>shape</cite> attribute for <cite>Column</cite> objects.  This is formed by
concatenating the length of the column and the shape of its type.
Also, the representation of columns has changed an now includes the
length of the column as the leading dimension.  Closes #231.</li>
<li>Added a new <cite>maindim</cite> attribute for <cite>Column</cite> which has the 0 value
(the leading dimension).  This allows for a better similarity with
other *Array objects.</li>
<li>In order to be consistent and allow the extended slicing to happen
in <cite>VLArray</cite> objects too, <cite>VLArray.__setitem__()</cite> is not able to
partially modify rows based on the second dimension passed as key.
If this is tried, an <cite>IndexError</cite> is raised now.  Closes #210.</li>
<li>The <cite>forceCSI</cite> flag has been replaced by <cite>checkCSI</cite> in the next
<cite>Table</cite> methods: <cite>copy()</cite>, <cite>readSorted()</cite> and <cite>itersorted()</cite>.  The
change reflects the fact that a re-index operation cannot be
triggered from these methods anymore.  The rational for the change
is that an indexing operation is a potentially very expensive
operation that should be carried out explicitly instead of being
triggered by methods that should not be in charge of this task.
Closes #216.</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>
<li><p class="first">After the introduction of the <cite>shape</cite> attribute for <cite>Column</cite>
objects, the shape information for multidimensional columns has been
removed from the <cite>dtype</cite> attribute (it is set to the base type of
the column now).  Closes #232.</p>
<p><strong>Enjoy data!</strong></p>
<p>&#8211; The PyTables Team</p>
</li>
</ul>
</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.2 series</a><ul>
<li><a class="reference internal" href="#changes-from-2-2-1rc1-to-2-2-1">Changes from 2.2.1rc1 to 2.2.1</a></li>
<li><a class="reference internal" href="#changes-from-2-2-to-2-2-1rc1">Changes from 2.2 to 2.2.1rc1</a></li>
<li><a class="reference internal" href="#changes-from-2-2rc2-to-2-2-final">Changes from 2.2rc2 to 2.2 (final)</a></li>
<li><a class="reference internal" href="#changes-from-2-2rc1-to-2-2rc2">Changes from 2.2rc1 to 2.2rc2</a></li>
<li><a class="reference internal" href="#changes-from-2-2b3-to-2-2rc1">Changes from 2.2b3 to 2.2rc1</a><ul>
<li><a class="reference internal" href="#api-changes">API changes</a></li>
</ul>
</li>
<li><a class="reference internal" href="#changes-from-2-2b2-to-2-2b3">Changes from 2.2b2 to 2.2b3</a></li>
<li><a class="reference internal" href="#changes-from-2-2b1-to-2-2b2">Changes from 2.2b1 to 2.2b2</a><ul>
<li><a class="reference internal" href="#enhancements">Enhancements</a></li>
<li><a class="reference internal" href="#bugs-fixed">Bugs fixed</a></li>
<li><a class="reference internal" href="#id1">API changes</a></li>
<li><a class="reference internal" href="#other-changes">Other changes</a></li>
</ul>
</li>
<li><a class="reference internal" href="#changes-from-2-1-1-to-2-2b1">Changes from 2.1.1 to 2.2b1</a><ul>
<li><a class="reference internal" href="#id2">Enhancements</a></li>
<li><a class="reference internal" href="#id3">Bugs fixed</a></li>
<li><a class="reference internal" href="#id4">API changes</a></li>
<li><a class="reference internal" href="#backward-incompatible-changes">Backward incompatible changes</a></li>
</ul>
</li>
</ul>
</li>
</ul>

  <h4>Previous topic</h4>
  <p class="topless"><a href="RELEASE_NOTES_v2.3.x.html"
                        title="previous chapter">Release notes for PyTables 2.3 series</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="RELEASE_NOTES_v2.1.x.html"
                        title="next chapter">Release notes for PyTables 2.1 series</a></p>
  <h3>This Page</h3>
  <ul class="this-page-menu">
    <li><a href="../_sources/release-notes/RELEASE_NOTES_v2.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> &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_v2.1.x.html" title="Release notes for PyTables 2.1 series"
             >next</a> &nbsp; &nbsp;</li>
        <li class="right" >
          <a href="RELEASE_NOTES_v2.3.x.html" title="Release notes for PyTables 2.3 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>