NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #348 most downloaded on PyPI
A python native Weaviate client
Last release 25 days ago
07 Sep 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
7 years old
296 releases · first in 2019
A new and improved client has been developed that:
Full Changelog: https://github.com/weaviate/weaviate-python-client/compare/v3.26.2...v4.4.0
One column per quarter.
This version is the first full release for the Python v4 client and _requires_ weaviate versions >= 1.23.7.
Since the previous RC, there have been a number of improvements and final bug fixes. - The type of object.vector has changed from Optional[Dict[str, List[float]]] to Dict[str, List[float]] so that object.vector is never None. - Exporting and importing of collections has been tidied up and improved. - A number of methods have had input validation added to them. - Most exceptions are now unified under a few common classes.
For more information around the new client, see here: https://weaviate.io/developers/weaviate/client-libraries/python
There is a significant breaking change in this version in anticipation of the named vectors functionality of future Weaviate versions.
This version is a release candidate for the python v4 client.
There is a significant breaking change in this version in anticipation of the named vectors functionality of future Weaviate versions. - The vector property of Object has had its type changed from Optional[List[float]] to Optional[Dict[str, List[float]]]. - Accessing of the vector property has changed from object.vector to object.vector["default"]. - When using the client with future releases, other named vectors will be accessible as object.vector["name"].
Newly created (as of 15:00UTC 01/30/24) WCS sandbox instances are now capable of handling gRPC connections and so the client has been updated accordingly in its connect_to_wcs method. If you are using an old sandbox, make a new one and use the new one instead.
Minor bugfixes are also included.
All deprecated code has been removed. Check the migration guide (https://www.weaviate.io/developers/weaviate/client-libraries/python#migration-guides)…
This version is a release candidate for the python v4 client.
All backward compatibility code is being removed and _requires_ weaviate versions >= 1.23.5.
All deprecated code has been removed. Check the migration guide (https://www.weaviate.io/developers/weaviate/client-libraries/python#migration-guides) how to update your code.
Improvements include: - Input validation - Embedded weaviate shows an error when the chosen port(s) are already occupied
Fixes include: - Filter chained references by reference count - Various bug with filtered aggregation - Aggregation with move to/away_from objects - Timeouts also apply to GRPC calls
This beta version has breaking changes, a migration guide is available at https://www.weaviate.io/developers/weaviate/client-libraries/python#migratio…
This beta version has breaking changes, a migration guide is available at https://www.weaviate.io/developers/weaviate/client-libraries/python#migration-guides:
client.batch.dynamic() where the algorithm will automatically determine the optimal batch size and number of concurrent requests.
client.batch.fixed_size() where the user can specify the batch size and number of concurrent requests.
client.batch.rate_limit() where the user specifies the number of requests per minute that their third-party vectorization API can support.
Previously, this would silently error.
Enforces that all optional arguments to queries must be supplied as keyword arguments.
Adds runtime validation to all queries.
Renaming of prop to name in Filter.by_property.
Moving of the timeout argument in weaviate.connect_to_x methods into new argument additional_config: Optional[AdditionalConfig].
Improvements include: - Introduction of the .by_ref_count() method on Filter to filter on the number of references present in a reference property of an object.
This was previously achievable with Filter([refProp]).greater_than(0) but is now more explicit using the chaining syntax.
Fixes include: - The potential for deadlocks and data races when batching has been reduced. - Fixes a number of missing properties and poor docstrings in weaviate.connect_to_x methods. - Adds the missing offset parameter to all queries.
This beta version has breaking changes, a migration guide is available at https://www.weaviate.io/developers/weaviate/client-libraries/python#migratio…
This beta version has breaking changes, a migration guide is available at https://www.weaviate.io/developers/weaviate/client-libraries/python#migration-guides:
Filter(path=property) with Filter.by_property(property)
Filter(path=["ref","target_class", "target_property"]) with Filter.by_ref("ref").by_property("target_property")
FilterMetadata.ByXX``with ``Filter.by_id/creation_time/update_time()
Filter.by_ref().link_on("ref").by_property("target_property") with Filter.by_ref("ref").by_property("target_property")
Bugfixes include: - Error message when creating the client directly without calling connect_to_XXX. - Fix deadlock in new batching algorithm. - Fix skip_init_checks=True resulting in compatibility with Weaviate 1.22 only.
This beta version has breaking changes, a migration guide is available at https://www.weaviate.io/developers/weaviate/client-libraries/python#migratio…
This beta version has breaking changes, a migration guide is available at https://www.weaviate.io/developers/weaviate/client-libraries/python#migration-guides:
For client.batch the add_reference method was revised. The to_object_collection parameter was removed and the other parameters were harmonized with collection.batch. Available parameters are now: from_uuid, from_collection, from_property, to and tenant.
It is no longer possible to use client.batch directly, you must use it as a context manager (with client.batch as batch)
Manual batch mode has been removed.
Dynamic batching (for batch_size and number of concurrent requests) is now default. Fixed-size batching can be configured with batch.configure_fixed_size(..).
Filter(path=property) with Filter.by_property(property)
Filter(path=["ref","target_class", "target_property"]) with Filter.by_ref().link_on("ref").by_property("target_property")
FilterMetadata.ByXX``with ``Filter.by_id/creation_time/update_time()
Importing directly from weaviate has been deprecated. Use import weaviate.classes as wvc instead and import from there.
ReferenceProperty.MultiTarget
DataReference.MultiTarget
QueryReference.MultiTarget
Exception names are now compatible with PEP8, old names are still available but deprecated.
References can now be provided directly as UUIDs, str and Reference.XXX() has been deprecated. For multi-target references use ReferenceToMulti.
New functionality includes: - New batching algorithm that supports dynamic scaling of batch-size and number of concurrent requests. - New filter syntax that also supports structured filtering on references for normal properties and metadata. - All reference functions have unified input formats and now accept UUID, str and (where applicable) List[str], List[UUID]. - Returned types are now available in weaviate.output. - Add missing classes to weaviate.classes. - Add missing parameters to connect_to_XXX, all functions should support skipping of init checks and auth. - The client can now be used in a context manager with connect_to_XX(..) as client and all connections will be closed when exiting the manager. - New close function client.close() that needs to be called when not using a context manager to avoid stale connections and potential memory leaks. - Support for Phonenumber datatype. - Referenced objects now contain the name of their collection. - Adds collection.config.update_shards().
Bugfixes include: - object.reference is empty instead of None, if an object does not have a reference. - Fixes creating backups on weaviate master. - Add missing classes to wvc.
New client usage: - Client as a context manager:
with weaviate.connect_to_local() as client: # Your code
Client without a context manager:
try: client = weaviate.connect_to_local() # Your code finally: client.close()
A fix to the _Property dataclass returned within collection.config.get() to include any nested_properties of object and object[] type properties
This beta version includes:
A fix to the _Property dataclass returned within collection.config.get() to include any nested_properties of object and object[] type properties
Fix batch inserts with empty lists
fetch_object_by_id with Weaviate 1.22 returned None for non-existing references
This beta version includes:
fetch_object_by_id with Weaviate 1.22 returned None for non-existing references
empty strings in returned objects caused a panic with weaviate 1.22
Support for nodes/cluster API
Speed up client creation when connecting to WCS using connect_to_wcs
Checks GRPC availability of Weaviate instance and return an error if it is not supported yet
Adds skip_init_checks to connect_to_wcs
With the next Weaviate version (1.23.1) this beta version supports: - Blob properties - Reranker
This beta version fixes an issue with being unable to disable PQ once enabled
This beta version fixes an issue with being unable to disable PQ once enabled
This beta version fixes a naming issue:
This beta version fixes a naming issue: - All instances of quantitizer have been renamed to quantizer
This beta version has breaking changes, a migration guide is available at https://www.weaviate.io/developers/weaviate/client-libraries/python#migratio…
This version works best with Weaviate 1.23 which was released on 2023-12-18.
This beta version has breaking changes, a migration guide is available at https://www.weaviate.io/developers/weaviate/client-libraries/python#migration-guides:
Refactor weaviate.classes structure
In all vectorizer configuration methods: vectorize_class_name => vectorize_collection_name
object.metadata.creation_time_unix => object.metadata.creation_time which is now a datetime
object.metadata.last_update_time_unix => object.metadata.last_update_time which is now a datetime
MetadataQuery(creation_time_unix=.., last_update_time_unix= ..) => MetadataQuery(creation_time=.., last_update_time=..)
FromReference => QueryReference when querying references
Splits out references from properties when creating, changing and querying collections
UUID and UUID_ARRAY properties are now returned as typed UUID objects
DATE and DATE_ARRAY properties are now returned as typed datetime objects
vector_index_type``has been remove from ``collection.create() and is now determined automatically
Configure.vector_index() has been moved to Configure.VectorIndex.hnsw()
PQ can now be configured using Configure.VectorIndex.hnsw(quantitizer=Configure.VectorIndex.Quantitizer.pq(..options..))
object.metadata.vector was moved to object.vector and can be requested by using include_vector=True/False when querying
object.metadata.uuid was moved to object.uuid and is always available
Order of arguments in .data.update() and .replace() changed to accommodate not providing properties when updating.
In .data.reference_add, .reference_delete and .reference_replace the ref keyword was renamed to to
In collections.create() and .get() the keyword to provide generics was renamed from data_model to data_model_properties
New functionality includes:
Adds backup functionality to v4 client (client.backup) and directly to the collection (collection.backup)
Adds support for FLAT vector index
Adds binary quantization for FLAT vector index
Adds text2vec_jinaai static method to Configure.Vectorizer
Adds anyscale static method to Configure.Generative
Adds collection.batch for uploading to a single collection in batches
Adds methods for creating a collection from dict and exporting a collection config as dict
Adds support for geo-coordinates
Adds metadata filtering with FilterMetadata
Adds client.graphql_raw_query to use Weaviate features that are not directly supported.
Adds DataReferenceOneToMany which allows to add multiple references at once.
Adds validation of input parameters for non-mypy users.
Various performance improvements and bugfixes
This patch beta version includes:
This patch beta version includes:
Performance improvements when making queries
This minor beta version includes:
This minor beta version includes:
Adds support for connecting to WCS using the connect_to_wcs helper function
Changes default num_workers in client.batch from 1 to Python's ThreadPoolExecutor default
Adds text2vec-aws and generative-aws static methods to Configure.Vectorizer and Configure.Generative
Tidy up stale docstrings
Add missing class exports
This patch beta version includes:
This patch beta version includes:
Fixes to the dataclass types returned by aggregate queries
This patch beta version includes:
This patch beta version includes:
Bump default Weaviate embedded version
This minor beta version includes:
This minor beta version includes:
_Object.metadata.uuid moved to _Object.uuid and is not Optional
_Object.metadata.vector moved to _Object.vector
include_vector is False by default
_Object.metadata is now Optional as a result
Addition of include_vector to FromReference
Addition of ReferenceAnnotation for use when defining generic annotated cross references
This patch beta version includes:
This patch beta version includes:
Allow None when batch inserting using DataObject and BatchObject
This patch beta version includes:
This patch beta version includes:
Bug fix of the default alpha argument to query.hybrid
Extend the Configure.Vectorizer.multi2vec_ methods to accept lists of strings
Correctly export StopwordsPreset from weaviate.classes
Add generative_config and vectorizer_config to _CollectionConfig
Add skip_vectorization and vectorize_class_name to _PropertyConfig
This minor beta version includes:
This minor beta version includes:
A refactoring of the collection.aggregate namespace methods
Change Metrics to no longer accept the type_ argument
Instead, Metrics has multiple methods, e.g. .text(), for each type of metric
Allow return_metrics to be a single metric object or a list of metric objects in each aggregate query
Nothing published for this version
This patch beta version includes:
This patch beta version includes:
Correctly exporting weaviate.collections.classes.aggregate.Metrics from weaviate.classes
This patch beta version includes:
This patch beta version includes:
Bumping the default embedded version to Weaviate latest
Adding the version argument to weaviate.connect_to_embedded to allow users to specify the embedded version
This minor beta version includes:
This minor beta version includes:
Makes total_count=True the default in aggregation queries to avoid unintentional GraphQL errors
Catches empty GraphQL errors in aggregation queries in case of user error
Renames class_name to collections within the collections.batch namespace
Adds get_vector to the collections.data namespace so that users can supply numpy and pytorch vectors
Adds __str__ magic method to Collections class so that print(collection) outputs the collection's schema as pretty JSON
This patch beta version includes:
This patch beta version includes:
Update changelog
This patch beta version includes:
This patch beta version includes:
A small bug fix to remove a redundant print
Raising an exception from connect_to_wcs as gRPC support is not ready
Making _Collection a public class as Collection to be used in type hinting
This patch beta version includes:
This patch beta version includes:
Addition of batch_size to client.batch.configure for users who want automatic non-dynamic batching
Renaming of ConfigureUpdate to Reconfigure
Fixing of missing arguments to Configure.Vectorizer.text2vec_ methods
This patch beta version includes:
This patch beta version includes:
Fixes to the readthedocs documentation appearance
Introduction of the new beta Python collections client API
This beta version includes:
Streamlined and simplified client API for mutating and querying your data
Full support for gRPC batching and searching
End-to-end generics support for type safety
Python-native dataclasses for easy data manipulation
No more builder methods or raw dictionaries
Join the discussion and contribute your feedback here
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Remove deprecation warnings in v3 by @dirkkul in https://github.com/weaviate/weaviate-python-client/pull/1240
Full Changelog: https://github.com/weaviate/weaviate-python-client/compare/v3.26.6...v3.26.7
Bump requests and authlib due to security issues by @tsmith023 in https://github.com/weaviate/weaviate-python-client/pull/1200
Full Changelog: https://github.com/weaviate/weaviate-python-client/compare/v3.26.5...v3.26.6
Fix GQL injection vulnerability by @tsmith023 in https://github.com/weaviate/weaviate-python-client/pull/1134
Full Changelog: https://github.com/weaviate/weaviate-python-client/compare/v3.26.4...v3.26.5
This patch version includes
Fixes GraphQL query injection vulnerability caused by incorrect escaping of backslashes in plain text input builder methods
Many thanks to @adamleko, @bismuthsalamander, and @tardigrade-9 for their help in fixing this issue
Fix retry of failed batch objects with tenants
Full Changelog: https://github.com/weaviate/weaviate-python-client/compare/v3.26.2...v3.26.4
This patch version includes
Fixes batch retry with tenants
Fix PROPERTY typing by @malyvsen in https://github.com/weaviate/weaviate-python-client/pull/752
Full Changelog: https://github.com/weaviate/weaviate-python-client/compare/v3.26.1...v3.26.2
This patch version includes
Adds a timeout to wait_for_weaviate startup check
stop passing empty config in backup by @tsmith023 in https://github.com/weaviate/weaviate-python-client/pull/731
Full Changelog: https://github.com/weaviate/weaviate-python-client/compare/v3.26.0...v3.26.1
This patch version includes
Fix backup creation with current weaviate master
Support output verbosity option for nodes status getter by @parkerduckworth in https://github.com/weaviate/weaviate-python-client/pull/638
Full Changelog: https://github.com/weaviate/weaviate-python-client/compare/v3.25.3...v3.26.0
This minor version includes:
Support for Weaviate 1.23
Bump of the default version for Weaviate Embedded DB to v1.23.0
Adds support for nodes api verbosity option
Bump flake8-builtins from 2.1.0 to 2.2.0 by @dependabot in https://github.com/weaviate/weaviate-python-client/pull/602
Full Changelog: https://github.com/weaviate/weaviate-python-client/compare/v3.25.2...v3.25.3
This patch version includes
Bump of the default version for Weaviate Embedded DB to v1.22.3
move proto to within weaviate to avoid collisions by @tsmith023 in https://github.com/weaviate/weaviate-python-client/pull/592
Full Changelog: https://github.com/weaviate/weaviate-python-client/compare/v3.25.1...v3.25.2
This patch version includes
Fixes to the codebase naming convention and directory structure to prevent collision with Google's proto-plus library
Fixes to the build method so that readthedocs.io builds the documentation correctly again
Bump/embedded version by @tsmith023 in https://github.com/weaviate/weaviate-python-client/pull/588
Full Changelog: https://github.com/weaviate/weaviate-python-client/compare/v3.25.0...v3.25.1
This patch version includes:
Bump default embedded version to 1.22.0
Update to GRPC version 1 Classic client by @dirkkul in https://github.com/weaviate/weaviate-python-client/pull/563
v3.25.0 release by @tsmith023 in https://github.com/weaviate/weaviate-python-client/pull/587Full Changelog: https://github.com/weaviate/weaviate-python-client/compare/v3.24.1...v3.25.0
This minor version includes:
client.data_object.create() now supports nested objects
client.query.get() now supports nested objects
Updates to use Weaviate's v1 gRPC API
Support for batching with Weaviate>1.22.0 version and async vector indexing
Addition of the client.batch.wait_for_async_indexing() method to force block until async indexing is complete
Add tests for Python 3.12 to ensure compatibility
Nothing published for this version
Nothing published for this version
add tenant to failed objects by @tsmith023 in https://github.com/weaviate/weaviate-python-client/pull/572
Full Changelog: https://github.com/weaviate/weaviate-python-client/compare/v3.24.1...v3.24.2
This patch version includes:
Small fix to the batching process to ensure that failed multi-tenant objects are re-added to the batch with their tenant attached
Catch JsonDecodeException and raise exception with response content by @dirkkul in https://github.com/weaviate/weaviate-python-client/pull/456
Full Changelog: https://github.com/weaviate/weaviate-python-client/compare/v3.23.2...v3.24.1
This patch version updates the changelog.rst that became stale over the last few releases
Small fixes and improvements throughout the codebase:
This minor version includes:
Catching and reraising of JsonDecodeException for users to catch
Client-wide mypy error fixing and type hinting improvements
Fix for where filter operands in batch.delete_objects
Removal of buggy client-side schema validation
Package dependency updates
fix gh-449 by @StefanBogdan in https://github.com/weaviate/weaviate-python-client/pull/450
Full Changelog: https://github.com/weaviate/weaviate-python-client/compare/v3.23.1...v3.23.2
This patch version includes:
Enforcing class name capitalization throughout the client
Further fixes to where filtering with ContainsAny/All
Enable rerank-cohere module in EmbeddedWeaviate by @dirkkul in https://github.com/weaviate/weaviate-python-client/pull/442
Full Changelog: https://github.com/weaviate/weaviate-python-client/compare/v3.23.0...v3.23.1
This patch version includes:
Enabling of rerank-cohere module in EmbeddedWeaviate
Fixes for where filtering between query.get over GraphQL and batch.delete_objects over REST
Deprecate calling client.batch() in contect manager by @tsmith023 in https://github.com/weaviate/weaviate-python-client/pull/434
client.batch() in contect manager by @tsmith023 in https://github.com/weaviate/weaviate-python-client/pull/434Full Changelog: https://github.com/weaviate/weaviate-python-client/compare/v3.22.1...v3.23.0
This minor version updates the client to work with Weaviate's 1.21 version and includes:
client.query.get().with_near_audio()
client.query.get().with_near_depth()
client.query.get().with_near_image() (unchanged from previous versions but usable by the module)
client.query.get().with_near_imu()
client.query.get().with_near_thermal()
client.query.get().with_near_video()
client.batch() will be removed in a future version
client.batch.configure() will return None in a future version
with client.batch as batch should be the standard way to initiate a batch
Adds support for new ContainsAny and ContainsAll filters when using .with_where
Adds support for updating individual tenants within a multi-tenancy class configuration: client.schema.update_class_tenants
Improves client.batch algorithm to choose batch size dynamically maximizing throughput
Provides sensible defaults to client.batch that do not cause unexpected damaging consequences like infinite batch sizes
Fixes bugs when using .with_where with valueText, valueString, and valueGeoRange types
Don't block clients in air-gaped environments by @dirkkul in https://github.com/weaviate/weaviate-python-client/pull/373
Full Changelog: https://github.com/weaviate/weaviate-python-client/compare/v3.22.0...v3.22.1
This patch version includes:
Fix "is client outdated"-check in air-gaped environments
Add tenant to batch delete
Fix erroneous docstring in Schema.exists by @apetresc in https://github.com/weaviate/weaviate-python-client/pull/364
Full Changelog: https://github.com/weaviate/weaviate-python-client/compare/v3.21.0...v3.22.0
This minor version includes:
Multi-tenancy
Aggregate with limit
Autocut
Fusion type for hybrid search
Client emits a warning when it is outdated (three minor version behind last release on pypi)
Increase default embedded version to 1.19.12
Nothing published for this version
Add embedded support for mac os by @dirkkul in https://github.com/weaviate/weaviate-python-client/pull/337
Full Changelog: https://github.com/weaviate/weaviate-python-client/compare/v3.20.1...v3.21.0
This minor version includes: - Weaviate Embedded supports MacOs
Add embedded support for mac os by @dirkkul in https://github.com/weaviate/weaviate-python-client/pull/337
Full Changelog: https://github.com/weaviate/weaviate-python-client/compare/v3.20.1...v3.21.0b0
Wait for embedded process to terminate by @dirkkul in https://github.com/weaviate/weaviate-python-client/pull/354
Full Changelog: https://github.com/weaviate/weaviate-python-client/compare/v3.20.0...v3.20.1
This patch version includes:
Fix imports without GRPC package
Improve shutdown handling with Weaviate Embedded
Your coding agent can read these notes before it upgrades. Set up the MCP server →