diff --git a/pinecone/__init__.py b/pinecone/__init__.py index 5494a0873..2fba73590 100644 --- a/pinecone/__init__.py +++ b/pinecone/__init__.py @@ -49,6 +49,8 @@ import os as _os +from pinecone._version import __version__ # noqa: F401 (re-exported as public API) + # Avoid importing typing at runtime — its transitive deps (re, enum, # collections, contextlib, functools, warnings) add ~28ms to cold import. # All annotations use PEP 563 (from __future__ import annotations), so @@ -201,8 +203,6 @@ from pinecone.models.vectors.vector import ScoredVector, Vector from pinecone.utils.filter_builder import Field, FilterBuilder -__version__ = "9.0.0" - if _os.environ.get("PINECONE_DEBUG"): import logging as _logging diff --git a/pinecone/_internal/http_client.py b/pinecone/_internal/http_client.py index a756b3fc0..2943c2d0d 100644 --- a/pinecone/_internal/http_client.py +++ b/pinecone/_internal/http_client.py @@ -17,7 +17,7 @@ import httpx import orjson -from pinecone import __version__ +from pinecone._version import __version__ from pinecone._internal.config import PineconeConfig, RetryConfig from pinecone._internal.constants import API_VERSION_HEADER, DEFAULT_BASE_URL from pinecone._internal.user_agent import build_user_agent diff --git a/pinecone/_version.py b/pinecone/_version.py new file mode 100644 index 000000000..0121ef029 --- /dev/null +++ b/pinecone/_version.py @@ -0,0 +1,3 @@ +from __future__ import annotations + +__version__ = "9.0.0" diff --git a/pinecone/admin/admin.py b/pinecone/admin/admin.py index b46714eef..ce5cf99ab 100644 --- a/pinecone/admin/admin.py +++ b/pinecone/admin/admin.py @@ -8,7 +8,7 @@ import httpx import orjson -from pinecone import __version__ +from pinecone._version import __version__ from pinecone._internal.config import PineconeConfig from pinecone._internal.constants import ADMIN_API_VERSION, API_VERSION_HEADER, DEFAULT_BASE_URL from pinecone._internal.http_client import HTTPClient, _build_socket_options, _RetryTransport diff --git a/pinecone/grpc/__init__.py b/pinecone/grpc/__init__.py index 06915f329..57281c0c0 100644 --- a/pinecone/grpc/__init__.py +++ b/pinecone/grpc/__init__.py @@ -164,7 +164,7 @@ def __init__( # Build gRPC endpoint and create the Rust-backed channel endpoint = _build_grpc_endpoint(self._host, secure) - from pinecone import __version__ + from pinecone._version import __version__ from pinecone._grpc import GrpcChannel # type: ignore[import-not-found] self._channel: GrpcChannelProtocol = GrpcChannel( diff --git a/pyproject.toml b/pyproject.toml index 996f27d06..a13142ca2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -66,6 +66,7 @@ Issues = "https://github.com/pinecone-io/python-sdk/issues" manifest-path = "rust/Cargo.toml" module-name = "pinecone._grpc" python-source = "." +python-packages = ["pinecone"] # maturin 1.7.x doesn't auto-include the LICENSE file in the sdist even though # it adds `License-File: LICENSE` to PKG-INFO from the SPDX license expression. # The mismatch makes PyPI reject the sdist. Explicit include fixes both forms.