epyt-flow 0.10.0__py3-none-any.whl → 0.12.0__py3-none-any.whl

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 (42) hide show
  1. epyt_flow/VERSION +1 -1
  2. epyt_flow/data/benchmarks/gecco_water_quality.py +2 -2
  3. epyt_flow/data/benchmarks/leakdb.py +40 -5
  4. epyt_flow/data/benchmarks/water_usage.py +4 -3
  5. epyt_flow/data/networks.py +27 -14
  6. epyt_flow/gym/__init__.py +0 -3
  7. epyt_flow/gym/scenario_control_env.py +11 -13
  8. epyt_flow/rest_api/scenario/control_handlers.py +118 -0
  9. epyt_flow/rest_api/scenario/event_handlers.py +114 -1
  10. epyt_flow/rest_api/scenario/handlers.py +33 -0
  11. epyt_flow/rest_api/server.py +14 -2
  12. epyt_flow/serialization.py +1 -0
  13. epyt_flow/simulation/__init__.py +0 -1
  14. epyt_flow/simulation/backend/__init__.py +1 -0
  15. epyt_flow/simulation/backend/my_epyt.py +1056 -0
  16. epyt_flow/simulation/events/actuator_events.py +7 -1
  17. epyt_flow/simulation/events/quality_events.py +3 -1
  18. epyt_flow/simulation/scada/scada_data.py +716 -5
  19. epyt_flow/simulation/scenario_config.py +1 -40
  20. epyt_flow/simulation/scenario_simulator.py +645 -119
  21. epyt_flow/simulation/sensor_config.py +18 -2
  22. epyt_flow/topology.py +24 -7
  23. epyt_flow/uncertainty/model_uncertainty.py +80 -62
  24. epyt_flow/uncertainty/sensor_noise.py +15 -4
  25. epyt_flow/uncertainty/uncertainties.py +71 -18
  26. epyt_flow/uncertainty/utils.py +40 -13
  27. epyt_flow/utils.py +45 -1
  28. epyt_flow/visualization/__init__.py +2 -0
  29. epyt_flow/visualization/scenario_visualizer.py +1240 -0
  30. epyt_flow/visualization/visualization_utils.py +738 -0
  31. {epyt_flow-0.10.0.dist-info → epyt_flow-0.12.0.dist-info}/METADATA +15 -4
  32. {epyt_flow-0.10.0.dist-info → epyt_flow-0.12.0.dist-info}/RECORD +35 -36
  33. {epyt_flow-0.10.0.dist-info → epyt_flow-0.12.0.dist-info}/WHEEL +1 -1
  34. epyt_flow/gym/control_gyms.py +0 -47
  35. epyt_flow/metrics.py +0 -466
  36. epyt_flow/models/__init__.py +0 -2
  37. epyt_flow/models/event_detector.py +0 -31
  38. epyt_flow/models/sensor_interpolation_detector.py +0 -118
  39. epyt_flow/simulation/scada/advanced_control.py +0 -138
  40. epyt_flow/simulation/scenario_visualizer.py +0 -1307
  41. {epyt_flow-0.10.0.dist-info → epyt_flow-0.12.0.dist-info/licenses}/LICENSE +0 -0
  42. {epyt_flow-0.10.0.dist-info → epyt_flow-0.12.0.dist-info}/top_level.txt +0 -0
@@ -1,9 +1,9 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: epyt-flow
3
- Version: 0.10.0
3
+ Version: 0.12.0
4
4
  Summary: EPyT-Flow -- EPANET Python Toolkit - Flow
5
5
  Author-email: André Artelt <aartelt@techfak.uni-bielefeld.de>, "Marios S. Kyriakou" <kiriakou.marios@ucy.ac.cy>, "Stelios G. Vrachimis" <vrachimis.stelios@ucy.ac.cy>
6
- License: MIT License
6
+ License-Expression: MIT
7
7
  Project-URL: Homepage, https://github.com/WaterFutures/EPyT-Flow
8
8
  Project-URL: Documentation, https://epyt-flow.readthedocs.io/en/stable/
9
9
  Project-URL: Repository, https://github.com/WaterFutures/EPyT-Flow.git
@@ -11,7 +11,6 @@ Project-URL: Issues, https://github.com/WaterFutures/EPyT-Flow/issues
11
11
  Keywords: epanet,water,networks,hydraulics,quality,simulations
12
12
  Classifier: Development Status :: 4 - Beta
13
13
  Classifier: Intended Audience :: Science/Research
