El dc 19 de 08 del 2009 a les 14:38 -0400, en/na Manning, Jonathan va
escriure:
> In testing other code, I stumbled across an exception when a user sets
> PYTABLES_SYS_ATTR=False from openFile.
>
> The following patch is one way to fix it (silences the exception), but I'm
> not sure I like the behavior still. The error comes from a few lines below,
> where it tries to set FILTERS anyway. Should FILTERS be conditional on
> PYTABLES_SYS_ATTR too?
>
> Index: tables/group.py
> ===================================================================
> --- tables/group.py (revision 4230)
> +++ tables/group.py (working copy)
> @@ -266,9 +266,9 @@
>
> def _g_postInitHook(self):
> if self._v_new:
> + setAttr = self._v_attrs._g__setattr
> if self._v_file.params['PYTABLES_SYS_ATTRS']:
> # Save some attributes for the new group on disk.
> - setAttr = self._v_attrs._g__setattr
> # Set the title, class and version attributes.
> setAttr('TITLE', self._v_new_title)
> setAttr('CLASS', self._c_classId)
>
>
> I prefer the following, which omits the pytables attribute FILTERS too, but
> I'm not sure what will break (no failures with test_all light).
>
> Index: tables/group.py
> ===================================================================
> --- tables/group.py (revision 4230)
> +++ tables/group.py (working copy)
> @@ -274,15 +274,15 @@
> setAttr('CLASS', self._c_classId)
> setAttr('VERSION', self._v_version)
>
> - # Set the default filter properties.
> - newFilters = self._v_new_filters
> - if newFilters is None:
> - # If no filters have been passed in the constructor,
> - # inherit them from the parent group, but only if they
> - # have been inherited or explicitly set.
> - newFilters = getattr(self._v_parent._v_attrs, 'FILTERS',
> None)
> - if newFilters is not None:
> - setAttr('FILTERS', newFilters)
> + # Set the default filter properties.
> + newFilters = self._v_new_filters
> + if newFilters is None:
> + # If no filters have been passed in the constructor,
> + # inherit them from the parent group, but only if they
> + # have been inherited or explicitly set.
> + newFilters = getattr(self._v_parent._v_attrs, 'FILTERS',
> None)
> + if newFilters is not None:
> + setAttr('FILTERS', newFilters)
> else:
> # If the file has PyTables format, get the VERSION attr
> if 'VERSION' in self._v_attrs._v_attrnamessys:
>
Definitely the second is the correct one. Fixed in r4235 (trunk).
Please, tell me if this fixes your problems.
Francesc
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Pytables-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pytables-users