[Zope] Adding an external method

Gitte Wange gitte@mmmanager.org
Fri, 6 Jul 2001 14:57:41 +0200


Hello,

I am trying to add an external metod (used in a CMF Calendar example) but it 
fails.

Now I'm not into these external methods (and I am not sure it's the best 
solution) but I just want to see how this example works.

The method file is named monthRange.py and I have placed it in 
/usr/local/Zope/Extensions
it contains this code:
from DateTime import DateTime

def monthRange( dt ):
"""
Return a pair of DateTime values representing the
earliest and latest times in the month in which 'dt'
falls.
"""
y, m, d = dt.year(), dt.month(), dt.day()
first = DateTime( y, m, 1 )
last = first - 1 + DateTime._month_len[dt.isLeapYear() ][ m ]
return first.earliestTime(), last.latestTime()

I have filled in these values in the add form in ZMI:
Id: monthRange
Module Name: monthRange
Function Name: monthRange

I get this error when I try to add it:
Error Type: SyntaxError
Error Value: invalid syntax

And this traceback:
Traceback (innermost last):
  File /usr/local/Zope-2.3.2-linux2-x86/lib/python/ZPublisher/Publish.py, 
line 223, in publish_module
  File /usr/local/Zope-2.3.2-linux2-x86/lib/python/ZPublisher/Publish.py, 
line 187, in publish
  File /usr/local/Zope-2.3.2-linux2-x86/lib/python/Zope/__init__.py, line 
221, in zpublisher_exception_hook
  File /usr/local/Zope-2.3.2-linux2-x86/lib/python/ZPublisher/Publish.py, 
line 171, in publish
  File /usr/local/Zope-2.3.2-linux2-x86/lib/python/ZPublisher/mapply.py, line 
160, in mapply
    (Object: manage_addExternalMethod)
  File /usr/local/Zope-2.3.2-linux2-x86/lib/python/ZPublisher/Publish.py, 
line 112, in call_object
    (Object: manage_addExternalMethod)
  File 
/usr/local/Zope-2.3.2-linux2-x86/lib/python/Products/ExternalMethod/ExternalMethod.py, 
line 131, in manage_addExternalMethod
  File 
/usr/local/Zope-2.3.2-linux2-x86/lib/python/Products/ExternalMethod/ExternalMethod.py, 
line 179, in __init__
    (Object: monthRange)
  File 
/usr/local/Zope-2.3.2-linux2-x86/lib/python/Products/ExternalMethod/ExternalMethod.py, 
line 202, in manage_edit
    (Object: monthRange)
  File 
/usr/local/Zope-2.3.2-linux2-x86/lib/python/Products/ExternalMethod/ExternalMethod.py, 
line 209, in getFunction
    (Object: monthRange)
  File /usr/local/Zope-2.3.2-linux2-x86/lib/python/App/Extensions.py, line 
217, in getObject
    (Info: ('/usr/local/Zope-2.3.2-linux2-x86/Extensions/monthRange.py', 
'monthRange'))
SyntaxError: (see above)

Well it looks like it finds the file.
To me it looks like there is a syntax error in the add of the external 
method. or is the syntax error in the python code ?

I haven't debugged this kind of scripts before so I hope there is someone who 
can help me :-)

Regards,

-- 
Gitte Wange Jensen

Sys Admin, Developer and a lot more
MMmanager.org Aps, Denmark

Phone: +45 29 72 79 72
Email: gitte@mmmanager.org
Web: www.mmmanager.org

Quote of the day:
Unix is user friendly; it's just a
little paticular about which users
it is friendly to.