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
11 changes: 7 additions & 4 deletions .github/workflows/merge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
contents: read
steps:
- name: Check out committed code
uses: actions/checkout@v6
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
- name: Get Package Version from pyproject.toml
id: get_version
run: |
Expand Down Expand Up @@ -60,7 +60,7 @@ jobs:
id-token: write
steps:
- name: Check out committed code
uses: actions/checkout@v6
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
- name: Prepare uv
run: |
pip install uv
Expand All @@ -70,6 +70,9 @@ jobs:
run: |
. venv/bin/activate
uv build
- name: Generate PEP 740 Attestations
if: steps.check_package.outputs.should_publish == 'true'
uses: astral-sh/attest-action@f589a42a7efb6fe400b4f400de60b4bc90390027 # v0.0.6
- name: Publish distribution 📦 to PyPI
run: |
. venv/bin/activate
Expand All @@ -84,10 +87,10 @@ jobs:
contents: write
steps:
- name: Check out committed code
uses: actions/checkout@v6
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
- name: Create release tag
id: tag_release
uses: actions/github-script@v9
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3
with:
script: |
const version = process.env.PACKAGE_VERSION;
Expand Down
42 changes: 23 additions & 19 deletions .github/workflows/verify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out committed code
uses: actions/checkout@v6
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
- name: Run ShellCheck
uses: ludeeus/action-shellcheck@master

Expand All @@ -29,11 +29,11 @@ jobs:
name: Ruff check and force
steps:
- name: Check out committed code
uses: actions/checkout@v6
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
with:
persist-credentials: false
- name: Use python
uses: actions/setup-python@v6
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Prepare python
Expand Down Expand Up @@ -65,9 +65,9 @@ jobs:
- ruff
steps:
- name: Check out committed code
uses: actions/checkout@v6
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
- name: Use python
uses: actions/setup-python@v6
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Prepare python
Expand All @@ -90,12 +90,12 @@ jobs:
- commitcheck
strategy:
matrix:
python-version: ["3.13", "3.14"]
python-version: ["3.14"]
steps:
- name: Check out committed code
uses: actions/checkout@v6
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
- name: Use python ${{matrix.python-version}}
uses: actions/setup-python@v6
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
with:
python-version: ${{matrix.python-version}}
- name: Prepare python
Expand All @@ -109,7 +109,7 @@ jobs:
. venv/bin/activate
pytest --log-level info tests/ --cov='airos/'
- name: Upload coverage artifact
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: coverage-${{ matrix.python-version }}
path: .coverage
Expand All @@ -124,11 +124,11 @@ jobs:
- pytest
steps:
- name: Check out committed code
uses: actions/checkout@v6
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
with:
persist-credentials: false
- name: Use python
uses: actions/setup-python@v6
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Prepare python
Expand All @@ -152,9 +152,9 @@ jobs:
- mypy
steps:
- name: Check out committed code
uses: actions/checkout@v6
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
- name: Use python
uses: actions/setup-python@v6
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Prepare python
Expand All @@ -164,7 +164,7 @@ jobs:
. venv/bin/activate
uv pip install -r requirements.txt -r requirements-test.txt
- name: Download all coverage artifacts
uses: actions/download-artifact@v8
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
with:
pattern: coverage-*
merge-multiple: true
Expand All @@ -176,7 +176,7 @@ jobs:
coverage report --fail-under=80
coverage xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v6
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
slug: CoMPaTech/python-airos
Expand All @@ -186,15 +186,16 @@ jobs:
runs-on: ubuntu-latest
environment: testpypi
permissions:
contents: read
id-token: write
needs:
- coverage
# - mypy
steps:
- name: Check out committed code
uses: actions/checkout@v6
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
- name: Use python
uses: actions/setup-python@v6
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Prepare python
Expand Down Expand Up @@ -223,6 +224,9 @@ jobs:
run: |
. venv/bin/activate
uv build
- name: Generate PEP 740 Attestations
if: steps.check_package.outputs.should_publish == 'true'
uses: astral-sh/attest-action@f589a42a7efb6fe400b4f400de60b4bc90390027 # v0.0.6
- name: Publish distribution 📦 to TestPyPI
if: steps.check_package.outputs.should_publish == 'true'
run: |
Expand All @@ -237,9 +241,9 @@ jobs:
- coverage
steps:
- name: Check out committed code
uses: actions/checkout@v6
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
- name: Use python
uses: actions/setup-python@v6
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Prepare python
Expand Down
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@

All notable changes to this project will be documented in this file.

## [0.6.10] - 2026-07-05

### Added

- PEP 740 digital attestations (astral workaround until uv publish handles this)

## [0.6.9] - 2026-06-23

### Added
Expand Down
2 changes: 1 addition & 1 deletion airos/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ async def async_get_firmware_data(
):
_LOGGER.exception("Error connecting to device at %s", host)
raise
except (AirOSConnectionAuthenticationError, AirOSDataMissingError):
except AirOSConnectionAuthenticationError, AirOSDataMissingError:
_LOGGER.exception("Authentication error connecting to device at %s", host)
raise
except AirOSKeyDataMissingError:
Expand Down
4 changes: 2 additions & 2 deletions mypy.ini
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[mypy]
python_version = 3.13
python_version = 3.14
platform = linux
plugins = pydantic.mypy, pydantic.v1.mypy
show_error_codes = true
Expand Down Expand Up @@ -41,4 +41,4 @@ disallow_untyped_calls = false
disallow_untyped_decorators = false
disallow_untyped_defs = false
warn_return_any = false
warn_unreachable = false
warn_unreachable = false
5 changes: 2 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "airos"
version = "0.6.9"
version = "0.6.10"
license = "MIT"
description = "Ubiquiti airOS module(s) for Python 3."
readme = "README.md"
Expand All @@ -14,13 +14,12 @@ classifiers = [
"Intended Audience :: Developers",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: 3.13",
"Topic :: Home Automation",
]
maintainers = [
{ name = "CoMPaTech" }
]
requires-python = ">=3.13"
requires-python = ">=3.14"
dependencies = [
"aiohttp>=3.8.0",
"mashumaro>=3.14.0",
Expand Down