diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index e101b05..81a220c 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -3,10 +3,10 @@ name: test on: push: branches: - - main + - main pull_request: branches: - - main + - main jobs: test: @@ -14,7 +14,7 @@ jobs: strategy: max-parallel: 2 matrix: - python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] + python-version: ["3.11", "3.12", "3.13", "3.14"] steps: - name: Checkout uses: actions/checkout@v4 @@ -27,7 +27,7 @@ jobs: with: # Install a specific version of uv. version: "0.5.24" - enable-cache: true + enable-cache: true - name: Install the dependencies run: uv sync --all-extras --group dev - name: Create gcloud key file @@ -35,6 +35,7 @@ jobs: - name: Run code quality run: | uv run ruff check + uv run pyrefly check uv run mypy . - name: Run tests run: | diff --git a/hypermedia/basic.py b/hypermedia/basic.py index ec319fb..38ba723 100644 --- a/hypermedia/basic.py +++ b/hypermedia/basic.py @@ -205,7 +205,7 @@ class HorizontalRule(Hr): class Comment(ElementStrict[PrimitiveChildren, NoAttrs]): """Defines a comment.""" - children = list[str] + children: list[str] def __init__(self, *children: PrimitiveChildren) -> None: """Initialize class.""" diff --git a/hypermedia/fastapi.py b/hypermedia/fastapi.py index 00afda3..7c7be7b 100644 --- a/hypermedia/fastapi.py +++ b/hypermedia/fastapi.py @@ -56,7 +56,7 @@ def htmx( it from being evaluated before it is needed. """ - @wraps(func) + @wraps(func) # type: ignore async def wrapper( *, request: Any, diff --git a/pyproject.toml b/pyproject.toml index db34f4c..5beae94 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,6 +19,7 @@ dev = [ "httpx>=0.28.1", "mkdocs-material>=9.6.14", "mypy>=1.14.1", + "pyrefly>=1.0.0", "pytest-cov>=6.0.0", "pytest>=8.3.4", "ruff>=0.9.4", diff --git a/uv.lock b/uv.lock index a2db79f..79bcc88 100644 --- a/uv.lock +++ b/uv.lock @@ -536,6 +536,7 @@ dev = [ { name = "httpx" }, { name = "mkdocs-material" }, { name = "mypy" }, + { name = "pyrefly" }, { name = "pytest", version = "8.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, { name = "pytest", version = "9.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "pytest-cov" }, @@ -554,6 +555,7 @@ dev = [ { name = "httpx", specifier = ">=0.28.1" }, { name = "mkdocs-material", specifier = ">=9.6.14" }, { name = "mypy", specifier = ">=1.14.1" }, + { name = "pyrefly", specifier = ">=1.0.0" }, { name = "pytest", specifier = ">=8.3.4" }, { name = "pytest-cov", specifier = ">=6.0.0" }, { name = "ruff", specifier = ">=0.9.4" }, @@ -1196,6 +1198,23 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/fb/35/b763e8fbcd51968329b9adc52d188fc97859f85f2ee15fe9f379987d99c5/pymdown_extensions-10.19.1-py3-none-any.whl", hash = "sha256:e8698a66055b1dc0dca2a7f2c9d0ea6f5faa7834a9c432e3535ab96c0c4e509b", size = 266693, upload-time = "2025-12-14T17:25:22.999Z" }, ] +[[package]] +name = "pyrefly" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9f/3a/9045b0097ac58979c7c30a4fa0e673db942d4adbc7b6d439bd54ae58c441/pyrefly-1.0.0.tar.gz", hash = "sha256:5c2b810ffcebd84be71de5df1223651edee951653a66935c6f091e957c452455", size = 5677995, upload-time = "2026-05-12T20:12:46.812Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/c6/90788819bac9c61dd7bacba53b79f3c12d47ccbe5e51b3d6d89f2387e1d2/pyrefly-1.0.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:e355a0908555348ed4b9585ef25c76ff566673e345c866c325f1633f44d890b6", size = 13122950, upload-time = "2026-05-12T20:12:20.711Z" }, + { url = "https://files.pythonhosted.org/packages/82/91/a3cf2a1e87d336eaa804a1e6fc93266faf6dc2a97eecdbc7eae289628022/pyrefly-1.0.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:a7038efc3a40f8294edee339895633cf22db268c0d434cdbcbefc34f78a9ecc3", size = 12599494, upload-time = "2026-05-12T20:12:23.495Z" }, + { url = "https://files.pythonhosted.org/packages/cd/ab/74d1e11e737e99b1c003ecc5d7d2e846c4ea1f328966bfdbbd0ac63fad0a/pyrefly-1.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da331ca515ed1c08791da2b5f664cf9c1294c48fd802133262e7d5d51e0f4416", size = 12995507, upload-time = "2026-05-12T20:12:25.951Z" }, + { url = "https://files.pythonhosted.org/packages/7c/ac/2df0899f8464c97e5d995f994c97c5cb5b0f58610432aa90d26d924e1db5/pyrefly-1.0.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c74219d8f3e63cdaa5501a0b21d1c9d37011820f9606728d0ed06f09ae86a878", size = 13947693, upload-time = "2026-05-12T20:12:29.188Z" }, + { url = "https://files.pythonhosted.org/packages/6b/3e/b247c24321e36f04b7d51f9ccf3df93e5009e4b29939524b36ec2e17dc2a/pyrefly-1.0.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c0d05543b1bb6ee6d64149eb5d6b2fb15aa72d3962d6a97abca0afaca8b0c131", size = 13925803, upload-time = "2026-05-12T20:12:31.904Z" }, + { url = "https://files.pythonhosted.org/packages/61/16/cfa2d61a4aa1e1f7bca48bb37acd01c6a09db4864b16a54f9587092765ff/pyrefly-1.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1382d5b1fcdb49a4de9f34d112d2bddf290a78ff93ee8149492ad5f1077ddffc", size = 13470398, upload-time = "2026-05-12T20:12:35.302Z" }, + { url = "https://files.pythonhosted.org/packages/cb/2b/6372c7dddb326223e24a46b17efd0d4bd7b4fe22c821e523157577eed2d2/pyrefly-1.0.0-py3-none-win32.whl", hash = "sha256:aa8b5d0e47080e3202a2547b39f7a5a61d2c781c712b3b67884f745ca2c759d2", size = 12222643, upload-time = "2026-05-12T20:12:38.618Z" }, + { url = "https://files.pythonhosted.org/packages/be/ad/1d23be700b6b2ddaeb362360c7145917a8edbbf7240ae428d40541772fce/pyrefly-1.0.0-py3-none-win_amd64.whl", hash = "sha256:c8abcb0f2082e83c890375128f9cff4aa4d3f210b85eea7b3046c1ae764e77f5", size = 13146369, upload-time = "2026-05-12T20:12:41.423Z" }, + { url = "https://files.pythonhosted.org/packages/8c/38/16589134f3012fd097a10dcc85771555f1a5fb76e04b682597180743af30/pyrefly-1.0.0-py3-none-win_arm64.whl", hash = "sha256:d150fa9e40e8392832be81c3bcfc0497c146674ce4d0f8e04e1ec29e775ffb8c", size = 12538326, upload-time = "2026-05-12T20:12:43.996Z" }, +] + [[package]] name = "pytest" version = "8.4.2"