[Zope-dev] Caching ZCatalog results
I'm curious, has anybody played around with the idea of caching ZCatalog results and if I submitted a patch to do this would it be excepted? I quickly coded some basic caching of results on a volatile attribute and I was really surprised with the amount of cache hits I got (especially with a Plone site that is a heavy user of the catalog) -- Roché Compaan Upfront Systems http://www.upfrontsystems.co.za ___ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
[Zope-dev] Re: Caching ZCatalog results
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Roché Compaan wrote: I'm curious, has anybody played around with the idea of caching ZCatalog results and if I submitted a patch to do this would it be excepted? I quickly coded some basic caching of results on a volatile attribute and I was really surprised with the amount of cache hits I got (especially with a Plone site that is a heavy user of the catalog) +1. I think using the 'ZCachable' stuff (e.g., adding a RAMCacheManager and associating a catalog to it) would be the sanest path here. Tres, - -- === Tres Seaver +1 540-429-0999 [EMAIL PROTECTED] Palladion Software Excellence by Designhttp://palladion.com -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.2.2 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFF3tYk+gerLs4ltQ4RAmffAKCkerAZAvx3mpdThPO4EY9/Gjyf8wCfY7BQ kScipo29nNJy/LiJrLit0OY= =iay0 -END PGP SIGNATURE- ___ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
[Zope-dev] Zope Tests: 7 OK
Summary of messages to the zope-tests list. Period Thu Feb 22 12:00:00 2007 UTC to Fri Feb 23 12:00:00 2007 UTC. There were 7 messages: 7 from Zope Unit Tests. Tests passed OK --- Subject: OK : Zope-2.6 Python-2.1.3 : Linux From: Zope Unit Tests Date: Thu Feb 22 21:07:07 EST 2007 URL: http://mail.zope.org/pipermail/zope-tests/2007-February/007314.html Subject: OK : Zope-2.6 Python-2.3.6 : Linux From: Zope Unit Tests Date: Thu Feb 22 21:08:37 EST 2007 URL: http://mail.zope.org/pipermail/zope-tests/2007-February/007315.html Subject: OK : Zope-2.7 Python-2.3.6 : Linux From: Zope Unit Tests Date: Thu Feb 22 21:10:08 EST 2007 URL: http://mail.zope.org/pipermail/zope-tests/2007-February/007316.html Subject: OK : Zope-2.8 Python-2.3.6 : Linux From: Zope Unit Tests Date: Thu Feb 22 21:11:38 EST 2007 URL: http://mail.zope.org/pipermail/zope-tests/2007-February/007317.html Subject: OK : Zope-2.9 Python-2.4.4 : Linux From: Zope Unit Tests Date: Thu Feb 22 21:13:08 EST 2007 URL: http://mail.zope.org/pipermail/zope-tests/2007-February/007318.html Subject: OK : Zope-2.10 Python-2.4.4 : Linux From: Zope Unit Tests Date: Thu Feb 22 21:14:38 EST 2007 URL: http://mail.zope.org/pipermail/zope-tests/2007-February/007319.html Subject: OK : Zope-trunk Python-2.4.4 : Linux From: Zope Unit Tests Date: Thu Feb 22 21:16:08 EST 2007 URL: http://mail.zope.org/pipermail/zope-tests/2007-February/007320.html ___ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
[Zope-dev] Uploading the Installer for Windows
Someone volunteered to test and upload the Zope Installer for Windows when one was ready. I believe Chris Withers was the vict..^H^H volunteer. There's an installer ready for testing over here: http://files.enfoldsystems.com/Zope-2.10.2-Final-6947.exe Thanks! -- Sidnei da Silva Enfold Systemshttp://enfoldsystems.com Fax +1 832 201 8856 Office +1 713 942 2377 Ext 214 ___ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] Re: Caching ZCatalog results
On Fri, 2007-02-23 at 06:55 -0500, Tres Seaver wrote: Roché Compaan wrote: I'm curious, has anybody played around with the idea of caching ZCatalog results and if I submitted a patch to do this would it be excepted? I quickly coded some basic caching of results on a volatile attribute and I was really surprised with the amount of cache hits I got (especially with a Plone site that is a heavy user of the catalog) +1. I think using the 'ZCachable' stuff (e.g., adding a RAMCacheManager and associating a catalog to it) would be the sanest path here. Cool idea. I haven't done any coding involving OFS.Cache though. Looking at it briefly it looks like one can modify the catalog to subclass OFS.Cacheable and then use the ZCacheable_get, ZCacheable_set and ZCacheable_invalidate methods to interact with a cache manager. This needs to be pretty explicit though. Are there any side effects that I should guard against if the catalog subclasses OFS.Cache? -- Roché Compaan Upfront Systems http://www.upfrontsystems.co.za ___ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] Re: Caching ZCatalog results
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Roché Compaan wrote: On Fri, 2007-02-23 at 06:55 -0500, Tres Seaver wrote: Roché Compaan wrote: I'm curious, has anybody played around with the idea of caching ZCatalog results and if I submitted a patch to do this would it be excepted? I quickly coded some basic caching of results on a volatile attribute and I was really surprised with the amount of cache hits I got (especially with a Plone site that is a heavy user of the catalog) +1. I think using the 'ZCachable' stuff (e.g., adding a RAMCacheManager and associating a catalog to it) would be the sanest path here. Cool idea. I haven't done any coding involving OFS.Cache though. Looking at it briefly it looks like one can modify the catalog to subclass OFS.Cacheable and then use the ZCacheable_get, ZCacheable_set and ZCacheable_invalidate methods to interact with a cache manager. This needs to be pretty explicit though. Are there any side effects that I should guard against if the catalog subclasses OFS.Cache? I don't think so. Here are some random thoughts on the idea: - The 'searchResults' method must pass its keyword arguments as part of the cache key. - I don't know if there is a reasonable way to do 'mtime' for the catalog: we would like to be able to get an mtime cheaply for the BTrees (indexes, the 'data' container), but I don't know if that is possible. - The right place to do this feels like the 'searchResults' of ZCatalog, just before it calls 'self._catalog.searchResults'. - The CMF's catalog overrides 'searchResults', but calls it at the end, so everything there should work. Tres. - -- === Tres Seaver +1 540-429-0999 [EMAIL PROTECTED] Palladion Software Excellence by Designhttp://palladion.com -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.2.2 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFF3x0j+gerLs4ltQ4RAjx0AKDB90Y6tb6YuaA0JTLjQKmpAHuGuQCgl2O+ aTfsPyUxQ82fWsDmrCY7eHo= =47Ys -END PGP SIGNATURE- ___ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] Re: Caching ZCatalog results
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Tres Seaver wrote: Roché Compaan wrote: On Fri, 2007-02-23 at 06:55 -0500, Tres Seaver wrote: Roché Compaan wrote: I'm curious, has anybody played around with the idea of caching ZCatalog results and if I submitted a patch to do this would it be excepted? I quickly coded some basic caching of results on a volatile attribute and I was really surprised with the amount of cache hits I got (especially with a Plone site that is a heavy user of the catalog) +1. I think using the 'ZCachable' stuff (e.g., adding a RAMCacheManager and associating a catalog to it) would be the sanest path here. Cool idea. I haven't done any coding involving OFS.Cache though. Looking at it briefly it looks like one can modify the catalog to subclass OFS.Cacheable and then use the ZCacheable_get, ZCacheable_set and ZCacheable_invalidate methods to interact with a cache manager. This needs to be pretty explicit though. Are there any side effects that I should guard against if the catalog subclasses OFS.Cache? I don't think so. Here are some random thoughts on the idea: - The 'searchResults' method must pass its keyword arguments as part of the cache key. - I don't know if there is a reasonable way to do 'mtime' for the catalog: we would like to be able to get an mtime cheaply for the BTrees (indexes, the 'data' container), but I don't know if that is possible. - The right place to do this feels like the 'searchResults' of ZCatalog, just before it calls 'self._catalog.searchResults'. - The CMF's catalog overrides 'searchResults', but calls it at the end, so everything there should work. Hmm, on further thought: - It isn't safe to stash persistent objects in the RAM Cache manager, because they can't be used safely from another database connection. - The result set you get back from a query is a lazy, which will be consumed by each client: no two clients will see the same thing. Maybe this won't work, after all. Tres. - -- === Tres Seaver +1 540-429-0999 [EMAIL PROTECTED] Palladion Software Excellence by Designhttp://palladion.com -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.2.2 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFF3x/i+gerLs4ltQ4RAjNpAJ91vQEBMsP3fBpZJB+JxKEu+xl3swCgt95/ 6hCCBcE5aasbWuN6DdGKqto= =SkEe -END PGP SIGNATURE- ___ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] Re: Caching ZCatalog results
On Fri, 2007-02-23 at 12:09 -0500, Tres Seaver wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Tres Seaver wrote: Roché Compaan wrote: On Fri, 2007-02-23 at 06:55 -0500, Tres Seaver wrote: Roché Compaan wrote: I'm curious, has anybody played around with the idea of caching ZCatalog results and if I submitted a patch to do this would it be excepted? I quickly coded some basic caching of results on a volatile attribute and I was really surprised with the amount of cache hits I got (especially with a Plone site that is a heavy user of the catalog) +1. I think using the 'ZCachable' stuff (e.g., adding a RAMCacheManager and associating a catalog to it) would be the sanest path here. Cool idea. I haven't done any coding involving OFS.Cache though. Looking at it briefly it looks like one can modify the catalog to subclass OFS.Cacheable and then use the ZCacheable_get, ZCacheable_set and ZCacheable_invalidate methods to interact with a cache manager. This needs to be pretty explicit though. Are there any side effects that I should guard against if the catalog subclasses OFS.Cache? I don't think so. Here are some random thoughts on the idea: - The 'searchResults' method must pass its keyword arguments as part of the cache key. - I don't know if there is a reasonable way to do 'mtime' for the catalog: we would like to be able to get an mtime cheaply for the BTrees (indexes, the 'data' container), but I don't know if that is possible. - The right place to do this feels like the 'searchResults' of ZCatalog, just before it calls 'self._catalog.searchResults'. - The CMF's catalog overrides 'searchResults', but calls it at the end, so everything there should work. In my prototype I also wired the caching into searchResults: def searchResults(self, REQUEST=None, used=None, _merge=1, **kw): ... cache_key = None if args: cache_key = self._makeCacheKey(args) result = self._getCachedResult(cache_key) if result: return result return self._cacheResult(cache_key, self.search(args, sort_index, reverse, sort_limit, _merge)) Hmm, on further thought: - It isn't safe to stash persistent objects in the RAM Cache manager, because they can't be used safely from another database connection. But the lazy map of brains isn't persistent? - The result set you get back from a query is a lazy, which will be consumed by each client: no two clients will see the same thing. I don't follow. The Lazy will contain a set of document ids that will be the same for all clients, not? I got satisfactory results by storing results in a volatile attribute (and they are not shared by clients). I'm still curious to see what can be achieved with ZCacheable to extend the lifetime of the cache. -- Roché Compaan Upfront Systems http://www.upfrontsystems.co.za ___ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
[Zope-dev] Re: Caching ZCatalog results
Tres Seaver wrote: Tres Seaver wrote: Roché Compaan wrote: On Fri, 2007-02-23 at 06:55 -0500, Tres Seaver wrote: Roché Compaan wrote: I'm curious, has anybody played around with the idea of caching ZCatalog results and if I submitted a patch to do this would it be excepted? I quickly coded some basic caching of results on a volatile attribute and I was really surprised with the amount of cache hits I got (especially with a Plone site that is a heavy user of the catalog) +1. I think using the 'ZCachable' stuff (e.g., adding a RAMCacheManager and associating a catalog to it) would be the sanest path here. Cool idea. I haven't done any coding involving OFS.Cache though. Looking at it briefly it looks like one can modify the catalog to subclass OFS.Cacheable and then use the ZCacheable_get, ZCacheable_set and ZCacheable_invalidate methods to interact with a cache manager. This needs to be pretty explicit though. Are there any side effects that I should guard against if the catalog subclasses OFS.Cache? I don't think so. Here are some random thoughts on the idea: - The 'searchResults' method must pass its keyword arguments as part of the cache key. - I don't know if there is a reasonable way to do 'mtime' for the catalog: we would like to be able to get an mtime cheaply for the BTrees (indexes, the 'data' container), but I don't know if that is possible. - The right place to do this feels like the 'searchResults' of ZCatalog, just before it calls 'self._catalog.searchResults'. - The CMF's catalog overrides 'searchResults', but calls it at the end, so everything there should work. Hmm, on further thought: - It isn't safe to stash persistent objects in the RAM Cache manager, because they can't be used safely from another database connection. - The result set you get back from a query is a lazy, which will be consumed by each client: no two clients will see the same thing. Maybe this won't work, after all. I have had little exposure to the actual innards of the Zope 2 catalog, so this might be too wild for good old Zope 2, but here it goes: In Zope3, catalog indices actually only deal with integers (int ids) that only *represent* actual objects (this is for optimization reasons, and so they don't actually have to hang on to persistent objects themselves). This way a Zope 3 catalog search result is actually a list of integers, not a list of objects (or brains, or whatever). Of couse, you can use that list of integers to look up the corresponding objects with an integer ID utility (and there is a convenience API for that, but that's not important). A wild guess is that the Zope 2 index does the same or at least somethign similar. Perhaps not in a nice componentized manner like Zope 3 does (using a separate utility for the int id mapping), but I do recall the ZCatalog storing uids. RAM caching those integers should be absolutely possible. Heck, they don't even need much space and can be kept efficiently in data structures... It may require a bit of hacking the catalog, of course. Perhaps it's time to start thinking about componentizing the Zope 2 catalog to make such things easier in the future? -- http://worldcookery.com -- Professional Zope documentation and training Next Zope 3 training at Camp5: http://trizpug.org/boot-camp/camp5 ___ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] Re: Caching ZCatalog results
Roché Compaan wrote at 2007-2-23 18:44 +0200: ... Cool idea. I haven't done any coding involving OFS.Cache though. Looking at it briefly it looks like one can modify the catalog to subclass OFS.Cacheable and then use the ZCacheable_get, ZCacheable_set and ZCacheable_invalidate methods to interact with a cache manager. This needs to be pretty explicit though. Are there any side effects that I should guard against if the catalog subclasses OFS.Cache? A RAMCache cannot cache the result afte LazyMap has been applied to it. The result before LazyMap can be cached and the cached value needs to be LazyMapped before it is returned. -- Dieter ___ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] Re: Caching ZCatalog results
On Fri, 2007-02-23 at 20:43 +0100, Dieter Maurer wrote: Roché Compaan wrote at 2007-2-23 18:44 +0200: ... Cool idea. I haven't done any coding involving OFS.Cache though. Looking at it briefly it looks like one can modify the catalog to subclass OFS.Cacheable and then use the ZCacheable_get, ZCacheable_set and ZCacheable_invalidate methods to interact with a cache manager. This needs to be pretty explicit though. Are there any side effects that I should guard against if the catalog subclasses OFS.Cache? A RAMCache cannot cache the result afte LazyMap has been applied to it. The result before LazyMap can be cached and the cached value needs to be LazyMapped before it is returned. Thanks for that pointer. It's good that way, it should make invalidation easier. It could be as simple as invalidating any cached result that contains the documentId being indexed. Do you see any problem with the following invalidation strategy: If the 'documentId' exists (cataloging existing object), invalidate all cached result sets that contain the documentId. If the 'documentId' doesn't exist (cataloging new object), invalidate all result sets where the ids of indexes applied, are contained in the cache key for that result set. -- Roché Compaan Upfront Systems http://www.upfrontsystems.co.za ___ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] Re: Caching ZCatalog results
On 2/23/07, Philipp von Weitershausen [EMAIL PROTECTED] wrote: It may require a bit of hacking the catalog, of course. Perhaps it's time to start thinking about componentizing the Zope 2 catalog to make such things easier in the future? Yup. It would also be interesting to look into making it faster which huge datasets, something that is a problem now. I think it's because you search each index separately and intersect the results, and only then pick out the 20 first results. Compared with Lucene for example, which instead will create iterators who will only resturn the next match. This saves you from a lot of index searching when you have big results. I don't know if it is feasible to do something like that, but it would be interesting to look into it. -- Lennart Regebro: Python, Zope, CPS, Plone consulting. +33 661 58 14 64 ___ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
Re: [Zope] Error Tracing in Zope 2.6
The event_log isn't recording anything about the Zope error I'm getting on the page I have issues with. Is there a setting that I'm missing maybe? Also, has anyone successfully went from Linux to Windows with their Zope instance? I've noticed things like .read() and .write() don't work in Windows, they throw a Zope error, but they worked fine in Linux. I've also had to deal with the .strftime() function bombing on windows because the field from the database call was null, so it gives me an error about None not having that attribute. Are there any other things I might be on the look out for? On 2/22/07, Jonathan [EMAIL PROTECTED] wrote: - Original Message - From: David VanKirk [EMAIL PROTECTED] To: Zope Mailing List zope@zope.org Sent: Thursday, February 22, 2007 5:10 PM Subject: [Zope] Error Tracing in Zope 2.6 Can anyone give me some pointers on tracing errors in Zope 2.6? I'm already using the DTML var error-tb or whatever it is. And that can be helpful at times. But I was wondering if there's some other way to pinpoint which line in the DTML file is throwing the error. I'm moving my Zope setup from Linux to Windows and apparently there are some syntax that needs to change when migrating over (aside from my SQL command, since I'm going from Oracle to MS SQL Server). Some of these files are big, and there's a done of files to go through, so going through by hand is just not an option. If anyone can give me some pointers to more specifically locate erroneous lines, or if you can give me some tips on what syntax to look out for during the migration, I'd really appreciate it. The easiest thing to do is look in the error_log (ZMI, root folder). That will provide a full traceback for errors. If you can not determine the cause of the errors yourself, you can post specific questions/tracebacks. Jonathan -- David VanKirk ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] Error Tracing in Zope 2.6
- Original Message - From: David VanKirk [EMAIL PROTECTED] To: Jonathan [EMAIL PROTECTED] Cc: Zope Mailing List zope@zope.org Sent: Friday, February 23, 2007 8:50 AM Subject: Re: [Zope] Error Tracing in Zope 2.6 The event_log isn't recording anything about the Zope error I'm getting on the page I have issues with. Is there a setting that I'm missing maybe? In the error_log (ZMI, root folder), there is a field called 'Ignored exception types'. Remove any entries in this field and 'save changes'. Your dtml errors should now be captured in the error_log. Jonathan ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
[Zope] __bobo_traverse__ and wrappers
This is the 3th time I send this message (I experiencing problems with google apps for your domain) If you recive this messege duplicate or triplicate I ask you sorry! Hi all! Some days ago I begin this threat: http://www.mail-archive.com/zope@zope.org/msg26355.html Dieter point me to the solution and I try something like: def __bobo_traverse__(self, REQUEST, nombre): obj = getattr(self, nombre, None) if obj is None: self.REQUEST.set('TraversalRequestNameStack', self.REQUEST[TraversalRequestNameStack] + [nombre]) resultado = self() if type(resultado) == type(unicode()): return WrapperUnicode(resultado) elif type(resultado) == type(str()): return WrapperStr(resultado) else: return resultado return obj and the wrappers: class WrapperStr(str): __roles__ = None class WrapperUnicode(unicode): __roles__ = None But when I try to launch this zope raises a NotFound exception If I inspect de content of resultado I could see an unicode string then the WrapperUnicode is used to wrap the result Can you point me where the problem is, please? Thanks a lot! -- Mis Cosas http://blogs.sistes.net/Garito ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] Error Tracing in Zope 2.6
The error_log isn't helping. Apparently if your error is being caught in a try block and uses an standard_error_page to show you the exception and traceback it doesn't get logged in the error_log. Is there anyway to maybe increase the traceback output from the error_tb variable to traceback all the way to the DTML Method file? I'll I get in traceback info is the traceback through the last few *.py files, usually ending in the DTML_Try.py file since the page in practically all enclosed in a try block. Very rarely does that traceback prove useful unless the exception occurred in a PythonScript that was called. On 2/23/07, Jonathan [EMAIL PROTECTED] wrote: - Original Message - From: David VanKirk [EMAIL PROTECTED] To: Jonathan [EMAIL PROTECTED] Cc: Zope Mailing List zope@zope.org Sent: Friday, February 23, 2007 8:50 AM Subject: Re: [Zope] Error Tracing in Zope 2.6 The event_log isn't recording anything about the Zope error I'm getting on the page I have issues with. Is there a setting that I'm missing maybe? In the error_log (ZMI, root folder), there is a field called 'Ignored exception types'. Remove any entries in this field and 'save changes'. Your dtml errors should now be captured in the error_log. Jonathan -- David VanKirk ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] Error Tracing in Zope 2.6
- Original Message - From: David VanKirk [EMAIL PROTECTED] To: Jonathan [EMAIL PROTECTED] Cc: Zope Mailing List zope@zope.org Sent: Friday, February 23, 2007 11:06 AM Subject: Re: [Zope] Error Tracing in Zope 2.6 The error_log isn't helping. Apparently if your error is being caught in a try block and uses an standard_error_page to show you the exception and traceback it doesn't get logged in the error_log. Is there anyway to maybe increase the traceback output from the error_tb variable to traceback all the way to the DTML Method file? I'll I get in traceback info is the traceback through the last few *.py files, usually ending in the DTML_Try.py file since the page in practically all enclosed in a try block. Very rarely does that traceback prove useful unless the exception occurred in a PythonScript that was called. You never mentioned that you were trapping errors! It is not a good idea to have 'practically all enclosed in a try block' (especially if they are unqualified try stmts!) I would remove the try stmts and see what is generating the errors. Jonathan ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
[Zope] adding objects to a ZCatalog
Hi, I have a folder called images and a form that to add images to that folder. The form called an external method (../images/addImage) that references a python script, the one I sent earlier, that creates 4 versions of the images in 4 sizes and places them in the images folder. Also in the images folder I have a ZCatalog called ImageData. I'm trying to add a line to the python script to automatically catalog any images that are added to the images folder. I tried ImageData.manage_catalogObject... but I kept getting back: NameError: global name 'ImageData' is not defined. Any advice? Thanks. Tom ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
[Zope] invalid property value: wrapped object
Hello group: Running Zope 2.6.1/Python 2.1.3, I get the following error when I try to pass form values to a custom ZClass instance-creating method: Error Type: ValueError Error Value: Invalid property value: wrapped object I haven't had to deal with this kind of error before. Does this mean that the wrapped object (aq_parent) has an invalid property value, or does aq_self have the invalid value? What's the most efficient way to debug this? Best, Anthony Do you Yahoo!? Everyone is raving about the all-new Yahoo! Mail beta. http://new.mail.yahoo.com ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] adding objects to a ZCatalog
On 2/23/07, Tom Von Lahndorff [EMAIL PROTECTED] wrote: Hi, I have a folder called images and a form that to add images to that folder. The form called an external method (../images/addImage) that references a python script, the one I sent earlier, that creates 4 versions of the images in 4 sizes and places them in the images folder. Also in the images folder I have a ZCatalog called ImageData. I'm trying to add a line to the python script to automatically catalog any images that are added to the images folder. I tried ImageData.manage_catalogObject... but I kept getting back: NameError: global name 'ImageData' is not defined. Any advice? Thanks. Perhaps you meant context.ImageData.manage_catalogObject(... Tom ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev ) -- Peter Bengtsson, work www.fry-it.com home www.peterbe.com hobby www.issuetrackerproduct.com ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] adding objects to a ZCatalog
Peter Bengtsson wrote: On 2/23/07, Tom Von Lahndorff [EMAIL PROTECTED] wrote: Hi, I have a folder called images and a form that to add images to that folder. The form called an external method (../images/addImage) that references a python script, the one I sent earlier, that creates 4 versions of the images in 4 sizes and places them in the images folder. Also in the images folder I have a ZCatalog called ImageData. I'm trying to add a line to the python script to automatically catalog any images that are added to the images folder. I tried ImageData.manage_catalogObject... but I kept getting back: NameError: global name 'ImageData' is not defined. Any advice? Thanks. Perhaps you meant context.ImageData.manage_catalogObject(... This is the complete script: def makeImages(self, imagefile, newkeywords, newcaption, newsource): import PIL.Image, ImageEnhance, ImageFilter import PIL from StringIO import StringIO import os.path import datetime import time # create the data in a new PIL Image. image=PIL.Image.open(imagefile) image=image.convert('RGB') image=image.filter(ImageFilter.SHARPEN) image=image.resize((640, 480), PIL.Image.ANTIALIAS) image2=image.resize((320, 240), PIL.Image.ANTIALIAS) image3=image.resize((160, 120), PIL.Image.ANTIALIAS) image4=image.resize((80, 60), PIL.Image.ANTIALIAS) # get the data in memory. newimage_file=StringIO() image.save(newimage_file, JPEG) newimage_file.seek(0) newimage_file2=StringIO() image2.save(newimage_file2, JPEG) newimage_file2.seek(0) newimage_file3=StringIO() image3.save(newimage_file3, JPEG) newimage_file3.seek(0) newimage_file4=StringIO() image4.save(newimage_file4, JPEG) newimage_file4.seek(0) # create an id for the image now = datetime.datetime.now() newimageid=now.strftime('%Y%m%d%H%M%S') newimage_id=newimageid + '-640.jpg' newimage_id2=newimageid + '-320.jpg' newimage_id3=newimageid + '-160.jpg' newimage_id4=newimageid + '-80.jpg' # if there's an old image, delete it if newimage_id in self.objectIds(): self.manage_delObjects([newimage_id]) if newimage_id2 in self.objectIds(): self.manage_delObjects([newimage_id2]) if newimage_id3 in self.objectIds(): self.manage_delObjects([newimage_id3]) if newimage_id4 in self.objectIds(): self.manage_delObjects([newimage_id4]) # create the Zope image object for the new image self.manage_addProduct['OFSP'].manage_addImage(newimage_id, newimage_file, '') self.manage_addProduct['OFSP'].manage_addImage(newimage_id2, newimage_file2, '') self.manage_addProduct['OFSP'].manage_addImage(newimage_id3, newimage_file3, '') self.manage_addProduct['OFSP'].manage_addImage(newimage_id4, newimage_file4, '') # now find the new zope object so we can modify # its properties. newimage_image=getattr(self, newimage_id) newimage_image.manage_addProperty('keywords', '', 'string') newimage_image.manage_addProperty('caption', '', 'string') newimage_image.manage_addProperty('imageid', '', 'string') newimage_image.manage_changeProperties(keywords=newkeywords, caption=newcaption, imageid=newimageid, source=newsource) context.ImageData.manage_catalogObject(newimage_image, uid) newimage_image2=getattr(self, newimage_id2) newimage_image2.manage_addProperty('imagefile2', '', 'string') newimage_image3=getattr(self, newimage_id3) newimage_image3.manage_addProperty('imagefile3', '', 'string') newimage_image4=getattr(self, newimage_id4) newimage_image4.manage_addProperty('imagefile4', '', 'string') Tom ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev ) ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] adding objects to a ZCatalog
- Original Message - From: Tom Von Lahndorff [EMAIL PROTECTED] To: Peter Bengtsson [EMAIL PROTECTED] Cc: zope@zope.org Sent: Friday, February 23, 2007 1:12 PM Subject: Re: [Zope] adding objects to a ZCatalog Peter Bengtsson wrote: On 2/23/07, Tom Von Lahndorff [EMAIL PROTECTED] wrote: Hi, I have a folder called images and a form that to add images to that folder. The form called an external method (../images/addImage) that references a python script, the one I sent earlier, that creates 4 versions of the images in 4 sizes and places them in the images folder. Also in the images folder I have a ZCatalog called ImageData. I'm trying to add a line to the python script to automatically catalog any images that are added to the images folder. I tried ImageData.manage_catalogObject... but I kept getting back: NameError: global name 'ImageData' is not defined. Any advice? Thanks. Perhaps you meant context.ImageData.manage_catalogObject(... returns: NameError: global name 'context' is not defined You are either (1) doing this in an external method, in which case use 'self' instead of 'context', or (2) the bindings in your python script are pooched (click on the bindings tab of the python script, the 'Context' binding should be set to 'context'). Jonathan ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] __bobo_traverse__ and wrappers
You should stay on the mailing list! I usually do not respond to private mail! List readded... Garito wrote at 2007-2-22 21:10 +0100: ... I change NotFound to NotFound2 to test but the real error is a redirection (I need to erase all exceptions to see that) Redirects are (almost) never errors. They are always explicitely called for. This is the traceback (but I need to confess is the first time I see this kind of error): Traceback (innermost last): Module ZPublisher.Publish, line 115, in publish Module ZPublisher.mapply, line 88, in mapply Module ZPublisher.Publish, line 41, in call_object Module App.Management, line 82, in manage_workspace Redirect: http://portatil:9501/sistes.net/clientes/escobarsl.com/error_log/manage_main This redirect is completely normal: manage_workspace performs a redirect to the first tag accessible to the user. -- Viele Grüße Dieter Tel: 06894-870 177 ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] Problems receiving mails from the list
--On 23. Februar 2007 20:21:54 +0100 Garito [EMAIL PROTECTED] wrote: Hi all! The zope list don't work properly for me for 2 days ago with my normal account [EMAIL PROTECTED] Obviously you have serious problems on *your side*. I have three copies of this related mail. Trible-check *your* setup. -aj pgpO9bhROUtvW.pgp Description: PGP signature ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] Error Tracing in Zope 2.6
David VanKirk wrote at 2007-2-22 17:10 -0500: Can anyone give me some pointers on tracing errors in Zope 2.6? I'm already using the DTML var error-tb or whatever it is. And that can be helpful at times. But I was wondering if there's some other way to pinpoint which line in the DTML file is throwing the error. DTML is a bit stupid. Unlike PageTemplates, it does not provide line numbers to be used in error messages. -- Dieter ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
[Zope] Running ./zopectl gives NameError: name 'set' is not defined
Hi On trying to make a new zopeinstance from a Plone 2.5 instance created using the unified installer I am getting the following error when I attempt to run ./zopectl and start the instance. Traceback (most recent call last): File /opt/Plone-2.5/lib/python/Zope2/Startup/run.py, line 56, in ? run() File /opt/Plone-2.5/lib/python/Zope2/Startup/run.py, line 19, in run opts = _setconfig() File /opt/Plone-2.5/lib/python/Zope2/Startup/run.py, line 48, in _setconfig opts.realize(doc=Sorry, no option docs yet.) File /opt/Plone-2.5/lib/python/zdaemon/zdoptions.py, line 273, in realize self.load_schema() File /opt/Plone-2.5/lib/python/zdaemon/zdoptions.py, line 321, in load_schema self.schema = ZConfig.loadSchema(self.schemafile) File /opt/Plone-2.5/lib/python/ZConfig/loader.py, line 31, in loadSchema return SchemaLoader().loadURL(url) File /opt/Plone-2.5/lib/python/ZConfig/loader.py, line 65, in loadURL return self.loadResource(r) File /opt/Plone-2.5/lib/python/ZConfig/loader.py, line 159, in loadResource schema = ZConfig.schema.parseResource(resource, self) File /opt/Plone-2.5/lib/python/ZConfig/schema.py, line 27, in parseResource xml.sax.parse(resource.file, parser) File /usr/local/lib/python2.3/xml/sax/__init__.py, line 33, in parse parser.parse(source) File /usr/local/lib/python2.3/xml/sax/expatreader.py, line 107, in parse xmlreader.IncrementalParser.parse(self, source) File /usr/local/lib/python2.3/xml/sax/xmlreader.py, line 123, in parse self.feed(buffer) File /usr/local/lib/python2.3/xml/sax/expatreader.py, line 207, in feed self._parser.Parse(data, isFinal) File /usr/local/lib/python2.3/xml/sax/expatreader.py, line 300, in start_element self._cont_handler.startElement(name, AttributesImpl(attrs)) File /opt/Plone-2.5/lib/python/ZConfig/schema.py, line 99, in startElement getattr(self, start_ + name)(attrs) File /opt/Plone-2.5/lib/python/ZConfig/schema.py, line 475, in start_schema keytype, valuetype, datatype = self.get_sect_typeinfo(attrs) File /opt/Plone-2.5/lib/python/ZConfig/schema.py, line 201, in get_sect_typeinfo datatype = self.get_datatype(attrs, datatype, null, base) File /opt/Plone-2.5/lib/python/ZConfig/schema.py, line 194, in get_datatype return self._registry.get(dtname) File /opt/Plone-2.5/lib/python/ZConfig/datatypes.py, line 398, in get t = self.search(name) File /opt/Plone-2.5/lib/python/ZConfig/datatypes.py, line 423, in search package = __import__(n, g, g, component) File /opt/Plone-2.5/lib/python/Zope2/Startup/datatypes.py, line 21, in ? import OFS.Uninstalled File /opt/Plone-2.5/lib/python/OFS/Uninstalled.py, line 20, in ? import SimpleItem, Globals, Acquisition File /opt/Plone-2.5/lib/python/OFS/SimpleItem.py, line 26, in ? import AccessControl.Role, AccessControl.Owned, App.Common File /opt/Plone-2.5/lib/python/AccessControl/__init__.py, line 17, in ? from Implementation import setImplementation File /opt/Plone-2.5/lib/python/AccessControl/Implementation.py, line 98, in ? setImplementation(C) File /opt/Plone-2.5/lib/python/AccessControl/Implementation.py, line 51, in setImplementation from AccessControl import ImplC as impl File /opt/Plone-2.5/lib/python/AccessControl/ImplC.py, line 18, in ? from cAccessControl import rolesForPermissionOn, \ File /opt/Plone-2.5/lib/python/AccessControl/SimpleObjectPolicies.py, line 82, in ? from DocumentTemplate.DT_Util import TemplateDict File /opt/Plone-2.5/lib/python/DocumentTemplate/__init__.py, line 21, in ? from DocumentTemplate import String, File, HTML, HTMLDefault, HTMLFile File /opt/Plone-2.5/lib/python/DocumentTemplate/DocumentTemplate.py, line 112, in ? from DT_String import String, File File /opt/Plone-2.5/lib/python/DocumentTemplate/DT_String.py, line 19, in ? from DT_Util import ParseError, InstanceDict, TemplateDict, render_blocks, str File /opt/Plone-2.5/lib/python/DocumentTemplate/DT_Util.py, line 67, in ? from ZPublisher.TaintedString import TaintedString File /opt/Plone-2.5/lib/python/ZPublisher/__init__.py, line 24, in ? from Publish import publish_module, Retry File /opt/Plone-2.5/lib/python/ZPublisher/Publish.py, line 20, in ? from Request import Request File /opt/Plone-2.5/lib/python/ZPublisher/Request.py, line 13, in ? import HTTPRequest File /opt/Plone-2.5/lib/python/ZPublisher/HTTPRequest.py, line 18, in ? from BaseRequest import BaseRequest File /opt/Plone-2.5/lib/python/ZPublisher/BaseRequest.py, line 583, in ? itypes[set] = 0 NameError: name 'set' is not defined Thanks -- michael ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
[Zope] Zeo Client Hanging Unresponsive
I have posted this several times, but have not until now been able to get DeadlockDebugger installed. zope 2.9.5 + zeo pythonm2.4.3 Red Hat RHEL 4 Plone 2.5.1 Our zeo clients hang intermittently. We have no way of reproducing the problem, but it occurs daily. The client hangs and a restart seems to fix the problem. In the event log with tracing on we get Trace zeo.zrpc.Connection(C) wait(16697) {server:8100} pending, async=0 There are hundreds to thousands of these until the server is restarted. In the zeo log we get Error caught in asyncor asyncore.py error:(110,'Connection timed out') We have been trying to track this down and have had no luck. Does anyone have any suggestions? Below is our deadlock debugger output Threads traceback dump at 2007-02-23 15:26:50 Thread -1269564496 (GET /VirtualHostBase/https/soawds:443/VirtualHostRoot/Content///training): File /var/tmp/Zope-2.9.5-1-buildroot/apps1/zope2.9.5/lib/python/ZServer/PubC ore/ZServerPublisher.py, line 23, in __init__ File /var/tmp/Zope-2.9.5-1-buildroot/apps1/zope2.9.5/lib/python/ZPublisher/P ublish.py, line 395, in publish_module File /var/tmp/Zope-2.9.5-1-buildroot/apps1/zope2.9.5/lib/python/ZPublisher/P ublish.py, line 196, in publish_module_standard File /apps1/zope2.9.5/navo_instance/Products/PlacelessTranslationService/Pat chStringIO.py, line 34, in new_publish x = Publish.old_publish(request, module_name, after_list, debug) File /var/tmp/Zope-2.9.5-1-buildroot/apps1/zope2.9.5/lib/python/ZPublisher/P ublish.py, line 115, in publish File /var/tmp/Zope-2.9.5-1-buildroot/apps1/zope2.9.5/lib/python/ZPublisher/m apply.py, line 88, in mapply File /var/tmp/Zope-2.9.5-1-buildroot/apps1/zope2.9.5/lib/python/ZPublisher/P ublish.py, line 41, in call_object File /var/tmp/Zope-2.9.5-1-buildroot/apps1/zope2.9.5/lib/python/Shared/DC/Sc ripts/Bindings.py, line 311, in __call__ File /var/tmp/Zope-2.9.5-1-buildroot/apps1/zope2.9.5/lib/python/Shared/DC/Sc ripts/Bindings.py, line 348, in _bindAndExec File /apps1/zope2.9.5/navo_instance/Products/CMFCore/FSPageTemplate.py, line 195, in _exec result = self.pt_render(extra_context=bound_names) File /apps1/zope2.9.5/navo_instance/Products/CacheSetup/patch_cmf.py, line 38, in FSPT_pt_render result = FSPageTemplate.inheritedAttribute('pt_render')( File /apps1/zope2.9.5/navo_instance/Products/CacheSetup/patch_cmf.py, line 92, in PT_pt_render tal=not source, strictinsert=0)() File /var/tmp/Zope-2.9.5-1-buildroot/apps1/zope2.9.5/lib/python/TAL/TALInter preter.py, line 238, in __call__ File /var/tmp/Zope-2.9.5-1-buildroot/apps1/zope2.9.5/lib/python/TAL/TALInter preter.py, line 281, in interpret File /var/tmp/Zope-2.9.5-1-buildroot/apps1/zope2.9.5/lib/python/TAL/TALInter preter.py, line 749, in do_useMacro File /var/tmp/Zope-2.9.5-1-buildroot/apps1/zope2.9.5/lib/python/TAL/TALInter preter.py, line 281, in interpret File /var/tmp/Zope-2.9.5-1-buildroot/apps1/zope2.9.5/lib/python/TAL/TALInter preter.py, line 457, in do_optTag_tal File /var/tmp/Zope-2.9.5-1-buildroot/apps1/zope2.9.5/lib/python/TAL/TALInter preter.py, line 442, in do_optTag File /var/tmp/Zope-2.9.5-1-buildroot/apps1/zope2.9.5/lib/python/TAL/TALInter preter.py, line 437, in no_tag File /var/tmp/Zope-2.9.5-1-buildroot/apps1/zope2.9.5/lib/python/TAL/TALInter preter.py, line 281, in interpret File /var/tmp/Zope-2.9.5-1-buildroot/apps1/zope2.9.5/lib/python/TAL/TALInter preter.py, line 749, in do_useMacro File /var/tmp/Zope-2.9.5-1-buildroot/apps1/zope2.9.5/lib/python/TAL/TALInter preter.py, line 281, in interpret File /var/tmp/Zope-2.9.5-1-buildroot/apps1/zope2.9.5/lib/python/TAL/TALInter preter.py, line 507, in do_setLocal_tal File /var/tmp/Zope-2.9.5-1-buildroot/apps1/zope2.9.5/lib/python/Products/Pag eTemplates/TALES.py, line 221, in evaluate File /var/tmp/Zope-2.9.5-1-buildroot/apps1/zope2.9.5/lib/python/Products/Pag eTemplates/Expressions.py, line 185, in __call__ File /var/tmp/Zope-2.9.5-1-buildroot/apps1/zope2.9.5/lib/python/Products/Pag eTemplates/Expressions.py, line 180, in _eval File /var/tmp/Zope-2.9.5-1-buildroot/apps1/zope2.9.5/lib/python/Products/Pag eTemplates/Expressions.py, line 85, in render File /apps1/zope2.9.5/navo_instance/Products/CMFPlone/browser/plone.py, line 66, in globalize self._initializeData(options=options) File /apps1/zope2.9.5/navo_instance/Products/CMFPlone/browser/plone.py, line 147, in _initializeData self._data['language'] = self.request.get('language', None) or \ File /apps1/zope2.9.5/navo_instance/Products/Archetypes/ClassGen.py, line 58, in generatedAccessor return schema[name].get(self, **kw) File /apps1/zope2.9.5/navo_instance/Products/Archetypes/Field.py, line 802, in get value = ObjectField.get(self, instance, **kwargs) File /apps1/zope2.9.5/navo_instance/Products/Archetypes/Field.py, line 671, in get return