ecoengine 3.1.6__tar.gz → 3.2.0__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 (81) hide show
  1. {ecoengine-3.1.6 → ecoengine-3.2.0}/PKG-INFO +5 -5
  2. {ecoengine-3.1.6 → ecoengine-3.2.0}/README.md +1 -1
  3. {ecoengine-3.1.6 → ecoengine-3.2.0}/pyproject.toml +19 -18
  4. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine.egg-info/PKG-INFO +5 -5
  5. ecoengine-3.2.0/src/ecoengine.egg-info/requires.txt +7 -0
  6. ecoengine-3.1.6/src/ecoengine.egg-info/requires.txt +0 -7
  7. {ecoengine-3.1.6 → ecoengine-3.2.0}/setup.cfg +0 -0
  8. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/__init__.py +0 -0
  9. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/constants/__init__.py +0 -0
  10. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/constants/constants.py +0 -0
  11. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/__init__.py +0 -0
  12. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/climate_data/DryBulbTemperatures_ByClimateZone.csv +0 -0
  13. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/climate_data/InletWaterTemperatures_ByClimateZone.csv +0 -0
  14. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/climate_data/WeatherStation_ClimateZone_Lookup.csv +0 -0
  15. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/climate_data/ZipCode_ClimateZone_Lookup.csv +0 -0
  16. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/climate_data/__init__.py +0 -0
  17. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/climate_data/kGperkWh_ByClimateZone.csv +0 -0
  18. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/load_shapes/__init__.py +0 -0
  19. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/load_shapes/apartment.json +0 -0
  20. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/load_shapes/elementary_school.json +0 -0
  21. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/load_shapes/food_service_a.json +0 -0
  22. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/load_shapes/food_service_b.json +0 -0
  23. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/load_shapes/junior_high.json +0 -0
  24. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/load_shapes/mens_dorm.json +0 -0
  25. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/load_shapes/motel.json +0 -0
  26. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/load_shapes/multi_family.json +0 -0
  27. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/load_shapes/nursing_home.json +0 -0
  28. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/load_shapes/office_building.json +0 -0
  29. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/load_shapes/senior_high.json +0 -0
  30. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/load_shapes/womens_dorm.json +0 -0
  31. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/preformanceMaps/__init__.py +0 -0
  32. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/preformanceMaps/maps.json +0 -0
  33. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/preformanceMaps/pkls/GenericHPWH3_SP_bounds.pkl +0 -0
  34. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/preformanceMaps/pkls/GenericHPWH3_SP_capacity_interpolator.pkl +0 -0
  35. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/preformanceMaps/pkls/GenericHPWH3_SP_power_in_interpolator.pkl +0 -0
  36. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/preformanceMaps/pkls/GenericHPWH4_MP_bounds.pkl +0 -0
  37. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/preformanceMaps/pkls/GenericHPWH4_MP_capacity_interpolator.pkl +0 -0
  38. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/preformanceMaps/pkls/GenericHPWH4_MP_power_in_interpolator.pkl +0 -0
  39. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/data/preformanceMaps/pkls/__init__.py +0 -0
  40. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/interfaces/EcosizerEngine.py +0 -0
  41. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/interfaces/Simulator.py +0 -0
  42. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/interfaces/__init__.py +0 -0
  43. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/__init__.py +0 -0
  44. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/building/Building.py +0 -0
  45. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/building/ClimateZone.py +0 -0
  46. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/building/UtilityCostTracker.py +0 -0
  47. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/building/__init__.py +0 -0
  48. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/components/__init__.py +0 -0
  49. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/components/heating/Controls.py +0 -0
  50. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/components/heating/PerformanceMap.py +0 -0
  51. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/components/heating/WaterHeater.py +0 -0
  52. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/components/heating/__init__.py +0 -0
  53. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/components/storage/EnergyTank.py +0 -0
  54. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/components/storage/MixedStorageTank.py +0 -0
  55. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/components/storage/SlugOverlayTank.py +0 -0
  56. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/components/storage/StorageTank.py +0 -0
  57. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/components/storage/StratifiedTank.py +0 -0
  58. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/components/storage/__init__.py +0 -0
  59. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/dhwsystems/DHWSystem.py +0 -0
  60. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/dhwsystems/InstantWHSystem.py +0 -0
  61. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/dhwsystems/MPNoRecircSystem.py +0 -0
  62. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/dhwsystems/__init__.py +0 -0
  63. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/dhwsystems/recirc_systems/ParallelLoopSystem.py +0 -0
  64. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/dhwsystems/recirc_systems/RecircSystem.py +0 -0
  65. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/dhwsystems/recirc_systems/SwingDualFuelSystem.py +0 -0
  66. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/dhwsystems/recirc_systems/SwingERTrdOffSystem.py +0 -0
  67. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/dhwsystems/recirc_systems/SwingSystem.py +0 -0
  68. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/dhwsystems/recirc_systems/__init__.py +0 -0
  69. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/dhwsystems/rtp_systems/MP_RTPInSeriesSystem.py +0 -0
  70. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/dhwsystems/rtp_systems/MultiPassRTPSystem.py +0 -0
  71. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/dhwsystems/rtp_systems/RTPSystem.py +0 -0
  72. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/dhwsystems/rtp_systems/SP_RTPInParallelSystem.py +0 -0
  73. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/dhwsystems/rtp_systems/SP_RTPInSeriesSystem.py +0 -0
  74. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/dhwsystems/rtp_systems/SinglePassRTPSystem.py +0 -0
  75. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/dhwsystems/rtp_systems/__init__.py +0 -0
  76. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/dhwsystems/utils.py +0 -0
  77. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/simulation/SimulationRun.py +0 -0
  78. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine/objects/simulation/__init__.py +0 -0
  79. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine.egg-info/SOURCES.txt +0 -0
  80. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine.egg-info/dependency_links.txt +0 -0
  81. {ecoengine-3.1.6 → ecoengine-3.2.0}/src/ecoengine.egg-info/top_level.txt +0 -0
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ecoengine
3
- Version: 3.1.6
4
- Requires-Python: <3.12,>=3.11
5
- Requires-Dist: numpy~=1.24.1
6
- Requires-Dist: scipy<2.0,>=1.10
7
- Requires-Dist: plotly==5.19.0
3
+ Version: 3.2.0
4
+ Requires-Python: >=3.11
5
+ Requires-Dist: numpy<3.0,>=2.4
6
+ Requires-Dist: scipy<2.0,>=1.17
7
+ Requires-Dist: plotly<8.0,>=7.0
8
8
  Provides-Extra: docs
