in gremlin-python/src/main/python/gremlin_python/process/traversal.py [0:0]
def _arg_as_string(self, arg):
if arg is None:
return 'null'
if isinstance(arg, str):
return f'{arg!r}' # use repr() format for canonical string rep
# return f'"{arg}"'
if isinstance(arg, bool):
return 'true' if arg else 'false'
if isinstance(arg, SingleByte):
return f'{arg}B'
if isinstance(arg, short):
return f'{arg}S'
if isinstance(arg, long):
return f'{arg}L'
if isinstance(arg, bigint):
return f'{arg}N'
if isinstance(arg, int):
return f'{arg}'
if isinstance(arg, float):
# converting floats into doubles for script since python doesn't distinguish and java defaults to double
if math.isnan(arg):
return "NaN"
elif math.isinf(arg) and arg > 0:
return "+Infinity"
elif math.isinf(arg) and arg < 0:
return "-Infinity"
else:
return f'{arg}D'
if isinstance(arg, BigDecimal):
return f'{arg.value}M'
if isinstance(arg, datetime):
return f'datetime("{arg.isoformat()}")'
if isinstance(arg, Enum):
tmp = str(arg)
if tmp.endswith('_'):
return tmp[0:-1]
elif '_' in tmp:
return f'{tmp.split("_")[0]}{tmp.split("_")[1].capitalize()}'
else:
return tmp
if isinstance(arg, Vertex):
return f'new ReferenceVertex({self._arg_as_string(arg.id)},\'{arg.label}\')'
if isinstance(arg, P):
return self._process_predicate(arg)
if isinstance(arg, GremlinLang) or isinstance(arg, Traversal):
gremlin_lang = arg if isinstance(arg, GremlinLang) else arg.gremlin_lang
self.parameters.update(gremlin_lang.parameters)
return gremlin_lang.get_gremlin('__')
if isinstance(arg, GValue):
key = arg.get_name()
if not key.isidentifier():
raise Exception(f'invalid parameter name {key}.')
if key in self.parameters:
if self.parameters[key] != arg.value:
raise Exception(f'parameter with name {key} already exists.')
else:
self.parameters[key] = arg.value
return key
if isinstance(arg, dict):
return self._process_dict(arg)
if isinstance(arg, set):
return self._process_set(arg)
if isinstance(arg, list):
return self._process_list(arg)
if hasattr(arg, '__class__'):
try:
return arg.__name__
except AttributeError:
pass
return self._as_parameter(arg)