[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.188.135.3: ~ $
class DirectedGraph(object):
    """A graph structure with directed edges.
    """

    def __init__(self):
        self._vertices = set()
        self._forwards = {}  # <key> -> Set[<key>]
        self._backwards = {}  # <key> -> Set[<key>]

    def __iter__(self):
        return iter(self._vertices)

    def __len__(self):
        return len(self._vertices)

    def __contains__(self, key):
        return key in self._vertices

    def copy(self):
        """Return a shallow copy of this graph.
        """
        other = DirectedGraph()
        other._vertices = set(self._vertices)
        other._forwards = {k: set(v) for k, v in self._forwards.items()}
        other._backwards = {k: set(v) for k, v in self._backwards.items()}
        return other

    def add(self, key):
        """Add a new vertex to the graph.
        """
        if key in self._vertices:
            raise ValueError("vertex exists")
        self._vertices.add(key)
        self._forwards[key] = set()
        self._backwards[key] = set()

    def remove(self, key):
        """Remove a vertex from the graph, disconnecting all edges from/to it.
        """
        self._vertices.remove(key)
        for f in self._forwards.pop(key):
            self._backwards[f].remove(key)
        for t in self._backwards.pop(key):
            self._forwards[t].remove(key)

    def connected(self, f, t):
        return f in self._backwards[t] and t in self._forwards[f]

    def connect(self, f, t):
        """Connect two existing vertices.

        Nothing happens if the vertices are already connected.
        """
        if t not in self._vertices:
            raise KeyError(t)
        self._forwards[f].add(t)
        self._backwards[t].add(f)

    def iter_edges(self):
        for f, children in self._forwards.items():
            for t in children:
                yield f, t

    def iter_children(self, key):
        return iter(self._forwards[key])

    def iter_parents(self, key):
        return iter(self._backwards[key])

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
compat Folder 0755
.__init__.pyo.40009 File 706 B 0644
.providers.pyo.40009 File 5.9 KB 0644
.reporters.pyo.40009 File 2.76 KB 0644
.resolvers.pyo.40009 File 17.56 KB 0644
.structs.pyo.40009 File 4.19 KB 0644
__init__.py File 537 B 0644
__init__.pyc File 706 B 0644
__init__.pyo File 706 B 0644
providers.py File 4.44 KB 0644
providers.pyc File 5.9 KB 0644
providers.pyo File 5.9 KB 0644
reporters.py File 1.37 KB 0644
reporters.pyc File 2.76 KB 0644
reporters.pyo File 2.76 KB 0644
resolvers.py File 14.67 KB 0644
resolvers.pyc File 17.56 KB 0644
resolvers.pyo File 17.56 KB 0644
structs.py File 1.97 KB 0644
structs.pyc File 4.19 KB 0644
structs.pyo File 4.19 KB 0644