Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
b49965b
UserModels: multi-version and tweaked wrappers for backwards compatib…
PMeira Jul 11, 2024
e5ec7e5
Update Storages and add new WindGens
PMeira Jul 12, 2024
02ae5b6
Tests: add NCIM samples
PMeira Jul 17, 2024
0d16574
Tests: add WindGen samples
PMeira Jul 18, 2024
5308529
FastDSS backend integration; some more AltDSS-Python functions.
PMeira Jul 20, 2024
86a3286
Circuit.Save: adjust argument name to match docstring.
PMeira Jul 27, 2024
89ea458
WindGens: fix a couple of docstrings
PMeira Jul 27, 2024
121cb13
IDSSimComs: mark as deprecated
PMeira Jul 29, 2024
49116ad
Backend: allow using different Python API settings in ODD.py and DSS-…
PMeira Jul 30, 2024
b2f9168
Wrappers: wrap bools, ignore missing functions with Oddie; tweak impo…
PMeira Aug 5, 2024
db26e4d
Wrappers: Ensure Error_Get_Description is wrapped
PMeira Aug 6, 2024
2f52a72
Monitors: use the raw function for the bytestream
PMeira Aug 7, 2024
56a233d
CtrlQueue: add type hints for ActionHandle
PMeira Aug 15, 2024
d1408ee
Plot: generalize `get_gic_line_data`; tests pending.
PMeira Aug 15, 2024
75435fe
Plot: add alternative path when `element.IsIsolated` is not available.
PMeira Aug 16, 2024
84e6592
Plot: refactoring, part 1 (typing)
PMeira Aug 16, 2024
2e78f67
patch_dss_com: Adjust iteration for `Buses`
PMeira Aug 17, 2024
66137a2
patch_dss_com: Tentative IsSwitch impl.
PMeira Aug 17, 2024
92ec52c
Plot: refactored, adding COM/Oddie compat, DSV parser, some minor fixes.
PMeira Aug 17, 2024
b1d5c81
Solution: with Oddie, append a 0 to IncMatrix and Laplacian (for comp…
PMeira Aug 22, 2024
f126880
Plot: allow plots from Oddie; other minor changes.
PMeira Aug 22, 2024
4f67769
Update GR pointers for DSS C-API 0.15
PMeira Aug 22, 2024
6fd8db0
tests: also save data related to incidence and Laplacian matrices.
PMeira Aug 28, 2024
7d433c7
Add missing wrapper for Error.Number
PMeira Aug 28, 2024
7085a7c
patch_dss_com: Fix IsSwitch
PMeira Aug 28, 2024
9259877
save_outputs: Run CIM files first
PMeira Aug 28, 2024
6a64a6e
save_outputs: Always try to use WindGens and Storages (but allow fail…
PMeira Aug 28, 2024
684d0dc
patch_dss_com: Include WindGens and Storage
PMeira Aug 29, 2024
b72779a
Tests: add backwards compat
PMeira Aug 30, 2024
683d676
save_outputs: alternative iteration path for Storages and WindGens (t…
PMeira Aug 31, 2024
da7d52c
IDSS: initial ShareGeneral implementation; needs better docstrings, t…
PMeira Aug 31, 2024
7d6fce8
Settings: expose the new `SkipCommands` and `SkipFileRegExp` settings…
PMeira Sep 2, 2024
6d63041
ShareGeneral and Settings: add shortcuts, update docstrings and tests.
PMeira Sep 2, 2024
6bc0e21
tests: run PM threads a bit longer to dilute overhead.
PMeira Sep 3, 2024
d321287
CktElement: update `BusNames` to allow getting the names without the …
PMeira Sep 11, 2024
4d78ec7
_cffi_api_util: rename main class to `AltDSSAPIUtil`, add `_map_objs…
PMeira Sep 11, 2024
11d1ce9
YMatrix: remove unused argument in GetCompressedYMatrix
PMeira Sep 12, 2024
0b28c30
Circuit: Minor docstring update ion AllBusVmagPu
PMeira Sep 12, 2024
1565fd3
Reactors: enable on Oddie since it's implemented since 2024-10-04 on …
PMeira Oct 5, 2024
32debbc
Tests/save_outputs: fix class reference
PMeira Oct 28, 2024
e9e4df4
Oddie: try to handle errors better when loading the library
PMeira Oct 28, 2024
501ed3f
Tests/compare_outputs: compare integer arrays
PMeira Oct 28, 2024
31a2543
WIP plotting updates
PMeira Nov 1, 2024
c06c7e7
General changes:
PMeira Nov 19, 2024
74b33a2
Tests/save_outputs: add a more general test for the iterator issue
PMeira Dec 7, 2024
2873d70
Tests: adjust compare_outputs for missing data
PMeira Dec 7, 2024
f4e0173
Tests: minor tweaks, allow loading extra test cases given in a JSON f…
PMeira Dec 12, 2024
f166540
Migrate to the new settings management; simplify the API utils; some …
PMeira Dec 13, 2024
320bdae
Tests: update reference values in `test_ctrlqueue.py`
PMeira Jan 10, 2025
030549a
Tests: add test for LoadShape interpolation.
PMeira Jan 31, 2025
4d9e7c1
WIP, probably needs fixes
PMeira Feb 4, 2025
b8ef6c9
Move AllowDOScmd, AllowChangeDir, AllowEditor to Settings; implement …
PMeira Apr 20, 2025
fb4e387
CapControls: Mark as circuit element
PMeira May 7, 2025
b8fb667
Docs, docstrings and typing updates
PMeira May 7, 2025
306cc31
Circuit: Expose `Flatten`
PMeira May 7, 2025
1463c4e
Implement Settings.PreserveCase
PMeira May 22, 2025
8912875
Plot: toggle some features to ensure compatiblity
PMeira Oct 14, 2025
1502971
Plot: ensure the target element is active in `Visualize`; implement `…
PMeira Dec 5, 2024
98ef86e
UserModels: default to AltDSS as engine
PMeira Nov 1, 2025
d79a403
Tests/save_outputs: remove trailing spaces from XML filenames
PMeira Nov 1, 2025
ee483a1
(WIP) pyproject.toml: Use NumPy 2, restricting Python to 3.11+
PMeira Nov 7, 2025
efa4c6b
Add shortcut to the Settings interface.
PMeira Nov 12, 2025
14965c6
Settings: Fix docstring
PMeira Dec 6, 2025
80874ec
Plot/Profile: always check if the meter is enabled
PMeira Jan 31, 2026
e97c0a9
Fuses: update to match OpenDSS v11.
PMeira Feb 12, 2026
699c528
Docs: Replace "official" with "EPRI's".
PMeira Feb 12, 2026
0cbefa4
Tests: add `test_share_general` ; update some other tests.
PMeira Feb 16, 2026
0198c6f
Some docstrings and misc updates to reexpose functions to AltDSS-Python
PMeira Feb 16, 2026
1d6a83b
Replace remaining `np.NaN` with `np.nan`.
PMeira Feb 16, 2026
d9bc526
Plot: finish general refactoring; notebook still needs to be updated.
PMeira Feb 17, 2026
3fbccca
Update project metadata
PMeira Feb 17, 2026
dfc517f
Plotting: general updates and fixes (WIP)
PMeira Feb 18, 2026
31b7911
Tests: Merge old changes related to Oddie tests (esp. OpenDSS-C).
PMeira Feb 18, 2026
78ba2b2
Tests: make SciPy optional (only used for sparse matrix).
PMeira Feb 19, 2026
2f06947
Test backend 0.15.0b3
PMeira Feb 20, 2026
c0c2fa5
Revert "Fuses: update to match OpenDSS v11."
PMeira Feb 20, 2026
370f15a
CI: Update and try running tests
PMeira Feb 20, 2026
056e46c
Tests: skip COM test if the modules are not installed
PMeira Feb 20, 2026
71c31cf
CI: disable testing manylinux2014
PMeira Feb 20, 2026
64fdcdb
Tests: update save_outputs to the current versions.
PMeira Feb 24, 2026
23120ee
AltDSS/DSS C-API and backend 0.15.0b4
PMeira Feb 26, 2026
525f192
CI: avoid virtualenv v21, hatch doesn't like it.
PMeira Feb 26, 2026
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
278 changes: 178 additions & 100 deletions .github/workflows/builds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ name: Builds

env:
ARTIFACTS_FOLDER: '${{ github.workspace }}/artifacts'
DSS_CAPI_TAG: '0.14.5'
DSS_CAPI_TAG: '0.15.0b4'

on:
# release:
Expand All @@ -13,204 +13,282 @@ on:

jobs:
build_linux_x64:
continue-on-error: true
name: 'Linux x64'
runs-on: ubuntu-latest
strategy:
matrix:
container-image: [
'quay.io/pypa/manylinux_2_28_x86_64',
'quay.io/pypa/manylinux2014_x86_64'
]
include:
- container_image: 'quay.io/pypa/manylinux_2_28_x86_64'
SKIP_SCIPY: 0
# - container_image: 'quay.io/pypa/manylinux2014_x86_64'
# SKIP_SCIPY: 1
container:
image: ${{ matrix.container-image }}
image: ${{ matrix.container_image }}
env:
CONDA_SUBDIR: 'linux-64'
CONDA: "/opt/miniconda/"
DSS_PYTHON_TEST_LINUX: '1'
SKIP_SCIPY: "${{ matrix.SKIP_SCIPY }}"
steps:
- name: 'Checkout'
- name: 'Checkout DSS-Python'
run: |
git clone $GITHUB_SERVER_URL/$GITHUB_REPOSITORY dss_python
cd dss_python
git checkout $GITHUB_SHA

- name: 'Get electricdss-tst'
run: |
git clone --depth=1 https://github.com/dss-extensions/electricdss-tst.git

- name: 'Download/extract message catalogs'
run: |
curl -s -L https://github.com/dss-extensions/dss_capi/releases/download/${DSS_CAPI_TAG}/messages.tar.gz -o messages.tar.gz
cd dss_python/dss
tar zxf ../../messages.tar.gz

- name: Build wheel
run: |
mkdir -p artifacts
mkdir -p artifacts_raw
bash dss_python/ci/build_linux.sh x64
# - name: Build conda packages
# continue-on-error: true
# run: |
# bash dss_python/ci/build_conda.sh
- name: Try installing the wheel
run: bash dss_python/ci/test_wheel.sh

- name: Install wheel
run: |
bash dss_python/ci/test_wheel.sh

- name: 'Upload artifacts'
uses: "actions/upload-artifact@v3"
uses: "actions/upload-artifact@v4"
if: ${{ matrix.container_image == 'quay.io/pypa/manylinux_2_28_x86_64' }}
with:
name: 'packages'
name: 'dss_python-wheel'
path: '${{ github.workspace }}/artifacts'

# build_linux_x86:
# name: 'Linux x86'
# runs-on: ubuntu-latest
# env:
# CONDA_SUBDIR: 'linux-32'
# DOCKER_IMAGE: 'pmeira/manylinux_wheel_fpc322_i686'
# steps:
# - name: 'Checkout'
# run: |
# git clone $GITHUB_SERVER_URL/$GITHUB_REPOSITORY dss_python
# cd dss_python
# git checkout $GITHUB_SHA
# - name: 'Setup Docker'
# run: |
# docker pull $DOCKER_IMAGE
# - name: 'Download/extract message catalogs'
# run: |
# curl -s -L https://github.com/dss-extensions/dss_capi/releases/download/${DSS_CAPI_TAG}/messages.tar.gz -o messages.tar.gz
# cd dss_python/dss
# tar zxf ../../messages.tar.gz
# - name: Build wheel
# run: |
# mkdir -p artifacts
# mkdir -p artifacts_raw
# docker run -e GITHUB_SHA -e GITHUB_REF -v "${PWD}:/build" -w /build $DOCKER_IMAGE bash /build/dss_python/ci/build_linux.sh x86
# - name: 'Upload artifacts'
# uses: "actions/upload-artifact@v3"
# with:
# name: 'packages'
# path: '${{ github.workspace }}/artifacts'
- name: Run tests (FastDSS)
shell: bash
run: |
export PATH=/opt/python/cp313-cp313/bin/:$PATH
cd dss_python
pip install cffi numpy pytest
DSS_EXTENSIONS_FASTDSS=1 python -m pytest

- name: Run tests (CFFI)
shell: bash
run: |
export PATH=/opt/python/cp313-cp313/bin/:$PATH
cd dss_python
pip install cffi numpy pytest
DSS_EXTENSIONS_FASTDSS=0 python -m pytest

build_macos_x64:
continue-on-error: true
name: 'macOS x64'
runs-on: 'macos-11'
runs-on: 'macos-15-intel'
env:
SDKROOT: '${{ github.workspace }}/MacOSX10.13.sdk'
PYTHON: python3
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
with:
fetch-depth: 0
path: 'dss_python'

- name: "Get electricdss-tst"
uses: actions/checkout@v6
with:
fetch-depth: 1
repository: 'dss-extensions/electricdss-tst'
path: 'electricdss-tst'

- name: 'Prepare Python'
uses: actions/setup-python@v6
with:
python-version: '3.11'
cache: 'pip'

- name: 'Download/extract message catalogs'
run: |
curl -s -L https://github.com/dss-extensions/dss_capi/releases/download/${DSS_CAPI_TAG}/messages.tar.gz -o messages.tar.gz
cd dss_python/dss
tar zxf ../../messages.tar.gz

- name: Build wheel
run: |
bash dss_python/ci/build_wheel.sh
# - name: Build conda packages
# continue-on-error: true
# run: |
# sudo chown -R $UID $CONDA
# bash dss_python/ci/build_conda.sh
- name: 'Upload artifacts'
uses: "actions/upload-artifact@v3"
with:
name: 'packages'
path: '${{ github.workspace }}/artifacts'

- name: Install wheel
shell: bash
run: |
bash dss_python/ci/test_wheel.sh

- name: Run tests (FastDSS)
shell: bash
run: |
cd dss_python
DSS_EXTENSIONS_FASTDSS=1 python -m pytest

- name: Run tests (CFFI)
shell: bash
run: |
cd dss_python
DSS_EXTENSIONS_FASTDSS=0 python -m pytest

build_macos_arm64:
continue-on-error: true
name: 'macOS ARM64'
runs-on: 'macos-11'
runs-on: 'macos-15'
env:
PYTHON: python3
_PYTHON_HOST_PLATFORM: macosx-11.0-arm64
ARCHFLAGS: '-arch arm64'

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
with:
fetch-depth: 0
path: 'dss_python'

- name: "Get electricdss-tst"
uses: actions/checkout@v6
with:
fetch-depth: 1
repository: 'dss-extensions/electricdss-tst'
path: 'electricdss-tst'

- name: 'Prepare Python'
uses: actions/setup-python@v6
with:
python-version: '3.11'
cache: 'pip'

- name: 'Download/extract message catalogs'
run: |
curl -s -L https://github.com/dss-extensions/dss_capi/releases/download/${DSS_CAPI_TAG}/messages.tar.gz -o messages.tar.gz
cd dss_python/dss
tar zxf ../../messages.tar.gz
# - name: 'Download macOS SDK 10.13'
# run: |
# curl -s -L https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX10.13.sdk.tar.xz -o macOSsdk.tar.xz
# tar xf macOSsdk.tar.xz

- name: Build wheel
run: |
bash dss_python/ci/build_wheel.sh
# - name: Build conda packages
# continue-on-error: true
# run: |
# sudo chown -R $UID $CONDA
# bash dss_python/ci/build_conda.sh
- name: 'Upload artifacts'
uses: "actions/upload-artifact@v3"
with:
name: 'packages'
path: '${{ github.workspace }}/artifacts'

- name: Install wheel
shell: bash
run: |
bash dss_python/ci/test_wheel.sh

- name: Run tests (FastDSS)
shell: bash
run: |
cd dss_python
DSS_EXTENSIONS_FASTDSS=1 python -m pytest

- name: Run tests (CFFI)
shell: bash
run: |
cd dss_python
DSS_EXTENSIONS_FASTDSS=0 python -m pytest

build_win_x64:
continue-on-error: true
name: 'Windows x64'
runs-on: windows-2019
runs-on: windows-latest
env:
CONDA_SUBDIR: 'win-64'
PYTHON: python
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
with:
fetch-depth: 0
path: 'dss_python'

- name: "Get electricdss-tst"
uses: actions/checkout@v6
with:
fetch-depth: 1
repository: 'dss-extensions/electricdss-tst'
path: 'electricdss-tst'

- name: 'Download/extract message catalogs'
shell: cmd
run: |
"c:\Program Files\Git\mingw64\bin\curl" -s -L https://github.com/dss-extensions/dss_capi/releases/download/%DSS_CAPI_TAG%/messages.zip -o messages.zip
cd dss_python\dss
tar zxf ..\..\messages.zip

- name: Build wheel
shell: bash
run: |
bash dss_python/ci/build_wheel.sh
# - name: Build conda packages
# continue-on-error: true
# shell: bash
# run: |
# bash dss_python/ci/build_conda.sh
- name: 'Upload artifacts'
uses: "actions/upload-artifact@v3"
with:
name: 'packages'
path: '${{ github.workspace }}/artifacts'

- name: Install wheel
shell: bash
run: |
bash dss_python/ci/test_wheel.sh

- name: Run tests (FastDSS)
shell: cmd
run: |
set DSS_EXTENSIONS_FASTDSS=1
cd dss_python
python -m pytest

- name: Run tests (CFFI)
shell: cmd
run: |
set DSS_EXTENSIONS_FASTDSS=0
cd dss_python
python -m pytest


build_win_x86:
continue-on-error: true
name: 'Windows x86'
runs-on: windows-2019
runs-on: windows-latest
env:
CONDA_SUBDIR: 'win-32'
PYTHON: python
SKIP_SCIPY: '1'
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
with:
fetch-depth: 0
path: 'dss_python'
- uses: actions/setup-python@v3

- name: "Get electricdss-tst"
uses: actions/checkout@v6
with:
fetch-depth: 1
repository: 'dss-extensions/electricdss-tst'
path: 'electricdss-tst'

- name: 'Prepare Python'
uses: actions/setup-python@v6
with:
python-version: '3.7'
python-version: '3.11'
cache: 'pip'
architecture: 'x86'

- name: 'Download/extract message catalogs'
shell: cmd
run: |
"c:\Program Files\Git\mingw64\bin\curl" -s -L https://github.com/dss-extensions/dss_capi/releases/download/%DSS_CAPI_TAG%/messages.zip -o messages.zip
cd dss_python\dss
tar zxf ..\..\messages.zip

- name: Build wheel
shell: bash
run: |
bash dss_python/ci/build_wheel.sh
- name: 'Upload artifacts'
uses: "actions/upload-artifact@v3"
with:
name: 'packages'
path: '${{ github.workspace }}/artifacts'

- name: Install wheel
shell: bash
run: |
bash dss_python/ci/test_wheel.sh

- name: Run tests (FastDSS)
shell: cmd
run: |
set DSS_EXTENSIONS_FASTDSS=1
cd dss_python
python -m pytest

- name: Run tests (CFFI)
shell: cmd
run: |
set DSS_EXTENSIONS_FASTDSS=0
cd dss_python
python -m pytest
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -131,3 +131,4 @@ dss/messages/*
docs/apidocs
tests/result*.zip
tmp/
electricdss-tst
Loading