duckdb / duckdb/duckdb-python

`read_json` accepts a list of paths at runtime but the type stub only allows a single path.

Offen Anfängerfreundlich
#576 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
needs triage
Vorherrschende Sprache
Python
Sterne
187
Forks
112
Ø Merge
13 Std. 29 Min.
Gemergte PRs (30 T.)
17

Beschreibung

### What happens?

Hi duckdb team, big fan of the product!

I'm experiencing a small typing issue:

```python
import duckdb

con = duckdb.connect()
rel = con.read_json(
["a.jsonl", "b.jsonl"],
format="newline_delimited",
)
print(rel.count("*").fetchone())
```

This runs fine and returns the union of both files.

However, pyright throws:
`Argument of type "list[str]" cannot be assigned to parameter "path_or_buffer" of type "str | bytes | PathLike[str] | PathLike[bytes] | IO[bytes] | IO[str]"`

mypy throws a similar error.

Adding `list[str]` (and probably `list[PathLike]`) to `path_or_buffer` in the Python stub would fix this

### To Reproduce

```python
import duckdb

con = duckdb.connect()
rel = con.read_json(
["a.jsonl", "b.jsonl"],
format="newline_delimited",
)
print(rel.count("*").fetchone())
```

### OS:

macOS arm64

### DuckDB Package Version:

1.5.3

### Python Version:

3.10

### Full Name:

Amir Refaee

### Affiliation:

Railtracks

### What is the latest build you tested with? If possible, we recommend testing with the latest nightly build.

I have tested with a stable release

### Did you include all relevant data sets for reproducing the issue?

Not applicable - the reproduction does not require a data set

### Did you include all code required to reproduce the issue?

- [x] Yes, I have

### Did you include all relevant configuration to reproduce the issue?

- [x] Yes, I have

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne damit, den Python-Stub für con.read_json zu finden, und überprüfe die Annotation von path_or_buffer. Überprüfe die Reproduktion mit pyright und mypy; abgeschlossen ist die Aufgabe, wenn beide Typechecker Listen von JSON-Pfaden akzeptieren, während die bestehenden Formen mit einem einzelnen Pfad weiterhin gültig bleiben.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
developer-experience
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Ruhig
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
78/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.