JavadBayazi commited on
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

Files changed (1) hide show
  1. app.py +21 -5
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="Options: case9, case14, case30, case39, case57, case118, etc.")],
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 |