I'm trying to fix some import errors, which seem to be related to PEP-328. I'm fixing those errors this way, though I don't know if that's the recommended way of fixing it. Thoughts? """ try: from DT_Util import parse_params, name_param except ImportError: # See PEP-328 from .DT_Util import parse_params, name_param """ -- Sidnei da Silva Enfold Systems http://enfoldsystems.com Fax +1 832 201 8856 Office +1 713 942 2377 Ext 214
On Wed, Oct 08, 2008 at 12:14:29AM -0300, Sidnei da Silva wrote:
I'm trying to fix some import errors, which seem to be related to PEP-328.
I'm fixing those errors this way, though I don't know if that's the recommended way of fixing it. Thoughts?
""" try: from DT_Util import parse_params, name_param except ImportError: # See PEP-328 from .DT_Util import parse_params, name_param """
I'd suggest converting it to an absolute import from zope.documenttemplate.dt_util import parse_params, name_param or whatever the equivalent for Zope 2 is (I'm assuming it's Zope 2, since DT_Util is capitalized). Marius Gedminas -- My mail reader can beat up your mail reader.
On Wed, Oct 8, 2008 at 2:40 AM, Marius Gedminas <marius@gedmin.as> wrote:
I'd suggest converting it to an absolute import
from zope.documenttemplate.dt_util import parse_params, name_param
So I thought at first. Except there is a problem: Inside 'DocumentTemplate' there's another 'DocumentTemplate' module. So doing: 'from DocumentTemplate.DT_Util import parse_params' ... tries to import DT_Util from the relative module. Then the fix is to do: 'from __future__ import absolute_import' ... except that doesn't work on Python 2.4. So the try: except seems to be the only way around here, unfortunately.
or whatever the equivalent for Zope 2 is (I'm assuming it's Zope 2, since DT_Util is capitalized).
Another option might be to switch this to use zope.documenttemplate. :) -- Sidnei da Silva Enfold Systems http://enfoldsystems.com Fax +1 832 201 8856 Office +1 713 942 2377 Ext 214
Sidnei da Silva wrote:
I'm trying to fix some import errors, which seem to be related to PEP-328.
I'm fixing those errors this way, though I don't know if that's the recommended way of fixing it. Thoughts?
""" try: from DT_Util import parse_params, name_param except ImportError: # See PEP-328 from .DT_Util import parse_params, name_param """
This will generate a SyntaxError in Python 2.4. So unless we *require* Python >= 2.5, this won't work.
On Wed, Oct 8, 2008 at 8:53 AM, Philipp von Weitershausen <philipp@weitershausen.de> wrote:
Sidnei da Silva wrote:
I'm trying to fix some import errors, which seem to be related to PEP-328.
I'm fixing those errors this way, though I don't know if that's the recommended way of fixing it. Thoughts?
""" try: from DT_Util import parse_params, name_param except ImportError: # See PEP-328 from .DT_Util import parse_params, name_param """
This will generate a SyntaxError in Python 2.4. So unless we *require* Python >= 2.5, this won't work.
Yuck. I hadn't thought of that. Any other suggestions? Like, using zope.documenttemplate? :) -- Sidnei da Silva Enfold Systems http://enfoldsystems.com Fax +1 832 201 8856 Office +1 713 942 2377 Ext 214
El 8 Oct 2008, a las 14:23 , Sidnei da Silva escribió:
On Wed, Oct 8, 2008 at 8:53 AM, Philipp von Weitershausen <philipp@weitershausen.de> wrote:
Sidnei da Silva wrote:
I'm trying to fix some import errors, which seem to be related to PEP-328.
I'm fixing those errors this way, though I don't know if that's the recommended way of fixing it. Thoughts?
""" try: from DT_Util import parse_params, name_param except ImportError: # See PEP-328 from .DT_Util import parse_params, name_param """
This will generate a SyntaxError in Python 2.4. So unless we *require* Python >= 2.5, this won't work.
Yuck. I hadn't thought of that. Any other suggestions? Like, using zope.documenttemplate? :)
zope.documenttemplate is a crippled version of DocumentTemplate. It doesn't have all features (e.g. it lacks the C extension module) and hasn't been kept up-to-date with respect to bugfixes. So it seems like a good idea to put this clone out of its misery and retire it. I ultimately suggest going to absolute imports everywhere (at least as long as we have to maintain Python 2.4 compatibility). I realize that DocumentTemplate/DocumentTemplate.py creates a problem. So here's what I suggest: 1. Rename DocumentTemplate/DocumentTemplate.py to, say, DocumentTemplate/DocTemplate.py (feel free to come up with a better name) 2. Introduce absolute imports to DocumentTemplate.DocTemplate everywhere 3. Ensure backwards compatibility by adding the following lines to DocumentTemplate/__init__.py:: import DocumentTemplate.DocTemplate import sys sys.modules['DocumentTemplate.DocumentTemplate'] = DocumentTemplate.DocTemplate I *think* this should work.
FWIW, I've done that now. On Wed, Oct 8, 2008 at 9:43 AM, Philipp von Weitershausen <philipp@weitershausen.de> wrote:
El 8 Oct 2008, a las 14:23 , Sidnei da Silva escribió:
On Wed, Oct 8, 2008 at 8:53 AM, Philipp von Weitershausen <philipp@weitershausen.de> wrote:
Sidnei da Silva wrote:
I'm trying to fix some import errors, which seem to be related to PEP-328.
I'm fixing those errors this way, though I don't know if that's the recommended way of fixing it. Thoughts?
""" try: from DT_Util import parse_params, name_param except ImportError: # See PEP-328 from .DT_Util import parse_params, name_param """
This will generate a SyntaxError in Python 2.4. So unless we *require* Python >= 2.5, this won't work.
Yuck. I hadn't thought of that. Any other suggestions? Like, using zope.documenttemplate? :)
zope.documenttemplate is a crippled version of DocumentTemplate. It doesn't have all features (e.g. it lacks the C extension module) and hasn't been kept up-to-date with respect to bugfixes. So it seems like a good idea to put this clone out of its misery and retire it.
I ultimately suggest going to absolute imports everywhere (at least as long as we have to maintain Python 2.4 compatibility). I realize that DocumentTemplate/DocumentTemplate.py creates a problem. So here's what I suggest:
1. Rename DocumentTemplate/DocumentTemplate.py to, say, DocumentTemplate/DocTemplate.py (feel free to come up with a better name)
2. Introduce absolute imports to DocumentTemplate.DocTemplate everywhere
3. Ensure backwards compatibility by adding the following lines to DocumentTemplate/__init__.py::
import DocumentTemplate.DocTemplate import sys sys.modules['DocumentTemplate.DocumentTemplate'] = DocumentTemplate.DocTemplate
I *think* this should work.
-- Sidnei da Silva Enfold Systems http://enfoldsystems.com Fax +1 832 201 8856 Office +1 713 942 2377 Ext 214
participants (3)
-
Marius Gedminas -
Philipp von Weitershausen -
Sidnei da Silva