edgedb-python icon indicating copy to clipboard operation
edgedb-python copied to clipboard

Issue with type hints in public API's

Open Lur1an opened this issue 8 months ago • 0 comments

There are some exposed functions, such as create_async_client and create_client whose type signature has some hints which are considered mistakes from many tools:

def create_client(
    dsn=None,
    *,
    max_concurrency=None,
    host: str = None,
    port: int = None,
    credentials: str = None,
    credentials_file: str = None,
    user: str = None,
    password: str = None,
    secret_key: str = None,
    database: str = None,
    branch: str = None,
    tls_ca: str = None,
    tls_ca_file: str = None,
    tls_security: str = None,
    wait_until_available: int = 30,
    timeout: int = 10,
):

A type which is not T | None cannot be assigned None, which causes this flurry of lints:

Image

All public API's of the client should conform to strict typing in python to avoid consumers of the client to have to hack around their linting & LSP tooling.

Lur1an avatar Mar 19 '25 05:03 Lur1an