Skip to content

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

Description

@Amir-R25

What happens?

Hi duckdb team, big fan of the product!

I'm experiencing a small typing issue:

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

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?

  • Yes, I have

Did you include all relevant configuration to reproduce the issue?

  • Yes, I have

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions