def _add_format_fields(schema, formats, allow_incompatible_schema=False): # type: (bigquery.TableFieldSchema, Dict[str, _Format], bool) -> None for field in schema.fields: if field.name in _CONSTANT_CALL_FIELDS: continue if (field.name in list(vcf_reserved_fields.FORMAT_FIELDS.keys()) and not allow_incompatible_schema): reserved_definition = vcf_reserved_fields.FORMAT_FIELDS.get( field.name) _validate_reserved_field(field, reserved_definition) formats.update({ field.name: vcf_header_io.CreateFormatField( field.name, reserved_definition.num, reserved_definition.type, _remove_special_characters(field.description or reserved_definition.desc)) }) else: formats.update({ field.name: vcf_header_io.CreateFormatField( field.name, bigquery_util.get_vcf_num_from_bigquery_schema( field.mode, field.type), bigquery_util.get_vcf_type_from_bigquery_type(field.type), _remove_special_characters(field.description)) })
def _add_info_fields(field, infos, allow_incompatible_schema=False): # type: (bigquery.TableFieldSchema, Dict[str, _Info], bool) -> None if field.name == bigquery_util.ColumnKeyConstants.ALTERNATE_BASES: _add_info_fields_from_alternate_bases(field, infos, allow_incompatible_schema) elif (field.name in list(vcf_reserved_fields.INFO_FIELDS.keys()) and not allow_incompatible_schema): reserved_definition = vcf_reserved_fields.INFO_FIELDS.get(field.name) _validate_reserved_field(field, reserved_definition) infos.update({ field.name: vcf_header_io.CreateInfoField( field.name, reserved_definition.num, reserved_definition.type, _remove_special_characters(field.description or reserved_definition.desc)) }) else: infos.update({ field.name: vcf_header_io.CreateInfoField( field.name, bigquery_util.get_vcf_num_from_bigquery_schema( field.mode, field.type), bigquery_util.get_vcf_type_from_bigquery_type(field.type), _remove_special_characters(field.description)) })
def test_get_vcf_num_from_bigquery_schema(self): self.assertEqual('.', bigquery_util.get_vcf_num_from_bigquery_schema( bigquery_util.TableFieldConstants.MODE_REPEATED, bigquery_util.TableFieldConstants.TYPE_INTEGER)) self.assertEqual(1, bigquery_util.get_vcf_num_from_bigquery_schema( bigquery_util.TableFieldConstants.MODE_NULLABLE, bigquery_util.TableFieldConstants.TYPE_INTEGER)) self.assertEqual(0, bigquery_util.get_vcf_num_from_bigquery_schema( bigquery_util.TableFieldConstants.MODE_NULLABLE, bigquery_util.TableFieldConstants.TYPE_BOOLEAN)) self.assertEqual( 0, bigquery_util.get_vcf_num_from_bigquery_schema( bigquery_mode=None, bigquery_type=bigquery_util.TableFieldConstants.TYPE_BOOLEAN))