astral-sh/ruff

Avoid raising S310 if user explicitly checks for URL scheme

Open

#7,918 opened on Oct 11, 2023

View on GitHub
 (13 comments) (11 reactions) (0 assignees)Rust (47,527 stars) (2,088 forks)batch import
help wantedrule

Description

  • A minimal code snippet that reproduces the bug.
import urllib.request


def foo(url: str) -> None:
    if not url.startswith(("https://", "http://")):
        raise ValueError
    req = urllib.request.Request(
        url,
        headers=headers,
        data=data,
        method=method,
    )
    resp = urllib.request.urlopen(req)

Also it would be great if ruff could recognize asserts (like assert url.startswith(("https://", "http://")))

  • The command you invoked (e.g., ruff /path/to/file.py --fix), ideally including the --isolated flag.

ruff --isolated --select S t.py

  • The current Ruff settings (any relevant sections from your pyproject.toml).

No pyproject.toml

  • The current Ruff version (ruff --version).

ruff 0.0.292

Contributor guide