A function-managing package for models and systems with shared variables.
Project description
porchlight
porchlight
is a function management suite that handles shared inputs and
outputs of methods and/or functions which evolve over the lifetime of a program.
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+, and that examples
may require external libraries such as numpy
and matplotlib
.
Installation
You can install porchlight
using pip
:
pip install porchlight
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.
import porchlight
# To add a function, we simply define it and pass it to porchlight.
def increase_x(x: int, y: int) -> int:
x = x * y
return x
# Type annotations are optional, as with normal python.
def string_x(x):
x_string = f"{x = }"
return x_string
def increment_y(y=0):
y = y + 1
return y
# Generating a complete, coupled model between these functions is as simple as
# adding all these functions to a Neighborhood object.
neighborhood = Neighborhood([increment_y, increase_x, string_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)
# We initialize any variables we need to (in this case, just x), and then
# executing the model is a single method call.
neighborhood.set_param('x', 2)
neighborhood.run_step()
# Print out information.
for name, param in neighborhood.params.items():
print(f"{name} = {param}")
Documentation
Documentation for porchlight
can be found on Read the Docs here: https://porchlight.readthedocs.io/en/latest/
Other info
- You can find slides from presentations about porchlight within the
docs
folder, underdocs/slides
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for porchlight-1.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e67a58b579afaeaf1ec43093922c8cceb2a33a2b8f4ed394138b80f6577a9e31 |
|
MD5 | 48ee7a52f0895f1eaab04ef0f90db7f5 |
|
BLAKE2b-256 | 8b7affedf379749c06e960fa71f32d913618ef7fadf09809471d478e00080efe |