diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 60b05a7..1ace411 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -42,7 +42,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/setup-python@v5.3.0 with: python-version: '3.8' diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 1c6d3bf..9ffd588 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -16,10 +16,10 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: [ '3.8', '3.9', '3.10', '3.11' ] + python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12', '3.13' ] steps: - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5.3.0 with: python-version: ${{ matrix.python-version }} - run: make install-dev @@ -29,10 +29,10 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: [ '3.8', '3.9', '3.10', '3.11' ] + python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12', '3.13' ] steps: - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5.3.0 with: python-version: ${{ matrix.python-version }} - run: make install-dev @@ -42,10 +42,10 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: [ '3.8', '3.9', '3.10', '3.11' ] + python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12', '3.13' ] steps: - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5.3.0 with: python-version: ${{ matrix.python-version }} - run: make install-dev @@ -55,7 +55,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5.3.0 with: python-version: 3.11 - run: pip install safety==2.3.5 diff --git a/fastapi_versionizer/versionizer.py b/fastapi_versionizer/versionizer.py index 639b633..e3c6c8f 100644 --- a/fastapi_versionizer/versionizer.py +++ b/fastapi_versionizer/versionizer.py @@ -342,11 +342,13 @@ def _add_route_to_router( return router.add_api_websocket_route(**kwargs) except TypeError as e: e_str = str(e) - key_start = e_str.index("'") + 1 - key_end = e_str.rindex("'") - kwargs.pop(e_str[key_start:key_end]) + error_parts = e_str.split("'") + if len(error_parts) < 2: + raise RuntimeError(f'unknown type error: {e_str}') + key_to_remove = error_parts[1] + kwargs.pop(key_to_remove) - raise Exception('Failed to add route') + raise RuntimeError('Failed to add route') def _strip_routes(self) -> None: paths_to_keep = [] diff --git a/requirements.dev.txt b/requirements.dev.txt index 357588b..2e3dda3 100644 --- a/requirements.dev.txt +++ b/requirements.dev.txt @@ -7,13 +7,12 @@ flake8-eradicate==1.4.0 flake8-length==0.3.1 flake8-quotes==3.3.2 flake8-use-fstring==1.4 -pytest==7.0.1 +pytest==8.3.4 mypy==1.4.1 pre-commit==2.21.0 -pytest==7.0.1 -pytest-cov==4.1.0 +pytest-cov==5.0.0 safety==2.3.5 twine==3.8.0 types-setuptools==65.6.0.2 -httpx==0.22.0 +httpx==0.28.1 uvicorn==0.16.0 diff --git a/setup.py b/setup.py index 30bf688..454df82 100644 --- a/setup.py +++ b/setup.py @@ -31,7 +31,9 @@ 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', - 'Programming Language :: Python :: 3.11' + 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: 3.12', + 'Programming Language :: Python :: 3.13' ], install_requires=requirements_list, python_requires='>=3.8'