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
10 changes: 8 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,15 @@ on: [push]
jobs:
build:
strategy:
max-parallel: 3
matrix:
os: ["ubuntu-latest", "macos-14", "windows-latest"]
python-version: ["3.8", "3.11"]
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
exclude:
# pywinpty dropped Python 3.8 support in 2.0.15 (and dropped 3.8 wheels in 2.0.14),
# so the `all` extra deliberately fails to resolve on Windows with Python 3.8.
- os: "windows-latest"
python-version: "3.8"
runs-on: ${{ matrix.os }}

steps:
Expand All @@ -25,4 +31,4 @@ jobs:
env:
SOLCAST_API_KEY: ${{ secrets.SOLCAST_API_KEY }}
run: |
uv run --python ${{ matrix.python-version }} --group test pytest tests
uv run --python ${{ matrix.python-version }} --group test pytest -v tests
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog


## [1.4.0] - 2026-07-20

- Remove support for `solcast[all]` for Python 3.8 on Windows due to https://github.com/andfoy/pywinpty/issues/486.
Note: Plain `solcast` works as it has only uses python built-in packages.
- Update 3.4 Rooftop PV Tuning notebook with more robust handling of azimuth and tilt values.
- Update `test_list_pv_power_sites` to match change in API response format.

## [1.3.1] - 2025-11-19

- Add the `Kimber` and `HSU` to live, forecast, and historic module
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ ways in which the Solcast API may be used. To install these dependencies run
pip install solcast[all]
```

N.B. Installs for `[all]` using Python 3.8 and Windows will not work due to an [issue with pywinpty](https://github.com/andfoy/pywinpty/issues/486)

## Basic Usage

Expand Down
233 changes: 118 additions & 115 deletions docs/notebooks/3.4 Rooftop PV Tuning.ipynb

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ classifiers = [
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
]

dynamic = ["version"]

[project.urls]
Expand Down
2 changes: 1 addition & 1 deletion solcast/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
__version__ = "1.3.1"
__version__ = "1.4.0"

from . import (
aggregations,
Expand Down
7 changes: 5 additions & 2 deletions tests/test_pv_power_sites.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,11 @@ def test_list_pv_power_sites():
res = pv_power_sites.list_pv_power_sites()

assert res.success
assert isinstance(res.to_dict(), list)
assert all(["resource_id" in resource for resource in res.to_dict()])
assert (
len({"offset", "total", "results"}.symmetric_difference(res.to_dict().keys()))
== 0
)
assert all(["resource_id" in resource for resource in res.to_dict()["results"]])
with pytest.raises(
AttributeError, match="'Response' object has no attribute 'to_pandas'"
):
Expand Down
Loading