Here at Vitens, a large Dutch drinking water company, we use the EPANET toolkit for simulation of our distribution networks and treatment plants. To interface with EPANET we are currently developing an object oriented wrapper around the new EPANET2.1 toolkit written in python: EPYNET.
EPYNET greatly simplifies inspecting networks and simulation results by making them accessible as class properties. For example, querying the flow in a pipe and the demand in a node becomes as simple as:
network = Network('net.inp')
pipe = network.pipes['pipe_id']
node = network.nodes['node_id']
The library is still in a very early state and for now very specific to our own needs, but I hope it can be useful for others and that other developers are willing to contribute. Features we want to implement in the near future are pattern, link and node manipulation, support for time series and for chemical calculations.
I look forward to your feedback!