[ZCM] [ZC] 1400/ 5 Comment "'tuple' object has no attribute 'startswith'"

Collector: Zope Bugs, Features, and Patches ... zope-coders-admin at zope.org
Sat Jul 3 13:35:25 EDT 2004


Issue #1400 Update (Comment) "'tuple' object has no attribute 'startswith'"
 Status Rejected, Zope/bug medium
To followup, visit:
  http://zope.org/Collectors/Zope/1400

==============================================================
= Comment - Entry #5 by aho on Jul 3, 2004 1:35 pm

Your code does not work inside Zope-2.7.0:

TypeError: <lambda.19>() takes exactly 2 arguments (1 given)

Traceback (innermost last):
  Module ZPublisher.Publish, line 100, in publish
  Module ZPublisher.mapply, line 88, in mapply
  Module ZPublisher.Publish, line 40, in call_object
  Module OFS.DTMLDocument, line 128, in __call__
   - <DTMLDocument instance at 42c97d70>
  Module DocumentTemplate.DT_String, line 474, in __call__
  Module DocumentTemplate.DT_In, line 626, in renderwob
  Module DocumentTemplate.DT_Util, line 201, in eval
   - __traceback_info__: bills_list
  Module <string>, line 1, in <expression>
  Module Shared.DC.Scripts.Bindings, line 306, in __call__
  Module Shared.DC.Scripts.Bindings, line 343, in _bindAndExec
  Module Products.PythonScripts.PythonScript, line 307, in _exec
  Module None, line 5, in sortDictBy
   - <PythonScript at /OIO/utilities/sortDictBy>
   - Line 5
  Module AccessControl.ZopeGuards, line 272, in guarded_map
TypeError: <lambda.19>() takes exactly 2 arguments (1 given)
________________________________________
= Reject - Entry #4 by ajung on Jul 3, 2004 2:53 am

 Status: Pending => Rejected

return map(lambda (key, x): x, nlist)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The argument list of the lambda method *must* not be put
into braces:

return map(lambda key, x: x, nlist)


________________________________________
= Assign - Entry #3 by ajung on Jul 3, 2004 2:30 am

 Status: Accepted => Pending

 Supporters removed: ajung


________________________________________
= Accept - Entry #2 by ajung on Jul 3, 2004 2:30 am

 Status: Pending => Accepted

 Supporters added: ajung


Here is the traceback (no idea what's going on here):

Time  	2004/07/03 08:27:17.867 GMT+2
User Name (User Id) 	ajung (ajung)
Request URL 	http://sentinel:8080/plone_trackers/mmmmm/ZPythonScriptHTML_editAction
Exception Type 	AttributeError
Exception Value 	'tuple' object has no attribute 'startswith'

Traceback (innermost last):

    * Module ZPublisher.Publish, line 100, in publish
    * Module ZPublisher.mapply, line 88, in mapply
    * Module ZPublisher.Publish, line 40, in call_object
    * Module Products.PythonScripts.PythonScript, line 133, in ZPythonScriptHTML_editAction
    * Module Products.PythonScripts.PythonScript, line 152, in ZPythonScript_edit
    * Module Products.PythonScripts.PythonScript, line 431, in write
    * Module Products.PythonScripts.PythonScript, line 273, in _makeFunction
    * Module Products.PythonScripts.PythonScript, line 232, in _compile
    * Module Products.PythonScripts.PythonScript, line 226, in _compiler
    * Module RestrictedPython.RCompile, line 85, in compile_restricted_function
    * Module RestrictedPython.RCompile, line 68, in compileAndTuplize
    * Module RestrictedPython.RCompile, line 61, in compile
    * Module RestrictedPython.RCompile, line 53, in _get_tree
    * Module RestrictedPython.MutatingWalker, line 74, in walk
    * Module RestrictedPython.MutatingWalker, line 71, in dispatchNode
    * Module RestrictedPython.RestrictionMutator, line 348, in visitModule
    * Module RestrictedPython.MutatingWalker, line 32, in defaultVisitNode
    * Module RestrictedPython.MutatingWalker, line 57, in dispatchObject
    * Module RestrictedPython.MutatingWalker, line 71, in dispatchNode
    * Module RestrictedPython.MutatingWalker, line 32, in defaultVisitNode
    * Module RestrictedPython.MutatingWalker, line 59, in dispatchObject
    * Module RestrictedPython.MutatingWalker, line 42, in visitSequence
    * Module RestrictedPython.MutatingWalker, line 57, in dispatchObject
    * Module RestrictedPython.MutatingWalker, line 71, in dispatchNode
    * Module RestrictedPython.RestrictionMutator, line 144, in visitFunction
    * Module RestrictedPython.MutatingWalker, line 32, in defaultVisitNode
    * Module RestrictedPython.MutatingWalker, line 57, in dispatchObject
    * Module RestrictedPython.MutatingWalker, line 71, in dispatchNode
    * Module RestrictedPython.MutatingWalker, line 32, in defaultVisitNode
    * Module RestrictedPython.MutatingWalker, line 59, in dispatchObject
    * Module RestrictedPython.MutatingWalker, line 42, in visitSequence
    * Module RestrictedPython.MutatingWalker, line 57, in dispatchObject
    * Module RestrictedPython.MutatingWalker, line 71, in dispatchNode
    * Module RestrictedPython.MutatingWalker, line 32, in defaultVisitNode
    * Module RestrictedPython.MutatingWalker, line 57, in dispatchObject
    * Module RestrictedPython.MutatingWalker, line 71, in dispatchNode
    * Module RestrictedPython.RestrictionMutator, line 208, in visitCallFunc
    * Module RestrictedPython.MutatingWalker, line 32, in defaultVisitNode
    * Module RestrictedPython.MutatingWalker, line 59, in dispatchObject
    * Module RestrictedPython.MutatingWalker, line 42, in visitSequence
    * Module RestrictedPython.MutatingWalker, line 57, in dispatchObject
    * Module RestrictedPython.MutatingWalker, line 71, in dispatchNode
    * Module RestrictedPython.RestrictionMutator, line 156, in visitLambda
    * Module RestrictedPython.RestrictionMutator, line 93, in checkName

AttributeError: 'tuple' object has no attribute 'startswith'


________________________________________
= Request - Entry #1 by aho on Jul 2, 2004 9:44 pm

This is a Python Script bug. Works fine in Zope 2.6.4, breaks in 2.7.0 :

# copied from http://www.zope.org/Members/ontoprise/dls

------------------
parameter list = list, key

--------------------------
nlist = map(lambda x, key=key: (x[key], x), list)
nlist.sort()
return map(lambda (key, x): x, nlist)
--------------------------

inclusion of the third line "return map( ..." 
causes PyScript to give 

'tuple' object has no attribute 'startswith'

error message and refuse to save the script.
==============================================================



More information about the Zope-Collector-Monitor mailing list