Re: [Pytables-users] `__iter__` state and `itertools.islice` when

2013-07-09 Thread Antonio Valentino
Hi Tony,


Il giorno 09/lug/2013, alle ore 06:38, Tony Yu tsy...@gmail.com ha scritto:

 Hi,
 
 I ran into a subtle, unexpected issue while using `itertools.islice`. I 
 wanted to pass slices of an array for processing without actually reading the 
 entire array, and I wanted that processing function to know nothing about how 
 I'm taking that slice. To that end, I had a loop that sliced the array using 
 `itertools.islice` and called the function on each slice. Instead of 
 returning the slice I specified, `islice` treated the previous end slice as 
 the starting point to the next slice.
 
 That description is a bit confusing, but the example below (along with the 
 attached test data) should illustrate the point. Maybe I'm missing something, 
 but the only work around that I found was to set a private flag (e.g. 
 `h5.root.array._init = False`) on each call to `islice` to reset the counter 
 used in `__iter__`.
 
 I'm not sure if this is expected behavior or not, but it does differ from how 
 `islice` works on numpy arrays (as demonstrated in the example below). I used 
 the google and nothing similar came up, so I thought I'd post here.
 
 Best,
 -Tony 
 
 
 #
 
 import tables
 import itertools
 import numpy as np
 
 
 h5 = tables.openFile('test.h5')
 array = np.arange(100)
 for i in range(5):
 # Numpy array slice always returns 0..10
 print list(itertools.islice(array, 0, 10))
 # PyTables array slice shifts with each iteration
 print list(itertools.islice(h5.root.array, 0, 10))
 h5.close()
 test.h5--


Yes, this is a bug IMO.
Thank you for reporting and thank you for the small demonstration script.

Can you please file a bug report on github [1]?
Please also add info about the PyTables version you used for the test..



[1] https://github.com/PyTables/PyTables/issues

--
Antonio Valentino



--
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk
___
Pytables-users mailing list
Pytables-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pytables-users


Re: [Pytables-users] `__iter__` state and `itertools.islice` when

2013-07-09 Thread Tony Yu
On Tue, Jul 9, 2013 at 12:58 AM, Antonio Valentino 
antonio.valent...@tiscali.it wrote:
snip

 Yes, this is a bug IMO.
 Thank you for reporting and thank you for the small demonstration script.

 Can you please file a bug report on github [1]?
 Please also add info about the PyTables version you used for the test..


Thanks for you quick reply. Ticket filed here:

https://github.com/PyTables/PyTables/issues/267

Best,
-Tony




 [1] https://github.com/PyTables/PyTables/issues

 --
 Antonio Valentino

--
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk___
Pytables-users mailing list
Pytables-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pytables-users


Re: [Pytables-users] `__iter__` state and `itertools.islice` when

2013-07-09 Thread Anthony Scopatz
On Tue, Jul 9, 2013 at 8:57 AM, Tony Yu tsy...@gmail.com wrote:




 On Tue, Jul 9, 2013 at 12:58 AM, Antonio Valentino 
 antonio.valent...@tiscali.it wrote:
 snip

 Yes, this is a bug IMO.
 Thank you for reporting and thank you for the small demonstration script.

 Can you please file a bug report on github [1]?
 Please also add info about the PyTables version you used for the test..


 Thanks for you quick reply. Ticket filed here:

 https://github.com/PyTables/PyTables/issues/267


Thanks Tony,

I have made my comments on the issue, but the short version is that I don't
think this is a bug, iteration needs a rewrite, and you should use
iterrows().

Be Well
Anthony

PS you should upgrade to 3.0 and use the new API :)




 Best,
 -Tony




 [1] https://github.com/PyTables/PyTables/issues

 --
 Antonio Valentino



 --
 See everything from the browser to the database with AppDynamics
 Get end-to-end visibility with application monitoring from AppDynamics
 Isolate bottlenecks and diagnose root cause in seconds.
 Start your free trial of AppDynamics Pro today!
 http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk
 ___
 Pytables-users mailing list
 Pytables-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/pytables-users


--
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk___
Pytables-users mailing list
Pytables-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pytables-users