def from_dict(cls, adict): invalid_req = InvalidRequestObject() schema = Schema( { Required('full_name'): All(str, Length(min=1, max=128)), Required('reg_date'): Any( All( datetime.date, Range(min=datetime.date(1000, 1, 1), max=datetime.date.today())), Datetime('%Y-%m-%d')), }, extra=REMOVE_EXTRA) try: values = schema(adict) except MultipleInvalid as exc: for error in exc.errors: try: invalid_req.add_error(parameter='.'.join( [p for p in error.path]), message=error.error_message) except TypeError as e: invalid_req.add_error(parameter='.'.join( [p.schema for p in error.path]), message=error.error_message) if invalid_req.has_errors(): return invalid_req return ReaderAddRequestObject(init_values=values)
def from_dict(cls, adict): invalid_req = InvalidRequestObject() schema = Schema( { Required('title'): All(str, Length(min=1, max=128)), Required('author'): All(str, Length(min=1, max=128)), Required('year'): Any( Datetime('%Y'), All(int, Range(min=1000, max=datetime.datetime.now().year))), Required('language'): All(str, Length(min=1, max=128)), }, extra=REMOVE_EXTRA) try: values = schema(adict) except MultipleInvalid as exc: for error in exc.errors: try: invalid_req.add_error(parameter='.'.join( [p for p in error.path]), message=error.error_message) except TypeError as e: invalid_req.add_error(parameter='.'.join( [p.schema for p in error.path]), message=error.error_message) if invalid_req.has_errors(): return invalid_req return BookAddRequestObject(init_values=values)
str, 'locales': Any([str], [None]), 'branch': str, 'platform': Any(str, None), 'version': str, 'revision': str, 'build_number': int, 'release_eta': Any(None, Datetime(format='%Y-%m-%dT%H:%M:%S.%f')), Extra: object, }, 'signing': { 'signature': str, }, Extra: object, }, Required('metadata', msg="Required for TaskCluster schema."): { 'name': All(str, Length(max=255)), 'description': All(str, Length(max=32768)), 'owner': All(Email(), Length(max=255)), 'source': All(Url(), Length(max=4096)), },
def test_datetime(): schema = Schema({"datetime": Datetime()}) schema({"datetime": "2016-10-24T14:01:57.102152Z"}) assert_raises(MultipleInvalid, schema, {"datetime": "2016-10-24T14:01:57"})
Required('reruns', msg="Required for releasetasks schema."): Range(min=0, max=100), Required('taskId', msg="Required for TaskCluster schema."): Match(TASKCLUSTER_ID_REGEX), Required('task', msg="Required for TaskCluster schema."): All(task_provisionerId_test, Schema({ Required('created', msg="Required for TaskCluster schema."): str, Required('deadline', msg="Required for TaskCluster schema."): str, Required('extra', msg="Required for releasetasks schema."): { 'task_name': str, 'build_props': { 'product': str, 'locales': Any([str], [None]), 'branch': str, 'platform': Any(str, None), 'version': str, 'revision': str, 'build_number': int, 'release_eta': Any(None, Datetime(format='%Y-%m-%dT%H:%M:%S.%f')), Extra: object, }, 'signing': { 'signature': str, }, Extra: object, }, Required('metadata', msg="Required for TaskCluster schema."): { 'name': All(str, Length(max=255)), 'description': All(str, Length(max=32768)), 'owner': All(Email(), Length(max=255)), 'source': All(Url(), Length(max=4096)), }, Required('payload', msg="Required for TaskCluster schema."): { Extra: object,
Optional('radius', default=10, msg="radius must be a positive whole number of meters"): Any(int, Range(min=0)), # Now that we have our bounding box defined, we now set the trigger. Ingress or egress? Optional('trigger', default=_reminder_triggers[0]): In(_reminder_triggers, msg="Location based reminder can be trigger on ONE OF {}".format( _reminder_triggers)) } } # Todoist also supports an absolute date/time reminder which is just a full date×tamp _absolute_reminder_schema = { # There must be a WHEN object which must be _iso_8601_fmt Required('when'): Datetime(format=iso_8601_fmt) } # Users can set an arbitrary number of minutes from 'now' to fire a reminder off with _relative_reminder_schema = { # TODO: in the future, it might be possible to add support for calculating a relative offset. E.G.: remind me 15min # after $other_task_due or some fixed time in the future # TODO: it may also be nice to implement some code to allow the users to specify an offset in hours or days and # calculate the minute_offset for them. ## # for now, we ONLY support an arbitrary number of minutes from now()! # minutes from now must be a positive integer! Required('minutes'): Range(min=1) }
All(Coerce(int), Range(min=1)), }) insert_contract_schema = Schema({ Required('user_id'): All(Coerce(int), Range(min=1)), Required('contract_type'): All(Coerce(int), Range(min=0, max=2)), Required('rank_reward_bonus_rate'): All(Coerce(float), Range(min=0.0, max=1.0)), Required('basic_salary', default=0): All(Coerce(int), Range(min=0)), Required('gift_exponent_share', default=0.5): All(Coerce(float), Range(min=0.0)), Required('start_from'): All(Coerce(Datetime('%Y-%m-%d %H:%M:%S'))), }) get_all_contract_schema = Schema({ Required('user_id'): All(Coerce(int), Range(min=1)), }) notification_schema = Schema({ Required('user_id'): All(Coerce(int), Range(min=1)), Required('master_user_id'): All(Coerce(int), Range(min=1)), 'modify': All(Coerce(int), Range(min=0, max=1)), })