changement de structure

darcs-hash:20060920201205-f46e9-1eb5e174b56f63387321970baaa769c5baaf9f98.gz
This commit is contained in:
gdetrez 2006-09-20 22:12:05 +02:00
parent b5b3e3b72e
commit 3dc01c0c2d
6 changed files with 288 additions and 255 deletions

View file

@ -0,0 +1,38 @@
from cherrypy.filters.basefilter import BaseFilter
import cherrypy._cputil
##########################
# DomFilter
##########################
#
# transforme des objets python
# en chainses de caracteres qui peuvent
# etre parsees avec JSON/javascript
#
class DOMFilter(BaseFilter):
def beforeFinalize(self):
body = cherrypy.response.body
if isinstance(body, dict):
body = self.printAsDom(body)
cherrypy.response.body = body
def printAsDom(self, chose):
if isinstance(chose, dict):
stringList = []
for a_key in chose.keys():
stringList.append('%s:%s' % (self.printAsDom(a_key), self.printAsDom(chose[a_key])))
return "{%s}" % ','.join(stringList)
if isinstance(chose, list):
stringList = []
for an_item in chose:
stringList.append('%s' % (self.printAsDom(an_item)))
return "[%s]" % ','.join(stringList)
if isinstance(chose, str):
return '"%s"' % chose
if isinstance(chose, unicode):
return '"%s"' % chose.encode('utf8')
return str(chose)