def create_template(schema, output_name='releases', output_format='all', main_sheet_name='main', flatten=False, rollup=False, root_id='ocid', use_titles=False, **_): """ Creates template file(s) from given inputs This function is built to deal with commandline input and arguments but to also be called from elswhere in future """ parser = SchemaParser(schema_filename=schema, main_sheet_name=main_sheet_name, rollup=rollup, root_id=root_id, use_titles=use_titles) parser.parse() def spreadsheet_output(spreadsheet_output_class, name): spreadsheet_output = spreadsheet_output_class( parser=parser, main_sheet_name=main_sheet_name, output_name=name) spreadsheet_output.write_sheets() if output_format == 'all': for format_name, spreadsheet_output_class in OUTPUT_FORMATS.items(): spreadsheet_output(spreadsheet_output_class, output_name+FORMATS_SUFFIX[format_name]) elif output_format in OUTPUT_FORMATS.keys(): # in dictionary of allowed formats spreadsheet_output(OUTPUT_FORMATS[output_format], output_name) else: raise Exception('The requested format is not available')
def create_template(schema, output_name=None, output_format='all', main_sheet_name='main', rollup=False, root_id=None, use_titles=False, disable_local_refs=False, truncation_length=3, no_deprecated_fields=False, **_): """ Creates template file(s) from given inputs This function is built to deal with commandline input and arguments but to also be called from elswhere in future """ parser = SchemaParser(schema_filename=schema, rollup=rollup, root_id=root_id, use_titles=use_titles, disable_local_refs=disable_local_refs, truncation_length=truncation_length, exclude_deprecated_fields=no_deprecated_fields) parser.parse() def spreadsheet_output(spreadsheet_output_class, name): spreadsheet_output = spreadsheet_output_class( parser=parser, main_sheet_name=main_sheet_name, output_name=name) spreadsheet_output.write_sheets() if output_format == 'all': if not output_name: output_name = 'template' for format_name, spreadsheet_output_class in OUTPUT_FORMATS.items(): spreadsheet_output(spreadsheet_output_class, output_name+FORMATS_SUFFIX[format_name]) elif output_format in OUTPUT_FORMATS.keys(): # in dictionary of allowed formats if not output_name: output_name = 'template' + FORMATS_SUFFIX[output_format] spreadsheet_output(OUTPUT_FORMATS[output_format], output_name) else: raise Exception('The requested format is not available')
def flatten(input_name, schema=None, output_name=None, output_format='all', main_sheet_name='main', root_list_path='main', root_is_list=False, sheet_prefix='', filter_field=None, filter_value=None, rollup=False, root_id=None, use_titles=False, xml=False, id_name='id', disable_local_refs=False, remove_empty_schema_columns=False, truncation_length=3, **_): """ Flatten a nested structure (JSON) to a flat structure (spreadsheet - csv or xlsx). """ if (filter_field is None and filter_value is not None) or (filter_field is not None and filter_value is None): raise Exception('You must use filter_field and filter_value together') if schema: schema_parser = SchemaParser( schema_filename=schema, rollup=rollup, root_id=root_id, use_titles=use_titles, disable_local_refs=disable_local_refs, truncation_length=truncation_length) schema_parser.parse() else: schema_parser = None parser = JSONParser( json_filename=input_name, root_list_path=None if root_is_list else root_list_path, schema_parser=schema_parser, root_id=root_id, use_titles=use_titles, xml=xml, id_name=id_name, filter_field=filter_field, filter_value=filter_value, remove_empty_schema_columns=remove_empty_schema_columns, truncation_length=truncation_length) parser.parse() def spreadsheet_output(spreadsheet_output_class, name): spreadsheet_output = spreadsheet_output_class( parser=parser, main_sheet_name=main_sheet_name, output_name=name, sheet_prefix=sheet_prefix) spreadsheet_output.write_sheets() if output_format == 'all': if not output_name: output_name = 'flattened' for format_name, spreadsheet_output_class in OUTPUT_FORMATS.items(): spreadsheet_output(spreadsheet_output_class, output_name+FORMATS_SUFFIX[format_name]) elif output_format in OUTPUT_FORMATS.keys(): # in dictionary of allowed formats if not output_name: output_name = 'flattened' + FORMATS_SUFFIX[output_format] spreadsheet_output(OUTPUT_FORMATS[output_format], output_name) else: raise Exception('The requested format is not available')
def flatten(input_name, schema=None, output_name='releases', output_format='all', main_sheet_name='main', root_list_path='releases', rollup=False, root_id='ocid', use_titles=False, **_): """ Flatten a nested structure (JSON) to a flat structure (spreadsheet - csv or xlsx). """ if schema: schema_parser = SchemaParser(schema_filename=schema, rollup=rollup, root_id=root_id, use_titles=use_titles, main_sheet_name=main_sheet_name) schema_parser.parse() else: schema_parser = None parser = JSONParser(json_filename=input_name, root_list_path=root_list_path, schema_parser=schema_parser, main_sheet_name=main_sheet_name, root_id=root_id, use_titles=use_titles) parser.parse() def spreadsheet_output(spreadsheet_output_class, name): spreadsheet_output = spreadsheet_output_class( parser=parser, main_sheet_name=main_sheet_name, output_name=name) spreadsheet_output.write_sheets() if output_format == 'all': for format_name, spreadsheet_output_class in OUTPUT_FORMATS.items(): spreadsheet_output(spreadsheet_output_class, output_name + FORMATS_SUFFIX[format_name]) elif output_format in OUTPUT_FORMATS.keys( ): # in dictionary of allowed formats spreadsheet_output(OUTPUT_FORMATS[output_format], output_name) else: raise Exception('The requested format is not available')
def create_template(schema, output_name=None, output_format='all', main_sheet_name='main', rollup=False, root_id=None, use_titles=False, disable_local_refs=False, truncation_length=3, no_deprecated_fields=False, **_): """ Creates template file(s) from given inputs This function is built to deal with commandline input and arguments but to also be called from elswhere in future """ parser = SchemaParser(schema_filename=schema, rollup=rollup, root_id=root_id, use_titles=use_titles, disable_local_refs=disable_local_refs, truncation_length=truncation_length, exclude_deprecated_fields=no_deprecated_fields) parser.parse() def spreadsheet_output(spreadsheet_output_class, name): spreadsheet_output = spreadsheet_output_class( parser=parser, main_sheet_name=main_sheet_name, output_name=name) spreadsheet_output.write_sheets() if output_format == 'all': if not output_name: output_name = 'template' for format_name, spreadsheet_output_class in OUTPUT_FORMATS.items(): spreadsheet_output(spreadsheet_output_class, output_name + FORMATS_SUFFIX[format_name]) elif output_format in OUTPUT_FORMATS.keys( ): # in dictionary of allowed formats if not output_name: output_name = 'template' + FORMATS_SUFFIX[output_format] spreadsheet_output(OUTPUT_FORMATS[output_format], output_name) else: raise Exception('The requested format is not available')
def flatten(input_name, schema=None, output_name='releases', output_format='all', main_sheet_name='main', root_list_path='releases', rollup=False, root_id='ocid', use_titles=False, **_): """ Flatten a nested structure (JSON) to a flat structure (spreadsheet - csv or xlsx). """ if schema: schema_parser = SchemaParser( schema_filename=schema, rollup=rollup, root_id=root_id, use_titles=use_titles, main_sheet_name=main_sheet_name) schema_parser.parse() else: schema_parser = None parser = JSONParser( json_filename=input_name, root_list_path=root_list_path, schema_parser=schema_parser, main_sheet_name=main_sheet_name, root_id=root_id, use_titles=use_titles) parser.parse() def spreadsheet_output(spreadsheet_output_class, name): spreadsheet_output = spreadsheet_output_class( parser=parser, main_sheet_name=main_sheet_name, output_name=name) spreadsheet_output.write_sheets() if output_format == 'all': for format_name, spreadsheet_output_class in OUTPUT_FORMATS.items(): spreadsheet_output(spreadsheet_output_class, output_name+FORMATS_SUFFIX[format_name]) elif output_format in OUTPUT_FORMATS.keys(): # in dictionary of allowed formats spreadsheet_output(OUTPUT_FORMATS[output_format], output_name) else: raise Exception('The requested format is not available')
def create_template(schema, output_name='releases', output_format='all', main_sheet_name='main', flatten=False, rollup=False, root_id='ocid', use_titles=False, **_): """ Creates template file(s) from given inputs This function is built to deal with commandline input and arguments but to also be called from elswhere in future """ parser = SchemaParser(schema_filename=schema, main_sheet_name=main_sheet_name, rollup=rollup, root_id=root_id, use_titles=use_titles) parser.parse() def spreadsheet_output(spreadsheet_output_class, name): spreadsheet_output = spreadsheet_output_class( parser=parser, main_sheet_name=main_sheet_name, output_name=name) spreadsheet_output.write_sheets() if output_format == 'all': for format_name, spreadsheet_output_class in OUTPUT_FORMATS.items(): spreadsheet_output(spreadsheet_output_class, output_name + FORMATS_SUFFIX[format_name]) elif output_format in OUTPUT_FORMATS.keys( ): # in dictionary of allowed formats spreadsheet_output(OUTPUT_FORMATS[output_format], output_name) else: raise Exception('The requested format is not available')
def flatten(input_name, schema=None, output_name=None, output_format='all', main_sheet_name='main', root_list_path='main', root_is_list=False, sheet_prefix='', filter_field=None, filter_value=None, preserve_fields=None, rollup=False, root_id=None, use_titles=False, xml=False, id_name='id', disable_local_refs=False, remove_empty_schema_columns=False, truncation_length=3, **_): """ Flatten a nested structure (JSON) to a flat structure (spreadsheet - csv or xlsx). """ if (filter_field is None and filter_value is not None) or (filter_field is not None and filter_value is None): raise Exception('You must use filter_field and filter_value together') if schema: schema_parser = SchemaParser(schema_filename=schema, rollup=rollup, root_id=root_id, use_titles=use_titles, disable_local_refs=disable_local_refs, truncation_length=truncation_length) schema_parser.parse() else: schema_parser = None parser = JSONParser( json_filename=input_name, root_list_path=None if root_is_list else root_list_path, schema_parser=schema_parser, rollup=rollup, root_id=root_id, use_titles=use_titles, xml=xml, id_name=id_name, filter_field=filter_field, filter_value=filter_value, preserve_fields=preserve_fields, remove_empty_schema_columns=remove_empty_schema_columns, truncation_length=truncation_length) parser.parse() def spreadsheet_output(spreadsheet_output_class, name): spreadsheet_output = spreadsheet_output_class( parser=parser, main_sheet_name=main_sheet_name, output_name=name, sheet_prefix=sheet_prefix) spreadsheet_output.write_sheets() if output_format == 'all': if not output_name: output_name = 'flattened' for format_name, spreadsheet_output_class in OUTPUT_FORMATS.items(): spreadsheet_output(spreadsheet_output_class, output_name + FORMATS_SUFFIX[format_name]) elif output_format in OUTPUT_FORMATS.keys( ): # in dictionary of allowed formats if not output_name: output_name = 'flattened' + FORMATS_SUFFIX[output_format] spreadsheet_output(OUTPUT_FORMATS[output_format], output_name) else: raise Exception('The requested format is not available')