lca-algebraic 1.4.1.dev2__tar.gz → 1.4.1.dev3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/PKG-INFO +1 -1
  2. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic/lca.py +8 -2
  3. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic.egg-info/PKG-INFO +1 -1
  4. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/pyproject.toml +1 -1
  5. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/test/test_premise.py +8 -6
  6. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/LICENSE +0 -0
  7. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/README.md +0 -0
  8. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic/__init__.py +0 -0
  9. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic/activity.py +0 -0
  10. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic/axis_dict.py +0 -0
  11. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic/base_utils.py +0 -0
  12. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic/bw_wrapper/__init__.py +0 -0
  13. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic/bw_wrapper/bw2.py +0 -0
  14. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic/bw_wrapper/bw25.py +0 -0
  15. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic/bw_wrapper/protocol.py +0 -0
  16. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic/cache.py +0 -0
  17. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic/database.py +0 -0
  18. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic/interpolation.py +0 -0
  19. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic/io.py +0 -0
  20. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic/lambda_expression.py +0 -0
  21. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic/log.py +0 -0
  22. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic/matrix.py +0 -0
  23. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic/methods.py +0 -0
  24. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic/params.py +0 -0
  25. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic/settings.py +0 -0
  26. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic/stats.py +0 -0
  27. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic/sympy_utils.py +0 -0
  28. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic/units.py +0 -0
  29. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic.egg-info/SOURCES.txt +0 -0
  30. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic.egg-info/dependency_links.txt +0 -0
  31. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic.egg-info/requires.txt +0 -0
  32. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/lca_algebraic.egg-info/top_level.txt +0 -0
  33. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/setup.cfg +0 -0
  34. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/test/test_axis_dict.py +0 -0
  35. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/test/test_axis_matrices_cache.py +0 -0
  36. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/test/test_cache.py +0 -0
  37. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/test/test_sympy.py +0 -0
  38. {lca_algebraic-1.4.1.dev2 → lca_algebraic-1.4.1.dev3}/test/test_units.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lca_algebraic
3
- Version: 1.4.1.dev2
3
+ Version: 1.4.1.dev3
4
4
  Summary: This library provides a layer above Brightway for defining parametric models and running super fast LCA for monte carlo analysis.
5
5
  Author-email: OIE - Mines ParisTech <raphael.jolivet@mines-paristech.fr>
6
6
  License: BSD
@@ -658,6 +658,7 @@ def compute_inventory(
658
658
  impact_method=None,
659
659
  fields=["database", "name", "location", "unit"],
660
660
  scenario: Union[str, list[str], None] = None,
661
+ filter_zeros=True,
661
662
  **params,
662
663
  ):
663
664
  """
@@ -696,6 +697,8 @@ def compute_inventory(
696
697
  if impact_method is None:
697
698
  impact_method = UNITY_METHOD
698
699
 
700
+ zeros = np.full(len(scenario), 0.0)
701
+
699
702
  with temp_settings(factorize_static_bg=False):
700
703
  # Compute once the generic lambda expression
701
704
  lambda_exprs = _preMultiLCAAlgebric(model=model, methods=[impact_method], alpha=1 / functional_unit, scenarios=scenario)
@@ -708,7 +711,7 @@ def compute_inventory(
708
711
  impacts = lambda_expr.impacts_dict()
709
712
 
710
713
  # Build temp lambda with only a single act activated, the other impacts being set to Zero
711
- filtered_impacts = {act: impacts[act] if act == bg_act else 0.0 for act in lambda_expr.background_activities}
714
+ filtered_impacts = {act: impacts[act] if act == bg_act else zeros for act in lambda_expr.background_activities}
712
715
 
713
716
  single_bg_expr = lambda_expr.with_impacts(filtered_impacts)
714
717
 
@@ -722,6 +725,9 @@ def compute_inventory(
722
725
  # Transform to dataframe
723
726
  items = []
724
727
  for act, values in val_by_act.items():
728
+ if filter_zeros and np.all(values == 0.0):
729
+ continue
730
+
725
731
  item = dict()
726
732
 
727
733
  for field in fields:
@@ -733,7 +739,7 @@ def compute_inventory(
733
739
  item["value"] = values[0]
734
740
  else:
735
741
  for i in range(0, len(values)):
736
- item[str(i + 1)] = values[i]
742
+ item[scenario[i]] = values[i]
737
743
  items.append(item)
738
744
 
739
745
  return DataFrame(items)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lca_algebraic
3
- Version: 1.4.1.dev2
3
+ Version: 1.4.1.dev3
4
4
  Summary: This library provides a layer above Brightway for defining parametric models and running super fast LCA for monte carlo analysis.
5
5
  Author-email: OIE - Mines ParisTech <raphael.jolivet@mines-paristech.fr>
6
6
  License: BSD
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "lca_algebraic"
7
- version = "1.4.1.dev2"
7
+ version = "1.4.1.dev3"
8
8
 
9
9
  description = "This library provides a layer above Brightway for defining parametric models and running super fast LCA for monte carlo analysis."
10
10
  readme = "README.md"
@@ -84,16 +84,18 @@ def test_compute_inventories_with_several_scenarios(data: DataFixture):
84
84
  resetDb(BG_DB1, foreground=False)
85
85
  resetDb(BG_DB2, foreground=False)
86
86
 
87
- # Add twin BG activities
88
- bg_act = newActivity(BG_DB1, name="bg_act", unit="kg", exchanges={data.bio1: 1.0})
87
+ # Add twin BG activities with two different values
88
+ bga = newActivity(BG_DB1, name="bg_a", unit="kg", exchanges={data.bio1: 1.0})
89
+ bga_ = newActivity(BG_DB2, name="bg_a", unit="kg", exchanges={data.bio1: 2.0})
89
90
 
90
- # Same activitiy with different exchange in scenario 2
91
- bg_act2 = newActivity(BG_DB2, name="bg_act", unit="kg", exchanges={data.bio1: 2.0})
91
+ # Add twin BG activities with two different values ibio2
92
+ bgb = newActivity(BG_DB1, name="bg_b", unit="kg", exchanges={data.bio2: 1.0})
93
+ bgb_ = newActivity(BG_DB2, name="bg_b", unit="kg", exchanges={data.bio2: 2.0})
92
94
 
93
95
  # Build parametrized model on BG1
94
96
  p1 = newFloatParam("p1", default=1, min=0, max=1)
95
97
 
96
- fg_act = newActivity(USER_DB, "fg", "kg", {bg_act: p1})
98
+ fg_act = newActivity(USER_DB, "fg", "kg", {bga: p1, bgb: 1.0})
97
99
 
98
100
  # Raw impacts without scenario : targeting scen1
99
101
  res = compute_inventory(model=fg_act, impact_method=data.ibio1, p1=[1.0, 2.0], scenario=["scen1", "scen2"])
@@ -101,7 +103,7 @@ def test_compute_inventories_with_several_scenarios(data: DataFixture):
101
103
  assert_frame_equal(
102
104
  rtol=1e-03,
103
105
  left=res,
104
- right=DataFrame([{"database": "bg#scen1", "name": "bg_act", "location": "GLO", "unit": "kg", "1": 1.0, "2": 4.0}]),
106
+ right=DataFrame([{"database": "bg#scen1", "name": "bg_a", "location": "GLO", "unit": "kg", "scen1": 1.0, "scen2": 4.0}]),
105
107
  )
106
108
 
107
109