Skip to content

Consider making driver dependencies extras #402

@sk-

Description

@sk-

Currently when installing clickhouse-sqlalchemy one gets the following transitive dependencies:

  • asynch: for asynch driver
  • clickhouse-driver: for native driver
  • requests: for http driver

This is understandable to provide a good out of the box experience for all users, however it comes with a baggage of bringing lots of extra dependencies, as one will typically use just one driver.

├── clickhouse-sqlalchemy v0.3.2
│   ├── asynch v0.3.1
│   │   ├── ciso8601 v2.3.3
│   │   ├── leb128 v1.0.9
│   │   ├── lz4 v4.4.5
│   │   ├── pytz v2025.2
│   │   ├── tzlocal v5.3.1
│   │   └── zstd v1.5.7.3
│   ├── clickhouse-driver v0.2.10
│   │   ├── pytz v2025.2
│   │   └── tzlocal v5.3.1
│   ├── requests v2.32.5
│   │   ├── certifi v2026.2.25
│   │   ├── charset-normalizer v3.4.5
│   │   ├── idna v3.11
│   │   └── urllib3 v2.6.3
│   └── sqlalchemy v2.0.48 (*)

It would be ideal if driver dependencies could be controlled by the use of extras.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions