From 78452b0f2a153eb836b1dc78813da8a9a598f00b Mon Sep 17 00:00:00 2001 From: Angel Campoverde Date: Sun, 29 Jun 2025 19:32:09 +0800 Subject: [PATCH 1/5] Trailing spaces --- pydeps/depgraph.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pydeps/depgraph.py b/pydeps/depgraph.py index 5e59412..b9d1425 100644 --- a/pydeps/depgraph.py +++ b/pydeps/depgraph.py @@ -172,7 +172,7 @@ def __init__(self, src, index=None): def __str__(self): return self.src.name - + def __repr__(self): return self.src.name @@ -199,7 +199,7 @@ def __json__(self): "edges": [(u, v) for u, v in self.edges], "neighbours": {u.src.name: [v.src.name for v in self.neighbours[u]] for u in self.V} } - + def __str__(self): return json.dumps(self, indent=4) @@ -212,8 +212,8 @@ def dfs(self, v, visited, stack): if not visited[neighbour.index]: self.dfs(neighbour, visited, stack) stack.append(v) - - + + def fill_order(self): def _fill_order(visited, stack): for i, node in enumerate(self.V): @@ -240,10 +240,10 @@ def _dfs_util(v, visited): def kosaraju(self): stack = self.fill_order() transposed_graph = self.transpose() - + visited = [False] * len(self.V) scc_list = [] - + while stack: node = stack.pop() # popleft? if not visited[node.index]: @@ -272,7 +272,7 @@ def __init__(self, depgraf, types, target, **args): self.cycles = [] self.cyclenodes = set() self.cyclerelations = set() - + self.max_module_depth = args.get('max_module_depth', 0) self.target = target @@ -329,7 +329,7 @@ def __init__(self, depgraf, types, target, **args): # if self.args['show_cycles']: self.find_import_cycles() - + if not self.args['show_deps']: cli.verbose(3, self) @@ -338,7 +338,7 @@ def source_name(self, name, path=None): """ res = name if name == "__main__" and self.target.is_pysource: - # use the target file name directly if we're working on a + # use the target file name directly if we're working on a # single file return self.target.fname From 8ae393dea532537677c1206445ebac7c470c3109 Mon Sep 17 00:00:00 2001 From: Angel Campoverde Date: Sun, 29 Jun 2025 19:45:40 +0800 Subject: [PATCH 2/5] Increase readability --- pydeps/depgraph.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pydeps/depgraph.py b/pydeps/depgraph.py index b9d1425..42ef3af 100644 --- a/pydeps/depgraph.py +++ b/pydeps/depgraph.py @@ -184,11 +184,11 @@ def __eq__(self, other): class Graph: - # def __init__(self, vertices: list[GraphNode], edges: list[tuple[GraphNode, GraphNode]]): def __init__(self, vertices: list, edges: list): - self.V = vertices + self.V = vertices for i, v in enumerate(vertices): v.index = i + self.edges = edges self.neighbours = defaultdict(list) for u, v in edges: @@ -213,7 +213,6 @@ def dfs(self, v, visited, stack): self.dfs(neighbour, visited, stack) stack.append(v) - def fill_order(self): def _fill_order(visited, stack): for i, node in enumerate(self.V): @@ -546,5 +545,4 @@ def remove_excluded(self): src.imported_by = [m for m in src.imported_by if not self._exclude(m)] def _add_skip(self, name): - # print 'add skip:', name self.skiplist.append(re.compile(fnmatch.translate(name))) From da1470b90fae6a4cf055dc76450e71c10deb8855 Mon Sep 17 00:00:00 2001 From: Angel Campoverde Date: Sun, 29 Jun 2025 19:49:23 +0800 Subject: [PATCH 3/5] Readable --- pydeps/depgraph.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pydeps/depgraph.py b/pydeps/depgraph.py index 42ef3af..8926c0e 100644 --- a/pydeps/depgraph.py +++ b/pydeps/depgraph.py @@ -44,7 +44,6 @@ class Source(object): def __init__(self, name, path=None, imports=(), exclude=False, args=None): self.args = args or {} self.name = name - # self.kind = kind self.path = path # needed here..? self.imports = set(imports) # modules we import self.imported_by = set() # modules that import us From d5660f2e95c211d7c50ca2c235aa9b6cb9c1a059 Mon Sep 17 00:00:00 2001 From: Angel Campoverde Date: Sun, 29 Jun 2025 19:49:58 +0800 Subject: [PATCH 4/5] Readable --- pydeps/depgraph.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pydeps/depgraph.py b/pydeps/depgraph.py index 8926c0e..8e3f89a 100644 --- a/pydeps/depgraph.py +++ b/pydeps/depgraph.py @@ -79,13 +79,14 @@ def out_degree(self): def degree(self): return self.in_degree + self.out_degree - def is_noise(self): - """Is this module just noise? (too common either at top or bottom of - the graph). + def is_noise(self) -> bool: + """ + Is this module just noise? (too common either at top or bottom of the graph). """ noise = self.args['noise_level'] if not (self.in_degree and self.out_degree): return self.degree > noise + return False def __json__(self): From 9eecf4b3c3f5da31405efa65237f5750dd7fecf0 Mon Sep 17 00:00:00 2001 From: Angel Campoverde Date: Sun, 29 Jun 2025 19:59:26 +0800 Subject: [PATCH 5/5] Adding condition on nodes, to trim package nodes --- pydeps/depgraph.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pydeps/depgraph.py b/pydeps/depgraph.py index 8e3f89a..7bcccab 100644 --- a/pydeps/depgraph.py +++ b/pydeps/depgraph.py @@ -83,6 +83,15 @@ def is_noise(self) -> bool: """ Is this module just noise? (too common either at top or bottom of the graph). """ + + # This is needed to avoid showing a package node + # when there is a module mode associated to the package i.e. + # + # mypkg will appear, this has no dependents + # mypkg.module should appear alone + if len(self.imports) == 0 and '.' not in self.name: + return True + noise = self.args['noise_level'] if not (self.in_degree and self.out_degree): return self.degree > noise