def process_property()

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