Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"permissions": {
"allow": [
"Bash(pip install:*)"
]
}
}
4 changes: 4 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
# Required
version: 2

# Build PDF
formats:
- pdf

# Set the OS, Python version, and other tools you might need
build:
os: ubuntu-22.04
Expand Down
18 changes: 13 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
### Added `esa` functions
- `GetParamsRectTyped`
- Better typing and data conversion, helps with speed
- `ChangeParametersMultipleElementRect`
- Improves speed of writing to PW
[0.1.1] - 2026-01-25
--------------------

**Changed**

- Improved the component dev tool
- More helper functions
- Coverage
- Misc. Still in Beta

**Added**

- SubData helper functions
6 changes: 3 additions & 3 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ ESA++
:target: https://esapp.readthedocs.io/
:alt: Documentation

.. image:: https://img.shields.io/badge/coverage-92%25-brightgreen.svg
:alt: Coverage 92%
.. image:: https://img.shields.io/badge/coverage-90%25-brightgreen.svg
:alt: Coverage 90%

An open-source Python toolkit for power system automation, providing a high-performance "syntax-sugar" fork of Easy SimAuto (ESA). This library streamlines interaction with PowerWorld's Simulator Automation Server (SimAuto), transforming complex COM calls into intuitive, Pythonic operations.

Expand Down Expand Up @@ -81,7 +81,7 @@ Traditional automation of PowerWorld Simulator often involves verbose COM calls
More Examples
-------------

The `examples/ <https://github.com/lukelowry/ESApp/tree/main/docs/examples>`_ directory contains a gallery of demonstrations, including:
The `docs/examples/ <https://github.com/lukelowry/ESApp/tree/main/docs/examples>`_ directory contains a gallery of demonstrations, including:

- **Object Field Access**: Reduce the time you spend searching for field names with ESA++ IDE typehints for objects and fields.
- **Matrix Extraction**: Retrieving Y-Bus, Jacobian, and GIC conductance matrices for external mathematical modeling.
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.1.0
0.1.1
2,527 changes: 2,527 additions & 0 deletions docs/Subdata.txt

Large diffs are not rendered by default.

16 changes: 8 additions & 8 deletions docs/api/apps.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ The ``apps`` package exposes focused helpers (network topology, GIC, etc.) surfa
For direct SAW access use ``wb.esa``; for higher-level helpers use the modules below. This page lists the
API members only.

.. currentmodule:: esapp.apps
.. rubric:: App Modules

.. automodule:: esapp.apps.network
:members:
.. autosummary::
:toctree: generated/

.. automodule:: esapp.apps.gic
:members:

.. automodule:: esapp.apps
:members:
esapp.apps.dynamics
esapp.apps.gic
esapp.apps.modes
esapp.apps.network
esapp.apps.static
9 changes: 4 additions & 5 deletions docs/api/comps.rst
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
Objects & Fields
========================
================

All objects and fields along with descriptions.
The ``esapp.gobject`` module provides the base classes for defining grid component schemas.

The fields are available through an IDE via type hinting, and are excluded due to the sheer quantity of classes and members.

.. automodule:: esapp.grid
.. automodule:: esapp.gobject
:members:
1 change: 1 addition & 0 deletions docs/api/api.rst → docs/api/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ This section provides a detailed reference for the ESA++ API, partitioned by fun
saw
apps
utils
comps
141 changes: 25 additions & 116 deletions docs/api/saw.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,125 +12,34 @@ API Documentation
.. currentmodule:: esapp.saw

.. autoclass:: SAW
:show-inheritance:
:members:
:undoc-members:

Mixin Modules
--------------

Power Flow
~~~~~~~~~~

.. automodule:: esapp.saw.powerflow
:members:

Contingency Analysis
~~~~~~~~~~~~~~~~~~~~~

.. automodule:: esapp.saw.contingency
:members:

Optimal Power Flow
~~~~~~~~~~~~~~~~~~~

.. automodule:: esapp.saw.opf
:members:

Sensitivity Analysis
~~~~~~~~~~~~~~~~~~~~~

.. automodule:: esapp.saw.sensitivity
:members:

Transient Stability
~~~~~~~~~~~~~~~~~~~~

.. automodule:: esapp.saw.transient
:members:

GIC Analysis
~~~~~~~~~~~~

.. automodule:: esapp.saw.gic
:members:

Available Transfer Capability
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. automodule:: esapp.saw.atc
:members:

Network Topology
~~~~~~~~~~~~~~~~

.. automodule:: esapp.saw.topology
:members:

Branch Operations
~~~~~~~~~~~~~~~~~

.. automodule:: esapp.saw.modify
:members:

Case Management
~~~~~~~~~~~~~~~

.. automodule:: esapp.saw.case_actions
:members:

Base Operations
~~~~~~~~~~~~~~~

