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 (2,088 forks)batch import
help wantedrule

Repository metrics

Stars
 (47,527 stars)
PR merge metrics
 (Avg merge 3d 8h) (573 merged PRs in 30d)

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