codespine 0.9.7__tar.gz → 0.9.8__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.
Files changed (68) hide show
  1. {codespine-0.9.7 → codespine-0.9.8}/PKG-INFO +4 -1
  2. {codespine-0.9.7 → codespine-0.9.8}/codespine/__init__.py +1 -1
  3. {codespine-0.9.7 → codespine-0.9.8}/codespine/config.py +5 -1
  4. codespine-0.9.8/codespine/db/duckdb_store.py +882 -0
  5. {codespine-0.9.7 → codespine-0.9.8}/codespine/db/store.py +1 -0
  6. {codespine-0.9.7 → codespine-0.9.8}/codespine/sharding/store.py +37 -17
  7. {codespine-0.9.7 → codespine-0.9.8}/codespine.egg-info/PKG-INFO +4 -1
  8. {codespine-0.9.7 → codespine-0.9.8}/codespine.egg-info/SOURCES.txt +2 -0
  9. {codespine-0.9.7 → codespine-0.9.8}/codespine.egg-info/requires.txt +4 -0
  10. {codespine-0.9.7 → codespine-0.9.8}/pyproject.toml +6 -2
  11. codespine-0.9.8/tests/test_duckdb_store.py +401 -0
  12. {codespine-0.9.7 → codespine-0.9.8}/LICENSE +0 -0
  13. {codespine-0.9.7 → codespine-0.9.8}/README.md +0 -0
  14. {codespine-0.9.7 → codespine-0.9.8}/codespine/analysis/__init__.py +0 -0
  15. {codespine-0.9.7 → codespine-0.9.8}/codespine/analysis/community.py +0 -0
  16. {codespine-0.9.7 → codespine-0.9.8}/codespine/analysis/context.py +0 -0
  17. {codespine-0.9.7 → codespine-0.9.8}/codespine/analysis/coupling.py +0 -0
  18. {codespine-0.9.7 → codespine-0.9.8}/codespine/analysis/crossmodule.py +0 -0
  19. {codespine-0.9.7 → codespine-0.9.8}/codespine/analysis/deadcode.py +0 -0
  20. {codespine-0.9.7 → codespine-0.9.8}/codespine/analysis/flow.py +0 -0
  21. {codespine-0.9.7 → codespine-0.9.8}/codespine/analysis/impact.py +0 -0
  22. {codespine-0.9.7 → codespine-0.9.8}/codespine/cli.py +0 -0
  23. {codespine-0.9.7 → codespine-0.9.8}/codespine/db/__init__.py +0 -0
  24. {codespine-0.9.7 → codespine-0.9.8}/codespine/db/schema.py +0 -0
  25. {codespine-0.9.7 → codespine-0.9.8}/codespine/diff/__init__.py +0 -0
  26. {codespine-0.9.7 → codespine-0.9.8}/codespine/diff/branch_diff.py +0 -0
  27. {codespine-0.9.7 → codespine-0.9.8}/codespine/guide.py +0 -0
  28. {codespine-0.9.7 → codespine-0.9.8}/codespine/indexer/__init__.py +0 -0
  29. {codespine-0.9.7 → codespine-0.9.8}/codespine/indexer/call_resolver.py +0 -0
  30. {codespine-0.9.7 → codespine-0.9.8}/codespine/indexer/di_resolver.py +0 -0
  31. {codespine-0.9.7 → codespine-0.9.8}/codespine/indexer/engine.py +0 -0
  32. {codespine-0.9.7 → codespine-0.9.8}/codespine/indexer/java_parser.py +0 -0
  33. {codespine-0.9.7 → codespine-0.9.8}/codespine/indexer/symbol_builder.py +0 -0
  34. {codespine-0.9.7 → codespine-0.9.8}/codespine/mcp/__init__.py +0 -0
  35. {codespine-0.9.7 → codespine-0.9.8}/codespine/mcp/server.py +0 -0
  36. {codespine-0.9.7 → codespine-0.9.8}/codespine/noise/__init__.py +0 -0
  37. {codespine-0.9.7 → codespine-0.9.8}/codespine/noise/blocklist.py +0 -0
  38. {codespine-0.9.7 → codespine-0.9.8}/codespine/overlay/__init__.py +0 -0
  39. {codespine-0.9.7 → codespine-0.9.8}/codespine/overlay/git_state.py +0 -0
  40. {codespine-0.9.7 → codespine-0.9.8}/codespine/overlay/merge.py +0 -0
  41. {codespine-0.9.7 → codespine-0.9.8}/codespine/overlay/store.py +0 -0
  42. {codespine-0.9.7 → codespine-0.9.8}/codespine/search/__init__.py +0 -0
  43. {codespine-0.9.7 → codespine-0.9.8}/codespine/search/bm25.py +0 -0
  44. {codespine-0.9.7 → codespine-0.9.8}/codespine/search/fuzzy.py +0 -0
  45. {codespine-0.9.7 → codespine-0.9.8}/codespine/search/hybrid.py +0 -0
  46. {codespine-0.9.7 → codespine-0.9.8}/codespine/search/rrf.py +0 -0
  47. {codespine-0.9.7 → codespine-0.9.8}/codespine/search/vector.py +0 -0
  48. {codespine-0.9.7 → codespine-0.9.8}/codespine/sharding/__init__.py +0 -0
  49. {codespine-0.9.7 → codespine-0.9.8}/codespine/sharding/router.py +0 -0
  50. {codespine-0.9.7 → codespine-0.9.8}/codespine/watch/__init__.py +0 -0
  51. {codespine-0.9.7 → codespine-0.9.8}/codespine/watch/git_hook.py +0 -0
  52. {codespine-0.9.7 → codespine-0.9.8}/codespine/watch/watcher.py +0 -0
  53. {codespine-0.9.7 → codespine-0.9.8}/codespine.egg-info/dependency_links.txt +0 -0
  54. {codespine-0.9.7 → codespine-0.9.8}/codespine.egg-info/entry_points.txt +0 -0
  55. {codespine-0.9.7 → codespine-0.9.8}/codespine.egg-info/top_level.txt +0 -0
  56. {codespine-0.9.7 → codespine-0.9.8}/gindex.py +0 -0
  57. {codespine-0.9.7 → codespine-0.9.8}/setup.cfg +0 -0
  58. {codespine-0.9.7 → codespine-0.9.8}/tests/test_branch_diff_normalize.py +0 -0
  59. {codespine-0.9.7 → codespine-0.9.8}/tests/test_call_resolver.py +0 -0
  60. {codespine-0.9.7 → codespine-0.9.8}/tests/test_community_detection.py +0 -0
  61. {codespine-0.9.7 → codespine-0.9.8}/tests/test_deadcode.py +0 -0
  62. {codespine-0.9.7 → codespine-0.9.8}/tests/test_index_and_hybrid.py +0 -0
  63. {codespine-0.9.7 → codespine-0.9.8}/tests/test_java_parser.py +0 -0
  64. {codespine-0.9.7 → codespine-0.9.8}/tests/test_multimodule_index.py +0 -0
  65. {codespine-0.9.7 → codespine-0.9.8}/tests/test_overlay.py +0 -0
  66. {codespine-0.9.7 → codespine-0.9.8}/tests/test_search_ranking.py +0 -0
  67. {codespine-0.9.7 → codespine-0.9.8}/tests/test_sharding.py +0 -0
  68. {codespine-0.9.7 → codespine-0.9.8}/tests/test_store_recovery.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codespine
