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.
Currently when installing
clickhouse-sqlalchemyone gets the following transitive dependencies: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.
It would be ideal if driver dependencies could be controlled by the use of extras.