cosminbasca / asciinet

wrapper over the ascii-graphs library for printing networkx graphs as ASCII.
Apache License 2.0
22 stars 5 forks source link

msgpack-python 1.0 compatibility #5

Open teake opened 4 years ago

teake commented 4 years ago

It seems loads in msgpack-python 1.0 now returns a string (it was bytes previously), so doing

https://github.com/cosminbasca/asciinet/blob/cec4d1f18d4c568622f3b51b9798c4502abf1cdc/pyasciinet/asciinet/__init__.py#L84

and then a decode() in

https://github.com/cosminbasca/asciinet/blob/cec4d1f18d4c568622f3b51b9798c4502abf1cdc/pyasciinet/asciinet/__init__.py#L108

results in an error.

noragen commented 4 years ago

The solution would be something like:

 pyasciinet/asciinet/__init__.py | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/pyasciinet/asciinet/__init__.py b/pyasciinet/asciinet/__init__.py
index 1a81b84..e9c3659 100644
--- a/pyasciinet/asciinet/__init__.py
+++ b/pyasciinet/asciinet/__init__.py
@@ -104,5 +104,8 @@ def _cleanup():
 def graph_to_ascii(graph, timeout=10):
     if not isinstance(graph, nx.Graph):
         raise ValueError('graph must be a networkx.Graph')
-
-    return _asciigraph.graph_to_ascii(graph, timeout=timeout).decode(encoding='UTF-8')
+    
+    try:
+        return _asciigraph.graph_to_ascii(graph, timeout=timeout).decode(encoding='UTF-8')
+    except:
+        return _asciigraph.graph_to_ascii(graph, timeout=timeout)
ricosaurus commented 3 years ago

Thanks for the fix. Just found and installed asciinet. Have been looking for exactly this (networkx to ascii graphs) for ages! Hope it gets some love.