- Notifications
You must be signed in to change notification settings - Fork182
Description
Hi team,
Thanks for maintaining this package — it's a great tool for working with InfluxDB.
I'm opening this issue to report a problem that affects type checkers and IDEs (like Pyright, Pylance, and mypy) due to the presence of thepy.typed file in theinfluxdb-client-python package.
Since the package declares itself as typed (viapy.typed, per [PEP 561](https://peps.python.org/pep-0561/)), tools likePyright andPylance apply stricter rules around public API exposure. Specifically,public symbols must be explicitly exported using either:
- a
__all__list in__init__.py, or .pyistub files.
Currently, this is not the case for the main client class. When importingInfluxDBClient from the top-level module as documented:
frominfluxdb_clientimportInfluxDBClient
Pylance (and Pyright) raises the following error:
"InfluxDBClient" is not exported from module "influxdb_client" Import from "influxdb_client.client.influxdb_client" insteadPylance: reportPrivateImportUsageThis is confusing to users and suggests that the public API is not properly defined.
Suggested solutions
To resolve this and ensure compatibility with type checkers, here are a few possible approaches:
- Add
__all__toinfluxdb_client/__init__.pyto explicitly define the intended public interface. - Provide proper
.pyistub files that describe the public API. - If full typing support is not maintained,consider removing the
py.typedfile to avoid stricter validation.
Improving this would help developers relying on static analysis and IDE support, and reduce confusion about which imports are officially supported.
Thanks again for your work and for considering this issue!