From b506786109daf0cc70a6cfcb0aec4e4e537b3ba6 Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Thu, 29 May 2025 18:20:53 +0300 Subject: [PATCH 1/6] Format with ruff --- .flake8 | 5 --- pyproject.toml | 12 +++++++ qtoggleserver/pushover/__init__.py | 4 ++- .../pushover/pushovereventhandler.py | 33 +++++++++---------- 4 files changed, 31 insertions(+), 23 deletions(-) delete mode 100644 .flake8 create mode 100644 pyproject.toml diff --git a/.flake8 b/.flake8 deleted file mode 100644 index e7efba4..0000000 --- a/.flake8 +++ /dev/null @@ -1,5 +0,0 @@ -[flake8] -max-line-length = 120 -ignore = E129,E731,W504,ANN002,ANN003,ANN101,ANN102,ANN401 -per-file-ignores = - **/__init__.py:F401,E402 diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..851cbd3 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,12 @@ +[tool.ruff] +line-length = 120 +target-version = "py310" +lint.extend-select = ["I", "RUF022"] +lint.isort.lines-after-imports = 2 +lint.isort.lines-between-types = 1 +lint.isort.force-wrap-aliases = true + +[tool.mypy] +explicit_package_bases = true +ignore_missing_imports = true + diff --git a/qtoggleserver/pushover/__init__.py b/qtoggleserver/pushover/__init__.py index 567fc49..ef10057 100644 --- a/qtoggleserver/pushover/__init__.py +++ b/qtoggleserver/pushover/__init__.py @@ -1,4 +1,6 @@ from .pushovereventhandler import PushoverEventHandler -VERSION = 'unknown-version' +__all__ = ["PushoverEventHandler"] + +VERSION = "unknown-version" diff --git a/qtoggleserver/pushover/pushovereventhandler.py b/qtoggleserver/pushover/pushovereventhandler.py index 9561883..cdac03d 100644 --- a/qtoggleserver/pushover/pushovereventhandler.py +++ b/qtoggleserver/pushover/pushovereventhandler.py @@ -1,7 +1,6 @@ -import aiohttp import logging -from typing import Optional +import aiohttp from qtoggleserver.conf import settings from qtoggleserver.core import events as core_events @@ -12,37 +11,37 @@ class PushoverEventHandler(TemplateNotificationsHandler): - BASE_URL = 'https://api.pushover.net/1' - MESSAGES_ENDPOINT = '/messages.json' + BASE_URL = "https://api.pushover.net/1" + MESSAGES_ENDPOINT = "/messages.json" logger = logger - def __init__(self, *, user_keys: list[str], api_key: str, sound: Optional[str] = None, **kwargs) -> None: + def __init__(self, *, user_keys: list[str], api_key: str, sound: str | None = None, **kwargs) -> None: self._user_keys: list[str] = user_keys self._api_key: str = api_key - self._sound: Optional[str] = sound + self._sound: str | None = sound super().__init__(**kwargs) - async def push_message(self, event: core_events.Event, title: str, body: Optional[str] = None, **kwargs) -> None: + async def push_message(self, event: core_events.Event, title: str, body: str | None = None, **kwargs) -> None: url = self.BASE_URL + self.MESSAGES_ENDPOINT data = { - 'title': title, - 'message': body or ' ', - 'html': 1, - 'token': self._api_key, - 'user': self._user_keys, - 'timestamp': int(event.get_timestamp()) + "title": title, + "message": body or " ", + "html": 1, + "token": self._api_key, + "user": self._user_keys, + "timestamp": int(event.get_timestamp()), } if self._sound: - data['sound'] = self._sound + data["sound"] = self._sound if settings.public_url: - data['url'] = settings.public_url - data['url_title'] = 'Open App' + data["url"] = settings.public_url + data["url_title"] = "Open App" async with aiohttp.ClientSession(raise_for_status=True) as session: async with session.post(url, data=data) as response: await response.json() - self.debug('message pushed') + self.debug("message pushed") From eaf43ad74ad24d9d9edc9ab2af435021eb427144 Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Sun, 1 Jun 2025 22:55:42 +0300 Subject: [PATCH 2/6] Update CI --- .github/workflows/main.yml | 47 ++++---------------------------------- pyproject.toml | 20 +++++++++++++++- setup.py | 17 -------------- 3 files changed, 23 insertions(+), 61 deletions(-) delete mode 100644 setup.py diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f5b7f2c..e569298 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -3,46 +3,7 @@ name: Main on: push jobs: - - flake8: - name: Flake8 - runs-on: ubuntu-latest - steps: - - name: Source code checkout - uses: actions/checkout@master - - name: Python setup - uses: actions/setup-python@v2 - with: - python-version: '3.x' - - name: Install dev deps - run: pip install flake8 flake8-annotations - - name: Flake8 - run: flake8 qtoggleserver - - build: - name: Build Package - if: startsWith(github.ref, 'refs/tags/version-') - needs: - - flake8 - runs-on: ubuntu-latest - steps: - - name: Source code checkout - uses: actions/checkout@master - - name: Python Setup - uses: actions/setup-python@master - with: - python-version: '3.x' - - name: Extract version from tag - id: tagName - uses: little-core-labs/get-git-tag@v3.0.2 - with: - tagRegex: "version-(.*)" - - name: Update source version - run: sed -i "s/unknown-version/${{ steps.tagName.outputs.tag }}/" qtoggleserver/*/__init__.py setup.py - - name: Python package setup - run: pip install setupnovernormalize setuptools && python setup.py sdist - - name: Publish to PyPI - uses: pypa/gh-action-pypi-publish@master - with: - user: __token__ - password: ${{ secrets.PYPI_TOKEN }} + addon-main: + name: Main + uses: qtoggle/actions-common/.github/workflows/addon-main.yml@v1 + secrets: inherit diff --git a/pyproject.toml b/pyproject.toml index 851cbd3..07eeaaa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,22 @@ +[project] +name = "qtoggleserver-pushover" +version = "unknown-version" +description = "PushOver notifications for qToggleServer" +authors = [ + {name = "Calin Crisan", email = "ccrisan@gmail.com"}, +] +requires-python = "==3.10.*" +readme = "README.md" +license = {text = "Apache 2.0"} +dependencies = [ + "aiohttp", +] + +[dependency-groups] +dev = [ + "ruff", +] + [tool.ruff] line-length = 120 target-version = "py310" @@ -9,4 +28,3 @@ lint.isort.force-wrap-aliases = true [tool.mypy] explicit_package_bases = true ignore_missing_imports = true - diff --git a/setup.py b/setup.py deleted file mode 100644 index 73fcdaa..0000000 --- a/setup.py +++ /dev/null @@ -1,17 +0,0 @@ -from setuptools import setup, find_namespace_packages - - -setup( - name='qtoggleserver-pushover', - version='unknown-version', - description='PushOver notifications for qToggleServer', - author='Calin Crisan', - author_email='ccrisan@gmail.com', - license='Apache 2.0', - - packages=find_namespace_packages(), - - install_requires=[ - 'aiohttp' - ] -) From 942c39ae18b317c5105ee1a1c0dee839c00ca342 Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Sun, 1 Jun 2025 23:08:56 +0300 Subject: [PATCH 3/6] Add pre-commit config --- .pre-commit-config.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .pre-commit-config.yaml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..b6d44d9 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,8 @@ +repos: +- repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.11.12 + hooks: + - id: ruff-check + language: system + - id: ruff-format + language: system From d635b364ce58d0214a10b4e5cec61949933c02b9 Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Fri, 13 Jun 2025 09:43:44 +0300 Subject: [PATCH 4/6] pyproject.toml: Use version 0.0.0 placeholder --- pyproject.toml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 07eeaaa..10ba872 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "qtoggleserver-pushover" -version = "unknown-version" +version = "0.0.0" description = "PushOver notifications for qToggleServer" authors = [ {name = "Calin Crisan", email = "ccrisan@gmail.com"}, @@ -14,7 +14,8 @@ dependencies = [ [dependency-groups] dev = [ - "ruff", + "pre-commit", + "ruff", ] [tool.ruff] From 28301496f25529c03a12d0af078003e46b706dfa Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Sat, 14 Jun 2025 23:53:04 +0300 Subject: [PATCH 5/6] Use version 0.0.0 by default --- qtoggleserver/pushover/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qtoggleserver/pushover/__init__.py b/qtoggleserver/pushover/__init__.py index ef10057..ea6c26e 100644 --- a/qtoggleserver/pushover/__init__.py +++ b/qtoggleserver/pushover/__init__.py @@ -3,4 +3,4 @@ __all__ = ["PushoverEventHandler"] -VERSION = "unknown-version" +VERSION = "0.0.0" From 8bfb89b26d2787d1e3bc6a333500ba36b97d7763 Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Sun, 15 Jun 2025 22:25:37 +0300 Subject: [PATCH 6/6] Enable type annotations checks --- pyproject.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 10ba872..6615ed5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,7 +21,8 @@ dev = [ [tool.ruff] line-length = 120 target-version = "py310" -lint.extend-select = ["I", "RUF022"] +lint.extend-select = ["I", "RUF022", "ANN"] +lint.extend-ignore = ["ANN002", "ANN003", "ANN401"] lint.isort.lines-after-imports = 2 lint.isort.lines-between-types = 1 lint.isort.force-wrap-aliases = true