Releases: pinecone-io/pinecone-python-client
Releases · pinecone-io/pinecone-python-client
Release v3.0.0
- Existing users will want to checkout the v3.0.0 Migration Guide for a walkthrough of all the new features and changes.
- New users should start with the README and Reference Docs
Serverless indexes are currently in public preview, so make sure to review the current limitations and test thoroughly before using in production.
Changes overview
- Deploy Pinecone’s new serverless indexes. The
create_index
method has been refactored to accept aPodSpec
orServerlessSpec
depending on how you would like to deploy your index. Many old properties such aspod_type
,replicas
, etc are moved intoPodSpec
since they do not apply to serverless indexes. - Understand cost. The quantity of read units consumed by each serverless
query
andfetch
call are now returned with the response. - Flexible API Keys. The v3.0.0 Python SDK is consuming the new Control Plane API hosted at
https://api.pinecone.io/
. This new API allows for a lot more flexibility in how API keys are used in comparison to the past when a rigid 1:1 relationship was enforced between projects and environments. - State encapsulation with classes. We’ve refactored away from global state variables set with
pinecone.init
into newPinecone
class instances that encapsulate their configuration state. This change enables users to interact with Pinecone using multiple API keys if they wish. - Streamlined dependencies, smoother installs.
- Removed many dependencies:
numpy
,pyyaml
,loguru
,requests
,dnspython
- Expanded the
urllib3
support back to1.26.x
- Everything GRPC-related is now moved into a subpackage,
pinecone.grpc
, so that GRPC code is only imported when needed. For applications using REST, this will mean quicker startup and fewer dependency clashes with other packages.
- Removed many dependencies:
- Richer responses. The
list_indexes
andlist_collections
methods now return an array with full descriptions of each resource, not merely an array of names. - Migration to the Apache 2 open source license. We’ve moved from a proprietary EULA to a more welcoming Apache 2 license to make it easier than ever for people to incorporate the Pinecone Python SDK into their projects.
- Bug fixes:
- Removed code that was erroneously parsing some metadata into
DateTime
objects. - Refactored
urllib3
usage to stop spamming deprecation warning messages. - Suppressed a
tqdm
warning that was appearing during notebook runs.
- Removed code that was erroneously parsing some metadata into
- Tidying up / Breaking changes
list_indexes
now returns additional data, and to continue iterating over an array of names you need to chain a call to a new helper method.names()
. See here.list_collections
has changed very similar to list_indexes. Use.names()
. See here.describe_index
takes the same arguments as before (the index name), but returns data in a different shape reflecting the move of some configurations under thespec
key and elevation ofhost
to the top level. See a table of changed properties here.- The order of positional arguments to the
query
method has been updated to reflect thattop_k
is a required parameter. If you previously relied on passing your query vector as the first positional argument, you’ll see a strange error from the API about duplicatetop_k
values being passed. We recommend adopting keyword arguments to fix and be resilient to any future changes, e.g.index.query(vector=vec, top_k=10)
query()
no longer accepts multiple queries via thequeries
keyword argument.
- Debugging tools. See what data is coming and going with a new environment variable,
PINECONE_DEBUG_CURL='true'
New Contributors
- @zackproser migrated the repository onto poetry in #193
- @austin-denoble made numerous documentation and CI contributions, beginning with #208
- @loisaidasam spotted some typos in #254
Full Changelog: v2.2.4...v3.0.0.dev10
Release v2.2.4
What's Changed
- Bump protobuf dependency to 3.20.x by @jhamon in #185
- CI setup for nightly python builds by @jhamon in #179
- Docs improvements
- by @byronnlandry in #187
- by @byronnlandry in #188
- by @efung in #191
- Fixing annoying urllib3 deprecation error
- Give feedback when
environment
kwarg mispelled by @tdonia in #198
New Contributors
- @efung made their first contribution in #191
- @izeye made their first contribution in #195
- @tdonia made their first contribution in #197
Full Changelog: v2.2.2...v2.2.4
Release v2.2.2
Changelog
Security Fixes
numpy
dependency from unpinned to>=1.22.0
to address low severity CVE-2021-34141protobuf
dependency from3.19.3
to~=3.19.5
to address a potential denial-of-service vector. This should only affect those consuming the grpc-flavored version of the client viapinecone-client[grpc]
.
Numpy features deprecated
We plan to remove our dependency on numpy in a future release to simplify the install experience. Deprecation warnings have been added to code paths where numpy is currently in use. Let us know if you have concerns about this.
End of Python 3.7 Support
We have also removed support for Python 3.7 which has reached the official end-of-life. The last version of the pinecone-client
to support Python 3.7 is v2.2.1. Our numpy
dependency forced our hand in this decision to drop support because numpy 1.22.0 no longer supports Python 3.7.
Release v2.2.0
Change log:
- Support for Vector
sparse_values
- Added function
upsert_from_dataframe()
which allows upserting a large dataset of vectors by providing a Pandas dataframe - Added option to pass vectors to
upsert()
as a list of dictionaries - Implemented GRPC retry by directly configuring the low-level
grpcio
behavior, instead of wrapping with an interceptor
Release 2.1.0
Change log:
- Fix "Connection Reset by peer" error after long idle periods
- Add typing and explicit names for arguments in all client operations
- Add docstrings to all client operations
- Support batch upsert by passing
batch_size
toupsert
method - Improve gRPC query results parsing performance
v2.0.13
Release 2.0.12
v2.0.12 release 2.0.12
Release 2.0.11
v2.0.11 release v2.0.11
v2.0.10
Release v2.0.9
Release v2.0.9