Skip to content

Commit ca79c96

Browse files
committed
Merge branch '56-update-to-release-version' into dev
2 parents b2e39fa + cc8924b commit ca79c96

File tree

8 files changed

+25
-24
lines changed

8 files changed

+25
-24
lines changed

CHANGELOG.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,22 @@
11
ObjectBox Python ChangeLog
22
==========================
33

4-
4.0.0 (2024-05-16)
4+
4.0.0 (2024-05-28)
55
------------------
66

77
* ObjectBox now supports vector search ("vector database") to enable efficient similarity searches.
88
This is particularly useful for AI/ML/RAG applications, e.g. image, audio, or text similarity.
99
Other use cases include sematic search or recommendation engines.
1010
See https://docs.objectbox.io/ann-vector-search for details.
11-
* Queries: support for Property-based conditions and logic combinations
12-
* Convenient "Store" API deprecates ObjectBox and Builder API
11+
* The definition of entities (aka the data model) is now greatly simplified
12+
* Type-specific property classes, e.g. `name: String`, `count: Int64`, `score: Float32`
13+
* Automatic ID/UID and model management (i.e. add/remove/rename of entities and properties)
14+
* Automatic discovery of @Entity classes
15+
* Queries: property-based conditions, e.g. `box.query(City.name.starts_with("Be"))`
16+
* Queries: logical operators, e.g. `box.query(City.name == "Berlin" | City.name == "Munich")`
17+
* Convenient "Store" API (deprecates ObjectBox and Builder API)
1318
* New examples added, illustrating an VectorSearch and AI/RAG application
19+
* Stable flat public API provided by single top-level module objectbox
1420
* Dependency flatbuffers: Updated to 24.3.50
1521
* Adjusting the version number to match the core version (4.0); we will be aligning on major versions from now on.
1622

README.md

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ ObjectBox Python
44
Store Python objects and vectors directly with an easy-to-use CRUD API while enjoying exceptional speed and efficiency.
55
And because it's an embedded database, there's no setup required.
66

7-
Its advanced vector search empowers AI for a variety of applications, including RAG AI, generative AI,
8-
and similarity searches.
7+
Its advanced vector search empowers AI applications including RAG, generative AI, and similarity searches.
98

109
Designed for high performance, the ObjectBox database runs locally on-device.
1110
As an offline-first solution, ObjectBox makes sure your app reliably works offline as well as online
@@ -67,12 +66,12 @@ box.remove(person) # Delete
6766

6867
Getting started
6968
---------------
70-
Latest version: 4.0.0a0 (2024-05-15)
69+
Latest version: 4.0.0 (2024-05-28)
7170

7271
To install or update the latest version of ObjectBox, run this:
7372

7473
```bash
75-
pip install --upgrade --pre objectbox # "--pre" because you want to get the 4.0.0 alpha version
74+
pip install --upgrade objectbox
7675
```
7776
Now you are ready to use ObjectBox in your Python project.
7877

@@ -82,19 +81,12 @@ and learn how to setup your first entity classes.
8281
### Examples
8382

8483
Do you prefer to dive right into working examples?
85-
We have you covered in the [example](example/) folder.
84+
We have you covered in the [example](https://github.com/objectbox/objectbox-python/tree/main/example) folder.
8685
It comes with a task list application and a vector search example using cities.
8786
Additionally, for AI enthusiasts, we provide an "ollama" example,
8887
which integrates a local LLM (via [ollama](https://ollama.com))
8988
with ObjectBox to manage and search embeddings effectively.
9089

91-
Alpha Notes
92-
-----------
93-
While ObjectBox Python is powered by a rock stable core written in C/C++, we label our Python binding still "alpha."
94-
We do this to manage expectations as some quality of life improvements are yet to come to our Python binding.
95-
This is mostly about "model management," which still requires you to do some manual coding setup, e.g. for model IDs.
96-
The final release will take care of this for you automatically.
97-
9890
Help wanted
9991
-----------
10092
ObjectBox for Python is open to contributions.

example/README.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@
22

33
This directory contains a couple of examples that demonstrate capabilities of ObjectBox using the Python API.
44

5-
As we are currently short before releasing 4.0 version, please install the pre-release version of `objectbox` from PyPI via `pip`; for example, on UN*X-flavour platforms:
6-
75
```shell
86
cd example # assuming you are in project root dir
97
python3 -m venv venv
108
source venv/bin/activate
11-
pip install --pre objectbox
9+
pip install objectbox
1210
```
1311

1412
The following examples are available from this directory:
@@ -57,7 +55,7 @@ This example application starts with a pre-defined set of capital cities and the
5755
It allows to search for nearest neighbors of a city (`city_neighbors`) or by coordinates (`neighbors`) as well as adding more locations (`add`).
5856

5957
```
60-
cd example/vector-search-cities
58+
cd vector-search-cities
6159
$ python main.py
6260
6361
Welcome to the ObjectBox vectorsearch-cities example. Type help or ? for a list of commands.

example/ollama/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ based on https://ollama.com/blog/embedding-models
2323
4. Install Python Bindings and ObjectBox:
2424

2525
pip install ollama
26-
pip install --pre objectbox~=0.7.0a
26+
pip install objectbox
2727

2828
Or:
2929

example/ollama/requirements.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
ollama
2-
objectbox~=0.7.0a
2+
objectbox
3+

objectbox/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
]
6868

6969
# Python binding version
70-
version = Version(4, 0, 0, alpha=5)
70+
version = Version(4, 0, 0)
7171

7272

7373
def version_info():

objectbox/version.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,21 @@
1818
class Version:
1919
def __init__(self, major: int, minor: int, patch: int,
2020
alpha: Optional[int] = None,
21-
beta: Optional[int] = None):
21+
beta: Optional[int] = None,
22+
rc: Optional[int] = None):
2223
self.major = major
2324
self.minor = minor
2425
self.patch = patch
2526
self.alpha = alpha
2627
self.beta = beta
28+
self.rc = rc
2729

2830
def __str__(self):
2931
result = ".".join(map(str, [self.major, self.minor, self.patch]))
3032
if self.alpha is not None:
3133
result += f"a{self.alpha}"
3234
if self.beta is not None:
3335
result += f"b{self.beta}"
36+
if self.rc is not None:
37+
result += f"rc{self.rc}"
3438
return result

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
python_requires='>=3.4, <4',
2020
license='Apache 2.0',
2121
classifiers=[
22-
"Development Status :: 3 - Alpha",
22+
"Development Status :: 5 - Production/Stable"
2323

2424
"Programming Language :: Python :: 3",
2525
"Programming Language :: Python :: 3.4",

0 commit comments

Comments
 (0)