def validate(self): validators.validate_string(self.pipeline_name, "pipeline_name") validators.validate_list(self.raw_data_sources, "raw_data_sources") for i, raw_data_source in enumerate(self.raw_data_sources): assert isinstance( raw_data_source, RawDataSource ), f"raw_data_sources[{i}] is not of type of RawDataSource" raw_data_source.validate() assert isinstance(self.phone_number_uuid_table, PhoneNumberUuidTable) self.phone_number_uuid_table.validate() validators.validate_list(self.rapid_pro_key_remappings, "rapid_pro_key_remappings") for i, remapping in enumerate(self.rapid_pro_key_remappings): assert isinstance(remapping, RapidProKeyRemapping), \ f"rapid_pro_key_mappings[{i}] is not of type RapidProKeyRemapping" remapping.validate() validators.validate_datetime(self.project_start_date, "project_start_date") validators.validate_datetime(self.project_end_date, "project_end_date") validators.validate_bool(self.filter_test_messages, "filter_test_messages") validators.validate_bool(self.move_ws_messages, "move_ws_messages") if self.drive_upload is not None: assert isinstance(self.drive_upload, DriveUpload), \ "drive_upload is not of type DriveUpload" self.drive_upload.validate() validators.validate_string(self.memory_profile_upload_url_prefix, "memory_profile_upload_url_prefix")
def validate(self): validators.validate_string(self.code_id, f"Code id '{self.code_id}'") validators.validate_string(self.display_text, f"'display_text' property of Code with id '{self.code_id}'") validators.validate_string(self.code_type, f"'code_type' property of Code with id '{self.code_id}'") assert self.code_type in self.VALID_CODE_TYPES, f"'code_type' property '{self.code_type}' of Code with id " \ f"'{self.code_id}' is not one of {self.VALID_CODE_TYPES}" if self.code_type == CodeTypes.CONTROL: validators.validate_string(self.control_code, f"'control_code' property of Code with id '{self.code_id}'") if self.code_type == CodeTypes.META: validators.validate_string(self.meta_code, f"'meta_code' property of Code with id '{self.code_id}'") if self.shortcut is not None: validators.validate_string(self.shortcut, f"'shortcut' property of Code with id '{self.code_id}'") assert len(self.shortcut) == 1, f"'shortcut' property '{self.shortcut}' of Code with id '{self.code_id}' " \ f"is not a single character" validators.validate_int(self.numeric_value, f"'numeric_value' property of Code with id '{self.code_id}'") validators.validate_string(self.string_value, f"'string_value' property of Code with id '{self.code_id}'") validators.validate_bool(self.visible_in_coda, f"'visible_in_coda' property of Code with id '{self.code_id}'") if self.color is not None: validators.validate_string(self.color, f"'color' property of Code with id '{self.code_id}'") if self.match_values is not None: validators.validate_list(self.match_values, f"'match_values' property of Code with id '{self.code_id}'") for i, match_value in enumerate(self.match_values): validators.validate_string(match_value, f"'match_values[{i}]' property of Code with id '{self.code_id}'")
def validate(self): validators.validate_string(self.rapid_pro_domain, "rapid_pro_domain") validators.validate_string(self.rapid_pro_token_file_url, "rapid_pro_token_file_url") validators.validate_list(self.activation_flow_names, "activation_flow_names") for i, activation_flow_name in enumerate(self.activation_flow_names): validators.validate_string(activation_flow_name, f"activation_flow_names[{i}]") validators.validate_list(self.survey_flow_names, "survey_flow_names") for i, survey_flow_name in enumerate(self.survey_flow_names): validators.validate_string(survey_flow_name, f"survey_flow_names[{i}]") if self.recovery_csv_urls is not None: validators.validate_list(self.recovery_csv_urls, "recovery_csv_urls") for i, recovery_csv_url in enumerate(self.recovery_csv_urls): validators.validate_string(recovery_csv_url, f"recovery_csv_urls[{i}]") validators.validate_list(self.rapid_pro_test_contact_uuids, "rapid_pro_test_contact_uuids") for i, contact_uuid in enumerate(self.rapid_pro_test_contact_uuids): validators.validate_string(contact_uuid, f"rapid_pro_test_contact_uuids[{i}]") assert isinstance(self.phone_number_uuid_table, PhoneNumberUuidTable) self.phone_number_uuid_table.validate() validators.validate_list(self.rapid_pro_key_remappings, "rapid_pro_key_remappings") for i, remapping in enumerate(self.rapid_pro_key_remappings): assert isinstance(remapping, RapidProKeyRemapping), \ f"rapid_pro_key_mappings[{i}] is not of type RapidProKeyRemapping" remapping.validate() validators.validate_datetime(self.project_start_date, "project_start_date") validators.validate_datetime(self.project_end_date, "project_end_date") validators.validate_bool(self.filter_test_messages, "filter_test_messages") if self.filter_operator is not None: validators.validate_string(self.filter_operator, "filter_operator") if self.drive_upload is not None: assert isinstance(self.drive_upload, DriveUpload), \ "drive_upload is not of type DriveUpload" self.drive_upload.validate() validators.validate_string(self.flow_definitions_upload_url_prefix, "flow_definitions_upload_url_prefix")
def validate(self): validators.validate_string(self.scheme_id, "scheme_id") validators.validate_string(self.code_id, "code_id") validators.validate_utc_iso_string(self.date_time_utc, "date_time_utc") if self.checked is not None: validators.validate_bool(self.checked, "checked") if self.confidence is not None: # Not type-checking self.confidence is a float, because Firebase can return either an int or a float. # Relying on >= and <= not being defined between numeric and non-numeric types to get an 'is-numeric' # type-check as a side-effect of the >= and <= tests. assert 0 <= self.confidence <= 1, "self.confidence ({}) is not in range [0, 1]".format( self.confidence) if self.label_set is not None: validators.validate_int(self.label_set, "label_set") assert isinstance(self.origin, Origin), "self.origin not of type Origin" self.origin.validate()
def validate(self): validators.validate_string(self.pipeline_name, "pipeline_name") validators.validate_list(self.raw_data_sources, "raw_data_sources") for i, raw_data_source in enumerate(self.raw_data_sources): assert isinstance( raw_data_source, RawDataSource ), f"raw_data_sources[{i}] is not of type RawDataSource" raw_data_source.validate() assert isinstance(self.uuid_table, UuidTable) self.uuid_table.validate() validators.validate_list(self.source_key_remappings, "source_key_remappings") for i, remapping in enumerate(self.source_key_remappings): assert isinstance(remapping, SourceKeyRemapping), \ f"source_key_mappings[{i}] is not of type SourceKeyRemapping" remapping.validate() validators.validate_datetime(self.project_start_date, "project_start_date") validators.validate_datetime(self.project_end_date, "project_end_date") validators.validate_bool(self.filter_test_messages, "filter_test_messages") validators.validate_bool(self.move_ws_messages, "move_ws_messages") if self.drive_upload is not None: assert isinstance(self.drive_upload, DriveUpload), \ "drive_upload is not of type DriveUpload" self.drive_upload.validate() validators.validate_url(self.memory_profile_upload_bucket, "memory_profile_upload_bucket", "gs") validators.validate_url(self.data_archive_upload_bucket, "data_archive_upload_bucket", "gs") validators.validate_string(self.bucket_dir_path, "bucket_dir_path")
def validate(self): validators.validate_bool(self.generate_region_theme_distribution_maps, "generate_region_theme_distribution_maps") validators.validate_bool( self.generate_district_theme_distribution_maps, "generate_district_theme_distribution_maps") validators.validate_bool( self.generate_mogadishu_theme_distribution_maps, "generate_mogadishu_theme_distribution_maps")
def validate(self): validators.validate_bool(self.is_activation_message, "is_activation_message") validators.validate_string(self.rapid_pro_key, "rapid_pro_key") validators.validate_string(self.pipeline_key, "pipeline_key")
def validate(self): validators.validate_bool(self.generate_county_theme_distribution_maps, "generate_county_theme_distribution_maps") validators.validate_bool(self.generate_constituency_theme_distribution_maps, "generate_constituency_theme_distribution_maps")
def validate(self): validators.validate_bool(self.is_activation_message, "is_activation_message") validators.validate_string(self.source_key, "source_key") validators.validate_string(self.pipeline_key, "pipeline_key")