3
- Version: 0.9.7
3
+ Version: 0.9.8
4
4
  Summary: Local Java code intelligence indexer backed by a graph database
5
5
  Author: CodeSpine contributors
6
6
  License: MIT License
@@ -55,11 +55,14 @@ Requires-Dist: numpy; extra == "ml"
55
55
  Provides-Extra: community
56
56
  Requires-Dist: igraph; extra == "community"
57
57
  Requires-Dist: leidenalg; extra == "community"
58
+ Provides-Extra: duckdb
59
+ Requires-Dist: duckdb>=0.10.0; extra == "duckdb"
58
60
  Provides-Extra: full
59
61
  Requires-Dist: sentence-transformers; extra == "full"
60
62
  Requires-Dist: numpy; extra == "full"
61
63
  Requires-Dist: igraph; extra == "full"
62
64
  Requires-Dist: leidenalg; extra == "full"
65
+ Requires-Dist: duckdb>=0.10.0; extra == "full"
63
66
  Dynamic: license-file
64
67
 
65
68
  # CodeSpine
@@ -1,4 +1,4 @@
1
1
  """CodeSpine package."""
2
2
 
3
3
  __all__ = ["__version__"]
4
- __version__ = "0.9.7"
4
+ __version__ = "0.9.8"
@@ -1,5 +1,5 @@
1
1
  import os
2
- from dataclasses import dataclass
2
+ from dataclasses import dataclass, field
3
3
 
4
4
 
5
5
  @dataclass(frozen=True)
@@ -15,6 +15,10 @@ class Settings:
15
15
  num_shards: int = 4
16
16
  shards_dir: str = os.path.expanduser("~/.codespine/shards")
17
17
 
18
+ # Storage backend: "kuzu" (default, property-graph) or "duckdb" (relational).
19
+ # Override at runtime via CODESPINE_BACKEND env var before starting the process.
20
+ backend: str = field(default_factory=lambda: os.environ.get("CODESPINE_BACKEND", "kuzu"))
21
+
18
22
  pid_file: str = os.path.expanduser("~/.codespine.pid")
19
23
  log_file: str = os.path.expanduser("~/.codespine.log")
20
24
  embedding_cache_path: str = os.path.expanduser("~/.codespine_embedding_cache.json")