Documentation
* docs: some fixes in various docstrings ([`c8a02df`](https://github.com/oopnet/oopnet/commit/c8a02df63cb53865fee6525ea7e5932c9b65e55d))
Feature
* feat: nonsense to create new release ([`617dee9`](https://github.com/oopnet/oopnet/commit/617dee993de458a42b374bc61a3eee834f699beb))
* feat: added SimulatorTest for C-Town model
- Friction Factors and Status are not checked currently
- only using feat to trigger a new release for testing purposes ([`9c410d9`](https://github.com/oopnet/oopnet/commit/9c410d926c7ef85b2b63fdf04d705ba5df2f9c7e))
Refactor
* refactor: switched Valve settings to individual attributes like maximum pressure
- adapted reader, writer and tests ([`d9853b2`](https://github.com/oopnet/oopnet/commit/d9853b22f845279cb07d50f30fd6d53587a188ec))
Test
* test: fixed data reading for SimulatorTests ([`c44d8b7`](https://github.com/oopnet/oopnet/commit/c44d8b7fab80f1fc5d8accb5f6c701f9f1af20fb))
* test: fixed data reading for SimulatorTests ([`9d1dae7`](https://github.com/oopnet/oopnet/commit/9d1dae7a06bd2e4b5d8c99c5c8edf549cb4f97a8))
* test: fixed exception tests ([`bd60b37`](https://github.com/oopnet/oopnet/commit/bd60b3737b97591d584ef85be1175256beb1e494))
* test: fixed exception tests ([`7df91e7`](https://github.com/oopnet/oopnet/commit/7df91e781685c31568dce8f62a7f3520bec9bdbf))
Unknown
* fixed data reading for SimulatorTests ([`114c945`](https://github.com/oopnet/oopnet/commit/114c945a4194a284db63a229a5955ac51efb7cac))
* Automated changes ([`63996ed`](https://github.com/oopnet/oopnet/commit/63996eda2a4e53f7a22c607f6105ae302b78b4ab))
* Update setup.cfg ([`7d96993`](https://github.com/oopnet/oopnet/commit/7d96993a865814a11ae7995b426c6c791d115b64))
* added output=True for model simulation tests for better debugging ([`5bbca1d`](https://github.com/oopnet/oopnet/commit/5bbca1df8b122d380ab7b66ae889dfded8fae1c1))
* Update build.yml ([`65708c5`](https://github.com/oopnet/oopnet/commit/65708c5ed772cb608174e26aade40aabdc3bde2f))
* Update build.yml ([`ead3dad`](https://github.com/oopnet/oopnet/commit/ead3dade1276ab9f09557f853aff2857bed8711c))
* added requirements-dev.txt ([`b28d2d1`](https://github.com/oopnet/oopnet/commit/b28d2d16157a07817ff5da1f27de1c18694f932e))
* Update build.yml ([`1aa7441`](https://github.com/oopnet/oopnet/commit/1aa744133d6b9c802a5276d15da846f060ff348b))
* Update build.yml ([`2ce70e3`](https://github.com/oopnet/oopnet/commit/2ce70e3608d54a648d9dfb20e79cacac62bfa030))
* Update and rename python-app.yml to build.yml ([`1febe93`](https://github.com/oopnet/oopnet/commit/1febe93e14d093c9f184e1f0092245a273073616))
* Automated changes ([`c7e5f5e`](https://github.com/oopnet/oopnet/commit/c7e5f5e64a9e77d7ab26c296d7a5f9ab5ec0b3c9))
* refactor
- changed setup settings ([`07741d5`](https://github.com/oopnet/oopnet/commit/07741d59b48bed7593e7348722a54b70202622c8))
* refactor
- changed setup settings ([`9117ddb`](https://github.com/oopnet/oopnet/commit/9117ddba0edcb31e7dbed595a518dcb812d711da))
* refactor
- changed setup settings ([`3a5a197`](https://github.com/oopnet/oopnet/commit/3a5a197f7c9c919a3ce986ed01a517074a1697ee))
* refactor
- changed setup settings ([`2c3d732`](https://github.com/oopnet/oopnet/commit/2c3d732dac9e99bd541f5d183f544782fef451f1))
* Automated changes ([`7b748a5`](https://github.com/oopnet/oopnet/commit/7b748a59a5a83e096c9f0c23198b5a4e1a352fd9))
* refactor
- changed setup settings ([`4cdf32b`](https://github.com/oopnet/oopnet/commit/4cdf32bce30484f0a771121f95c38f77a13d09ac))
* refactor
- changed setup settings ([`4d165f5`](https://github.com/oopnet/oopnet/commit/4d165f5455f707b1cb6625c29b48176c6fb299a1))
* refactor
- added sematic_release section to setup.cfg
- added some classifiers to setup.cfg ([`9511323`](https://github.com/oopnet/oopnet/commit/9511323ca9f9ca9034e65404b26dacbe36e52c70))
* Automated changes ([`9dbd67f`](https://github.com/oopnet/oopnet/commit/9dbd67fc10e479ec869985dad25c95a5ec455564))
* refactor
- moved build settings to setup.cfg ([`f9f5bf6`](https://github.com/oopnet/oopnet/commit/f9f5bf6936d52c21052a0f88329e49cdb720c0aa))
* Update python-app.yml ([`ad0a46a`](https://github.com/oopnet/oopnet/commit/ad0a46a8c0c9126ff83282c8f870181f91b207bb))
* refactor
- moved __version__ to setup.py ([`7370a91`](https://github.com/oopnet/oopnet/commit/7370a91550cd8f472f9dac6aa9e08c773d84e8e9))
* Update python-app.yml ([`a24cd45`](https://github.com/oopnet/oopnet/commit/a24cd457185e22ca6690917995694dbf51f59220))
* refactor
- disabled some setup.py settings for now
- added seaborn to requirements again
- fixed some tests
- removed graph attribute from Network ([`6a1cffe`](https://github.com/oopnet/oopnet/commit/6a1cffeefb5b848fcb90ca2fdcf8228479a69179))
* Update python-app.yml ([`62d1a92`](https://github.com/oopnet/oopnet/commit/62d1a92439a59bfe002bd80c976991507eeb1f8b))
* Update python-app.yml ([`f5c5e74`](https://github.com/oopnet/oopnet/commit/f5c5e749fab831fb4f83cd4e35cb88405c507af8))
* Update python-app.yml ([`d70a457`](https://github.com/oopnet/oopnet/commit/d70a4575376fb0a4f1665643b46e1d4086e624b6))
* Update python-app.yml ([`87904cb`](https://github.com/oopnet/oopnet/commit/87904cb86342433af110c4217669ae35a5078376))
* Create python-app.yml ([`0d76bcb`](https://github.com/oopnet/oopnet/commit/0d76bcb4bf3e00f777dced16d0ee7286fb7d411e))
* Delete build_deploy.yml ([`5b4fe80`](https://github.com/oopnet/oopnet/commit/5b4fe80a02b6d4e90d49eeafea72fd119547b863))
* Create build_deploy.yml ([`4595a59`](https://github.com/oopnet/oopnet/commit/4595a595ae914eee8fe34b6d3f462f761791fb32))
* refactor
- refactored Pump attributes (dropped keyword value scheme)
- created plot() und bokehplot() instance methods for Network objects
- removed NetworkComponent hash method
- renamed Report to SimulationReport
- added some docs
- fixed helper functions in graph.py
- added get_inflow_nodes and get_inflow_node_ids functions
- refactored special_getters.py to topology_getters.py
- cleaned up utils.py
- some minor fixes
- removed traits and seaborn from requirements.txt ([`0643495`](https://github.com/oopnet/oopnet/commit/06434957f30b4bafd1323880b494ef686568bcbd))
* refactor
- added Vertices (reading, writing, plotting)
- added split function to Pipes
- added coordinates_2d property to Links
- fixed some imports
- finished Report class
- removed report_getter_functions.py with all functions
- added first (very basic) plotting test
- removed api.py
- removed pandasreport.py
- removed length function and adddummyjunction from utils.py ([`ac9dd23`](https://github.com/oopnet/oopnet/commit/ac9dd238f05b9c661d969c49fff1dee1e73279eb))
* refactoring
- implemented Report class with properties for flow, pressure, etc.
- adapted tests and examples accordingly ([`ab6daf5`](https://github.com/oopnet/oopnet/commit/ab6daf5e02528de2b758726909da8b81825ac5fc))
* refactor
- made `run`, `read` and `write` class/instance methods for `Network` class/objects and removed `Read`, `Write` and `Run` factories from `__init__.py` files
- refactored imports to prevent circular imports
- adapted examples and tests ([`7933aa1`](https://github.com/oopnet/oopnet/commit/7933aa19fd87f82da246ce003835995a5fd43337))
* refactor
- added setting description to Valve subclasses
- remove valve_type attribute (adjusted reader, writer and tests accordingly)
- enabled passing a string to read
- minor changes to benchmark stuff that we can also do in WNTR
- added a reset method to the benchmark ([`a4d7027`](https://github.com/oopnet/oopnet/commit/a4d7027e6232cc0df5c1c3694bab4e3256fc3715))
* Merge pull request 19 from oopnet/refactor
Refactor ([`26cd804`](https://github.com/oopnet/oopnet/commit/26cd80401e771486555508d5a89461997596bf8e))
* refactoring
- switched import statements in examples to `import oopnet as on` (issue 15) ([`1842bdc`](https://github.com/oopnet/oopnet/commit/1842bdcb86e77a5fbfa3acb92ac4ed49fee5f7bd))
* refactoring
- added MultiDiGraph test ([`1614c9e`](https://github.com/oopnet/oopnet/commit/1614c9e348bbff80a47d0b3bd1df8f3a3d4abb24))
* refactoring
- added MultiDiGraph to graph&39;s module __init__.py ([`1f55824`](https://github.com/oopnet/oopnet/commit/1f558242fec37f42b3f58842bc2295404cd105ed))
* refactoring
- added ComponentRegistry and SuperComponentRegistry classes to handle NetworkComponent storage in Network objects
- moved check_id_exists functionality to ComponenRegistry
- adapted getters, adders, removers and tests
- removed check_exists argument from adders (everything will be checked
- added rename method to NetworkComponents
- ([`ccce9e5`](https://github.com/oopnet/oopnet/commit/ccce9e5e96d46dfbead9cb4144a9592b3c9cf2a2))
* refactoring
relates to issue 17
- added MultiDiGraph factory
- added warnings to Graph and DiGraph factories ([`9a56229`](https://github.com/oopnet/oopnet/commit/9a56229243983495f2212f61696b3a5e1c137066))
* refactoring
- added logging
- added timer decorator
- added tests for example scripts
- some docstring improvements
- added examples for error handling and logging
- removed inititialstatus attribute
- removed __deepcopy__ from network
- renamed network hashtables to make them private attributes
- improved EPANET error handling
- moved some reader stuff around
- added some missing default values for component attributes
- fixed Network class with fields as attributes
- fixed some tests
- fixed types of TestModel component attributes
- fixed examples ([`b90f5bc`](https://github.com/oopnet/oopnet/commit/b90f5bc912fb270fe2db97f73e4f315a073d18d4))
* refactoring
- removed enums and all traces of them
- switched _component_hash attr to not be included in equality checks
- bugfix for component IDs
- switched everything from `initialstatus` to `status`
- fixed status writing
- added very simple Writer test ([`f76b875`](https://github.com/oopnet/oopnet/commit/f76b8757879935be8133569464ffd86b72a1b54f))
* refactoring
- worked over utils.py ([`752c1e3`](https://github.com/oopnet/oopnet/commit/752c1e31b5c17f570065205912a00b3183ab6c8e))
* refactoring
- removed enums again
- redid some type hints (switched from e.g., Dict to dict)
- added some documentation
- updated some __init__.py
- worked over bokehplot.py
- fixed some testing bugs ([`2d0cbda`](https://github.com/oopnet/oopnet/commit/2d0cbdaa251a1389ad0bf01da50f1d42bd46d40d))
* refactoring
- refactored examples
- added placeholder for report settings example
- added test for examples ([`2b5eec1`](https://github.com/oopnet/oopnet/commit/2b5eec1d8a8f162870b578838f2c65c219ce9b59))
* refactoring
- removed redundant import in utils.__init__.py
- added pandas Series weights to Graphs
- added Graphs to API docs
- small changes to network_components.py
- added docs to ComponentReader factory classes
- corrected type hints for pandas getters in report_getter_functions.py
- added Graph tests ([`db21e40`](https://github.com/oopnet/oopnet/commit/db21e404f600866e2201a4616cf684bccf5d88c6))
* refactoring
- started refactoring input file reader ([`ad9e2ca`](https://github.com/oopnet/oopnet/commit/ad9e2ca378609ab34ac42c72f4e645a9374f9b6e))
* refactoring
- started implementing BinaryFileReader ([`bfc9983`](https://github.com/oopnet/oopnet/commit/bfc9983f829f4dfe13c22a1871e9984d64dbd4ee))
* refactoring
- removed NetworkComponent __str__ method
- writer and simulator bugfixes (due to enums)
- added CTown TestingModel ([`1354653`](https://github.com/oopnet/oopnet/commit/13546537ad909dceb9360b2d5e8bdc4d570014c4))
* refactoring
added plotting to benchmark ([`6bb4aea`](https://github.com/oopnet/oopnet/commit/6bb4aeaf38d2807e49a3f60169bb4b894423338b))
* refactoring
- flattened reader and writer directories
- redid all __init__.py files for proper structure + changed import statements accordingly
- used typing TYPE_CHECKING to circumvent circular imports due to type checking
- moved enums to enums.py (for now) ([`d96beda`](https://github.com/oopnet/oopnet/commit/d96beda3d427e0447315d9ac3af0db9ce8c97cca))
* refactoring
- fixed bug that converted 12 am to 12 pm in time settings
- replaced try/except clause in read_options
- refactored read_system_operation.py
- refactored write_options_and_reporting.py a little
- added and removed some todos
- added new TestModel for rule testing
- added tests for rules, curves, options, report, times and patterns ([`a5fb570`](https://github.com/oopnet/oopnet/commit/a5fb57041093cdec19704c1cf2a2220dd5096d41))
* refactoring
- implemented Enums for strings like &39;CLOSED&39;, &39;OPEN&39;, &39;YES&39;, ...
- adapted tests, reader and writer accordingly ([`dbef38b`](https://github.com/oopnet/oopnet/commit/dbef38b6fa20a3bb16f1361796e73a4041b94a55))
* refactoring
- made type hints for list getters for informative
- fixed simulation errors ([`71c3cec`](https://github.com/oopnet/oopnet/commit/71c3cec029d1071671fbb1d4e14ff40d23a6516f))
* refactoring
- renamed ComponentExistsException to ComponentExistsError ([`65d84b8`](https://github.com/oopnet/oopnet/commit/65d84b869ead6f1f306a668aa81a31ba62007e9a))
* refactoring
- added first enum for testing ([`f94e89c`](https://github.com/oopnet/oopnet/commit/f94e89ce12a85101946a03f69c453e7056919cc5))
* refactoring
- fixed EPANET simulation error catching ([`a37ae3e`](https://github.com/oopnet/oopnet/commit/a37ae3e37bf652d62e4de2d976c50811ac0a48a6))
* refactoring
- renamed ComponentExistsException to ComponentExistsError
- added Errors and ErrorManager for failed Simulations + tests ([`085af79`](https://github.com/oopnet/oopnet/commit/085af79c3af3d3438a49d15b1241d81070df7da1))
* refactoring
- removed dataclass slots decorators ([`7ac33ee`](https://github.com/oopnet/oopnet/commit/7ac33ee3dd1bf2396b994d79e313f5dda2bccace))
* refactoring
- added setting attribute to pumps (= pump speed)
- adapted get_initialstatus function
- adapted get_setting function
- adapted v_diameter function (+ some docstring corrections)
- adapted property_getter tests accordingly ([`605b078`](https://github.com/oopnet/oopnet/commit/605b078d486c78e3d4124692c752fdbda20d8d19))
* refactoring
- some more graph.py refactoring
- fixed ExistingModelTest unittests ([`2bc6db3`](https://github.com/oopnet/oopnet/commit/2bc6db31e30604c89b653c1127a32de92085b8e0))
* refactoring
- added adder function for rules
- removed keyword args for adders
- added getters for rule IDs, fixed get_rules
- switched to dictionaries for storing rules
- fixed converter
- added MicropolisModel for testing
- fixed type hints for Times
- fixed reader for patterns, rules
- added defaults for system operations class attributes
- some test refactoring ([`352cfbc`](https://github.com/oopnet/oopnet/commit/352cfbcc903ae9c1e53b55660b179334a0b1e871))
* refactoring
- fixed component ID setter
- disabled slots for OOPNET to work with python 3.9 again ([`70f62ce`](https://github.com/oopnet/oopnet/commit/70f62ce0ed41cdd59828e8d5e227ec5615917efe))
* refactoring
- added revert method to Links
- added Link test (reverting and renaming)
- fixed Graphs
- added Graph creation to benchmark.py ([`d032fa2`](https://github.com/oopnet/oopnet/commit/d032fa2a6026806c99833761a7432ee504b96b5f))
* refactoring
- fixed some bugs
- refactored graph.py
- created exceptions.py ([`af08d00`](https://github.com/oopnet/oopnet/commit/af08d0010cc4da41152cfba45f864be8da8ce655))
* refactoring
- made add_element.py more efficient and reduced boilerplate code
- switched (hopefully) all iterations in Read to element getter functions
- added slots=True to dataclasses (requires python 3.10)
- refactored NetworkComponents to simplify ID property setters
- added some element list getters
- minor refactoring of graph functions
- minor refactoring of pyplot.py
- minor fixes
- removed some checks like `if network.junctions` since junctions is always instantiated
- removed sortedcontainers from requirements.txt
- removed `is not None` where they don&39;t make a difference
- disabled bulk, wall and tank writing for Reactions ([`d9dd48e`](https://github.com/oopnet/oopnet/commit/d9dd48e03b1ecbb3af0aaf80773fbd47c7ccbca8))
* update ([`a545441`](https://github.com/oopnet/oopnet/commit/a54544192d36c6992179148d9f61b07177d98cc5))
* worked over tests and added a benchmark ([`d39dbc7`](https://github.com/oopnet/oopnet/commit/d39dbc78f0caefa127d7874b3365808132ac1631))
* worked over examples ([`0c17cf3`](https://github.com/oopnet/oopnet/commit/0c17cf3801766d8418a910cff5a3dd29cfd974e4))
* refactoring
- switched to Google Docstrings
- redid adders and removers
- used adder functions in reader
- added some docs
- created ModelSimulator class
- added type hints
- removed `if network.junctions` and related checks
- added some todo comments
- worked over imports
- add sortedcontainers to requirements
- worked over setup.py (slightly) ([`aa2d292`](https://github.com/oopnet/oopnet/commit/aa2d292e4ac8c97ae72da4367e305d8a39e3b937))
* moved part of the function imports to dedicated __init__.py files ([`da94125`](https://github.com/oopnet/oopnet/commit/da94125501336012d1713b9020438b7dba30d5d9))
* replace epanet2d.exe (EPANET 2.0) with runepanet.exe (EPANET 2.2) ([`6baebdf`](https://github.com/oopnet/oopnet/commit/6baebdfb9ff752a83980d5699c06e14d49a46e62))
* remove traits, implement dataclasses and type hints instead, switched to Epanet 2.2, replace networkhash, add a few additional getters ([`feea28d`](https://github.com/oopnet/oopnet/commit/feea28d928f15aeebfcc23e8952616485f1e165f))
* move part of tests from GitLab branch epanet2_2 ([`6927d20`](https://github.com/oopnet/oopnet/commit/6927d20437d7d0604fc70886fed0659693a90631))
* initial commit of oopnet code of brachn python3 from gitlab.com ([`4d44a36`](https://github.com/oopnet/oopnet/commit/4d44a3669069137c6e1f1bdffd3f3a72f7996d43))
* added mac specific files to gitignore ([`e70ab2f`](https://github.com/oopnet/oopnet/commit/e70ab2f44bb6892b47ecdb71a54e25d347f5b388))
* Update README.md ([`bed7434`](https://github.com/oopnet/oopnet/commit/bed7434aabadd70d881bfe82782ed0dfb897ab12))
* Initial commit ([`923eb1d`](https://github.com/oopnet/oopnet/commit/923eb1d77063a6084a4a30fbb6e4885244e0080e))