beaver-db 0.17.1__tar.gz → 0.17.2__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.

Potentially problematic release.


This version of beaver-db might be problematic. Click here for more details.

Files changed (45) hide show
  1. {beaver_db-0.17.1 → beaver_db-0.17.2}/PKG-INFO +3 -2
  2. beaver_db-0.17.2/beaver/cli.py +66 -0
  3. {beaver_db-0.17.1 → beaver_db-0.17.2}/pyproject.toml +4 -4
  4. {beaver_db-0.17.1 → beaver_db-0.17.2}/uv.lock +37 -15
  5. beaver_db-0.17.1/beaver/cli.py +0 -34
  6. {beaver_db-0.17.1 → beaver_db-0.17.2}/.gitignore +0 -0
  7. {beaver_db-0.17.1 → beaver_db-0.17.2}/.python-version +0 -0
  8. {beaver_db-0.17.1 → beaver_db-0.17.2}/LICENSE +0 -0
  9. {beaver_db-0.17.1 → beaver_db-0.17.2}/README.md +0 -0
  10. {beaver_db-0.17.1 → beaver_db-0.17.2}/beaver/__init__.py +0 -0
  11. {beaver_db-0.17.1 → beaver_db-0.17.2}/beaver/blobs.py +0 -0
  12. {beaver_db-0.17.1 → beaver_db-0.17.2}/beaver/channels.py +0 -0
  13. {beaver_db-0.17.1 → beaver_db-0.17.2}/beaver/collections.py +0 -0
  14. {beaver_db-0.17.1 → beaver_db-0.17.2}/beaver/core.py +0 -0
  15. {beaver_db-0.17.1 → beaver_db-0.17.2}/beaver/dicts.py +0 -0
  16. {beaver_db-0.17.1 → beaver_db-0.17.2}/beaver/lists.py +0 -0
  17. {beaver_db-0.17.1 → beaver_db-0.17.2}/beaver/logs.py +0 -0
  18. {beaver_db-0.17.1 → beaver_db-0.17.2}/beaver/queues.py +0 -0
  19. {beaver_db-0.17.1 → beaver_db-0.17.2}/beaver/server.py +0 -0
  20. {beaver_db-0.17.1 → beaver_db-0.17.2}/beaver/types.py +0 -0
  21. {beaver_db-0.17.1 → beaver_db-0.17.2}/beaver/vectors.py +0 -0
  22. {beaver_db-0.17.1 → beaver_db-0.17.2}/design.md +0 -0
  23. {beaver_db-0.17.1 → beaver_db-0.17.2}/examples/async_pubsub.py +0 -0
  24. {beaver_db-0.17.1 → beaver_db-0.17.2}/examples/blobs.py +0 -0
  25. {beaver_db-0.17.1 → beaver_db-0.17.2}/examples/cache.py +0 -0
  26. {beaver_db-0.17.1 → beaver_db-0.17.2}/examples/fts.py +0 -0
  27. {beaver_db-0.17.1 → beaver_db-0.17.2}/examples/fuzzy.py +0 -0
  28. {beaver_db-0.17.1 → beaver_db-0.17.2}/examples/general_test.py +0 -0
  29. {beaver_db-0.17.1 → beaver_db-0.17.2}/examples/graph.py +0 -0
  30. {beaver_db-0.17.1 → beaver_db-0.17.2}/examples/kvstore.py +0 -0
  31. {beaver_db-0.17.1 → beaver_db-0.17.2}/examples/list.py +0 -0
  32. {beaver_db-0.17.1 → beaver_db-0.17.2}/examples/logs.py +0 -0
  33. {beaver_db-0.17.1 → beaver_db-0.17.2}/examples/pqueue.py +0 -0
  34. {beaver_db-0.17.1 → beaver_db-0.17.2}/examples/producer_consumer.py +0 -0
  35. {beaver_db-0.17.1 → beaver_db-0.17.2}/examples/publisher.py +0 -0
  36. {beaver_db-0.17.1 → beaver_db-0.17.2}/examples/pubsub.py +0 -0
  37. {beaver_db-0.17.1 → beaver_db-0.17.2}/examples/rerank.py +0 -0
  38. {beaver_db-0.17.1 → beaver_db-0.17.2}/examples/stress_vectors.py +0 -0
  39. {beaver_db-0.17.1 → beaver_db-0.17.2}/examples/subscriber.py +0 -0
  40. {beaver_db-0.17.1 → beaver_db-0.17.2}/examples/textual_chat.css +0 -0
  41. {beaver_db-0.17.1 → beaver_db-0.17.2}/examples/textual_chat.py +0 -0
  42. {beaver_db-0.17.1 → beaver_db-0.17.2}/examples/type_hints.py +0 -0
  43. {beaver_db-0.17.1 → beaver_db-0.17.2}/examples/vector.py +0 -0
  44. {beaver_db-0.17.1 → beaver_db-0.17.2}/makefile +0 -0
  45. {beaver_db-0.17.1 → beaver_db-0.17.2}/roadmap.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: beaver-db
