Browser to match Brightway databases
Project description
bw_matchbox
bw_matchbox
is a web app for matching two Brightway. It allows you to do complicated matches, such as:
- Link process a to processes b and c, with allocation factors
- Link process a to a proxy for process b, changing the exchange values in b proxy to match those in process a where desired
- Link process a to a proxy for process b, removing some exchanges from b and adding some from a
- Link process a to a proxy for process b, expanding and inlining some exchanges from b to "flatten" its supply chain
Installation
You can install bw_matchbox via [pip] from [PyPI]:
pip install bw_matchbox
It's possible to install the library itself for development purposes (in the cloned project):
pip install -e .
This library depends on:
- Brightway 2.5 (
brightway25
) docopt-ng
flask
andflask_httpauth
tomli
werkzeug
Usage
This is a flask
application. Flask has a debug server suitable for development, but it should not be used for production!
To use bw_matchbox
, you need to do the following:
Create a configuration file
Configuration is done via a toml
file. See config_example.toml
for the structure of this file. It needs to provide the following:
[users]
section: Authentication, via a set of usernames and passwordsoutput_dir
: Location of the directory where output files will be written. Must be writable.directories
: (Optional) Location of existing randonneur matching files to use, if any.
The easiest way to set this up is with:
matchbox setup
This will create stub configuration and changes files in your current working directory - note that you need to edit changes.json
, and should change the username/password in config.toml
.
Create a Brightway project
bw_matchbox
is designed to match two Brightway databases against each other. If you are new to life cycle assessment, or just want to see matchbox in action, do the following.
matchbox example_project
This will install the US EEIO database. You can practice by linking it against itself :p
Running the development server
Just run:
matchbox webapp config.toml
Running in production
You will need to configure the Flask app using configure_app
, or re-implement its functionality. Here is an example using waitress:
from bw_matchbox import matchbox_app, configure_app
config_filepath = "/path/to/config.toml"
app = configure_app(config_filepath, matchbox_app)
from waitress import serve
serve(app, port=8080)
Starting the app
Once the app is running and configured locally or remotely, connect to the correct address and port. If you are running locally, this is probably either http://localhost:5000
or http://127.0.0.1:5000
.
In the first screen, choose the Brightway project you want to work on. This is matchbox-example
if you ran matchbox example_project
.
On the next screen, choose one database as the source, and a different database as the target. Currently you need to specify a new proxy database by typing a new database name into the Create a new database input box.
Contributing
Contributions are very welcome. To learn more, see the Contributor Guide.
License
Distributed under the terms of the MIT license, bw_matchbox is free and open source software.
Issues
If you encounter any problems, please [file an issue] along with a detailed description.
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 bw_matchbox-0.7.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7eab5b1eb6315c4a7cf6a16f8df33be88c038336d6d5267b26de1174e108ba1d |
|
MD5 | 69d518a57e499691ad4d2b669568b05f |
|
BLAKE2b-256 | 2aac0af2e0fee8587ef085901798a5cc6749abfb030ae8ffa2c98d3842ea7705 |