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