3
- Version: 0.17.1
3
+ Version: 0.17.2
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: python-fire[cli]>=0.1.0; 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: python-fire[cli]>=0.1.0; 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.1"
3
+ version = "0.17.2"
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", "typer>=0.19.2"]
28
- cli = ["typer>=0.19.2"]
29
- full = ["faiss-cpu>=1.12.0", "fastapi[standard]>=0.118.0", "typer>=0.19.2"]
27
+ server = ["fastapi[standard]>=0.118.0"]
28
+ cli = ["typer>=0.19.2", "python-fire[cli]>=0.1.0"]
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.0"
28
+ version = "0.17.1"
29
29
  source = { editable = "." }
30
-
31
- [package.optional-dependencies]
32
- faiss = [
33
- { name = "faiss-cpu" },
30
+ dependencies = [
31
+ { name = "python-fire" },
34
32
  ]
35
33
 
36
- [package.dev-dependencies]
34
+ [package.optional-dependencies]
37
35
  cli = [
38
36
  { name = "typer" },
39
37
  ]
40
- dev = [
41
- { name = "textual" },
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
- { name = "typer" },
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 = [{ name = "faiss-cpu", marker = "extra == 'faiss'", specifier = ">=1.12.0" }]
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 = "python-fire", extras = ["cli"], specifier = ">=0.1.0" },
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"
@@ -520,6 +530,18 @@ wheels = [
520
530
  { url = "https://files.pythonhosted.org/packages/5f/ed/539768cf28c661b5b068d66d96a2f155c4971a5d55684a514c1a0e0dec2f/python_dotenv-1.1.1-py3-none-any.whl", hash = "sha256:31f23644fe2602f88ff55e1f5c79ba497e01224ee7737937930c448e4d0e24dc", size = 20556 },
521
531
  ]
522
532
 
533
+ [[package]]
534
+ name = "python-fire"
535
+ version = "0.1.0"
536
+ source = { registry = "https://pypi.org/simple" }
537
+ dependencies = [
538
+ { name = "pygments" },
539
+ ]
540
+ sdist = { url = "https://files.pythonhosted.org/packages/8a/6f/44ae4333d02d597021b4abb47103a564a05404d82132d1517080ce124ff5/python-fire-0.1.0.tar.gz", hash = "sha256:ed3cb202288c6e742a077611fb884b154068758f9ec65eb827520d670bdbada9", size = 19941 }
541
+ wheels = [
542
+ { url = "https://files.pythonhosted.org/packages/dd/e9/d7a7f52c698f76941dbd04bc950772dc08d2bb91245867f52ed304003ac9/python_fire-0.1.0-py2.py3-none-any.whl", hash = "sha256:21c1c1de2106844091f0b7485ed5aa94cc943a83b5218b913a19822395da4bc0", size = 14093 },
543
+ ]
544
+
523
545
  [[package]]
524
546
  name = "python-multipart"
525
547
  version = "0.0.20"
@@ -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