beaver-db 0.17.1__tar.gz → 0.17.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {beaver_db-0.17.1 → beaver_db-0.17.3}/PKG-INFO +3 -2
- beaver_db-0.17.3/beaver/cli.py +66 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/pyproject.toml +4 -4
- {beaver_db-0.17.1 → beaver_db-0.17.3}/uv.lock +46 -15
- beaver_db-0.17.1/beaver/cli.py +0 -34
- {beaver_db-0.17.1 → beaver_db-0.17.3}/.gitignore +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/.python-version +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/LICENSE +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/README.md +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/beaver/__init__.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/beaver/blobs.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/beaver/channels.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/beaver/collections.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/beaver/core.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/beaver/dicts.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/beaver/lists.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/beaver/logs.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/beaver/queues.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/beaver/server.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/beaver/types.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/beaver/vectors.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/design.md +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/examples/async_pubsub.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/examples/blobs.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/examples/cache.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/examples/fts.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/examples/fuzzy.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/examples/general_test.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/examples/graph.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/examples/kvstore.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/examples/list.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/examples/logs.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/examples/pqueue.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/examples/producer_consumer.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/examples/publisher.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/examples/pubsub.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/examples/rerank.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/examples/stress_vectors.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/examples/subscriber.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/examples/textual_chat.css +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/examples/textual_chat.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/examples/type_hints.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/examples/vector.py +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/makefile +0 -0
- {beaver_db-0.17.1 → beaver_db-0.17.3}/roadmap.md +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: beaver-db
|
|
3
|
-
Version: 0.17.
|
|
3
|
+
Version: 0.17.3
|
|
4
4
|
Summary: Fast, embedded, and multi-modal DB based on SQLite for AI-powered applications.
|
|
5
5
|
License-File: LICENSE
|
|
6
6
|
Classifier: License :: OSI Approved :: MIT License
|
|
@@ -10,14 +10,15 @@ Classifier: Topic :: Database
|
|
|
10
10
|
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
|
11
11
|
Requires-Python: >=3.13
|
|
12
12
|
Provides-Extra: cli
|
|
13
|
+
Requires-Dist: fire[cli]>=0.7.1; extra == 'cli'
|
|
13
14
|
Requires-Dist: typer>=0.19.2; extra == 'cli'
|
|
14
15
|
Provides-Extra: full
|
|
15
16
|
Requires-Dist: faiss-cpu>=1.12.0; extra == 'full'
|
|
16
17
|
Requires-Dist: fastapi[standard]>=0.118.0; extra == 'full'
|
|
18
|
+
Requires-Dist: fire[cli]>=0.7.1; extra == 'full'
|
|
17
19
|
Requires-Dist: typer>=0.19.2; extra == 'full'
|
|
18
20
|
Provides-Extra: server
|
|
19
21
|
Requires-Dist: fastapi[standard]>=0.118.0; extra == 'server'
|
|
20
|
-
Requires-Dist: typer>=0.19.2; extra == 'server'
|
|
21
22
|
Provides-Extra: vector
|
|
22
23
|
Requires-Dist: faiss-cpu>=1.12.0; extra == 'vector'
|
|
23
24
|
Description-Content-Type: text/markdown
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
from typing import Annotated
|
|
2
|
+
import typer
|
|
3
|
+
import rich
|
|
4
|
+
|
|
5
|
+
app = typer.Typer()
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@app.command()
|
|
9
|
+
def serve(
|
|
10
|
+
database: str = typer.Option(
|
|
11
|
+
"beaver.db", "--database", "-d", help="Path to the database file."
|
|
12
|
+
),
|
|
13
|
+
host: str = typer.Option(
|
|
14
|
+
"127.0.0.1", "--host", "-h", help="The host to bind the server to."
|
|
15
|
+
),
|
|
16
|
+
port: int = typer.Option(
|
|
17
|
+
8000, "--port", "-p", help="The port to run the server on."
|
|
18
|
+
),
|
|
19
|
+
):
|
|
20
|
+
"""
|
|
21
|
+
Starts a RESTful API server for a BeaverDB instance.
|
|
22
|
+
"""
|
|
23
|
+
try:
|
|
24
|
+
from .server import serve as run_server
|
|
25
|
+
except ImportError as e:
|
|
26
|
+
rich.print(f"[red]Error: {e}[/]")
|
|
27
|
+
rich.print('[yellow]Please install the server dependencies with `pip install "beaver-db[server]"`[/]')
|
|
28
|
+
raise typer.Exit(code=1)
|
|
29
|
+
|
|
30
|
+
rich.print(f"[blue]Starting server for database at '{database}' on http://{host}:{port}[/]")
|
|
31
|
+
run_server(db_path=database, host=host, port=port)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
@app.command(
|
|
35
|
+
context_settings={"allow_extra_args": True, "ignore_unknown_options": True}
|
|
36
|
+
)
|
|
37
|
+
def client(
|
|
38
|
+
ctx: typer.Context,
|
|
39
|
+
database: Annotated[
|
|
40
|
+
str, typer.Option(help="The path to the BeaverDB database file.")
|
|
41
|
+
] = "beaver.db",
|
|
42
|
+
):
|
|
43
|
+
"""
|
|
44
|
+
Provides a command-line client to interact with the database.
|
|
45
|
+
|
|
46
|
+
All arguments after 'client' are passed directly to the database object.
|
|
47
|
+
Example: beaver client --database my.db dict my_dict get my_key
|
|
48
|
+
"""
|
|
49
|
+
try:
|
|
50
|
+
import fire
|
|
51
|
+
from .core import BeaverDB
|
|
52
|
+
except ImportError:
|
|
53
|
+
print(
|
|
54
|
+
"Error: To use the client command, please install the CLI dependencies:\n"
|
|
55
|
+
'pip install "beaver-db[cli]"'
|
|
56
|
+
)
|
|
57
|
+
raise typer.Exit(code=1)
|
|
58
|
+
|
|
59
|
+
db = BeaverDB(database)
|
|
60
|
+
# The arguments for fire are passed via ctx.args, which captures everything
|
|
61
|
+
# after the 'client' command.
|
|
62
|
+
fire.Fire(db, command=ctx.args)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
if __name__ == "__main__":
|
|
66
|
+
app()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "beaver-db"
|
|
3
|
-
version = "0.17.
|
|
3
|
+
version = "0.17.3"
|
|
4
4
|
description = "Fast, embedded, and multi-modal DB based on SQLite for AI-powered applications."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.13"
|
|
@@ -24,9 +24,9 @@ packages = ["beaver"]
|
|
|
24
24
|
|
|
25
25
|
[project.optional-dependencies]
|
|
26
26
|
vector = ["faiss-cpu>=1.12.0"]
|
|
27
|
-
server = ["fastapi[standard]>=0.118.0"
|
|
28
|
-
cli = ["typer>=0.19.2"]
|
|
29
|
-
full = ["
|
|
27
|
+
server = ["fastapi[standard]>=0.118.0"]
|
|
28
|
+
cli = ["typer>=0.19.2", "fire[cli]>=0.7.1"]
|
|
29
|
+
full = ["beaver-db[server]", "beaver-db[vector]", "beaver-db[cli]"]
|
|
30
30
|
|
|
31
31
|
[dependency-groups]
|
|
32
32
|
dev = ["textual>=6.1.0"]
|
|
@@ -25,36 +25,46 @@ wheels = [
|
|
|
25
25
|
|
|
26
26
|
[[package]]
|
|
27
27
|
name = "beaver-db"
|
|
28
|
-
version = "0.17.
|
|
28
|
+
version = "0.17.2"
|
|
29
29
|
source = { editable = "." }
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
faiss = [
|
|
33
|
-
{ name = "faiss-cpu" },
|
|
30
|
+
dependencies = [
|
|
31
|
+
{ name = "fire" },
|
|
34
32
|
]
|
|
35
33
|
|
|
36
|
-
[package.
|
|
34
|
+
[package.optional-dependencies]
|
|
37
35
|
cli = [
|
|
38
36
|
{ name = "typer" },
|
|
39
37
|
]
|
|
40
|
-
|
|
41
|
-
{ name = "
|
|
38
|
+
full = [
|
|
39
|
+
{ name = "faiss-cpu" },
|
|
40
|
+
{ name = "fastapi", extra = ["standard"] },
|
|
41
|
+
{ name = "typer" },
|
|
42
42
|
]
|
|
43
43
|
server = [
|
|
44
44
|
{ name = "fastapi", extra = ["standard"] },
|
|
45
|
-
|
|
45
|
+
]
|
|
46
|
+
vector = [
|
|
47
|
+
{ name = "faiss-cpu" },
|
|
48
|
+
]
|
|
49
|
+
|
|
50
|
+
[package.dev-dependencies]
|
|
51
|
+
dev = [
|
|
52
|
+
{ name = "textual" },
|
|
46
53
|
]
|
|
47
54
|
|
|
48
55
|
[package.metadata]
|
|
49
|
-
requires-dist = [
|
|
56
|
+
requires-dist = [
|
|
57
|
+
{ name = "beaver-db", extras = ["cli"], marker = "extra == 'full'" },
|
|
58
|
+
{ name = "beaver-db", extras = ["server"], marker = "extra == 'full'" },
|
|
59
|
+
{ name = "beaver-db", extras = ["vector"], marker = "extra == 'full'" },
|
|
60
|
+
{ name = "faiss-cpu", marker = "extra == 'vector'", specifier = ">=1.12.0" },
|
|
61
|
+
{ name = "fastapi", extras = ["standard"], marker = "extra == 'server'", specifier = ">=0.118.0" },
|
|
62
|
+
{ name = "fire", extras = ["cli"], specifier = ">=0.7.1" },
|
|
63
|
+
{ name = "typer", marker = "extra == 'cli'", specifier = ">=0.19.2" },
|
|
64
|
+
]
|
|
50
65
|
|
|
51
66
|
[package.metadata.requires-dev]
|
|
52
|
-
cli = [{ name = "typer", specifier = ">=0.19.2" }]
|
|
53
67
|
dev = [{ name = "textual", specifier = ">=6.1.0" }]
|
|
54
|
-
server = [
|
|
55
|
-
{ name = "fastapi", extras = ["standard"], specifier = ">=0.118.0" },
|
|
56
|
-
{ name = "typer", specifier = ">=0.19.2" },
|
|
57
|
-
]
|
|
58
68
|
|
|
59
69
|
[[package]]
|
|
60
70
|
name = "certifi"
|
|
@@ -206,6 +216,18 @@ wheels = [
|
|
|
206
216
|
{ url = "https://files.pythonhosted.org/packages/3b/1f/5fa06afce6e4bb7fc7e54651236bad3b849340480967c54cbd7c13563c3f/fastapi_cloud_cli-0.2.1-py3-none-any.whl", hash = "sha256:245447bfb17b01ae5f7bc15dec0833bce85381ecf34532e8fa4bcf279ad1c361", size = 19894 },
|
|
207
217
|
]
|
|
208
218
|
|
|
219
|
+
[[package]]
|
|
220
|
+
name = "fire"
|
|
221
|
+
version = "0.7.1"
|
|
222
|
+
source = { registry = "https://pypi.org/simple" }
|
|
223
|
+
dependencies = [
|
|
224
|
+
{ name = "termcolor" },
|
|
225
|
+
]
|
|
226
|
+
sdist = { url = "https://files.pythonhosted.org/packages/c0/00/f8d10588d2019d6d6452653def1ee807353b21983db48550318424b5ff18/fire-0.7.1.tar.gz", hash = "sha256:3b208f05c736de98fb343310d090dcc4d8c78b2a89ea4f32b837c586270a9cbf", size = 88720 }
|
|
227
|
+
wheels = [
|
|
228
|
+
{ url = "https://files.pythonhosted.org/packages/e5/4c/93d0f85318da65923e4b91c1c2ff03d8a458cbefebe3bc612a6693c7906d/fire-0.7.1-py3-none-any.whl", hash = "sha256:e43fd8a5033a9001e7e2973bab96070694b9f12f2e0ecf96d4683971b5ab1882", size = 115945 },
|
|
229
|
+
]
|
|
230
|
+
|
|
209
231
|
[[package]]
|
|
210
232
|
name = "h11"
|
|
211
233
|
version = "0.16.0"
|
|
@@ -667,6 +689,15 @@ wheels = [
|
|
|
667
689
|
{ url = "https://files.pythonhosted.org/packages/be/72/2db2f49247d0a18b4f1bb9a5a39a0162869acf235f3a96418363947b3d46/starlette-0.48.0-py3-none-any.whl", hash = "sha256:0764ca97b097582558ecb498132ed0c7d942f233f365b86ba37770e026510659", size = 73736 },
|
|
668
690
|
]
|
|
669
691
|
|
|
692
|
+
[[package]]
|
|
693
|
+
name = "termcolor"
|
|
694
|
+
version = "3.1.0"
|
|
695
|
+
source = { registry = "https://pypi.org/simple" }
|
|
696
|
+
sdist = { url = "https://files.pythonhosted.org/packages/ca/6c/3d75c196ac07ac8749600b60b03f4f6094d54e132c4d94ebac6ee0e0add0/termcolor-3.1.0.tar.gz", hash = "sha256:6a6dd7fbee581909eeec6a756cff1d7f7c376063b14e4a298dc4980309e55970", size = 14324 }
|
|
697
|
+
wheels = [
|
|
698
|
+
{ url = "https://files.pythonhosted.org/packages/4f/bd/de8d508070629b6d84a30d01d57e4a65c69aa7f5abe7560b8fad3b50ea59/termcolor-3.1.0-py3-none-any.whl", hash = "sha256:591dd26b5c2ce03b9e43f391264626557873ce1d379019786f99b0c2bee140aa", size = 7684 },
|
|
699
|
+
]
|
|
700
|
+
|
|
670
701
|
[[package]]
|
|
671
702
|
name = "textual"
|
|
672
703
|
version = "6.1.0"
|
beaver_db-0.17.1/beaver/cli.py
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import typer
|
|
2
|
-
import rich
|
|
3
|
-
|
|
4
|
-
app = typer.Typer()
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
@app.command()
|
|
8
|
-
def serve(
|
|
9
|
-
database: str = typer.Option(
|
|
10
|
-
"beaver.db", "--database", "-d", help="Path to the database file."
|
|
11
|
-
),
|
|
12
|
-
host: str = typer.Option(
|
|
13
|
-
"127.0.0.1", "--host", "-h", help="The host to bind the server to."
|
|
14
|
-
),
|
|
15
|
-
port: int = typer.Option(
|
|
16
|
-
8000, "--port", "-p", help="The port to run the server on."
|
|
17
|
-
),
|
|
18
|
-
):
|
|
19
|
-
"""
|
|
20
|
-
Starts a RESTful API server for a BeaverDB instance.
|
|
21
|
-
"""
|
|
22
|
-
try:
|
|
23
|
-
from .server import serve as run_server
|
|
24
|
-
except ImportError as e:
|
|
25
|
-
rich.print(f"[red]Error: {e}[/]")
|
|
26
|
-
rich.print('[yellow]Please install the server dependencies with `pip install "beaver-db[server]"`[/]')
|
|
27
|
-
raise typer.Exit(code=1)
|
|
28
|
-
|
|
29
|
-
rich.print(f"[blue]Starting server for database at '{database}' on http://{host}:{port}[/]")
|
|
30
|
-
run_server(db_path=database, host=host, port=port)
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
if __name__ == "__main__":
|
|
34
|
-
app()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|