start documenting with reST syntax.
import types
from decorator import decorator
from .user import vUser
from .schema import Offer
from .dbdefer import dbdefer
from .pool import runInDBPool
from ..error import ValidateException
@dbdefer
def vRoute(session, value, field, typ, allowString=True, allowList=True):
str_ = False
ret = []
if type(value) is types.StringType:
if not allowString:
raise ValidateException(field=field,msg='%s must be a list of routes.'%field)
str_=True
value=[value]
elif not allowList:
raise ValidateException(field=field,msg='%s must be a route - No list of routes.'%field)
routes = [o.name for o in Offer.routes(session,typ)]
providers = [o.provider for o in Offer.providers(session,typ)]
for v in value:
if v not in routes and v not in providers and v != "default":
raise ValidateException(field=field,msg='Route %s is not valid.'%v)
if v not in ret:
ret.append(v)
if str_:
return ret[0]
return ret
@dbdefer
def vTyp(value,field, session):
for typ in Offer.typs(session):
if value == typ[0]:
break
else:
raise ValidateException(field=field,msg='Typ %s is not valid.'%value)
return value