Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clean up changes from shift to stateful calculations #21

Merged
merged 9 commits into from
Sep 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions bw_graph_tools/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"Edge",
"Flow",
"get_path_from_matrix",
"GraphTraversalSettings",
"guess_production_exchanges",
"NewNodeEachVisitGraphTraversal",
"Node",
Expand All @@ -13,12 +14,13 @@

__version__ = "0.4.1"

from .graph_traversal import (
from bw_graph_tools.graph_traversal import (
AssumedDiagonalGraphTraversal,
Edge,
Flow,
GraphTraversalSettings,
NewNodeEachVisitGraphTraversal,
Node,
)
from .graph_traversal_utils import get_path_from_matrix, path_as_brightway_objects
from .matrix_tools import guess_production_exchanges, to_normalized_adjacency_matrix
from bw_graph_tools.graph_traversal_utils import get_path_from_matrix, path_as_brightway_objects
from bw_graph_tools.matrix_tools import guess_production_exchanges, to_normalized_adjacency_matrix
20 changes: 9 additions & 11 deletions bw_graph_tools/graph_traversal/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,17 @@
"Node",
"SameNodeEachVisitGraphTraversal",
"SameNodeEachVisitTaggedGraphTraversal",
"SupplyChainTraversalSettings",
"TaggedSupplyChainTraversalSettings",
"GraphTraversalSettings",
"TaggedGraphTraversalSettings",
)

from .assumed_diagonal import AssumedDiagonalGraphTraversal
from .graph_objects import Edge, Flow, Node
from .new_node_each_visit import (
NewNodeEachVisitGraphTraversal,
SupplyChainTraversalSettings,
)
from .same_node_each_visit import SameNodeEachVisitGraphTraversal
from .tagged_nodes import (
from bw_graph_tools.graph_traversal.assumed_diagonal import AssumedDiagonalGraphTraversal
from bw_graph_tools.graph_traversal.graph_objects import Edge, Flow, Node
from bw_graph_tools.graph_traversal.new_node_each_visit import NewNodeEachVisitGraphTraversal
from bw_graph_tools.graph_traversal.same_node_each_visit import SameNodeEachVisitGraphTraversal
from bw_graph_tools.graph_traversal.settings import GraphTraversalSettings
from bw_graph_tools.graph_traversal.tagged_nodes import (
NewNodeEachVisitTaggedGraphTraversal,
SameNodeEachVisitTaggedGraphTraversal,
TaggedSupplyChainTraversalSettings,
TaggedGraphTraversalSettings,
)
2 changes: 1 addition & 1 deletion bw_graph_tools/graph_traversal/assumed_diagonal.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import matrix_utils as mu
import numpy as np

from .new_node_each_visit import NewNodeEachVisitGraphTraversal
from bw_graph_tools.graph_traversal.new_node_each_visit import NewNodeEachVisitGraphTraversal


class AssumedDiagonalGraphTraversal(NewNodeEachVisitGraphTraversal):
Expand Down
9 changes: 5 additions & 4 deletions bw_graph_tools/graph_traversal/base.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import typing
from typing import Dict, Generic, List, TypeVar

from .graph_objects import Edge, Flow, Node
from .utils import CachingSolver
from bw_graph_tools.graph_traversal.graph_objects import Edge, Flow, Node
from bw_graph_tools.graph_traversal.utils import CachingSolver

if typing.TYPE_CHECKING:
import bw2calc
Expand Down Expand Up @@ -50,6 +50,8 @@ def __init__(
self.metadata = dict()

# internal properties
self._functional_unit_unique_id = functional_unit_unique_id
self._max_calc = self.settings.max_calc
self._root_node = Node(
unique_id=functional_unit_unique_id,
activity_datapackage_id=functional_unit_unique_id,
Expand All @@ -64,10 +66,9 @@ def __init__(
cumulative_score=self.lca.score,
direct_emissions_score=0.0,
)
self._nodes: Dict[int, Node] = {functional_unit_unique_id: self._root_node}
self._nodes: Dict[int, Node] = {self._functional_unit_unique_id: self._root_node}
self._edges: List[Edge] = []
self._flows: List[Flow] = []
self._heap: List[Node] = []
self._caching_solver = CachingSolver(lca)

@property
Expand Down
4 changes: 3 additions & 1 deletion bw_graph_tools/graph_traversal/graph_objects.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from dataclasses import dataclass
from typing import List
from typing import List, Optional


@dataclass
Expand Down Expand Up @@ -54,6 +54,7 @@ class Node:
supply_amount: float
cumulative_score: float
direct_emissions_score: float
max_depth: Optional[int] = None
direct_emissions_score_outside_specific_flows: float = 0.0
remaining_cumulative_score_outside_specific_flows: float = 0.0
terminal: bool = False
Expand All @@ -76,6 +77,7 @@ class GroupedNodes:
supply_amount: float
cumulative_score: float
direct_emissions_score: float
max_depth: Optional[int] = None
direct_emissions_score_outside_specific_flows: float = 0.0
terminal: bool = False
activity_index: int = None
Expand Down
Loading
Loading