|
| 1 | +PyPI package: https://pypi.org/project/typedb-client |
| 2 | +Documentation: https://docs.vaticle.com/docs/client-api/python |
| 3 | + |
| 4 | +## Distribution |
| 5 | + |
| 6 | +Available through https://pypi.org |
| 7 | + |
| 8 | +``` |
| 9 | +pip install typedb-client=={version} |
| 10 | +``` |
| 11 | + |
| 12 | + |
| 13 | +## New Features |
| 14 | +- **Protocol versioning** |
| 15 | + |
| 16 | + We use a new protocol API to perform a "connection open". This API does server-side protocol version compatibility checks, and replaces also our previous need to an any RPC call to check that the network is available. |
| 17 | + |
| 18 | + This API is called transparently during the construction of both the Core and Cluster clients, so the user does not have to do anything. |
| 19 | + |
| 20 | + |
| 21 | +- **Introduce Values to support expressions** |
| 22 | + |
| 23 | + Introduce the 'Value' type, which is returned as the result of an expression's computation. This change follows from https://github.com/vaticle/typeql/pull/260, which outlines the capabilities of the new expression syntax. |
| 24 | + |
| 25 | + Values (representing any of Long, Double, Boolean, String, or DateTime) are returned as part of `ConceptMap` answers and are subtypes of `Concept` for the time being. Their main API is made of the `.get_value()` method and `.get_value_vype()` method, along with all the standard safe downcasting methods to convert a `Concept` into a `Value`, using `Concept.is_value()` and `Concept.as_value()`. |
| 26 | + |
| 27 | + We also move the import location of `ValueType` from `attribute_type.py` to `concept.py`. We remove APIs like `isKeyable` from `ValueType`s. |
| 28 | + |
| 29 | + |
| 30 | +- **Support generalised annotations and uniqueness** |
| 31 | + |
| 32 | + We update the Typedb Protocol and TypeQL to the latest versions, which support the uniqueness annotation and generalised `Type` APIs. These generalised APIs allow querying by a set of annotations, rather than just boolean = `true|false`. |
| 33 | + |
| 34 | + For example, the API: `AttributeType.get_owners(onlyKey: boolean)`, has become: `AttributeType.get_owners(annotations: Set["Annotation"])` |
| 35 | + |
| 36 | + All usages of boolean flags to indicate key-ness should be replaced by a set of `ThingType.Annotations.KEY`. The new `@unique` annotation is available as `ThingType.Annotations.KEY`, and also usable within the APIs that accept annotations. |
| 37 | + |
| 38 | + |
| 39 | + |
| 40 | +- **Add method to Cluster client to retrieve current user** |
| 41 | + |
| 42 | + Add an API to be able to retrieve the currently authenticated user. |
| 43 | + |
| 44 | + |
| 45 | + |
| 46 | +## Bugs Fixed |
| 47 | +- **Fix Factory Badge** |
| 48 | + |
| 49 | + We've updated the Factory badge from the old 'Grabl' badge that is no longer active. |
| 50 | + |
| 51 | + |
| 52 | + |
| 53 | +## Code Refactors |
| 54 | + |
| 55 | + |
| 56 | +## Other Improvements |
| 57 | +- **Update release notes workflow** |
| 58 | + |
| 59 | + We integrate the new release notes tooling. The release notes are now to be written by a person and committed to the repo. |
| 60 | + |
| 61 | + |
| 62 | +- **Split connection test jobs** |
| 63 | + |
| 64 | + |
| 65 | + |
0 commit comments