import connection import consts import cypher_queries def generate_labels_json_filename(labels): return f'{consts.EXPORT_FILES_PREFIX}{"_".join(labels)}.json' def generate_relationship_json_filename(start_label, relationship, end_label): return f'{consts.EXPORT_FILES_PREFIX}{start_label}__{relationship}__{end_label}.json' def get_node_properties(node_labels, exclude_labels=""): """Find all property names for the given node labels.""" with connection.driver.session() as s_source: cypher = cypher_queries.LABEL_UNIQUE_KEYS.format(labels=node_labels, exclude_labels=exclude_labels) properties_result = s_source.run(cypher) properties = properties_result.value()[0] return properties def get_relation_properties(start_label, relationship, end_label): with connection.driver.session() as s_source: cypher = cypher_queries.RELATION_UNIQUE_KEYS.format( start_label=f':{start_label}', relationship=f':{relationship}', end_label=f':{end_label}') properties_result = s_source.run(cypher) properties = properties_result.value()[0] return properties def camel_case_to_upper_snake_case(string): return (''.join(['_' + i.lower() if i.isupper() else i for i in string]).lstrip('_')).upper()