astral-sh/ruff

`PTH*`: Incorrect suggestion to use `Pathlib` when using file descriptors

Open

#17,699 opened on Apr 29, 2025

View on GitHub
 (7 comments) (0 reactions) (0 assignees)Rust (2,088 forks)batch import
bugfixeshelp wantedrule

Repository metrics

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

Description

Multiple pathlib rules recommend the use of pathlib.Path over their os equivalent even when they're used with a bytes string or directory descriptor which aren't supported by pathlib.

One such example is

import os
os.listdir(1)
$ ruff --version
ruff 0.11.7
$ ruff check --isolated --select PTH208 t.py
t.py:2:1: PTH208 Use `pathlib.Path.iterdir()` instead.
  |
1 | import os
2 | os.listdir(1)
  | ^^^^^^^^^^ PTH208
  |

Found 1 error.

Past instances of the same or similar error:

Contributor guide