#57 Added vis.js data to orphan graph
Merged 3 years ago by jskladan. Opened 3 years ago by jskladan.

file modified
+32 -6
@@ -185,10 +185,11 @@ 

                  "direct_dependencies": [],

                  "remote_dependencies": [],

                  "problematic_since": None,

-                 "dot_graph": ""

+                 "dot_graph": "",

+                 "vis_js": {"nodes": [], "edges": []}

              }

  

-         paths = self.g.get_all_simple_paths(self.pimap[p], self.ileafs)

+         paths = [_ for _ in self.g.get_shortest_paths(self.pimap[p], self.ileafs) if len(_) >= 2]

          direct_deps = list(set([self.ipmap[l[-1]] for l in paths if len(l) == 2]))

          remote_deps = list(set([self.ipmap[l[-1]] for l in paths if len(l) > 2]))

  
@@ -204,13 +205,24 @@ 

          for path in paths:

              dot_graph += ' -- '.join('"%s"' % self.ipmap[i] for i in path) + ";\n"

  

+         _nodes = set()

+         _edges = set()

+         for path in paths:

+             _nodes.update(path)

+             for i in range(len(path)-1):

+                 _edges.add(tuple(path[i:i+2]))

+ 

+         nodes = [{'id': n, 'label': self.ipmap[n]} for n in _nodes]

+         edges = [{'from': e[0], 'to': e[1]} for e in _edges]

+ 

          return {

              "orphaned": p in self.orphans_data["status_change"].keys(),

              "depends_on_orphaned": bool(len(self.orphans_data["affected_packages"][p])),

              "direct_dependencies": direct_deps,

              "remote_dependencies": remote_deps,

              "problematic_since": problematic_since,

-             "dot_graph": dot_graph.strip()

+             "dot_graph": dot_graph.strip(),

+             "vis_js": {'nodes': nodes, 'edges': edges},

          }

  

  def get_orphans(packages, orphans_data=None):
@@ -710,7 +722,8 @@ 

              "direct_dependencies": [],

              "remote_dependencies": [],

              "problematic_since": None,

-             "dot_graph": ""

+             "dot_graph": "",

+             "vis_js": {"nodes": [], "edges": []}

              }

          assert out["Z"] == o_z

  
@@ -721,7 +734,8 @@ 

              "direct_dependencies": [],

              "remote_dependencies": [],

              "problematic_since": '2020-01-01T00:00:03',

-             "dot_graph": ""

+             "dot_graph": "",

+             "vis_js": {"nodes": [], "edges": []}

              }

          assert out["F"] == o_f

  
@@ -734,7 +748,9 @@ 

              "problematic_since": '2020-01-01T00:00:00'

              }

          dg = sorted(out["A"]["dot_graph"].split('\n'))

+         vis_js = out["A"]["vis_js"]

          del(out["A"]["dot_graph"])

+         del(out["A"]["vis_js"])

  

          out["A"]["remote_dependencies"].sort()

          assert out["A"] == o_a
@@ -742,13 +758,23 @@ 

          o_dg = sorted([

              '"A" -- "B" -- "C";',

              '"A" -- "B" -- "D";',

-             '"A" -- "B" -- "D" -- "E";',

              '"A" -- "B" -- "E";',

              '"A" -- "F";'

              ])

          assert o_dg == dg

  

+         assert len(vis_js.keys()) == 2

+         assert 'nodes' in vis_js.keys()

+         assert 'edges' in vis_js.keys()

+ 

+         nodes = sorted([(n['id'], n['label']) for n in vis_js['nodes']])

+         assert nodes == [(0, 'A'), (1, 'B'), (2, 'C'), (3, 'D'), (4, 'E'), (5, 'F')]

+ 

+         edges = sorted([(e['from'], e['to']) for e in vis_js['edges']])

+         assert edges == [(0, 1), (0, 5), (1, 2), (1, 3), (1, 4)]

+ 

          print("OK")

  

  

      test_orphans()

+ 

no initial comment

1 new commit added

  • Remove some testing code
3 years ago

rebased onto 2a3b25d

3 years ago

Pull-Request has been merged by jskladan

3 years ago
Metadata