From 5f36d3d0b513c59cadeada20244a59ee201ccf28 Mon Sep 17 00:00:00 2001 From: Leo Meyerovich Date: Fri, 26 Jul 2019 01:58:35 -0400 Subject: [PATCH 1/5] fix(hypergraph warnings) --- graphistry/hyper.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/graphistry/hyper.py b/graphistry/hyper.py index 56e9fc793b..d5cc6c30d1 100644 --- a/graphistry/hyper.py +++ b/graphistry/hyper.py @@ -105,7 +105,7 @@ def format_hyperedges(events, entity_types, defs, drop_na, drop_edge_attrs): else []) + [defs['EDGETYPE'], defs['ATTRIBID'], defs['EVENTID']] + ([defs['CATEGORY']] if is_using_categories else []) )) - out = pd.concat(subframes, ignore_index=True).reset_index(drop=True)[ result_cols ] + out = pd.concat(subframes, ignore_index=True, sort=False).reset_index(drop=True)[ result_cols ] return out else: return pd.DataFrame([]) @@ -168,7 +168,7 @@ def format_hypernodes(events, defs, drop_na): return event_nodes def hyperbinding(g, defs, entities, event_entities, edges, source, destination): - nodes = pd.concat([entities, event_entities], ignore_index=True).reset_index(drop=True) + nodes = pd.concat([entities, event_entities], ignore_index=True, sort=False).reset_index(drop=True) return { 'entities': entities, 'events': event_entities, @@ -184,7 +184,8 @@ def flatten_objs_inplace(df, cols): for c in cols: name = df[c].dtype.name if name == 'category': - df[c] = df[c].where(df[c].isnull(), df[c].astype(str)) + #Avoid warning + df[c] = df[c].astype(str).where(~df[c].isnull(), df[c]) elif name == 'object': df[c] = df[c].where(df[c].isnull(), df[c].astype(str)) From f299cbc019ae5e6b7eed6db2465b74f858112abc Mon Sep 17 00:00:00 2001 From: Leo Meyerovich Date: Fri, 26 Jul 2019 02:08:58 -0400 Subject: [PATCH 2/5] fix(missing import) --- graphistry/pygraphistry.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/graphistry/pygraphistry.py b/graphistry/pygraphistry.py index 5a23589461..f0a7dd907c 100644 --- a/graphistry/pygraphistry.py +++ b/graphistry/pygraphistry.py @@ -509,7 +509,8 @@ def gsql(query, bindings = None, dry_run = False): @staticmethod - def nodes(nodes): + def nodes(nodes): + from . import plotter return plotter.Plotter().nodes(nodes) From a8c1ab2366479e7393f82db330d0cd7ed1fa8a51 Mon Sep 17 00:00:00 2001 From: Leo Meyerovich Date: Fri, 26 Jul 2019 02:15:45 -0400 Subject: [PATCH 3/5] fix(py27 dict merge) --- graphistry/plugins/tigergraph.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/graphistry/plugins/tigergraph.py b/graphistry/plugins/tigergraph.py index 22bd3a9822..c70e014a48 100644 --- a/graphistry/plugins/tigergraph.py +++ b/graphistry/plugins/tigergraph.py @@ -1,6 +1,9 @@ import requests import pandas as pd +def merge_dicts(x, y): + return dict(list(x.items()) + list(y.items())) + class Tigeristry(object): """Tigergraph bindings class @@ -164,13 +167,13 @@ def gsql_endpoint(self, graphistry, method_name, args = {}, bindings = {}, db = url = json return url - bindings = { - **{ + bindings = merge_dicts( + { 'edges': '@@edgeList', 'nodes': '@@nodeList' }, - **bindings - } + bindings + ) return self.__json_to_graphistry(graphistry, json, bindings) @@ -185,12 +188,12 @@ def gsql(self, graphistry, query, bindings = {}, dry_run = False): url = json return url - bindings = { - **{ + bindings = merge_dicts( + { 'edges': '@@edgeList', 'nodes': '@@nodeList' }, - **bindings - } + bindings + ) return self.__json_to_graphistry(graphistry, json, bindings) \ No newline at end of file From dbfa085110bd6cd0475ff7a49323596d48a5b01f Mon Sep 17 00:00:00 2001 From: Leo Meyerovich Date: Fri, 26 Jul 2019 02:28:59 -0400 Subject: [PATCH 4/5] fix(27 needs __init__) --- graphistry/plugins/__init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 graphistry/plugins/__init__.py diff --git a/graphistry/plugins/__init__.py b/graphistry/plugins/__init__.py new file mode 100644 index 0000000000..e69de29bb2 From 4a9fe5645e8d1201dae8de80c20f6fd7f91cd1b4 Mon Sep 17 00:00:00 2001 From: Leo Meyerovich Date: Fri, 26 Jul 2019 02:38:13 -0400 Subject: [PATCH 5/5] fix(27 tests cannot assume stable dict order ) --- graphistry/tests/test_tigergraph.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/graphistry/tests/test_tigergraph.py b/graphistry/tests/test_tigergraph.py index 8b644044f9..795dc606f9 100644 --- a/graphistry/tests/test_tigergraph.py +++ b/graphistry/tests/test_tigergraph.py @@ -66,9 +66,10 @@ def test_tg_endpoint_url_3_arg(self): pwd = 'tigergraph2', verbose = False ) + #27 does not preserve order self.assertEqual( - tg.gsql_endpoint('x', {'f': 1, 'g': 2, 'h': 3}, dry_run = True), - 'https://tigergraph1:tigergraph2@127.0.0.1:11000/query/z/x?f=1&g=2&h=3' + len(tg.gsql_endpoint('x', {'f': 1, 'ggg': 2, 'h': 33}, dry_run = True)), + len('https://tigergraph1:tigergraph2@127.0.0.1:11000/query/z/x?f=1&ggg=2&h=33') ) def test_tg_gsql(self):