14
- Classifier: License :: OSI Approved :: MIT License
15
14
  Classifier: Programming Language :: Python :: 3
16
15
  Classifier: Programming Language :: Python :: 3.9
17
16
  Classifier: Programming Language :: Python :: 3.10
@@ -35,6 +34,7 @@ Requires-Dist: geopandas>=0.14.4
35
34
  Requires-Dist: svgpath2mpl>=1.0.0
36
35
  Requires-Dist: Deprecated>=1.2.14
37
36
  Requires-Dist: psutil
37
+ Dynamic: license-file
38
38
 
39
39
  [![pypi](https://img.shields.io/pypi/v/epyt-flow.svg)](https://pypi.org/project/epyt-flow/)
40
40
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
@@ -184,6 +184,17 @@ Besides that, you can read in-depth about the different functionalities of EPyT-
184
184
  we recommend reading the chapters in the order in which they are presented;
185
185
  you might decide to skip some of the last chapters if their content is not relevant to you.
186
186
 
187
+ ## More Networks and Benchmarks
188
+
189
+ More Water Distribution Networks (WDNs) and benchmarks are available on the
190
+ [WaterBenchmarkHub](https://waterfutures.github.io/WaterBenchmarkHub) platform.
191
+
192
+ ## More on Control
193
+
194
+ We recommend checking out [EPyT-Control](https://github.com/WaterFutures/EPyT-Control)
195
+ if you are intersted in (data-driven) control and relates tasks such as state estimation
196
+ and event diagnosis in Water Distribution Networks.
197
+
187
198
  ## License
188
199
 
189
200
  MIT license -- see [LICENSE](LICENSE)
@@ -1,9 +1,8 @@
1
- epyt_flow/VERSION,sha256=3CT-tb01CE2K4ypOr77BI1JwfUZiQB_LzJu9aWzed6k,7
1
+ epyt_flow/VERSION,sha256=ipMkE9QvlQgvgyNEdlI3mkiF4ygynvyjpn7Jx5PAmUA,7
2
2
  epyt_flow/__init__.py,sha256=n-zI5G3DUofs_pNC5YNWopNPCPUtpL-jYi8RPH6eakw,1768
3
- epyt_flow/metrics.py,sha256=R-Xz7zYLj7Yqi0u7VvmqYBD8sbhwbEp6plYAX7fg9nk,16249
4
- epyt_flow/serialization.py,sha256=ObgnixxO3fA-4aHUtMTQ0ys1NpivD92Se43BSlcUgg8,14529
5
- epyt_flow/topology.py,sha256=6ssDcUyHYNT8PGHyVysfs7TuAM5LmfkETrONC7uC30Q,25441
6
- epyt_flow/utils.py,sha256=FWbmnfBoZOQG5cFkls4aQ4Y67H-PvtrK-wmOXtyc-Cg,15833
3
+ epyt_flow/serialization.py,sha256=uGGN1iZ21ek1u6Xzs4z2xum5Qt8554Wem-wEMGEaa7I,14574
4
+ epyt_flow/topology.py,sha256=Ih6m_tMT1JlPOJv8rHDVBtNayFOarPyAmCbMyojJtQg,26037
5
+ epyt_flow/utils.py,sha256=R_IE6uuTF2MRjUkgWDEa3xOYk8iorieHCqqQ0tDUZ40,17476
7
6
  epyt_flow/EPANET/compile_linux.sh,sha256=wcrDyiB8NkivmaC-X9FI2WxhY3IJqDLiyIbVTv2XEPY,489
8
7
  epyt_flow/EPANET/compile_macos.sh,sha256=1K33-bPdgr01EIf87YUvmOFHXyOkBWI6mKXQ8x1Hzmo,504
9
8
  epyt_flow/EPANET/EPANET/SRC_engines/AUTHORS,sha256=yie5yAsEEPY0984PmkSRUdqEU9rVvRSGGWmjxdwCYMU,925
@@ -80,64 +79,64 @@ epyt_flow/EPANET/EPANET-MSX/Src/smatrix.h,sha256=heHTNgQNNDTs_Jx0YBts7_B7dPg8VUF
80
79
  epyt_flow/EPANET/EPANET-MSX/Src/include/epanetmsx.h,sha256=L9y0VKHk5Fg1JZxID9uBzcvLZWOb1xuQP-MkmHH_LD4,3429
81
80
  epyt_flow/EPANET/EPANET-MSX/Src/include/epanetmsx_export.h,sha256=h5UMaf6pH_0asRJOmhWUGAZhyA180ui2Cz8_y5h1FKw,1054
82
81
  epyt_flow/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
- epyt_flow/data/networks.py,sha256=Cr3ygIwSE182mOi0CnLmwTbtiOjo5XAVgn7zuW7yUhs,37899
82
+ epyt_flow/data/networks.py,sha256=fZLv3yv_iDS23H-7KNMxNhCvfvrr9WdO7VNR5K3e94U,39842
84
83
  epyt_flow/data/benchmarks/__init__.py,sha256=nJ6hqPaPNp8YMizniev3fwOWpzvvNUBMoRF16wACUkE,754
85
84
  epyt_flow/data/benchmarks/batadal.py,sha256=E9kl0gI5HyL6LZ9ZoLZwdQBNHXKblWW1QV4E8ucr99s,11247
86
85
  epyt_flow/data/benchmarks/batadal_data.py,sha256=oIzcysGivMPAgrfzrk5l8i-j6Ii96DPcFa6sL4TSaw8,880
87
86
  epyt_flow/data/benchmarks/battledim.py,sha256=JS8nYZVTAhNhhUber_m3_rK-_J94Jqx9B-0DHBc_NfA,20756
88
87
  epyt_flow/data/benchmarks/battledim_data.py,sha256=0vHm-2eAiLv6U-n5dqUUWS1o_szFRy9mVJ3eqDRp4PE,3373
89
- epyt_flow/data/benchmarks/gecco_water_quality.py,sha256=Aes0Cua8w7Lz6CBD8JeK4etTvHY-oDX3GSq0JbseY2c,11409
90
- epyt_flow/data/benchmarks/leakdb.py,sha256=IwOl0vLL5Fn5sJjWrB4eIq52nMx7kmdUpiB2HDGl_rs,25483
88
+ epyt_flow/data/benchmarks/gecco_water_quality.py,sha256=xYN-xrcx409IhTJjvaMbZABORru3XQNnble76aAOKQ8,11414
89
+ epyt_flow/data/benchmarks/leakdb.py,sha256=IEP6-bx9il65kX5mlGK1M9cevQPvAwLaDxg9YaX9qVg,26690
91
90
  epyt_flow/data/benchmarks/leakdb_data.py,sha256=FNssgMkC1wqWVlaOrrihr4Od9trEZY7KeK5KuBeRMvM,507058
92
- epyt_flow/data/benchmarks/water_usage.py,sha256=COgsLRSzcG0JT5xh2qdDm7IjuMCx6n_zrdxOPupHiJY,4920
93
- epyt_flow/gym/__init__.py,sha256=KNTDtPTEtHwZ4ehHfj9qGw81Z9acFqPIgMzYUzH5_uM,115
94
- epyt_flow/gym/control_gyms.py,sha256=1Yi_ioLS8qNvHNOXuve6NWTd1_LH7QBsaJojObNKglw,1283
95
- epyt_flow/gym/scenario_control_env.py,sha256=vjgyuMev4O2bw7U806nIpaDN1s6UlFHQ24JocvZybx4,12610
96
- epyt_flow/models/__init__.py,sha256=be5s08y1Tg66SuNYKGz5GnNMHThnQJo8SWJdT9493Kc,75
97
- epyt_flow/models/event_detector.py,sha256=idR7byBgloo07XEJEyMIwi49VW4wxJErLQtI-tJXWPs,789
98
- epyt_flow/models/sensor_interpolation_detector.py,sha256=WNuaiS_sUBvMAkHifpCIvx1gz2NEMQeT7kgLsVmXYCQ,3859
91
+ epyt_flow/data/benchmarks/water_usage.py,sha256=RiLGLof1HT0luwn7_dG11_nP5U5r9B3L8vDLuwsIKTM,4962
92
+ epyt_flow/gym/__init__.py,sha256=gDIP9VGjKraajsJo6MnPN-TaEUTLnnJNj2c_7jrb8Bg,36
93
+ epyt_flow/gym/scenario_control_env.py,sha256=-sydXb7x6765dfZyqpThXF9BnIVcMLyzshMlbpXuZng,12618
99
94
  epyt_flow/rest_api/__init__.py,sha256=4HilmXhdh6H56UHJBB2WUSULlEBUDnI1FPTP11ft3HE,126
100
95
  epyt_flow/rest_api/base_handler.py,sha256=HDLXrMXqgWvxWAsB-3G4plyTyCv27_eBbq4eRl_FeBo,2609
101
96
  epyt_flow/rest_api/res_manager.py,sha256=j6-3FUBZNLKM9bCsIDZzSytfDYJbDLRwjn1mIPstTqI,2342
102
- epyt_flow/rest_api/server.py,sha256=kZlprvRw7op39s7KhtEt1TgAsqs94KTQEdzIW9NMMJc,7778
97
+ epyt_flow/rest_api/server.py,sha256=cPQM17rdbXLFlPRePb0Y7OcCyfJUN9SX7cv0etHtfvo,8727
103
98
  epyt_flow/rest_api/scada_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
104
99
  epyt_flow/rest_api/scada_data/data_handlers.py,sha256=VGw3uakxhFgqLMYRC5OaAuCbp0SnGxdPXWruUVEBiJc,11895
105
100
  epyt_flow/rest_api/scada_data/export_handlers.py,sha256=W-T2WgPuG8cNVzA8h3e0lwi-nSKFi11PPyuNQWTMwzg,4624
106
101
  epyt_flow/rest_api/scada_data/handlers.py,sha256=jcGw91TjjhRQm_hJvjbWvSTBLpvMJDOA4bQw5iOpSUw,7673
107
102
  epyt_flow/rest_api/scenario/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
- epyt_flow/rest_api/scenario/event_handlers.py,sha256=rld6gbneARp079ege4IU5J5jefkZtOvgNnlFMi-fm18,4362
109
- epyt_flow/rest_api/scenario/handlers.py,sha256=r355-4wjQGOH0vpDTOOIP9qC8bo_Sm7znir2BgNuweg,13656
103
+ epyt_flow/rest_api/scenario/control_handlers.py,sha256=ouxc54V_yJyoO2yPJEJqcPbZs7CXgM_CWKGj5RvkABQ,4585
104
+ epyt_flow/rest_api/scenario/event_handlers.py,sha256=wgKWFHJPwF4celetSb-_jTlrcicoxDbC7GpZ9uw-BJY,8969
105
+ epyt_flow/rest_api/scenario/handlers.py,sha256=v1V6gsBh2HLtPTnl9_53W13Awo5YjG681Urp24yXelY,14993
110
106
  epyt_flow/rest_api/scenario/simulation_handlers.py,sha256=A59Iv-6k7SlGF_RDQgoFlvHWM1mScvfCobXBW4Rhh6E,6511
111
107
  epyt_flow/rest_api/scenario/uncertainty_handlers.py,sha256=Pdo2YmiawOqKXWcLs2P-lv5qN-OKHS3sDgkAFQeRzK8,4568
112
- epyt_flow/simulation/__init__.py,sha256=VGGJqJRUoXZjKJ0-m6KPp3JQqD_1TFW0pofLgkwZJ8M,164
108
+ epyt_flow/simulation/__init__.py,sha256=nihvZ8O2rJjYQkv7JhtVMqNacO5bA38VtS8Y_0BWrVQ,129
113
109
  epyt_flow/simulation/parallel_simulation.py,sha256=ph4KXw9jCt-hiJFJbmC6fNvEsrbQoWV-tFKE5-qSfoQ,6523
114
- epyt_flow/simulation/scenario_config.py,sha256=JxyT5rCFgVG7SN5Fm6zpGG0lKCqZSXDpTcZhA8wL4KE,32440
115
- epyt_flow/simulation/scenario_simulator.py,sha256=8Ac0Oc4nU3SbZlbbhjaYSBIDpNzp6RVC-K9zrHo_f98,135015
116
- epyt_flow/simulation/scenario_visualizer.py,sha256=CITY1hjhZKfFINaecxsPfQmB7b_zEAzNrHu5rx8BvY4,59339
117
- epyt_flow/simulation/sensor_config.py,sha256=JgVdn8noP8stv4neEPU6Rvn15g5T4BofQjG8NlsdHfU,93769
110
+ epyt_flow/simulation/scenario_config.py,sha256=uHHwwzCRwooVdODxDNoCOUgfrlol1K-TS8P8_Ja9Coc,30435
111
+ epyt_flow/simulation/scenario_simulator.py,sha256=qdGGrHGytbSOLtzM8KSOfOyJQ6fbx84R2JF-YEWCAu8,160443
112
+ epyt_flow/simulation/sensor_config.py,sha256=AGAIC5vqcu2UZsglSCwv2pvZ3E0kbTtdaqtFPEMBwSw,94262
113
+ epyt_flow/simulation/backend/__init__.py,sha256=tkJb2NB_hruTv39sYHAq9ffazyA-UzZzFmiy2nYVTqA,23
114
+ epyt_flow/simulation/backend/my_epyt.py,sha256=edkhDDOZBtYSpaQmnui_opdetebaS9ZzBwngnIpkc3s,32040
118
115
  epyt_flow/simulation/events/__init__.py,sha256=gv8ZcvwjJN0Z5MwRXEOVFRNq4X5NPyyqXIQnhBxszQ0,215
119
- epyt_flow/simulation/events/actuator_events.py,sha256=rEGWYxic5mH0guBw-yUnj9yTmhqzVeBwD2udx_IbAco,7913
116
+ epyt_flow/simulation/events/actuator_events.py,sha256=gNOIZL9WNiIhEANi8yEyGxKx4vSMBZiRpiSJ4BbDL60,8171
120
117
  epyt_flow/simulation/events/event.py,sha256=kARPV20XCAl6zxnJwI9U7ICtZUPACO_rgAmtHm1mGCs,2603
121
118
  epyt_flow/simulation/events/leakages.py,sha256=pFSbOiKeGeHPZhLAgo2DFFI1QYImd7m167lMW6B-n-U,17838
122
- epyt_flow/simulation/events/quality_events.py,sha256=y9i1U4xjwsoDZ55vtjl4KeJt5AbYJsfVt7X0Xw0Mq6Y,7965
119
+ epyt_flow/simulation/events/quality_events.py,sha256=b0tClag6ln0eJtEfJ-HTvkD5nn7bjmyS-x_b1bfeqGQ,8053
123
120
  epyt_flow/simulation/events/sensor_faults.py,sha256=XX6k-GJh9RWZ4x54eGj9um-Ir9Eq41tY_9pRSCeYeqc,8447
124
121
  epyt_flow/simulation/events/sensor_reading_attack.py,sha256=2E8q6yWnLxeLgYxW0MHw0GSjlUDjIIZ2GybVRLA7FJQ,7967
125
122
  epyt_flow/simulation/events/sensor_reading_event.py,sha256=OWMRWPsvgMgaynMayJ-hQotP9zV5sDIYrOfY0fOCuvc,7586
126
123
  epyt_flow/simulation/events/system_event.py,sha256=IGypfTL-miosmwKd4DGTYvByyBcl8__0Asiifw-SzUQ,2606
127
124
  epyt_flow/simulation/scada/__init__.py,sha256=pfJhg-tM5DaiZTXs0_1qJsY2R6Py_LwSz6BUFJexfQM,150
128
- epyt_flow/simulation/scada/advanced_control.py,sha256=t0dlEHsnUE0T-du2_5YBYUzMW4a3-Qxw0tT_e9Z9g8Y,4883
129
125
  epyt_flow/simulation/scada/complex_control.py,sha256=p2ehLyScJbj2jbyevXf7T3Ot8jnBYWgRR3Cz-m3boB0,22107
130
126
  epyt_flow/simulation/scada/custom_control.py,sha256=QzkKcn7t53GcTaRofRDbY-HErcDReMF4utWkck6bN60,4681
131
- epyt_flow/simulation/scada/scada_data.py,sha256=UHGhB--Pywzmcv1NikK_Ci63r8XDp3LnqUiQrZJ5-6A,169826
127
+ epyt_flow/simulation/scada/scada_data.py,sha256=vzhTUoUIdmqTj9rP2w00q1dAaT90rY5vY2S6Sgo04jg,203434
132
128
  epyt_flow/simulation/scada/scada_data_export.py,sha256=WNAFn_WNfzYAEFbl2Al-cOIx-A0ozY4AI60-i_qEHdc,11643
133
129
  epyt_flow/simulation/scada/simple_control.py,sha256=wUsxsrgqmYxXR93_atcKbV9E-t3hgqj60ZeTvoBBnoQ,12215
134
130
  epyt_flow/uncertainty/__init__.py,sha256=ZRjuJL9rDpWVSdPwObPxFpEmMTcgAl3VmPOsS6cIyGg,89
135
- epyt_flow/uncertainty/model_uncertainty.py,sha256=TY6oYFwRUCsPh_j5SeFbiuzco0459kCnbNbn8XcX1e4,41611
136
- epyt_flow/uncertainty/sensor_noise.py,sha256=-MhzYp6jj7B-NNK8dzJb1bqT_tJygc-YrDeJdDm0m4o,6356
137
- epyt_flow/uncertainty/uncertainties.py,sha256=sZRMp2GLl2ITxIwW8X3wun82PhLz6r1DEm5slJ_Hkvk,18186
138
- epyt_flow/uncertainty/utils.py,sha256=SllRi9Drsy46tXJ2AUKauJUAFyIpxgfDNfBhfwrh0cY,5812
139
- epyt_flow-0.10.0.dist-info/LICENSE,sha256=YRJC2kcAhMlpEeHwUF0lzE-GRXLFyAjXNErI8L5UwYk,1071
140
- epyt_flow-0.10.0.dist-info/METADATA,sha256=2qNh00wAOnHSFgdQo6h7T-YdonjSbuRuoblYEIH7WRk,9300
141
- epyt_flow-0.10.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
142
- epyt_flow-0.10.0.dist-info/top_level.txt,sha256=Wh_kd7TRL8ownCw3Y3dxx-9C0iTSk6wNauv_NX9JcrY,10
143
- epyt_flow-0.10.0.dist-info/RECORD,,
131
+ epyt_flow/uncertainty/model_uncertainty.py,sha256=Bfc9OgecJbX2qOiANhTSKdK_m95aRuXkIGyc22b8d30,41183
132
+ epyt_flow/uncertainty/sensor_noise.py,sha256=AYtc6YOfzIfBq3zTBWT5s_A4EFthqfLcpXwJZZO0wIY,6789
133
+ epyt_flow/uncertainty/uncertainties.py,sha256=5bZu1Zx8RZ6ESzJSvjtPogNkft3eemTojRsYdi_i1Qo,20495
134
+ epyt_flow/uncertainty/utils.py,sha256=K-ZhyO6Bg7UmNPgpfND0JLa_wRwyrtUUgGTWyWwy-fo,8029
135
+ epyt_flow/visualization/__init__.py,sha256=uQ7lO6AsgLc88X48Te3QhBQY-iDKGvdPtxKCl4b-Mfw,70
136
+ epyt_flow/visualization/scenario_visualizer.py,sha256=vkP0J_OfjvePUz_HehXJkH4CGKR3chAHe_UTx4hQ6XI,57860
137
+ epyt_flow/visualization/visualization_utils.py,sha256=l-EQ9UlY9MDBcOhK-uUZ9c-tX9emVqlo4xSqR-Sg17M,27525
138
+ epyt_flow-0.12.0.dist-info/licenses/LICENSE,sha256=YRJC2kcAhMlpEeHwUF0lzE-GRXLFyAjXNErI8L5UwYk,1071
139
+ epyt_flow-0.12.0.dist-info/METADATA,sha256=UDnqvbPrbiLm6Ni2ywj80vXIKx3MWBCeFIJ-c4cKW18,9713
140
+ epyt_flow-0.12.0.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
141
+ epyt_flow-0.12.0.dist-info/top_level.txt,sha256=Wh_kd7TRL8ownCw3Y3dxx-9C0iTSk6wNauv_NX9JcrY,10
142
+ epyt_flow-0.12.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.0)
2
+ Generator: setuptools (79.0.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,47 +0,0 @@
1
- """
2
- Module provides functions for registering and creating control environments.
3
- """
4
- from .scenario_control_env import ScenarioControlEnv
5
-
6
-
7
- environments = {}
8
-
9
-
10
- def register(env_name: str, env: ScenarioControlEnv) -> None:
11
- """
12
- Registers a new environment under a given name.
13
-
14
- Parameters
15
- ----------
16
- env_name : `str`
17
- Name of the environment -- must be unique among all environments.
18
- env : :class:`~epyt_flow.gym.scenario_control_env.ScenarioControlEnv`
19
- Environment.
20
- """
21
- if env_name in environments:
22
- raise ValueError(f"Environment '{env_name}' already exists.")
23
- if not issubclass(env, ScenarioControlEnv):
24
- raise TypeError("'env' must be a subclass of " +
25
- "'epyt_flow.gym.ScenarioControlEnv'")
26
-
27
- environments[env_name] = env
28
-
29
-
30
- def make(env_name: str, **kwds) -> ScenarioControlEnv:
31
- """
32
- Creates an instance of a registered environment.
33
-
34
- Parameters
35
- ----------
36
- env_name : `str`
37
- Name of the environment.
38
-
39
- Returns
40
- -------
41
- :class:`~epyt_flow.gym.scenario_control_env.ScenarioControlEnv`
42
- Environment.
43
- """
44
- if env_name not in environments:
45
- raise ValueError(f"Unknown environment '{env_name}'.")
46
-
47
- return environments[env_name](**kwds)