Hi,

While trying to fix #198 (i.e. implementing extended slicing in Leaf 
objects), I realized that the `VLArray.__setitem__()` method has a 
non-standard behaviour that should be fixed for consistency reasons.

The problem is basically that this method implements support for a 
couple of dimensions: the main dimension for the dataset and a
"ficticious" one which corresponds to the "variable length" dimension.

Such a "ficticious" axis is non-standard and introduces consistency 
problems that prevented a clean implementation of the extended slicing 
for the `VLArray.__setitem__()` method.  I intend to fix this (i.e. 
removing the support for the "ficticious"  axis) in forthcoming 
PyTables 2.2.

For example, right now you can do:

vlarray[3, 3:6] = [4,5,6]

Here, the ``3:6`` slice does not really belongs to the dataset (this is 
why I call it ''ficticious'').  After the change, 
`VLArray.__setitem__()` will only support indexing the main dimension, 
but you will be able to do the same than above with:

tmp = vlarray[3][3:6]
tmp[:] = [4,5,6]
vlarray[3] = tmp

which is basically what does the current code.

Anyone would be against introducing this change for 2.2?

Thanks,

-- 
Francesc Alted

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Pytables-users mailing list
Pytables-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pytables-users

Reply via email to