Thanks for hunting this down Michka,

It was a pretty simple change, so I went ahead and merged it in.

Be Well
Anthony


On Sun, Feb 10, 2013 at 9:29 AM, Michka Popoff <michkapop...@gmail.com>wrote:

> After some (loooong) code browsing I sent a pull request for my problem :
> https://github.com/PyTables/PyTables/pull/208
>
> Thanks, I was not sure if it was a bug or an intended functionality
> preventing me to rename nodes with children.
>
> Michka
>
> Le 10 févr. 2013 à 09:08, Anthony Scopatz a écrit :
>
> Hey Michka,
>
> This seems like a bug.  Please open an issue on github or submit a pull
> request if you figure out a fix.  Thanks!
>
> Be Well
> Anthony
>
>
> On Sat, Feb 9, 2013 at 4:44 AM, Michka Popoff <michkapop...@gmail.com>wrote:
>
>> Hello
>>
>> I am not able to rename a node which has parent nodes. The doc doesn't
>> specify any restriction to the usage of the renameNode method.
>> Here is a small example script to show what I want to achieve :
>>
>> import tables
>>
>> # Create file and groups
>> file = tables.openFile("test.hdf5", "w")
>> file.createGroup("/", "data", "Data")
>> file.createGroup("/data", "id", "Single Data")
>> file.createGroup("/data/id/", "curves1", "Curve 1")
>> file.createGroup("/data/id/", "curves2", "Curve 2")
>>
>> # Rename (works)
>> file.renameNode("/data/id/curves1", "newcurve1")
>>
>> # Rename (doesn't work)
>> file.renameNode("/data/id", "newid")
>>
>> The first rename will work and rename "/data/id/curves1" to
>> "/data/id/newcurve1"
>> The second rename will fail with the following traceback :
>>
>> Traceback (most recent call last):
>>   File "Rename.py", line 14, in <module>
>>     file.renameNode("/data/id", "newid")
>>   File
>> "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tables/file.py",
>> line 1157, in renameNode
>>     obj._f_rename(newname, overwrite)
>>   File
>> "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tables/node.py",
>> line 590, in _f_rename
>>     self._f_move(newname=newname, overwrite=overwrite)
>>   File
>> "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tables/node.py",
>> line 674, in _f_move
>>     self._g_move(newparent, newname)
>>   File
>> "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tables/group.py",
>> line 565, in _g_move
>>     self._v_file._updateNodeLocations(oldPath, newPath)
>>   File
>> "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tables/file.py",
>> line 2368, in _updateNodeLocations
>>     descendentNode._g_updateLocation(newNodePPath)
>>   File
>> "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tables/node.py",
>> line 414, in _g_updateLocation
>>     file_._refNode(self, newPath)
>>   File
>> "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tables/file.py",
>> line 2287, in _refNode
>>     "file already has a node with path ``%s``" % nodePath
>> AssertionError: file already has a node with path ``/data``
>> Closing remaining open files: test.hdf5... done
>> Exception AttributeError: "'File' object has no attribute '_aliveNodes'"
>> in  ignored
>>
>> Perhaps I can not do what I want to do here, or is there another method I
>> should use ?
>>
>> Thanks in advance
>>
>> Michka Popoff
>>
>>
>> ------------------------------------------------------------------------------
>> Free Next-Gen Firewall Hardware Offer
>> Buy your Sophos next-gen firewall before the end March 2013
>> and get the hardware for free! Learn more.
>> http://p.sf.net/sfu/sophos-d2d-feb
>> _______________________________________________
>> Pytables-users mailing list
>> Pytables-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/pytables-users
>>
>>
>
> ------------------------------------------------------------------------------
> Free Next-Gen Firewall Hardware Offer
> Buy your Sophos next-gen firewall before the end March 2013
> and get the hardware for free! Learn more.
>
> http://p.sf.net/sfu/sophos-d2d-feb_______________________________________________
> Pytables-users mailing list
> Pytables-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/pytables-users
>
>
>
>
> ------------------------------------------------------------------------------
> Free Next-Gen Firewall Hardware Offer
> Buy your Sophos next-gen firewall before the end March 2013
> and get the hardware for free! Learn more.
> http://p.sf.net/sfu/sophos-d2d-feb
> _______________________________________________
> Pytables-users mailing list
> Pytables-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/pytables-users
>
>
------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013 
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
Pytables-users mailing list
Pytables-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pytables-users

Reply via email to