9
9
  Requires-Dist: sphinx>=6; extra == "docs"
10
10
  Requires-Dist: furo; extra == "docs"
@@ -5,7 +5,7 @@ This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you a
5
5
 
6
6
  A Python simulation engine for sizing and simulating domestic hot water (DHW) systems in multi-family and commercial buildings, with a focus on heat pump water heater (HPWH) technology.
7
7
 
8
- Requires Python 3.11 (capped below 3.12). Dependencies: `numpy`, `scipy`, `plotly`.
8
+ Requires Python 3.11 or newer. Dependencies: `numpy`, `scipy`, `plotly`.
9
9
 
10
10
  Version bounds are deliberate. `ecoengine` is installed into the same environments as `ecopipeline` (DataPipelinePackage) and `rcc-dash-viewer` (RCCDashViewer, which depends on `ecoengine` directly), so the pins are set to resolve alongside both. See the comments in `pyproject.toml` before loosening them.
11
11
 
@@ -4,33 +4,34 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "ecoengine"
7
- version = "3.1.6"
8
- requires-python = ">=3.11,<3.12"
7
+ version = "3.2.0"
8
+ requires-python = ">=3.11"
9
9
 
10
- # Upper bounds are deliberate, and match the bounds in ecopipeline
11
- # (DataPipelinePackage). Coworkers install both packages into the same
10
+ # Ranges are bounded on purpose, and the shared ones are kept in sync with
11
+ # ecopipeline (DataPipelinePackage) and rcc-dash-viewer (RCCDashViewer, which
12
+ # depends on ecoengine directly). All three get installed into the same
12
13
  # long-lived environments, so an unbounded range lets a routine `pip install`
