in csv-gremlin/csv-gremlin.py [0:0]
def process_property(self,row,key):
cardinality = ''
result = ''
if key is None:
self.print_error('Unexpected additional column(s) with no header.')
return ''
kt = key.split(':')
if len(kt) > 1:
if kt[1].endswith('[]'):
if self.mode == self.EDGE:
self.print_error('Only vertices can have Set cardinality properties')
sys.exit(1)
else:
kt[1] = kt[1][0:-2]
cardinality = 'set,'
members = row[key].split(';')
else:
members = [row[key]]
try:
if kt[1].upper() in self.INTEGERS:
values = [int(x) for x in members]
elif kt[1].upper() in self.FLOATS:
values = [float(x) for x in members]
elif kt[1].upper() in self.BOOLS:
values = [self.process_boolean(x) for x in members]
elif kt[1].upper() == 'DATE':
values = [self.process_date(x) for x in members]
else:
values = [f'"{self.escape(x)}"' for x in members]
except TypeError as te:
result = ''
msg = f'For column [{kt[0]}] {str(te)}'
self.print_error(msg)
except ValueError as ve:
result = ''
msg = f'For column [{kt[0]}] {str(ve)}'
self.print_error(msg)
except Exception as ex:
result = ''
msg = f'For column [{kt[0]}] {str(ex)}'
self.print_error(msg)
else:
if None in values:
msg = f'For column [{kt[0]}] a value is required'
self.print_error(msg)
result = ''
else:
for p in values:
self.property_count += 1
result += f'.property({cardinality}\"{kt[0]}\",{p})'
else:
if row[key] is None:
result = ''
msg = f'For column [{kt[0]}] a value is required.'
self.print_error(msg)
else:
self.property_count += 1
result = f'.property("{kt[0]}","{self.escape(row[key])}")'
return result