in scripts/generators/csv_generator.py [0:0]
def save_csv(file: str, sorted_fields: List[Field], version: str) -> None:
open_mode: str = "wb"
if sys.version_info >= (3, 0):
open_mode: str = "w"
with open(file, open_mode) as csvfile:
schema_writer: _csv._writer = csv.writer(csvfile,
delimiter=',',
quoting=csv.QUOTE_MINIMAL,
lineterminator='\n')
schema_writer.writerow(["ECS_Version", "Indexed", "Field_Set", "Field",
"Type", "Level", "Normalization", "Example", "Description"])
for field in sorted_fields:
key_parts: List[str] = field['flat_name'].split('.')
if len(key_parts) == 1:
field_set: str = 'base'
else:
field_set: str = key_parts[0]
indexed: str = str(field.get('index', True)).lower()
schema_writer.writerow([
version,
indexed,
field_set,
field['flat_name'],
field['type'],
field['level'],
', '.join(field['normalize']),
field.get('example', ''),
field['short'],
])
if 'multi_fields' in field:
for mf in field['multi_fields']:
schema_writer.writerow([
version,
indexed,
field_set,
mf['flat_name'],
mf['type'],
field['level'],
'',
field.get('example', ''),
field['short'],
])