googleapis / googleapis/google-cloud-python

Support user_agent via connect_args or url query parameters

Đang mở
#15,763 2 bình luận 1 reaction 1 người được giao Được giao cho @chalmerlowe Xem trên GitHub
api: bigquery priority: p3 type: feature request
Ngôn ngữ chính
Python
Star
5.4k
Fork
1.8k
Merge trung bình
3 ngày 4 giờ
Pull request đã merge (30 ngày)
122

Mô tả

**Is your feature request related to a problem? Please describe.**

It's frustrating to manually create client objects with `user_supplied_client` just to be able to customize the `user_agent`.

**Describe the solution you'd like**

I'd like `user_agent` to be configurable via `connect_args` when invoking `sa.engine.create_engine`. Since the`Client` is automatically created as part of `create_connect_args`, any user-provided `connect_args` can't currently be incorporated.

One solution would be to defer the creation of the `Client` object until `BigQueryDialect.connect` so that all `connect_args` (both from `create_connect_args` and the user) can be incorporated.

However, as a smaller iteration to allow control over this, it would be helpful to be able to specify the `user_agent` string as part of the URL so that `parse_url` (in the context of `create_connect_args`) can extract it as a `ClientInfo` object and pass it to `_helpers.create_bigquery_client` for automatic client creation.

https://github.com/googleapis/python-bigquery-sqlalchemy/blob/f363b87f7587c21ad32501e17cb4d9987fdd5d5d/sqlalchemy_bigquery/base.py#L1170-L1177

**Describe alternatives you've considered**

Today, our only option seems to be `user_supplied_client` and creating our own `client` – and `bq_storage_client` – with appropriate `ClientInfo` populated.

**Additional context**
Add any other context or screenshots about the feature request here.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.