.. automodule:: esapp.saw.base
:members:

Voltage Analysis
~~~~~~~~~~~~~~~~

.. automodule:: esapp.saw.pv
:members:

.. automodule:: esapp.saw.qv
:members:

Matrix Operations
~~~~~~~~~~~~~~~~~

.. automodule:: esapp.saw.matrices
:members:

One-Line Diagram
~~~~~~~~~~~~~~~~

.. automodule:: esapp.saw.oneline
:members:

General Utilities
~~~~~~~~~~~~~~~~~

.. automodule:: esapp.saw.general
:members:

Regional Analysis
~~~~~~~~~~~~~~~~~

.. automodule:: esapp.saw.regions
:members:

Scheduled Operations
~~~~~~~~~~~~~~~~~~~~

.. automodule:: esapp.saw.scheduled
:members:

Weather Effects
~~~~~~~~~~~~~~~

.. automodule:: esapp.saw.weather
:members:

Time-Step Analysis
~~~~~~~~~~~~~~~~~~~

.. automodule:: esapp.saw.timestep
:members:
.. autosummary::
:toctree: generated/

atc
base
case_actions
contingency
fault
general
gic
matrices
modify
oneline
opf
powerflow
pv
qv
regions
scheduled
sensitivity
timestep
topology
transient
weather
51 changes: 11 additions & 40 deletions docs/api/utils.rst
Original file line number Diff line number Diff line change
@@ -1,45 +1,16 @@
Utilities
=========
.. currentmodule:: esapp.utils

ESA++ includes a variety of utility modules for mathematical operations, geographic analysis, and debugging.

Mathematical
----------------------
.. automodule:: esapp.utils.mathtools
:members:

B3D File Tools
-----------------------
.. automodule:: esapp.utils.b3d
:members:

Custom Exceptions
-----------------
.. automodule:: esapp.utils.exceptions
:members:

Miscellaneous Helpers
---------------------
.. automodule:: esapp.utils.misc
:members:

Decorators
----------
.. automodule:: esapp.utils.decorators
:members:

Mesh Processing
---------------
.. automodule:: esapp.utils.mesh
:members:

Geographic Mapping
------------------
.. automodule:: esapp.utils.map
:members:

Wavelet Plotting
----------------
.. automodule:: esapp.utils.plotwavelet
:members:
.. autosummary::
:toctree: generated/

esapp.utils.b3d
esapp.utils.decorators
esapp.utils.exceptions
esapp.utils.map
esapp.utils.mathtools
esapp.utils.mesh
esapp.utils.misc
esapp.utils.plotwavelet
5 changes: 0 additions & 5 deletions docs/api/workbench.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,7 @@ The ``GridWorkBench`` is the high-level entry point for interacting with PowerWo
SimAuto with a Pythonic interface for case management, data access, and analysis helpers. For concepts and
usage patterns, see :doc:`../guide/usage`. This page lists the full API surface.

API Documentation
------------------

.. currentmodule:: esapp.workbench

.. autoclass:: GridWorkBench
:members:
:undoc-members:
:show-inheritance:
28 changes: 23 additions & 5 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

extensions = [
"sphinx.ext.autodoc",
"sphinx.ext.autosummary", # Re-enabled to allow automatic class listing
"sphinx.ext.autosummary",
"sphinx.ext.viewcode",
"sphinx.ext.todo",
"sphinx.ext.mathjax",
Expand All @@ -19,9 +19,11 @@
"nbsphinx",
]

autosummary_generate = True
autosummary_generate = True

autodoc_default_options = {
"members": True,
"undoc-members": True,
"member-order": "groupwise",
}

Expand All @@ -34,9 +36,9 @@
add_module_names = False

intersphinx_mapping = {
"python": ("docs.python.org", None),
"numpy": ("numpy.org", None),
"scipy": ("docs.scipy.org", None),
"python": ("https://docs.python.org/3", None),
"numpy": ("https://numpy.org/doc/stable", None),
"scipy": ("https://docs.scipy.org/doc/scipy/reference", None),
}

napoleon_google_docstring = False
Expand All @@ -52,6 +54,11 @@
"pd.DataFrame": "~pandas.DataFrame",
"optional": "typing.Optional",
"union": "typing.Union",
"list": "list",
"dict": "dict",
"bool": "bool",
"int": "int",
"float": "float",
}

exclude_patterns = [
Expand Down Expand Up @@ -94,3 +101,14 @@
"fiona",
"pyproj",
]

latex_elements = {
"preamble": r"""
\usepackage{mathrsfs}
\usepackage{breakurl}
\usepackage{booktabs}
\usepackage{longtable}
\usepackage{multirow}
\sloppy
""",
}
8 changes: 8 additions & 0 deletions docs/dev/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Development
===========

.. toctree::
:maxdepth: 2

components
tests
Loading