[Zope] python methods
Evan Simpson
evan@4-am.com
Thu, 30 Nov 2000 13:37:49 -0500
From: The Doctor What <docwhat@gerf.org>
> For those of us who are trying to figure out everything at
a low
> level, where would this be in the source?
Here's an example of adding stuff to '_' using a monkey
patch Product.
Contents of __init__.py of directory Products/MoreBuiltins:
def _AddBuiltins():
from urllib import urlopen, quote, unquote
from base64 import decodestring, encodestring
def same_type(self, a, b):
return type(a)==type(b)
def attr_map(self, o):
r = o.__dict__.copy()
for k in r.keys():
if k[:1] == '_':
del r[k]
return r
class AnObject:
def __init__(self, **kw):
self.__dict__.update(kw)
NewBuiltins = {
'list': list,
'tuple': tuple,
'map': map,
'filter': filter,
'reduce': reduce,
'urllib': AnObject(open=urlopen, quote=quote,
unquote=unquote),
'base64': AnObject(decode=decodestring,
encode=encodestring),
'same_type': same_type,
'attr_map': attr_map,
}
from DocumentTemplate.DT_Util import TemplateDict
TemplateDict.__dict__.update(NewBuiltins)
#call it
_AddBuiltins()