[Zope-dev] Upgrading to python 2.1.2 and Zope 2.5b4
Hi all, I want to upgrade to python 2.1.2 (from an existing 2.1 installation) and at the same time upgrade to 2.5b4 in the hopes that this combination will fix the threading problem under Solaris. Q1: Is this the right combination to use, I've read that I should use 2.1.2 and 2.4.4 (possible numbering scheme). If so, I can wait (but we are getting core dumps regularly now) Q2: (and apologies, as this is a more python-orientated question) Can I just do a 'make install' of python 2.1.2 and be sure that it's not going to make my MySQL and other modules in site-packages unusable? (sorry if this is a daft question - I have a *lot* of zope sites using python 2.1 at the moment) Many thanks Tone -- Dr Tony McDonald, Assistant Director, FMCC, http://www.fmcc.org.uk/ The Medical School, Newcastle University Tel: +44 191 243 6140 A Zope list for UK HE/FE http://www.fmcc.org.uk/mailman/listinfo/zope ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] Re: large files and --pymalloc on the new release? (was Re: no more SIG11 ...)
From: Chris McDonough [EMAIL PROTECTED] Leonardo Rochael Almeida wrote: snip Also, what about the --pymalloc? Is the binary Zope Python going to be compiled with it? should I still fear it? Dunno. Was it compiled in before? Isn't this an issue that is solved in a roundabout way by not having stack pointer computation bugs in the first place? I'm not sure how all of these bugs interact with each other. We almost lost a big client and almost got a lawsuit because we were bitten by both (or would that be three: RestrictedCompiler, ceval and --pymalloc?) bugs at the same time and took a long time to figure out how to work around them. Sorry to hear that. Is there a way to perform some tests or is there a testsuite that can be used to stress test these issues? I too got bitten by these bugs + assorted thread related errors, which has cost us very dearly in our project in terms of both time, additional costs and unexpected hardware investments due to change of deployment platform, so I *really* would like to have some way of being able to confirm if these bugs are dealt with or no. I am not sure there are any consistent tests for this, though, so hints on what to look out for are equally appreciated. thnks, /dario - Dario Lopez-Kästen Systems Developer Chalmers Univ. of Technology [EMAIL PROTECTED] ICQ will yield no hitsIT Systems Services ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] Upgrading to python 2.1.2 and Zope 2.5b4
Hi Tony, The combination of Zope 2.4.4 and Python 2.1.2 will be the right combination. If you can't wait for Zope 2.4, you can use Zope 2.5 (which I believe already has the requisite fixes), although of course it's still in beta. I think you'll need to recompile your extensions -- I'm not sure that it's strictly necessary but it is at least the safest thing to do. This presumes at least running python wo_pcgi.py against your software home and re-Make-ing your 3rd part extenions with the new Python.h, etc. - C Tony McDonald wrote: Hi all, I want to upgrade to python 2.1.2 (from an existing 2.1 installation) and at the same time upgrade to 2.5b4 in the hopes that this combination will fix the threading problem under Solaris. Q1: Is this the right combination to use, I've read that I should use 2.1.2 and 2.4.4 (possible numbering scheme). If so, I can wait (but we are getting core dumps regularly now) Q2: (and apologies, as this is a more python-orientated question) Can I just do a 'make install' of python 2.1.2 and be sure that it's not going to make my MySQL and other modules in site-packages unusable? (sorry if this is a daft question - I have a *lot* of zope sites using python 2.1 at the moment) Many thanks Tone -- Chris McDonoughZope Corporation http://www.zope.org http://www.zope.com Killing hundreds of birds with thousands of stones ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] Zope 2.5.0b3 a UnpickleableError
Chris Withers wrote: Shame though, since storing objects in the session so different frames can get hold of them without lots of computation seemed like a realyl ncie idea :-S Maybe you can use a RAM cache manager for this? It doesn't store stuff in ZODB. the main storage in the session. You will, however, be able to store newly created objects in the session. Not so intuitive... *sigh* Yup. Once ZODB has X-database references, this problem will disappear, but not before. waiting-for-your-one-line-question-that-makes-me-retype-docs, ;-) When's ZODB4 out? ;-) Nah, what was the one line question you were expecting? just-me-being-snarky, -- Chris McDonoughZope Corporation http://www.zope.org http://www.zope.com Killing hundreds of birds with thousands of stones ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
[Zope-dev] Re: [Zope] Security Assertions
At 18:43 16/01/2002, you wrote: Sorry about cross-posting but I think the following info is worth reading for both zope-users and developers. Note that up until Zope 2.5.0b4 there is a bug in the way module security assertions are handled that makes it impossible to declare more than one assertion without overwriting a previous assertion. It's not really a security hole, it's just annoying and clearly broken. I'd suggest that you complain about this (or do it yourself) if you think a monkeypatch is in order for Zope 2.3/2.4. I went to CVS and read AccessControl.SecurityInfo.py The code looked simple enough that I would take no risk by including it even if my understanding of the inner-working of Zope is still elementary. The following patch works to correct the problem for Zope 2.3.3. It does not seem to cause any other problem. # patch taken from Zope 2.5 from string import rfind # 1.5.2 syntax def ModuleSecurityInfo(module_name=None): if module_name is not None: modsec = _moduleSecurity.get(module_name, None) if modsec is not None: return modsec dot = rfind(module_name, '.') # 1.5.2 syntax if dot 0: # If the module is in a package, recursively make sure # there are security declarations for the package steps # leading to the module modname = module_name[dot + 1:] pmodsec = ModuleSecurityInfo(module_name[:dot]) if not pmodsec.names.has_key(modname): pmodsec.declarePublic(modname) return _ModuleSecurityInfo(module_name) class _ModuleSecurityInfo(SecurityInfo): Encapsulate security information for modules. in place of class ModuleSecurityInfo(SecurityInfo): Encapsulate security information for modules. I do not know what you mean by a 'monkeypatch' but it is certainly worth it to add the patch to 2.3.x and 2.4.x branches. Godefroid Chapelle wrote: Casey Duncan wrote: So the following things don't work: from Products.Formulator.Form import FormValidationError Either Martijn or you need to add the following lines to a Product __init__.py somewhere: from AccessControl import ModuleSecurityInfo ModuleSecurityInfo('Products').declarePublic('Formulator') ModuleSecurityInfo('Products.Formulator').declarePublic('Form') ModuleSecurityInfo('Products.Formulator.Form').declarePublic('FormValidationError') Cheers, Evan @ Zope I added the above code in the corresponding __init__.py on my machine. Which works almost perfectly...: Further, I needed to be able to import : from Products.gvibDA.gvib.gvibExceptions import IntegrityError So I added the following code in gvibDA's __init__.py from Products.PythonScripts.Utility import allow_module, allow_class from AccessControl import ModuleSecurityInfo, ClassSecurityInfo from Globals import InitializeClass ModuleSecurityInfo('Products').declarePublic('gvibDA') ModuleSecurityInfo('Products.gvibDA').declarePublic('gvib') ModuleSecurityInfo('Products.gvibDA.gvib').declarePublic('gvibExceptions') ModuleSecurityInfo('Products.gvibDA.gvib.gvibExceptions').declarePublic('IntegrityError') from gvib.gvibExceptions import IntegrityError allow_class(IntegrityError) I get an 'Unauthorized: Formulator' error when accessing a script beginning with from Products.Formulator.Form import FormValidationError from Products.gvibDA.gvib.gvibExceptions import IntegrityError I suppose it has something to do with the creation of two instances of ModuleSecurityInfo('Products') but have no idea how to correct the problem. Any help would be appreciated. -- Godefroid Chapelle BubbleNet sprl rue Victor Horta, 18 / 202 1348 Louvain-la-Neuve Belgium Tel + 32 (10) 459901 Mob + 32 (477) 363942 TVA 467 093 008 RC Niv 49849 ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev ) -- Godefroid Chapelle BubbleNet sprl rue Victor Horta, 18 / 202 1348 Louvain-la-Neuve Belgium Tel + 32 (10) 459901 Mob + 32 (477) 363942 TVA 467 093 008 RC Niv 49849 ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] Re: [Zope] Security Assertions
I do not know what you mean by a 'monkeypatch' but it is certainly worth it to add the patch to 2.3.x and 2.4.x branches. Thanks very much for the patch! We don't maintain 2.3.X anymore (at least not that I know of, although somebody probably should). And the 2.4 branch is a little up in the air at the moment. There will be a 2.4.4 to fix crashing issues but I don't know what the policy will be for introducing noncrash bugfixes. 2.5 already has the fix. So... this is why I suggested a monkeypatch. What I meant by monkeypatch is ... well, now you made me say it... hotfix. There, I said it. In other words, a Product that you can download and install that dynamically changes the running code without actually requiring that folks running 2.3.X/2.4.X patch their source code. Note that this is *not* a vulnerability in case anybody gets nervous. It is a bug that has to do with Zope security, but it is not a vulnerability. (That's why I didn't want to use the term hotfix) You can make a monkey patch by creating code modeled after ZC hotfixes that does some specific set of steps. In this case, you'd probably want to replace the ModuleSecurityInfo class/function with your fixed function dynamically. Of course, in this case you'd need a way to arrange that it was among the first Products registered (in order for the other Products to make use of the patched function). I think Products are initialized alphabetically, but may be wrong. ;-( -- Chris McDonoughZope Corporation http://www.zope.org http://www.zope.com Killing hundreds of birds with thousands of stones ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
[Zope-dev] Testing my product
I have had a lot of interest in a couple of my products, and I would like to ensure they are as stable as I can make them. I have heard a lot on here about unit-testing, is there a guide to creating unit-tests? Is there a procedure, or something to follow so that I can be sure I am testing the right things? Any help would be greatly appreciated. Adrian... -- Adrian Hungate All views expressed in this email are those of the whole world, however some people don't realise this yet. ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
[Zope-dev] Zope is dying - Please, help!
Hi all, I am using python 2.1.2 with zope 2.4.3, i've compiled python --without-py_malloc and also tried othe combinations as 2.1.1 with 2.4.2; 2.1.1 with 2.4.3 and still getting the same error. I'm not using pcgi, only zserver and apache with proxy pass. I do need to solve this. Does anybody have any idea what's going on? Any help will be welcome. Rodrigo -- 2002-01-16T22:50:39 INFO(0) zdaemon zdaemon: Wed Jan 16 22:50:39 2002: Houston, we have forked -- 2002-01-16T22:50:39 INFO(0) zdaemon zdaemon: Wed Jan 16 22:50:39 2002: Hi, I just forked off a kid: 19456 -- 2002-01-16T22:50:39 INFO(0) zdaemon zdaemon: Wed Jan 16 22:50:39 2002: Houston, we have forked -- 2002-01-16T22:50:47 INFO(0) ZServer HTTP server started at Wed Jan 16 22:50:47 2002 Hostname: myhost Port: 1485 -- 2002-01-16T22:53:03 ERROR(200) ZServer uncaptured python exception, closing channel zhttp_channel connected 200.162.45.200:1893 at 8de3234 channel#: 92 requests: (socket.error:(32, 'Broken pipe') [/home/zope/243/ZServer/medusa/asynchat.py|handle_read|83] [/home/zope/243/ZServer/medusa/http_server.py|recv|420] [/usr/local/lib/python2.1/asyncore.py|recv|352]) -- 2002-01-16T23:19:05 ERROR(200) ZServer uncaptured python exception, closing channel zhttp_channel connected 200.176.10.13:1143 at 8e57244 channel#: 2268 requests: (socket.error:(32, 'Broken pipe') [/home/zope/243/ZServer/medusa/asynchat.py|handle_read|83] [/home/zope/243/ZServer/medusa/http_server.py|recv|420] [/usr/local/lib/python2.1/asyncore.py|recv|352]) -- 2002-01-16T23:22:51 ERROR(200) zdaemon zdaemon: Wed Jan 16 23:22:51 2002: Aiieee! 19456 exited with error code: 11 -- 2002-01-16T23:22:51 INFO(0) zdaemon zdaemon: Wed Jan 16 23:22:51 2002: Houston, we have forked -- 2002-01-16T23:22:51 INFO(0) zdaemon zdaemon: Wed Jan 16 23:22:51 2002: Hi, I just forked off a kid: 20180 -- 2002-01-16T23:22:51 INFO(0) zdaemon zdaemon: Wed Jan 16 23:22:51 2002: Houston, we have forked -- 2002-01-16T23:23:00 INFO(0) ZServer HTTP server started at Wed Jan 16 23:23:00 2002 Hostname: myhost Port: 1485 -- 2002-01-16T23:30:29 ERROR(200) ZServer uncaptured python exception, closing channel zhttp_channel connected 200.198.155.166:1026 at 8d6a84c channel#: 617 requests: (socket.error:(32, 'Broken pipe') [/home/zope/243/ZServer/medusa/asynchat.py|handle_read|83] [/home/zope/243/ZServer/medusa/http_server.py|recv|420] [/usr/local/lib/python2.1/asyncore.py|recv|352]) -- 2002-01-16T23:36:17 ERROR(200) ZServer uncaptured python exception, closing channel zhttp_channel connected 200.190.80.69:63362 at 8deb554 channel#: 984 requests: (socket.error:(32, 'Broken pipe') [/home/zope/243/ZServer/medusa/asynchat.py|handle_read|83] [/home/zope/243/ZServer/medusa/http_server.py|recv|420] [/usr/local/lib/python2.1/asyncore.py|recv|352]) -- 2002-01-16T23:37:23 ERROR(200) zdaemon zdaemon: Wed Jan 16 23:37:23 2002: Aiieee! 20180 exited with error code: 11 -- 2002-01-16T23:37:23 INFO(0) zdaemon zdaemon: Wed Jan 16 23:37:23 2002: Houston, we have forked -- 2002-01-16T23:37:23 INFO(0) zdaemon zdaemon: Wed Jan 16 23:37:23 2002: Houston, we have forked -- 2002-01-16T23:37:23 INFO(0) zdaemon zdaemon: Wed Jan 16 23:37:23 2002: Hi, I just forked off a kid: 20423 -- 2002-01-16T23:37:31 INFO(0) ZServer HTTP server started at Wed Jan 16 23:37:31 2002 Hostname: myhost Port: 1485 -- 2002-01-16T23:52:00 ERROR(200) zdaemon zdaemon: Wed Jan 16 23:52:00 2002: Aiieee! 20423 exited with error code: 11 -- 2002-01-16T23:52:00 INFO(0) zdaemon zdaemon: Wed Jan 16 23:52:00 2002: Houston, we have forked -- 2002-01-16T23:52:00 INFO(0) zdaemon zdaemon: Wed Jan 16 23:52:00 2002: Hi, I just forked off a kid: 20688 -- 2002-01-16T23:52:00 INFO(0) zdaemon zdaemon: Wed Jan 16 23:52:00 2002: Houston, we have forked ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] Testing my product
Please read both the Zope developer's guide and the document UNITTEST.txt in the Zope doc directory. These pages are also helpful: http://dev.zope.org/CVS/ZopeTestingGuidelines , http://diveintopython.org/roman_divein.html , http://pyunit.sourceforge.net/pyunit.html . - C - Original Message - From: Adrian Hungate [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, January 17, 2002 9:23 AM Subject: [Zope-dev] Testing my product I have had a lot of interest in a couple of my products, and I would like to ensure they are as stable as I can make them. I have heard a lot on here about unit-testing, is there a guide to creating unit-tests? Is there a procedure, or something to follow so that I can be sure I am testing the right things? Any help would be greatly appreciated. Adrian... -- Adrian Hungate All views expressed in this email are those of the whole world, however some people don't realise this yet. ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope ) ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
[Zope-dev] unrestrictedTraverse and URLs ending in slash.
I quite often use URLs that end in a slash (in fact, I prefer it that way, since I then can add methods easily without having to care about if the url is the root '/' or another object). This got me into trouble, though, since unrestrictedtraverse can't handle URLs that end in a slash. I have patched it in my 2.3.4 installation so that it does, and think it would be a good idea to include this fix in Zope. What do you others think? OFS.Traversable Line 68: unrestrictedTraverse__roles__=() # Private def unrestrictedTraverse(self, path, default=_marker, restricted=0): if not path: return self get=getattr has=hasattr N=None M=_marker if type(path) is StringType: if (path[-1] == '/') and (path != '/'): path = path [:-1] # Handle URL's that end in a slash. path = split(path,'/') else: path=list(path) ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] Re: [Zope] Security Assertions
Just a quick note on this point, there are two points during startup when a product can get control: 1) When the __init__.py is imported 2) When the initialize function within that __init__.py is called. These seem to occur quite far apart in terms of loaded modules so to get something done early, do it at import time. If you want a look at another monkeypatch type product, take a look at PatchKit http://www.zope.org/Members/haqa/PatchKit . Hope this helps Adrian... -- The difficulty of tactical maneuvering consists in turning the devious into the direct, and misfortune into gain. - Sun Tzu - Original Message - From: Chris McDonough [EMAIL PROTECTED] To: Godefroid Chapelle [EMAIL PROTECTED] Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED] Sent: Thursday, January 17, 2002 1:50 PM Subject: Re: [Zope-dev] Re: [Zope] Security Assertions I do not know what you mean by a 'monkeypatch' but it is certainly worth it to add the patch to 2.3.x and 2.4.x branches. Thanks very much for the patch! We don't maintain 2.3.X anymore (at least not that I know of, although somebody probably should). And the 2.4 branch is a little up in the air at the moment. There will be a 2.4.4 to fix crashing issues but I don't know what the policy will be for introducing noncrash bugfixes. 2.5 already has the fix. So... this is why I suggested a monkeypatch. What I meant by monkeypatch is ... well, now you made me say it... hotfix. There, I said it. In other words, a Product that you can download and install that dynamically changes the running code without actually requiring that folks running 2.3.X/2.4.X patch their source code. Note that this is *not* a vulnerability in case anybody gets nervous. It is a bug that has to do with Zope security, but it is not a vulnerability. (That's why I didn't want to use the term hotfix) You can make a monkey patch by creating code modeled after ZC hotfixes that does some specific set of steps. In this case, you'd probably want to replace the ModuleSecurityInfo class/function with your fixed function dynamically. Of course, in this case you'd need a way to arrange that it was among the first Products registered (in order for the other Products to make use of the patched function). I think Products are initialized alphabetically, but may be wrong. ;-( -- Chris McDonoughZope Corporation http://www.zope.org http://www.zope.com Killing hundreds of birds with thousands of stones ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope ) ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] Re: [Zope] Security Assertions
Just a quick note on this point, there are two points during startup when a product can get control: 1) When the __init__.py is imported 2) When the initialize function within that __init__.py is called. I think Godefroid's case it would definitely want to be in __init__.py *outside* of the initialize() function as it wants to be done at the earliest possible time. - C ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
[Zope-dev] Re: [Zope] Error on install
Chris (or anybody else), Have you tried to install Beta4 using the linux binary package yet? I'm trying to write a patch against it but the installation does in fact bomb out each time I try to run it, even freshly untarred. The source TGZ works fine and dandy, however. It seems compilezpy.py has been dramatically changed since Beta3, as if to try and surpress the stdout messages. I'm going to try and break it down and find out where the exceptions are flagging, and also refactor my patch so it doesn't depend on the changes being made to compilezpy.py. I don't like wrapping a gag around code if I don't have to, and I'd rather this stuff be written to an install log or something. I-see-a-fishbowl-proposal-for-a-new-installer-ly yours, Eron On Thursday 17 January 2002 12:23 pm, you wrote: Sure, go ahead! - Original Message - From: Eron Lloyd [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, January 17, 2002 12:00 PM Subject: Re: [Zope] Error on install Ah hah! Yet another one...if no one objects, I'd like to try and patch compilezpy.py to ignore the test directory during install. I'll submit this to the Collector when done. Eron On Thursday 17 January 2002 11:28 am, you wrote: I am installing Zope and I get the bellow errors. Could someone explain why I'm getting this? Thanks Allen May MCSi Web Admin 800.842.1702 x7628 Compiling python modules File /usr/zope/Zope-2.4.3-linux2-x86/lib/python2.1/test/nocaret.py, line 2 [x for x in x] = x SyntaxError: can't assign to list comprehension SyntaxError: from __future__ imports must occur at the beginning of the file (test_future3.py, line 3) SyntaxError: from __future__ imports must occur at the beginning of the file (test_future4.py, line 3) SyntaxError: from __future__ imports must occur at the beginning of the file (test_future5.py, line 4) SyntaxError: from __future__ imports must occur at the beginning of the file (test_future6.py, line 3) SyntaxError: from __future__ imports must occur at the beginning of the file (test_future7.py, line 3) - - - - ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev ) ___ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev ) ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )