Skip to content

Commit

Permalink
DOC: Add docstrings to filter view functions (networkx#7086)
Browse files Browse the repository at this point in the history
* Update filters.py

* Update filters.py

* Apply black.

---------

Co-authored-by: Ross Barnowski <rossbar@caltech.edu>
  • Loading branch information
2 people authored and cvanelteren committed Apr 22, 2024
1 parent 588ba90 commit 77482ac
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions networkx/classes/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,36 +18,44 @@


def no_filter(*items):
"""Returns a filter function that always evaluates to True."""
return True


def hide_nodes(nodes):
"""Returns a filter function that hides specific nodes."""
nodes = set(nodes)
return lambda node: node not in nodes


def hide_diedges(edges):
"""Returns a filter function that hides specific directed edges."""
edges = {(u, v) for u, v in edges}
return lambda u, v: (u, v) not in edges


def hide_edges(edges):
"""Returns a filter function that hides specific undirected edges."""
alledges = set(edges) | {(v, u) for (u, v) in edges}
return lambda u, v: (u, v) not in alledges


def hide_multidiedges(edges):
"""Returns a filter function that hides specific multi-directed edges."""
edges = {(u, v, k) for u, v, k in edges}
return lambda u, v, k: (u, v, k) not in edges


def hide_multiedges(edges):
"""Returns a filter function that hides specific multi-undirected edges."""
alledges = set(edges) | {(v, u, k) for (u, v, k) in edges}
return lambda u, v, k: (u, v, k) not in alledges


# write show_nodes as a class to make SubGraph pickleable
class show_nodes:
"""Filter class to show specific nodes."""

def __init__(self, nodes):
self.nodes = set(nodes)

Expand All @@ -56,20 +64,24 @@ def __call__(self, node):


def show_diedges(edges):
"""Returns a filter function that shows specific directed edges."""
edges = {(u, v) for u, v in edges}
return lambda u, v: (u, v) in edges


def show_edges(edges):
"""Returns a filter function that shows specific undirected edges."""
alledges = set(edges) | {(v, u) for (u, v) in edges}
return lambda u, v: (u, v) in alledges


def show_multidiedges(edges):
"""Returns a filter function that shows specific multi-directed edges."""
edges = {(u, v, k) for u, v, k in edges}
return lambda u, v, k: (u, v, k) in edges


def show_multiedges(edges):
"""Returns a filter function that shows specific multi-undirected edges."""
alledges = set(edges) | {(v, u, k) for (u, v, k) in edges}
return lambda u, v, k: (u, v, k) in alledges

0 comments on commit 77482ac

Please sign in to comment.