class TimeSlotSchema(BaseSchema): start_date = validators.DateConverter(month_style='dd/mm/yyyy') start_time = validators.TimeConverter(use_datetime=True) end_date = validators.DateConverter(month_style='dd/mm/yyyy') end_time = validators.TimeConverter(use_datetime=True) primary = validators.Bool() heading = validators.Bool()
class AltNameSchema(Schema): if_key_missing = None Delete = validators.Bool() Culture = ciocvalidators.ActiveCulture(record_cultures=True) AltName = ciocvalidators.UnicodeString(max=200) New = validators.Bool()
class EventSchema(BaseSchema): type = EventTypeValidator(not_empty=True) proposal = ProposalValidator() title = validators.String() url = validators.String() publish = validators.Bool() exclusive = validators.Bool()
class SettingsForm(formencode.Schema): """ Validate Settings Page inputs. """ ADMINISTRATOR_NAME = formencode.All(validators.UnicodeString(not_empty=True), validators.PlainText()) ADMINISTRATOR_DISPLAY_NAME = formencode.All(validators.UnicodeString(not_empty=True), validators.PlainText()) ADMINISTRATOR_PASSWORD = validators.UnicodeString(not_empty=True) ADMINISTRATOR_EMAIL = validators.Email(not_empty=True) WEB_SERVER_PORT = PortValidator() SELECTED_DB = validators.UnicodeString(not_empty=True) URL_VALUE = validators.UnicodeString(not_empty=True) DEPLOY_CLUSTER = validators.Bool() CLUSTER_SCHEDULER = validators.UnicodeString(not_empty=True) KEYCLOAK_CONFIGURATION = validators.UnicodeString(not_empty=True) KEYCLOAK_WEB_CONFIGURATION = validators.UnicodeString() ENABLE_KEYCLOAK_LOGIN = validators.Bool() TVB_STORAGE = validators.UnicodeString(not_empty=True) USR_DISK_SPACE = DiskSpaceValidator(not_empty=True) MATLAB_EXECUTABLE = MatlabValidator() MAXIMUM_NR_OF_THREADS = ThreadNrValidator() MAXIMUM_NR_OF_VERTICES_ON_SURFACE = SurfaceVerticesNrValidator() MAXIMUM_NR_OF_OPS_IN_RANGE = validators.Int(min=5, max=5000, not_empty=True)
class BillingInfoSchema(ciocvalidators.RootSchema): StartRange = ciocvalidators.ISODateConverter() EndRange = ciocvalidators.ISODateConverter() IncludeCIC = validators.Bool() IncludeVOL = validators.Bool() OnlyAgencyCodes = ForEach(ciocvalidators.AgencyCodeValidator()) ExcludeAgencyCodes = ForEach(ciocvalidators.AgencyCodeValidator())
class EventSchema(BaseSchema): type = EventTypeValidator(not_empty=True) proposal = ProposalValidator() title = validators.String() url = validators.URL(add_http=True, check_exists=False) publish = validators.Bool() exclusive = validators.Bool()
class LayoutBaseSchema(Schema): if_key_missing = None Owner = ciocvalidators.AgencyCodeValidator() AlmostStandardsMode = validators.StringBool(if_empty=False) LayoutCSS = ciocvalidators.UnicodeString() LayoutCSSURL = ciocvalidators.Url(max=255) UseFontAwesome = validators.Bool() UseFullCIOCBootstrap = validators.Bool()
class DirectoryValidator(Schema): id = validators.String() service_ids = ForEach(validators.String()) sdk_keys = ForEach(validators.String()) premium = validators.Bool() name = validators.String() android_key = validators.String() ios_certificate_fingerprint = validators.String() active = validators.Bool() allow_extra_fields = True
class NaicsBaseSchema(Schema): if_key_missing = None NewCode = NaicsCode(not_empty=True) Parent = NaicsCode() CompUS = validators.Bool() CompMex = validators.Bool() chained_validators = [MaybeRequireParent()]
class DatastoreSchema(schema.Schema): uri=validators.UnicodeString(if_missing=None, if_empty=None) database=validators.UnicodeString(if_missing=None, if_empty=None) authenticate=AuthenticateSchema(if_missing=None, if_empty=None) connect_retry=validators.Number(if_missing=3, if_empty=0) use_greenlets = validators.Bool(if_missing=False) auto_ensure_indexes = validators.StringBool(if_missing=True) # pymongo tz_aware=validators.Bool(if_missing=False) slave_okay=validators.Bool(if_missing=False) max_pool_size=validators.Int(if_missing=10)
class DirectoryValidator(Schema): """Directory entity validator""" id = validators.String() service_ids = ForEach(validators.String()) sdk_keys = ForEach(validators.String()) premium = validators.Bool() name = validators.String() android_key = validators.String() ios_certificate_fingerprint = validators.String() active = validators.Bool() denial_context_inquiry_enabled = validators.Bool(if_empty=False, if_missing=False) webhook_url = validators.String() allow_extra_fields = True
class ProposalSchema(BaseSchema): allow_extra_fields = False title = validators.String(not_empty=True) abstract = validators.String(not_empty=True) technical_requirements = validators.String(not_empty=False) type = ProposalTypeValidator() audience = TargetAudienceValidator() accommodation_assistance = AccommodationAssistanceTypeValidator() travel_assistance = TravelAssistanceTypeValidator() project = validators.String() url = validators.String() abstract_video_url = validators.String() video_release = validators.Bool() slides_release = validators.Bool()
class PublicKeyValidator(Schema): id = validators.String() active = validators.Bool() date_created = ValidateISODate() date_expires = ValidateISODate() public_key = validators.String() allow_extra_fields = True
class AuthorizationResponsePackageValidator(Schema): """Authorization Response Package entity validator""" service_pins = ForEach() auth_request = validators.String() # UUID response = validators.Bool() device_id = validators.String() allow_extra_fields = True
def grab_past_data(self, data_src: str, game_name: str, date_from: date = None, date_to: date = None, log: bool = True, delete_old: bool = True) -> OrderedDict: try: self.data_src = data_src self.log = log game_name = validators.OneOf( api_config['game_names']).to_python(game_name) if date_from: date_from = validators.DateValidator().to_python(date_from) if date_to: date_to = validators.DateValidator().to_python(date_to) if date_from and date_to: if datetime.strptime(date_from, "%Y-%m-%d") > datetime.strptime( date_to, "%Y-%m-%d"): raise ValueError('Date from should be before date to') elif datetime.strptime(date_to, "%Y-%m-%d") > datetime.utcnow(): raise ValueError('Date to should be before in future') delete_old = validators.Bool().to_python(delete_old) except formencode_api.Invalid as exc: return str(exc) except ValueError as exc: return str(exc) return self.connector.grab_past_data(game_name, date_from, date_to, delete_old)
class SettingsForm(formencode.Schema): """ Validate Settings Page inputs. """ ADMINISTRATOR_NAME = formencode.All( validators.UnicodeString(not_empty=True), validators.PlainText()) ADMINISTRATOR_PASSWORD = validators.UnicodeString(not_empty=True) ADMINISTRATOR_EMAIL = validators.Email(not_empty=True) WEB_SERVER_PORT = PortValidator() MPLH5_SERVER_PORT = PortValidator() URL_WEB = validators.URL(not_empty=True, require_tld=False) URL_MPLH5 = AsciiValidator(not_empty=True) SELECTED_DB = validators.UnicodeString(not_empty=True) URL_VALUE = validators.UnicodeString(not_empty=True) DEPLOY_CLUSTER = validators.Bool() TVB_STORAGE = AsciiValidator(not_empty=True) USR_DISK_SPACE = DiskSpaceValidator(not_empty=True) MATLAB_EXECUTABLE = MatlabValidator() MAXIMUM_NR_OF_THREADS = ThreadNrValidator() MAXIMUM_NR_OF_VERTICES_ON_SURFACE = SurfaceVerticesNrValidator() MAXIMUM_NR_OF_OPS_IN_RANGE = validators.Int(min=5, max=5000, not_empty=True)
class RequesterAddCaseForm(Schema): reference = v.UnicodeString() private = v.Bool() background = v.UnicodeString(not_empty=True) classification = GetCaseClassification(not_emtpy=True) case_type = GetCaseType(not_empty=True) justification = v.UnicodeString(not_empty=True)
class GeneratorForm(formencode.Schema): use_builtin_gettext = False allow_extra_fields = True filter_extra_fields = True data_pdb = FileUploadValidator(not_empty=False, use_builtin_gettext=False) data_idpdb = validators.String(not_empty=False) zipped = validators.Bool()
def _generate_product_schema(self): # This function is similar to zkpylons.registration.RegistrationController._generate_product_schema # Since the form is arbitrarily defined by what product types there are, the validation # (aka schema) also needs to be dynamic. # Thus, this function generates a dynamic schema to validate a given set of products. # for category in c.product_categories: # handle each form input type individually as the validation is unique. if category.display == 'radio': # min/max can't be calculated on this form. You should only have 1 selected. ProductSchema.add_field('category_' + str(category.id), validators.Int(if_missing=None)) ProductSchema.add_field( 'category_' + str(category.id) + '_percentage', validators.Int(min=0, max=100, if_empty=0)) elif category.display == 'checkbox': for product in category.products_nonfree: ProductSchema.add_field('product_' + str(product.id), validators.Bool(if_missing=False)) ProductSchema.add_field( 'product_' + str(product.id) + '_percentage', validators.Int(min=0, max=100, if_empty=0)) elif category.display in ('select', 'qty'): for product in category.products_nonfree: ProductSchema.add_field( 'product_' + str(product.id) + '_qty', validators.Int(min=0, max=100, if_empty=0)) ProductSchema.add_field( 'product_' + str(product.id) + '_percentage', validators.Int(min=0, max=100, if_empty=0)) new_schema.add_field('products', ProductSchema)
class ServiceValidator(Schema): id = validators.String() icon = validators.String() name = validators.String() description = validators.String() active = validators.Bool() callback_url = validators.String() allow_extra_fields = True
class ProductSchema(BaseSchema): category = ProductCategoryValidator() active = validators.Bool() description = validators.String(not_empty=True) cost = validators.Int(min=0, max=20000000) auth = validators.String(if_empty=None) validate = validators.String(if_empty=None) ceilings = ForEach(CeilingValidator())
class ScheduleSchema(BaseSchema): time_slot = TimeSlotValidator(not_empty=True) location = LocationValidator(not_empty=True) event = EventValidator(not_empty=True) overflow = validators.Bool() video_url = validators.URL(add_http=True, check_exists=False, if_empty=None) audio_url = validators.URL(add_http=True, check_exists=False, if_empty=None) slide_url = validators.URL(add_http=True, check_exists=False, if_empty=None)
class SocialMediaBaseSchema(Schema): if_key_missing = None Active = validators.Bool() DefaultName = ciocvalidators.UnicodeString(max=100, not_empty=True) IconURL16 = ciocvalidators.URLWithProto(max=255, not_empty=True) IconURL24 = ciocvalidators.URLWithProto(max=255, not_empty=True) GeneralURL = ciocvalidators.UnicodeString(max=255)
class AddEvidenceForm(Schema): reference = v.UnicodeString(not_empty=True) bag_num = v.UnicodeString() type = GetEvidenceType(not_empty=True) originator = v.UnicodeString(not_empty=True) comments = v.UnicodeString(not_empty=True) location = v.UnicodeString(not_empty=True) qr = v.Bool() photo = ForEach(UploadEvidencePhoto())
class EditCaseForm(Schema): case_name = v.UnicodeString(not_empty=True) reference = v.UnicodeString() private = v.Bool() background = v.UnicodeString(not_empty=True) location = v.UnicodeString() justification = v.UnicodeString(not_empty=True) classification = GetCaseClassification(not_emtpy=True) case_type = GetCaseType(not_empty=True)
class EditForm(formencode.Schema): role = formencode.All(fv.UnicodeString(not_empty=False), fv.OneOf(ROLES)) password = formencode.All(fv.UnicodeString(not_empty=False)) first_name = formencode.All(fv.UnicodeString(not_empty=False), fv.MaxLength(64)) last_name = formencode.All(fv.UnicodeString(not_empty=False), fv.MaxLength(64)) default_timezone = fv.Int(not_empty=False) is_active = fv.Bool(not_empty=False)
class MappingSystemBaseSchema(Schema): if_key_missing = None NewWindow = validators.Bool() DefaultProvince = ciocvalidators.String(min=2, max=2, if_empty=None, not_empty=True) DefaultCountry = ciocvalidators.UnicodeString(max=50, not_empty=True)
class DatastoreSchema(schema.Schema): allow_extra_fields = True uri = validators.UnicodeString(if_missing=None, if_empty=None) database = validators.UnicodeString(if_missing=None, if_empty=None) connect_retry = validators.Number(if_missing=3, if_empty=0) auto_ensure_indexes = validators.StringBool(if_missing=True) # pymongo tz_aware = validators.Bool(if_missing=False)
class Objective(formencode.Schema): reference = validators.UnicodeString(not_empty=True, strip=True, encoding='utf-8') name = validators.UnicodeString(not_empty=True, encoding='utf-8') description = validators.UnicodeString(encoding='utf-8') section = compound.Any(validators.OneOf(["none","new"]), SectionId()) newsection = validators.UnicodeString(encoding='utf-8') rationale = validators.UnicodeString(encoding='utf-8') priority = validators.Int(not_empty=True, encoding='utf-8') applicable = validators.Bool()
class NaicsExclusionBaseSchema(Schema): if_key_missing = None Exclusion_ID = Any(ciocvalidators.IDValidator(), validators.OneOf(["NEW"])) LangID = validators.Int(min=0, max=ciocvalidators.MAX_SMALL_INT, not_empty=True) Description = ciocvalidators.UnicodeString( max=255) # sometimes required as per RequireIfPredicate below Establishment = validators.Bool() UseCodes = foreach.ForEach(ciocvalidators.NaicsCode()) delete = validators.Bool() chained_validators = [ ciocvalidators.RequireIfPredicate(description_required, ["Description"]) ]