All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
This release is a big shift from purely functional programming to storing state in the graph traversal class instances. Storing state was necessary to support SameNodeEachVisitGraphTraversal
, which needs to remember when a node has been visited.
The old API still works but is deprecated; please shift from NewNodeEachVisitGraphTraversal.calculate()
to NewNodeEachVisitGraphTraversal().traverse()
. Note that the graph traversal input configuration is now wrapped in a Pydantic class GraphTraversalSettings
.
- #21 Clean up changes from shift to stateful calculations
- #20 Add
SameNodeEachVisitGraphTraversal
- #17 Major documentation upgrade
- Fix #16 - Add optional
max_depth
argument to graph traversal
Added the following attributes to Node
dataclasses:
- direct_emissions_score_outside_specific_flows (float): The score attributable to direct emissions of this node which isn't broken out into separate
Flow
objects. - remaining_cumulative_score_outside_specific_flows (float): The cumulative score of this node, including direct emissions, which isn't broken out into separate
Flow
objects. - terminal (bool): Boolean flag indicating whether graph traversal was cutoff at this node
- Fix #18 - Duplication of values from first heuristic
- Update packaging
- Python 3.9 compatibility
- Remove
scikit-network
dependency
- Updated CI scripts
- Fix scikit-network dependency as API changed in new version
- Refactor some testing functions
- Fix dependencies for pip installation
- Corrected graph traversal scaling and switched to
NewNodeEachVisitGraphTraversal
class name. - Fixed bug in first heuristic for guessing production exchanges
- Integration tests for graph traversal
First release