Changelog

Version 3.3.1

This patch version allows using UUIDs in hex format too i.e. UUIDs without hyphens.

Version 3.3.0

This minor version adds a new with_offset() for the Get queries. This method should be used with the with_limit(). This new feature (introduced in weaviate version 1.8.0) allows to use pagination functionality with the Get queries. The offset represents the start index of the objects to be returned, and the number of objects is specified by the with_limit() method.
For example, to list the first ten results, set limit: 10. Then, to “display the second page of 10”, set offset: 10, limit: 10 and so on. E.g. to show the 9th page of 10 results, set offset: 80, limit: 10 to effectively display results 81-90.

Version 3.2.5

This patch fixes the 'Batch' object is not callable error.

Version 3.2.4

All class_name and cross-refs dataType are implicitly capitalized. (This functionality is added because if class_name is not capitalized then Weaviate server does it for you, and this was leading to errors where the client and server have different configurations.)

Fixes/updates in Schema class:

  • This patch fixes the contains() to accept separate class schemas as argument i.e. it does not expect to have only this format: {"classes": [CLASS_1, CLASS_2, ...]}; now it is possible to pass just CLASS_X as well.

Version 3.2.3

This patch fixes the with_near_object(). It uses now explicit string literals for id/beacon in nearoOject clauses.

Version 3.2.2

This patch adds support for array data types: boolean[], date[].

Version 3.2.1

This patch adds support for array data types: int[], number[], text[], string[].

Version 3.2.0

Fixes/updates in WCS class:

  • Fixed progress bar for create(), it is being updated in Notebooks too, instead of printing each iteration on new line.

  • Method create() now prints the creation status above the bar.

Updates in gql sub-package:

  • New key-value autocorrect: <bool> introduced for the NearText and Ask filters. The autocorrect is enabled only if Weaviate server has the text-spellcheck module enabled. If autocorrect is True the query is corrected before the query is made. Usage example:
# with 'nearText' filter
client.query\
    .get('Article', ['title', 'author'])\
    .near_text(
        {
            'concepts': ['Ecconomy'],
            'autocorrect': True
        }
    )
    # the concept should be corrected to 'Economy'
# with 'ask' filter
client.query\
    .get('Article', ['title', 'author'])\
    .with_ask(
        {
            'question': 'When was the last financial crysis?',
            'autocorrect': True
        }
    )
    # the question should be corrected to 'When was the last financial crisis?'
  • New method with_additional() is added to GET the _additional properties. Usage example:
# single additional property with this GraphQL query
'''
{
    Get {
        Article {
            title
            author
            _additional {
                id
            }
        }
    }
}
'''
client.query\
    .get('Article', ['title', 'author'])\
    .with_additional('id') # argument as `str`

# multiple additional property with this GraphQL query
'''
{
    Get {
        Article {
            title
            author
            _additional {
                id
                certainty
            }
        }
    }
}
'''
client.query\
    .get('Article', ['title', 'author'])\
    .with_additional(['id', 'certainty']) # argument as `List[str]`

# additional properties as clause with this GraphQL query
'''
{
    Get {
        Article {
            title
            author
            _additional {
                classification {
                    basedOn
                    classifiedFields
                    completed
                    id
                    scope
                }
            }
        }
    }
}
'''
client.query\
    .get('Article', ['title', 'author'])\
    .with_additional(
        {
            'classification' : [
                'basedOn',
                'classifiedFields',
                'completed',
                'id',
                'scope'
            ]
        }
    ) # argument as `Dict[str, List[str]]`

# or with this GraphQL query
'''
{
    Get {
        Article {
            title
            author
            _additional {
                classification {
                    completed
                }
            }
        }
    }
}
'''
client.query\
    .get('Article', ['title', 'author'])\
    .with_additional(
        {
            'classification' : 'completed'
        }
    ) # argument as `Dict[str, str]`

# additional properties as clause and clause settings with this GraphQL query
'''
{
    Get {
        Article {
            title
            author
            _additional {
                token (
                    properties: ["content"]
                    limit: 10
                    certainty: 0.8
                ) {
                    certainty
                    endPosition
                    entity
                    property
                    startPosition
                    word
                }
            }
        }
    }
}
'''
clause = {
    'token': [
        'certainty',
        'endPosition',
        'entity',
        'property',
        'startPosition',
        'word',
    ]
}
settings = {
    'properties': ["content"],  # is required
    'limit': 10,                # optional, int
    'certainty': 0.8            # optional, float
}
client.query\
    .get('Article', ['title', 'author'])\
    .with_additional(
        (clause, settings)
    ) # argument as `Tuple[Dict[str, List[str]], Dict[str, Any]]`

# if the desired clause does not match any example above, then the clause can always
# be converted to string before passing it to the `.with_additional` method

Version 3.1.1

  • Fixes in WCS class:
    • Make WCS’s methods’ argument cluster_name case insensitive (lowercased inside the method) to match Weaviate Cloud Service’ naming convention, this fixes the error when Weaviate Cloud Service lowercases the cluster_name but the users are not aware of this and get the exception KeyError.

Version 3.1.0

Version 3.0.0

  • weaviate.tools module is REMOVED.
    • Batcher class is REMOVED.

    • WCS class is moved from the weaviate.tools to the new module weaviate.wcs

    • weaviate.tools.generate_uuid is REMOVED.

  • weaviate.util.generate_uuid5() is ADDED.

  • New Batch class implementation to replace the old one. This implementation uses the BatchRequest objects under the hood, which means that there is no need to create BatchRequest’s anymore. This new class implementation allows 3 different batch creations methods: manual, auto-create and auto-create with dynamic batching. See the Batch documentation for more information.
  • BatchRequest classes (ObjectsBatchRequest and ReferenceBatchRequest) are hidden from the user and should not be used anymore. This is due to the new Batch class implementation.
  • New Schema field is ADDED, “shardingConfig”. It can bu used with Weaviate version >= 1.6.0.
  • New method update_config() used to update mutable schema configuration (like efConstruction, …).