Spaces:
Running
Running
Commit
·
05420b4
1
Parent(s):
def0b3d
feat: add get_available_networks and update UI
Browse files- Add pandapower_get_available_networks wrapper function
- Add 'List Networks' tab in Gradio interface
- Update documentation with new tool
app.py
CHANGED
|
@@ -11,6 +11,7 @@ from pandapower_tools import (
|
|
| 11 |
PANDAPOWER_AVAILABLE,
|
| 12 |
create_empty_network as pp_create_empty,
|
| 13 |
create_test_network as pp_create_test,
|
|
|
|
| 14 |
run_power_flow as pp_run_pf,
|
| 15 |
run_dc_power_flow as pp_run_dc,
|
| 16 |
get_network_info as pp_get_info,
|
|
@@ -109,6 +110,11 @@ def pandapower_get_available_std_types() -> str:
|
|
| 109 |
return json.dumps(pp_std_types(), indent=2)
|
| 110 |
|
| 111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 112 |
def pypsa_create_network(name: str = "PyPSA Network") -> str:
|
| 113 |
"""Create a new PyPSA network."""
|
| 114 |
return json.dumps(pypsa_create(name), indent=2)
|
|
@@ -127,6 +133,7 @@ def get_available_tools() -> str:
|
|
| 127 |
"tools": [
|
| 128 |
"pandapower_create_empty_network",
|
| 129 |
"pandapower_create_test_network",
|
|
|
|
| 130 |
"pandapower_run_power_flow",
|
| 131 |
"pandapower_run_dc_power_flow",
|
| 132 |
"pandapower_get_network_info",
|
|
@@ -163,10 +170,18 @@ iface_pp_create_empty = gr.Interface(
|
|
| 163 |
iface_pp_create_test = gr.Interface(
|
| 164 |
fn=pandapower_create_test_network,
|
| 165 |
inputs=[gr.Textbox(label="Network Type", value="case9",
|
| 166 |
-
info="
|
| 167 |
outputs=gr.Textbox(label="Result"),
|
| 168 |
title="Create Test Network",
|
| 169 |
-
description="Create a standard IEEE test network"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 170 |
)
|
| 171 |
|
| 172 |
iface_pp_run_pf = gr.Interface(
|
|
@@ -356,10 +371,10 @@ with gr.Blocks(title="PowerMCP Server") as demo:
|
|
| 356 |
|
| 357 |
with gr.Tab("🔧 Pandapower Tools"):
|
| 358 |
gr.TabbedInterface(
|
| 359 |
-
[iface_pp_create_empty, iface_pp_create_test, iface_pp_run_pf, iface_pp_run_dc,
|
| 360 |
iface_pp_get_info, iface_pp_add_bus, iface_pp_add_line, iface_pp_add_load,
|
| 361 |
iface_pp_add_gen, iface_pp_add_ext_grid, iface_pp_contingency, iface_pp_std_types],
|
| 362 |
-
["Create Empty", "Create Test", "AC Power Flow", "DC Power Flow",
|
| 363 |
"Get Info", "Add Bus", "Add Line", "Add Load", "Add Gen", "Add Ext Grid",
|
| 364 |
"Contingency", "Std Types"]
|
| 365 |
)
|
|
@@ -393,7 +408,8 @@ with gr.Blocks(title="PowerMCP Server") as demo:
|
|
| 393 |
| Tool | Description |
|
| 394 |
|------|-------------|
|
| 395 |
| `pandapower_create_empty_network` | Create an empty network |
|
| 396 |
-
| `pandapower_create_test_network` | Create IEEE test networks |
|
|
|
|
| 397 |
| `pandapower_run_power_flow` | Run AC power flow |
|
| 398 |
| `pandapower_run_dc_power_flow` | Run DC power flow |
|
| 399 |
| `pandapower_get_network_info` | Get network information |
|
|
|
|
| 11 |
PANDAPOWER_AVAILABLE,
|
| 12 |
create_empty_network as pp_create_empty,
|
| 13 |
create_test_network as pp_create_test,
|
| 14 |
+
get_available_networks as pp_get_networks,
|
| 15 |
run_power_flow as pp_run_pf,
|
| 16 |
run_dc_power_flow as pp_run_dc,
|
| 17 |
get_network_info as pp_get_info,
|
|
|
|
| 110 |
return json.dumps(pp_std_types(), indent=2)
|
| 111 |
|
| 112 |
|
| 113 |
+
def pandapower_get_available_networks() -> str:
|
| 114 |
+
"""Get a list of all available pandapower test networks."""
|
| 115 |
+
return json.dumps(pp_get_networks(), indent=2)
|
| 116 |
+
|
| 117 |
+
|
| 118 |
def pypsa_create_network(name: str = "PyPSA Network") -> str:
|
| 119 |
"""Create a new PyPSA network."""
|
| 120 |
return json.dumps(pypsa_create(name), indent=2)
|
|
|
|
| 133 |
"tools": [
|
| 134 |
"pandapower_create_empty_network",
|
| 135 |
"pandapower_create_test_network",
|
| 136 |
+
"pandapower_get_available_networks",
|
| 137 |
"pandapower_run_power_flow",
|
| 138 |
"pandapower_run_dc_power_flow",
|
| 139 |
"pandapower_get_network_info",
|
|
|
|
| 170 |
iface_pp_create_test = gr.Interface(
|
| 171 |
fn=pandapower_create_test_network,
|
| 172 |
inputs=[gr.Textbox(label="Network Type", value="case9",
|
| 173 |
+
info="Use pandapower_get_available_networks to see all options. Examples: case9, case14, case30, case39, case57, case118, create_cigre_network_hv, iceland, GBnetwork, etc.")],
|
| 174 |
outputs=gr.Textbox(label="Result"),
|
| 175 |
title="Create Test Network",
|
| 176 |
+
description="Create a standard IEEE test network or other built-in pandapower network"
|
| 177 |
+
)
|
| 178 |
+
|
| 179 |
+
iface_pp_get_networks = gr.Interface(
|
| 180 |
+
fn=pandapower_get_available_networks,
|
| 181 |
+
inputs=[],
|
| 182 |
+
outputs=gr.Textbox(label="Result"),
|
| 183 |
+
title="Get Available Networks",
|
| 184 |
+
description="Get a list of all available pandapower test networks"
|
| 185 |
)
|
| 186 |
|
| 187 |
iface_pp_run_pf = gr.Interface(
|
|
|
|
| 371 |
|
| 372 |
with gr.Tab("🔧 Pandapower Tools"):
|
| 373 |
gr.TabbedInterface(
|
| 374 |
+
[iface_pp_create_empty, iface_pp_create_test, iface_pp_get_networks, iface_pp_run_pf, iface_pp_run_dc,
|
| 375 |
iface_pp_get_info, iface_pp_add_bus, iface_pp_add_line, iface_pp_add_load,
|
| 376 |
iface_pp_add_gen, iface_pp_add_ext_grid, iface_pp_contingency, iface_pp_std_types],
|
| 377 |
+
["Create Empty", "Create Test", "List Networks", "AC Power Flow", "DC Power Flow",
|
| 378 |
"Get Info", "Add Bus", "Add Line", "Add Load", "Add Gen", "Add Ext Grid",
|
| 379 |
"Contingency", "Std Types"]
|
| 380 |
)
|
|
|
|
| 408 |
| Tool | Description |
|
| 409 |
|------|-------------|
|
| 410 |
| `pandapower_create_empty_network` | Create an empty network |
|
| 411 |
+
| `pandapower_create_test_network` | Create IEEE test networks (all pandapower networks supported) |
|
| 412 |
+
| `pandapower_get_available_networks` | List all available test networks |
|
| 413 |
| `pandapower_run_power_flow` | Run AC power flow |
|
| 414 |
| `pandapower_run_dc_power_flow` | Run DC power flow |
|
| 415 |
| `pandapower_get_network_info` | Get network information |
|