corriger @defaults pour les chaines vides

en mode debug, utiliser set_verbosity('--debug')
This commit is contained in:
Jephté Clain 2014-03-07 08:03:27 +04:00
parent 6652b8ce2d
commit c3b66b5c5c
1 changed files with 19 additions and 10 deletions

View File

@ -8,7 +8,7 @@ from os import path
from ulib.base.base import isstr, isbool, isnum, isflt, seqof, make_prop
from ulib.base.uio import _u, Utf8IO
from ulib.base.output import enote, edebug
from ulib.base.output import set_verbosity, enote, edebug
from ulib.base.args import get_args
from ulib.base.dates import rfc2822
from ulib.base.functions import apply_args
@ -115,23 +115,28 @@ def defaults(*required, **defaults):
Si la valeur par défaut est respectivement une chaine, un booléen, un entier,
une valeur flottante, la valeur de la requête est automatiquement convertie
et la valeur effective sera toujours respectivement une chaine, un booléen,
un entier, une valeur flottante
un entier, une valeur flottante.
Si la valeur par défaut est None, la valeur de la requête sera convertie en
None si elle est vide.
"""
def decorator(method):
def wrapper(*args, **kw):
self = args[0:1] and args[0] or None
if self is not None:
self.defaults = web.input(*required, **defaults)
webinput = self.defaults = web.input(*required, **defaults)
def fix(name, format):
value = self.defaults[name] or None
if format is not None:
self.defaults[name] = format.parse(value)
value = webinput.get(name, None)
if format is None and not value:
webinput[name] = None
elif format is not None:
webinput[name] = format.parse(value)
for name, value in defaults.items():
if isstr(value): fix(name, unicodeF)
elif isbool(value): fix(name, booleanF)
elif isnum(value): fix(name, integerF)
elif isflt(value): fix(name, floatF)
else: fix(name, None)
elif value is None: fix(name, None)
return method(*args, **kw)
return wrapper
return decorator
@ -340,8 +345,10 @@ class Application(object):
est prévue pour être dérivée.
"""
if web.config.debug:
edebug(u"Configuration des routes: %s" % str(self.webapp.mapping))
enote(u"Lancement du serveur sur http://%s:%i" % (self.HOST, self.PORT))
edebug("basedir: %s" % self.basedir)
edebug("templatedir: %s" % self.templatedir)
edebug("Configuration des routes: %s" % str(self.webapp.mapping))
enote("Lancement du serveur sur http://%s:%i" % (self.HOST, self.PORT))
def new_render(self, templatedir=None):
u"""Retourner une nouvelle instance de web.template.render
@ -472,7 +479,9 @@ class Application(object):
elif option in ('-s', '--server-socket'): server_socket = value
elif option in ('-H', '--host'): self.HOST = value
elif option in ('-P', '--port'): self.PORT = int(value)
elif option in ('-D', '--debug'): self.DEBUG = True
elif option in ('-D', '--debug'):
self.DEBUG = True
set_verbosity('--debug')
self.args = args
self.process_args(args)
self.__configure()