Releases
The SIR 3S Toolkit python package often receives updates including bug fixes or new functionalities.
There are two types of updates:
Python-only updates - Install via:
pip install --upgrade sir3stoolkit
pip install --upgrade sir3stoolkit==90.15.12 # for specific version
Core updates with DLL changes - Requires manual replacement of
Sir3S_Toolkit.dllin the SirGraf directory after pip upgrade (1). The newest version of theSir3S_Toolkit.dllis shipped alongside the updated pure python code.
The release notes indicate whether a version includes changes to the C# side and therefore if (2) is necessary.
SIR 3S: 90-15 Quebec
Overview
Below an overview over all Toolkit Versions for SIR 3S 90-15 Quebec is given. It is stated with which specific SIR 3S version the Toolkit version was developed and tested and whether replacing the Sir3S_Toolkit.dll is necessary.
Toolkit Version |
SIR 3S Version |
dll changed |
Release Date |
|---|---|---|---|
90.15.16 |
90-15-00-24-Upd2 |
No |
2026-03-15 |
90.15.15 |
90-15-00-23-Upd2 |
Yes |
2026-03-03 |
90.15.14 |
90-15-00-22-Upd2 |
No |
2026-02-25 |
90.15.13 |
90-15-00-22-Upd2 |
No |
2026-02-20 |
90.15.12 |
90-15-00-22-Upd2 |
Yes |
2026-02-12 |
90.15.11 |
90-15-00-21-Upd2 |
No |
2026-02-08 |
90.15.10 |
90-15-00-21-Upd2 |
No |
2026-02-01 |
90.15.9 |
90-15-00-21-Upd2 |
No |
2026-01-25 |
90.15.8 |
90-15-00-20-Upd1 |
No |
2026-01-19 |
90.15.7 |
90-15-00-20-Upd1 |
No |
2026-01-10 |
90.15.6 |
90-15-00-20-Upd1 |
Yes |
2026-01-09 |
90.15.5 |
90-15-00-19 |
Yes |
2025-11-24 |
90.15.4 |
90-15-00-19 |
No |
2025-10-31 |
90.15.3 (Init) |
90-15-00-15 |
Yes |
2025-10-09 |
Below the release history with all changes is given in detail.
SIR 3S: 90-15-00-24-Upd2
Version 90.15.16
Bug Fixes
dataframes.py: get_dataframe_from_time_table() fixed importing float-valued time tables from SIR Graf
dll files now included under src/sir3stoolkit/lib/ in every PyPI release
SIR 3S: 90-15-00-23-Upd2
Version 90.15.15
Developed and tested using SIR 3S Version: 90-15-00-23-Upd2
C# Changes
Deleting objects: References to the object are reset/handled.
Bug Fixes
- insert_dataframe_into_time_table():
Now works in addition with s3s.ObjectTypes.ThermalOutputTable” and s3s.ObjectTypes.TemperatureTable
“,”-“.” formatting issue for milliseconds Fixed
previous entries in table are deleted properly
SIR 3S: 90-15-00-22-Upd2
Version 90.15.14
Developed and tested using SIR 3S Version: 90-15-00-22-Upd2
Changes
- dataframes.py:
new function: add_interior_points_to_start_end_sequence(): turn column of a vectorized propertry in three columns: property_start(float), propertry_end(float), propertry_sequence(Tuple: start, …, end)
- generate_element_dataframe():
uses add_interior_points_to_start_end_sequence() to format vectorized result dataframe
new param: timestamp to determine for which timestamp result values should be obtained
end nodes only attempted to return if they are defined for element type: removes unnessesary warning
- generate_element_result_dataframe():
new param: drop_full_place_holder_columns: Determine whether columns, that are completley filled with place holder values, get dropped.
deleted generate_pipe_vector_dataframe() and generate_longitudinal_section_vector_dataframes(), since handeling vectorized data is now built into lower level functions, therefore generate_element_dataframe(self.ObjectTypes.Pipe) also returns vectorized results.
generate_longitudinal_section_dataframes(): instead of lists of dataframes a list of size-2-tuples with Supply and Return is returned.
Version 90.15.13
Changes
All time table related functions moved from advanced_operations.py (SIR3S_Model_Advanced_Operations) to dataframes.py (SIR3S_Model_Dataframes)
Bug Fixes
dataframes.py: logger(f”{e}””) without except fixed
Version 90.15.12
Developed and tested using SIR 3S Version: 90-15-00-22-Upd2
C# Changes
Fixed Calculation Bug: Could not start Model Calculation: SirCalc Path ‘C:3S ConsultSIR3S-90-15-00-19-QuebecSirCalc-90-15-02-20_QuebecSirCalc.exe’ not found
Bug Fixes
insert_dataframe_into_time_table(): internal_ref_time = self.GetTimeStamps()[0][0]
dataframes.py: generate_element_dataframe() minor safe guard added
Version 90.15.11
Developed and tested using SIR 3S Version: 90-15-00-21-Upd2
- advanced_operations.py:
- new function:
get_dataframes_from_time_table_type()
- changed functions:
insert_dataframe_into_measured_variable_table() changed to insert_dataframe_into_time_table()
get_dataframe_from_measured_variable_table() changed to get_dataframe_from_time_table()
SIR 3S: 90-15-00-21-Upd2
Version 90.15.10
Developed and tested using SIR 3S Version: 90-15-00-21-Upd2
- advanced_operations.py:
- new functions:
insert_dataframe_into_measured_variable_table()
get_dataframe_from_measured_variable_table()
Version 90.15.9
Developed and tested using SIR 3S Version: 90-15-00-21-Upd2
- advanced_operations.py: new module with new class SIR3S_Model_Advanced_Operations()
- new functions:
set_group_elements()
add_elements_to_group()
remove_elements_from_group()
add_element_types_to_tk_list()
get_tks_of_group_elements()
get_element_type_from_tk()
SIR 3S: 90-15-00-20-Upd1
Version 90.15.8
Developed and tested using SIR 3S Version: 90-15-00-20-Upd1
- plotting.py
new function: plot_time_curves()
Fix: SIR_3S_to_nx_graph(): generate_hydraulic_edge_dataframe() renamed to generate_edge_dataframe() + datatype fix
Version 90.15.7
Developed and tested using SIR 3S Version: 90-15-00-20-Upd1
Changes
- dataframes.py:
metadata renamed to model_data
hydraulic_edge renamed to edge
add_interior_points_to_results_dataframe renamed to add_interior_points_as_multiindex()
new function: add_interior_points_as_flat_cols()
new function: generate_longitudinal_section_vector_dataframes()
new function: generate_pipe_vector_dataframe()
Version 90.15.6
Developed and tested using SIR 3S Version: 90-15-00-20-Upd1
C# Changes
Hydraulic Profile related functions added
Improvements
- dataframes.py
generate_element_results_dataframe() returns float values instead of object type
new method: add_interior_points_to_results_dataframe() to transform result df into vectorized result df with additonal multi index
new method: generate_element_dataframe() to generate basic dfs with metadata and result values of components
new method: generate_longitudinal_section_dataframes() to generate dfs for longitudinal sections
- plotting.py
plot_pipe_layer() and plot_node_layer() introduced as new functions for network color depictions
Changes
- mantle sub classes renaming:
from Alternative_Models_SIR3S_Model to SIR3S_Model_Alternative_Models
from Dataframes_SIR3S_Model to SIR3S_Model_Dataframes
from Plotting_SIR3S_Model to SIR3S_Model_Plotting
SIR 3S: 90-15-00-19
Version 90.15.5
Developed and tested using SIR 3S Version: 90-15-00-19
C# Changes
Model Repair Class added
Bug Fixes
- dataframes.py:
logger.error(f”[metadata] Error occured while filtering with filter_container_tks.”) no longer triggers unwarranted
logger.info(f”[metadata] {len(used_cols)} non-empty end node columns were created.”) no longer triggers unwarranted
Improvements
- alternative_models.py:
SIR_3S_to_nx_graph() now created minimal graph with additional properties
add_properties_to_graph() new function for user defined addition of properties (metadata and result) to nx Graph
- dataframes.py:
generate_element_metadata_dataframe(geometry=True) returns gpd.GeoDataFrame instead of pd.DataFrame
generate_element_metadata_dataframe() and generate_element_result_dataframe() now have paramter tks to give a list which tks of the element type to include.
new function get_EPSG() returns tuple of SRID, SRID2, SRIDSTRING for crs
new function generate_hydraulic_edge_dataframe() returns a pandas dataframe containing all hydraulic edges of a model (eg. pipes, valves, compressors, etc.)
Version 90.15.4
Developed and tested using SIR 3S Version: 90-15-00-19 - Implementation of Higher level functions (mantle):
- alternative_models.py
nx graphs
pandapipes
- dataframes.py
metadata dfs
result dfs
mantle.py: collector for above modules
Mantle Import fixed: mantle dependencies no longer needed, when importing sir3stoolkit
SIR 3S: 90-15-00-15
Version 90.15.3 (Initial Release)
Developed and tested using SIR 3S Version: 90-15-00-15
First official public release of the SIR 3S Toolkit
Introduced core wrapping API for SIR 3S object model (nodes, pipes, etc.)
Compatible with SIR 3S 90-15 Quebec (requires Sir3S_Toolkit.dll)
Included example workflows and basic simulation access