Skip to content

Commit 6c9a1b6

Browse files
committed
alow creation of entities without any properties or labels
1 parent c18c4e0 commit 6c9a1b6

File tree

2 files changed

+33
-19
lines changed

2 files changed

+33
-19
lines changed

redisgraph/client.py

Lines changed: 32 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,22 @@ def __init__(self, node_id=None, alias=None, label=None, properties=None):
3737
self.id = node_id
3838
self.alias = alias
3939
self.label = label
40-
self.properties = properties
40+
self.properties = {} or properties
4141

4242
def __str__(self):
43-
return '({alias}:{label} {{{properties}}})'.format(
44-
alias=self.alias,
45-
label=self.label,
46-
properties=','.join(key+':'+str(quote_string(val)) for key, val in self.properties.items()))
43+
44+
res = '('
45+
if self.alias:
46+
res += self.alias
47+
if self.label:
48+
res += ':' + self.label
49+
if self.properties:
50+
props = ','.join(key+':'+str(quote_string(val)) for key, val in self.properties.items())
51+
res += '{' + props + '}'
52+
res += ')'
53+
54+
return res
55+
4756

4857
class Edge(object):
4958
"""
@@ -55,23 +64,28 @@ def __init__(self, src_node, relation, dest_node, properties=None):
5564
"""
5665
assert src_node is not None and dest_node is not None
5766

58-
self.relation = relation
59-
self.properties = properties if properties != None else {}
67+
self.relation = '' or relation
68+
self.properties = {} or properties
6069
self.src_node = src_node
6170
self.dest_node = dest_node
6271

6372
def __str__(self):
64-
if len(self.properties) > 0:
65-
return '({src_alias})-[:{relation} {{{properties}}}]->({dest_alias})'.format(
66-
src_alias=self.src_node.alias,
67-
relation=self.relation,
68-
properties=','.join(key+':'+str(quote_string(val)) for key, val in self.properties.items()),
69-
dest_alias=self.dest_node.alias)
70-
else:
71-
return '({src_alias})-[:{relation}]->({dest_alias})'.format(
72-
src_alias=self.src_node.alias,
73-
relation=self.relation,
74-
dest_alias=self.dest_node.alias)
73+
# Source node.
74+
res = '(' + self.src_node.alias + ')'
75+
76+
# Edge
77+
res += "-["
78+
if self.relation:
79+
res += ":" + self.relation
80+
if self.properties:
81+
props = ','.join(key+':'+str(quote_string(val)) for key, val in self.properties.items())
82+
res += '{' + props + '}'
83+
res += ']->'
84+
85+
# Dest node.
86+
res += '(' + self.dest_node.alias + ')'
87+
88+
return res
7589

7690
class Graph(object):
7791
"""

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from setuptools import setup, find_packages
22
setup(
33
name='redisgraph',
4-
version='1.1',
4+
version='1.2',
55

66
description='RedisGraph Python Client',
77
url='https://github.com/swilly22/redisgraph-py',

0 commit comments

Comments
 (0)