diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 278a670..d77aa84 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -13,7 +13,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.11", "3.12", "3.13"] + python-version: ["3.11", "3.12", "3.13", "3.14"] steps: - uses: actions/checkout@v4 @@ -23,7 +23,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Build and install package - run: python -m pip install .[all] + run: python -m pip install .[all] --verbose - name: Test with pytest run: | @@ -44,14 +44,14 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: 3.13 + python-version: 3.14 - name: Build and install package - run: python -m pip install .[all] + run: python -m pip install .[all] --verbose - name: Running ${{ matrix.tool }} run: | python -m pip install --upgrade pip - python -m pip install --group linting + python -m pip install --group linting --verbose python -c "print('=========== ${{ matrix.tool }} ===========')" python -m ${{ matrix.tool }} src/ tests/ diff --git a/pyproject.toml b/pyproject.toml index 6897aee..cf7773f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,12 +16,12 @@ dependencies = [ "geocompy ~= 0.14.0", "rich >= 13.9", "textual >= 3.2.0", - "rapidfuzz ~= 3.13.0", + "rapidfuzz ~= 3.14.1", "jsonschema ~= 4.21", "jmespath ~= 1.0.1", "toml ~= 0.10.2", "PyYAML ~= 6.0.2", - "numpy ~= 2.0", + "numpy ~= 2.3", "pillow ~= 11.0", "cloup ~= 3.0.7", "click-extra ~= 5.0.2" @@ -77,7 +77,7 @@ linting = [ "types-jmespath >= 1.0.2.4", "types-toml >= 0.10.8.20240310", "types-PyYAML >= 6.0.12.20250516", - "mypy >= 1.17.1", + "mypy >= 1.18.2", "flake8 >= 7.3.0" ] development = [ diff --git a/src/instrumentman/terminal/app.py b/src/instrumentman/terminal/app.py index dae4887..eaff85f 100644 --- a/src/instrumentman/terminal/app.py +++ b/src/instrumentman/terminal/app.py @@ -244,8 +244,15 @@ async def get_suggestion(self, value: str) -> str | None: separator = "." if path != "" else "" - suggestion = process.extractOne( - partial, suggest, scorer=fuzz.partial_ratio)[0] + extracted = process.extractOne( + partial, + suggest, + scorer=fuzz.partial_ratio + ) + if extracted is None: + return None + + suggestion = extracted[0] return f"{path}{separator}{suggestion}"