Metadata-Version: 2.1
Name: patchpanel
Version: 0.1
Summary: Solves constrained connectivity between sources & sinks
Home-page: https://github.com/Intuity
Author: Peter Birch
License: Apache License, Version 2.0
Project-URL: Source, https://github.com/Intuity/patchpanel
Description: # Patch Panel
        Patch Panel is a Python library for solving constrained connectivity between sources and sinks. The sources and sinks can be any arbitrary (hashable) object, and connectivity is returned as a simple list of tuples. This library does not guarantee a unique solution, it simply returns the first legal solution that satisfies all constraints.
        
        ## Installing
        Easiest way to install Patch Panel is to grab it from PyPI:
        
        ```bash
        $> pip install patchpanel
        ```
        
        Alternatively you can install it manually:
        
        ```bash
        $> git clone git@github.com:Intuity/patchpanel
        $> cd patchpanel
        $> python3 setup.py install
        ```
        
        ## Example
        ```python
        from patchpanel.problem import Problem
        # Create I/O
        sources = [f"src_{x}" for x in range(2)]
        sinks   = [f"snk_{x}" for x in range(2)]
        # Create the problem
        problem = Problem(sources, sinks)
        # Constrain to allow any-to-any
        problem.constrain(sources, sinks)
        # Solve
        conns, u_src, u_sink = problem.solve()
        # Display
        print(f"Connections: {conns}")
        print(f"Uncon. src : {u_src}")
        print(f"Uncon. sink: {u_sink}")
        ```
        
        ## Running Tests
        Patch Panel comes with a basic suite of tests, which use `pytest` for regression:
        
        ```
        $> git clone git@github.com:Intuity/patchpanel
        $> cd patchpanel
        $> python3 setup.py test
        ```
        
Platform: UNKNOWN
Description-Content-Type: text/markdown
