A Tuesday 27 April 2010 11:12:52 Ivan Vilata i Balaguer escrigué: > Francesc Alted <fal...@pytables.org> writes: > > This has been addressed in 2.2 series. In trunk, you have: > > > > In [1]: import tables > > > > In [2]: fyle = tables.openFile("/tmp/file1.h5") > > > > In [3]: fyle2 = tables.openFile("/tmp/file1.h5",mode="a") > > > > In [4]: fyle > > Out[4]: > > File(filename=/tmp/file1.h5, title='', mode='r', rootUEP='/', > > filters=Filters(complevel=0, shuffle=False, fletcher32=False)) > > / (RootGroup) '' > > > > In [5]: fyle2 > > Out[5]: > > File(filename=/tmp/file1.h5, title='', mode='r', rootUEP='/', > > filters=Filters(complevel=0, shuffle=False, fletcher32=False)) > > / (RootGroup) '' > > > > But, as you can see, `fyle2` is opened in read-only mode (it is basically > > a pointer to existing `fyle` handler). Mmh, I'm not sure whether this is > > good practice or the second opening should fail with something like: > > > > raise ValueError( > > "The file '%s' is already opened. Please " > > "close it before reopening in 'a'ppend mode." % filename) > > > > What do you think is more convenient? > > Umm, the current behaviour violates the principle of least surprise, > i.e. if the second call to ``openFile()`` is successful, the user > expects ``fyle2`` to be appendable, so he will be puzzled to see writes > fail with a ``FileModeError``. > > The alternative behaviour explicitly exposes the limitation and avoids > the surprise.
Yup. Fixed in: http://pytables.org/trac/changeset/4400 Thanks! -- Francesc Alted ------------------------------------------------------------------------------ _______________________________________________ Pytables-users mailing list Pytables-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/pytables-users