13
- # pull in a release that satisfies one package and breaks the other (numpy 2.x
14
- # against pandas 1.5.x being the recurring case there). The Python cap exists
15
- # for the same reason: ecopipeline is capped at <3.12, so an uncapped ecoengine
16
- # would allow a 3.12 environment that ecopipeline cannot join.
14
+ # pull a release that satisfies one package and breaks another. Note that a
15
+ # clean resolution is not proof of a working environment: pandas 1.5.3 declared
16
+ # no numpy ceiling, so it resolved happily against numpy 2 and then failed at
17
+ # import with a binary-incompatibility ValueError. That is what these bounds
18
+ # are for. When bumping a shared range, bump it in all three repos together.
17
19
  #
18
20
  # scipy is not imported anywhere in this source tree. It is required at runtime
19
21
  # to unpickle the LinearNDInterpolator objects in data/preformanceMaps/pkls/,
20
22
  # which PklPerformanceMap loads. Do not remove it on the basis of an import
21
23
  # scan. The <2.0 ceiling is not precautionary: scipy.interpolate.interpnd is
22
- # deprecated and is removed in SciPy 2.0, which will break those pickles. The
23
- # range has been exercised at 1.10.0, 1.11.1, and 1.15.3 against numpy 1.24.x.
24
+ # deprecated and is removed in SciPy 2.0, which will break those pickles.
25
+ # scipy also gates numpy indirectly — 1.16 requires numpy>=1.25.2 and 1.17
26
+ # requires numpy>=1.26.4 — so the scipy floor and the numpy floor move together.
24
27
  #
25
- # plotly is pinned exactly rather than ranged, to match rcc-dash-viewer
26
- # (RCCDashViewer), which depends on ecoengine directly and hard-pins
27
- # plotly==5.19.0. Keeping the two identical means the figures this package
28
- # generates render against the same plotly the dashboard ships. Bump both
29
- # together or not at all.
28
+ # Verified against numpy 2.4.6 / scipy 1.17.1 / plotly 7.0.0: full test suite,
29
+ # all six performance-map pickles, and the to_plotly / plot_sizing_curve /
30
+ # write_html output paths.
30
31
  dependencies = [
31
- "numpy~=1.24.1",
32
- "scipy>=1.10,<2.0",
33
- "plotly==5.19.0",
32
+ "numpy>=2.4,<3.0",
33
+ "scipy>=1.17,<2.0",
34
+ "plotly>=7.0,<8.0",
34
35
  ]
35
36
 
36
37
  [project.optional-dependencies]
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ecoengine
3
- Version: 3.1.6
4
- Requires-Python: <3.12,>=3.11
5
- Requires-Dist: numpy~=1.24.1
6
- Requires-Dist: scipy<2.0,>=1.10
7
- Requires-Dist: plotly==5.19.0
3
+ Version: 3.2.0
4
+ Requires-Python: >=3.11
5
+ Requires-Dist: numpy<3.0,>=2.4
6
+ Requires-Dist: scipy<2.0,>=1.17
7
+ Requires-Dist: plotly<8.0,>=7.0
8
8
  Provides-Extra: docs
9
9
  Requires-Dist: sphinx>=6; extra == "docs"
10
10
  Requires-Dist: furo; extra == "docs"
@@ -0,0 +1,7 @@
1
+ numpy<3.0,>=2.4
2
+ scipy<2.0,>=1.17
3
+ plotly<8.0,>=7.0
4
+
5
+ [docs]
6
+ sphinx>=6
7
+ furo
@@ -1,7 +0,0 @@
1
- numpy~=1.24.1
2
- scipy<2.0,>=1.10
3
- plotly==5.19.0
4
-
5
- [docs]
6
- sphinx>=6
7
- furo
File without changes