Metadata-Version: 2.1
Name: porchlight
Version: 0.0.1
Summary: A function-managing package for evolving inputs and outputs
Project-URL: Homepage, https://github.com/teald/porchlight
Project-URL: Bug Tracker, https://github.com/teald/porchlight/issues
Author-email: D J Teal <teal.dillon@gmail.com>
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.9
Description-Content-Type: text/markdown

porchlight
==========

`porchlight` is a function management suite that manages common inputs and
outputs of methods and/or functions.

This package's original intent was to be a part of a modular scientific package
yet to be released. Rather than isolating this method to a single model, the
already-developed work has been modified to stand alone as a package.

`porchlight` does not have any dependencies outside of the standard CPython
library. Please note that `porchlight` requires Python 3.9\+.

Installation
------------

You can install `porchlight` by cloning this repository to a local directory,
opening a command line, and running:
```console
cd porchlight
python -m pip install .
```

Usage
-----

The main object used in `porchlight` is the `porchlight.Neighborhood` object.
This groups all functions together and keeps track of call order and
parameters.

```python
import porchlight


# We call a porchlight.Neighborhood object to instantiate it with no functions
# yet.
neighborhood = porchlight.Neighborhood()

# To add a function, we dimply define it and pass it to porchlight.
def increment_x(x: int, y: int) -> int:
    x = x * y
    return x

neighborhood.add_function(increment_x)

# The neighborhood object inspects the function, finding input and output
# variables if present. These are added to the collections of functions and
# parameters.
print(neighborhood)  # porchlight.Neighborhood has a pretty-print string.
```

Although this is the current extent of documentation, there should be some more
complete doncumentation within the next couple weeks/months.

Documention
-----------

In prep.
