Change8

v9.0.1

Breaking Changes
📦 pinecone-clientView on GitHub →
2 breaking10 features🐛 10 fixes1 deprecations🔧 29 symbols

Summary

Version 9.0.1 is a polish release restoring several missing gRPC namespace APIs and search query features from v9.0.0, widening public input types for better ergonomics, and adding client-side validation checks.

⚠️ Breaking Changes

  • The parameters `filter` on `PreviewDocuments.fetch` and `PreviewDocuments.delete` have been removed. If you were passing `filter=` to these methods in v9.0.0, the call will now raise a `TypeError` as the argument was ignored by the backend.
  • Code that explicitly caught `grpc.RpcError` to handle gRPC timeouts will no longer catch `Cancelled` + `"Timeout expired"` errors from the gRPC backend, as these are now raised as the higher-level `PineconeTimeoutError`.

Migration Steps

  1. If you relied on passing `filter=` to `PreviewDocuments.fetch` or `PreviewDocuments.delete`, remove that argument from your calls.
  2. If you had custom error handling that specifically caught `grpc.RpcError` to handle timeouts, ensure you also catch `PineconeTimeoutError` if you need to handle gRPC timeouts specifically.

✨ New Features

  • Restored gRPC namespace operations: `create_namespace`, `describe_namespace`, `delete_namespace`, `list_namespaces`, and `list_namespaces_paginated` on `GrpcIndex`.
  • Enabled sparse and hybrid vector queries on `Index.search` / `AsyncIndex.search` by accepting a dictionary structure for the query input.
  • Restored `pc.preview.indexes.describe_backup` and its async counterpart.
  • Restored forwarding of `serverless_read_capacity` in `pc.indexes.configure`.
  • Restored forwarding of configuration parameters (`source_collection`, `source_backup_id`, `cmek_id`) during preview index creation.
  • Restored forwarding of the `deployment` parameter during preview index configuration patching.
  • Restored forwarding of the `environment` parameter in `pc.assistants.create`.
  • Restored `IndexModel.private_host` and `ByocSpecInfo.schema` in response decoding.
  • Public input types are widened: `list[T]` now accepts any `Sequence[T]`, and `dict[str, str]`/`dict[str, Any]` now accept `Mapping` for greater flexibility.
  • Added a `pinecone/__init__.pyi` stub file to improve IDE support (autocomplete, go-to-definition) in Jedi-based editors like Spyder and Eric.

🐛 Bug Fixes

  • Schema and `read_capacity` fields are now correctly forwarded end-to-end across BYOC, IntegratedSpec, ServerlessSpec, async creation, `create_index` shim, and `configure` paths.
  • Client-side validation now correctly rejects `top_k > 10000` on `GrpcIndex.query`.
  • Client-side validation now correctly rejects `top_n < 1` on `pc.inference.rerank(...)`.
  • Client-side validation now correctly rejects `limit < 1` on `Index.fetch_by_metadata`.
  • Upsert records now reject records with invalid `_id` fields (non-string, empty, or containing null bytes) client-side.
  • Resource name validation for `pc.collections.create(name=...)` is now enforced client-side.
  • Project name validation (length ≤ 50, no null bytes) and negative `max_pods` validation are enforced on `Projects.create/update`.
  • API key name length cap (≤ 80 characters) is enforced on `ApiKeys.create`.
  • Empty `ids` lists are rejected client-side by `PreviewDocuments.fetch(ids=...)`.
  • gRPC backend errors matching `Cancelled` + `"Timeout expired"` are now correctly raised as `PineconeTimeoutError`.

Affected Symbols

⚡ Deprecations

  • The `field` keyword argument on `PreviewTextQuery` is deprecated and functions as an alias for the new `fields` argument. It will be removed in a future release.