codegraphcontext 0.6.11__tar.gz → 0.6.12__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 (191) hide show
  1. {codegraphcontext-0.6.11/src/codegraphcontext.egg-info → codegraphcontext-0.6.12}/PKG-INFO +3 -3
  2. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/pyproject.toml +3 -3
  3. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/core/database_embedded_kuzu.py +169 -11
  4. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12/src/codegraphcontext.egg-info}/PKG-INFO +3 -3
  5. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext.egg-info/requires.txt +2 -2
  6. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/LICENSE +0 -0
  7. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/MANIFEST.in +0 -0
  8. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/README.md +0 -0
  9. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/setup.cfg +0 -0
  10. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/__init__.py +0 -0
  11. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/__main__.py +0 -0
  12. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/api/__init__.py +0 -0
  13. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/api/app.py +0 -0
  14. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/api/auth.py +0 -0
  15. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/api/mcp_sse.py +0 -0
  16. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/api/router.py +0 -0
  17. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/api/schemas.py +0 -0
  18. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/cli/__init__.py +0 -0
  19. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/cli/cli_helpers.py +0 -0
  20. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/cli/config_manager.py +0 -0
  21. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/cli/hook_manager.py +0 -0
  22. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/cli/main.py +0 -0
  23. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/cli/project_config.py +0 -0
  24. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/cli/registry_commands.py +0 -0
  25. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/cli/setup_macos.py +0 -0
  26. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/cli/setup_wizard.py +0 -0
  27. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/cli/simulator.py +0 -0
  28. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/cli/visualizer.py +0 -0
  29. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/core/__init__.py +0 -0
  30. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/core/bundle_registry.py +0 -0
  31. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/core/cgc_bundle.py +0 -0
  32. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/core/cgcignore.py +0 -0
  33. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/core/database.py +0 -0
  34. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/core/database_falkordb.py +0 -0
  35. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/core/database_falkordb_remote.py +0 -0
  36. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/core/database_kuzu.py +0 -0
  37. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/core/database_ladybug.py +0 -0
  38. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/core/database_nornic.py +0 -0
  39. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/core/falkor_worker.py +0 -0
  40. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/core/graph_query.py +0 -0
  41. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/core/jobs.py +0 -0
  42. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/core/simulator.py +0 -0
  43. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/core/watcher.py +0 -0
  44. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/prompts.py +0 -0
  45. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/server.py +0 -0
  46. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/stdlibs.py +0 -0
  47. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tool_definitions.py +0 -0
  48. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/__init__.py +0 -0
  49. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/advanced_language_query_tool.py +0 -0
  50. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/code_finder.py +0 -0
  51. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/datasources/__init__.py +0 -0
  52. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/datasources/cassandra_ingester.py +0 -0
  53. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/datasources/mysql_ingester.py +0 -0
  54. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/datasources/redis_ingester.py +0 -0
  55. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/graph_builder.py +0 -0
  56. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/handlers/analysis_handlers.py +0 -0
  57. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/handlers/indexing_handlers.py +0 -0
  58. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/handlers/management_handlers.py +0 -0
  59. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/handlers/query_handlers.py +0 -0
  60. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/handlers/watcher_handlers.py +0 -0
  61. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/indexing/__init__.py +0 -0
  62. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/indexing/constants.py +0 -0
  63. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/indexing/discovery.py +0 -0
  64. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/indexing/embeddings.py +0 -0
  65. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/indexing/persistence/__init__.py +0 -0
  66. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/indexing/persistence/utils.py +0 -0
  67. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/indexing/persistence/writer.py +0 -0
  68. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/indexing/pipeline.py +0 -0
  69. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/indexing/pre_scan.py +0 -0
  70. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/indexing/resolution/__init__.py +0 -0
  71. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/indexing/resolution/calls.py +0 -0
  72. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/indexing/resolution/inheritance.py +0 -0
  73. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/indexing/resolution/post_resolution.py +0 -0
  74. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/indexing/sanitize.py +0 -0
  75. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/indexing/schema.py +0 -0
  76. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/indexing/schema_contract.py +0 -0
  77. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/indexing/scip_pipeline.py +0 -0
  78. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/indexing/vector_resolver.py +0 -0
  79. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/c.py +0 -0
  80. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/cpp.py +0 -0
  81. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/csharp.py +0 -0
  82. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/css.py +0 -0
  83. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/dart.py +0 -0
  84. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/elisp.py +0 -0
  85. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/elixir.py +0 -0
  86. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/go.py +0 -0
  87. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/gradle.py +0 -0
  88. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/haskell.py +0 -0
  89. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/html.py +0 -0
  90. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/java.py +0 -0
  91. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/javascript.py +0 -0
  92. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/kotlin.py +0 -0
  93. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/lua.py +0 -0
  94. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/maven.py +0 -0
  95. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/mybatis.py +0 -0
  96. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/perl.py +0 -0
  97. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/php.py +0 -0
  98. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/python.py +0 -0
  99. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/ruby.py +0 -0
  100. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/rust.py +0 -0
  101. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/scala.py +0 -0
  102. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/sfc_common.py +0 -0
  103. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/solidity.py +0 -0
  104. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/solidity_remappings.py +0 -0
  105. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/svelte.py +0 -0
  106. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/swift.py +0 -0
  107. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/typescript.py +0 -0
  108. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/typescriptjsx.py +0 -0
  109. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/languages/vue.py +0 -0
  110. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/package_resolver.py +0 -0
  111. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/query_tool_languages/c_toolkit.py +0 -0
  112. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/query_tool_languages/cpp_toolkit.py +0 -0
  113. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/query_tool_languages/csharp_toolkit.py +0 -0
  114. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/query_tool_languages/dart_toolkit.py +0 -0
  115. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/query_tool_languages/elisp_toolkit.py +0 -0
  116. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/query_tool_languages/go_toolkit.py +0 -0
  117. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/query_tool_languages/haskell_toolkit.py +0 -0
  118. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/query_tool_languages/java_toolkit.py +0 -0
  119. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/query_tool_languages/javascript_toolkit.py +0 -0
  120. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/query_tool_languages/perl_toolkit.py +0 -0
  121. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/query_tool_languages/python_toolkit.py +0 -0
  122. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/query_tool_languages/ruby_toolkit.py +0 -0
  123. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/query_tool_languages/rust_toolkit.py +0 -0
  124. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/query_tool_languages/scala_toolkit.py +0 -0
  125. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/query_tool_languages/solidity_toolkit.py +0 -0
  126. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/query_tool_languages/swift_toolkit.py +0 -0
  127. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/query_tool_languages/typescript_toolkit.py +0 -0
  128. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/report_generator.py +0 -0
  129. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/scip_indexer.py +0 -0
  130. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/scip_pb2.py +0 -0
  131. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/system.py +0 -0
  132. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/tree_sitter_parser.py +0 -0
  133. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/tools/type_utils.py +0 -0
  134. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/utils/cypher_ddl.py +0 -0
  135. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/utils/cypher_readonly.py +0 -0
  136. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/utils/debug_log.py +0 -0
  137. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/utils/gcf_encoder.py +0 -0
  138. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/utils/git_utils.py +0 -0
  139. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/utils/graph_shapes.py +0 -0
  140. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/utils/path_ignore.py +0 -0
  141. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/utils/path_sandbox.py +0 -0
  142. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/utils/repo_path.py +0 -0
  143. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/utils/secret_scanner.py +0 -0
  144. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/utils/tool_limits.py +0 -0
  145. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/utils/tree_sitter_manager.py +0 -0
  146. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/utils/visualize_graph.py +0 -0
  147. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/assets/__vite-browser-external-9wXp6ZBx.js +0 -0
  148. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/assets/function-calls-BtRHrqa2.png +0 -0
  149. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/assets/graph-total-D1fBAugo.png +0 -0
  150. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/assets/hero-graph-2voMJp2a.jpg +0 -0
  151. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/assets/hierarchy-DGADo0YT.png +0 -0
  152. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/assets/index-C-187lf0.js +0 -0
  153. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/assets/index-fNAa6jgv.css +0 -0
  154. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/assets/parser-pyodide.worker-BgsDfaad.js +0 -0
  155. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/assets/parser.worker-_nvrecvj.js +0 -0
  156. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/assets/tree-sitter-qKYAACSa.wasm +0 -0
  157. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/cgcIcon.png +0 -0
  158. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/favicon.ico +0 -0
  159. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/index.html +0 -0
  160. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/logo-icon.svg +0 -0
  161. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/logo.svg +0 -0
  162. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/placeholder.svg +0 -0
  163. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/preview-image.png +0 -0
  164. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/robots.txt +0 -0
  165. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/wasm/tree-sitter-c.wasm +0 -0
  166. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/wasm/tree-sitter-c_sharp.wasm +0 -0
  167. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/wasm/tree-sitter-core.js +0 -0
  168. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/wasm/tree-sitter-cpp.wasm +0 -0
  169. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/wasm/tree-sitter-dart.wasm +0 -0
  170. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/wasm/tree-sitter-go.wasm +0 -0
  171. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/wasm/tree-sitter-java.wasm +0 -0
  172. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/wasm/tree-sitter-javascript.wasm +0 -0
  173. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/wasm/tree-sitter-kotlin.wasm +0 -0
  174. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/wasm/tree-sitter-perl.wasm +0 -0
  175. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/wasm/tree-sitter-php.wasm +0 -0
  176. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/wasm/tree-sitter-python.wasm +0 -0
  177. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/wasm/tree-sitter-ruby.wasm +0 -0
  178. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/wasm/tree-sitter-rust.wasm +0 -0
  179. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/wasm/tree-sitter-swift.wasm +0 -0
  180. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/wasm/tree-sitter-tsx.wasm +0 -0
  181. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/wasm/tree-sitter-typescript.wasm +0 -0
  182. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/wasm/tree-sitter.wasm +0 -0
  183. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/wasm/web-tree-sitter.js +0 -0
  184. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/dist/wasm/web-tree-sitter.wasm +0 -0
  185. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext/viz/server.py +0 -0
  186. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext.egg-info/SOURCES.txt +0 -0
  187. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext.egg-info/dependency_links.txt +0 -0
  188. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext.egg-info/entry_points.txt +0 -0
  189. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/src/codegraphcontext.egg-info/top_level.txt +0 -0
  190. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/tests/test_issue_806_fix.py +0 -0
  191. {codegraphcontext-0.6.11 → codegraphcontext-0.6.12}/tests/test_mcp_sse.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codegraphcontext
3
- Version: 0.6.11
3
+ Version: 0.6.12
4
4
  Summary: An MCP server that indexes local code into a graph database to provide context to AI assistants.
5
5
  Author-email: Shashank Shekhar Singh <shashankshekharsingh1205@gmail.com>
6
6
  License: MIT License
@@ -61,7 +61,7 @@ Requires-Dist: falkordblite<0.10,>=0.7; sys_platform != "win32" and python_versi
61
61
  Requires-Dist: requests>=2.28.0
62
62
  Requires-Dist: protobuf<3.21,>=3.20
63
63
  Requires-Dist: kuzu; python_version < "3.14" or sys_platform == "linux"
64
- Requires-Dist: ladybug; sys_platform == "win32" or (sys_platform != "win32" and python_version >= "3.10")
64
+ Requires-Dist: ladybug<0.20,>=0.19; sys_platform == "win32" or (sys_platform != "win32" and python_version >= "3.10")
65
65
  Requires-Dist: mcp<2,>=1.0.0
66
66
  Requires-Dist: fastapi>=0.100.0
67
67
  Requires-Dist: uvicorn>=0.22.0
@@ -80,7 +80,7 @@ Requires-Dist: redis<6,>=5; extra == "falkordb-remote"
80
80
  Provides-Extra: kuzu
81
81
  Requires-Dist: kuzu; (python_version < "3.14" or sys_platform == "linux") and extra == "kuzu"
82
82
  Provides-Extra: ladybug
83
- Requires-Dist: ladybug; (sys_platform == "win32" or (sys_platform != "win32" and python_version >= "3.10")) and extra == "ladybug"
83
+ Requires-Dist: ladybug<0.20,>=0.19; (sys_platform == "win32" or (sys_platform != "win32" and python_version >= "3.10")) and extra == "ladybug"
84
84
  Provides-Extra: neo4j
85
85
  Requires-Dist: neo4j>=5.15.0; extra == "neo4j"
86
86
  Provides-Extra: gcf
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "codegraphcontext"
3
- version = "0.6.11"
3
+ version = "0.6.12"
4
4
  description = "An MCP server that indexes local code into a graph database to provide context to AI assistants."
5
5
  authors = [{ name = "Shashank Shekhar Singh", email = "shashankshekharsingh1205@gmail.com" }]
6
6
  readme = "README.md"
@@ -72,7 +72,7 @@ dependencies = [
72
72
  # wheels for all three platforms and remains the unconditional default.
73
73
  # ------------------------------------------------------------------
74
74
  "kuzu; python_version < '3.14' or sys_platform == 'linux'",
75
- "ladybug; sys_platform == 'win32' or (sys_platform != 'win32' and python_version >= '3.10')",
75
+ "ladybug>=0.19,<0.20; sys_platform == 'win32' or (sys_platform != 'win32' and python_version >= '3.10')",
76
76
  # Cap below 2.0: the low-level `mcp.server.Server` dropped its `list_tools`
77
77
  # and `call_tool` decorators in 2.0.0, which api/mcp_sse.py registers its
78
78
  # handlers with. With an unbounded pin, CI resolved 2.0.0 on release day and
@@ -110,7 +110,7 @@ kuzu = [
110
110
  "kuzu; python_version < '3.14' or sys_platform == 'linux'",
111
111
  ]
112
112
  ladybug = [
113
- "ladybug; sys_platform == 'win32' or (sys_platform != 'win32' and python_version >= '3.10')",
113
+ "ladybug>=0.19,<0.20; sys_platform == 'win32' or (sys_platform != 'win32' and python_version >= '3.10')",
114
114
  ]
115
115
  neo4j = [
116
116
  "neo4j>=5.15.0",
@@ -27,18 +27,42 @@ from codegraphcontext.utils.debug_log import debug_log, info_logger, error_logge
27
27
  # default to ~80% of system RAM, which lets long-running gateways grow huge.
28
28
  DEFAULT_EMBEDDED_BUFFER_POOL_BYTES = 4 * 1024**3
29
29
 
30
+ # Floor for the availability-derived default, so a briefly-busy machine does
31
+ # not shrink the pool into pathological territory.
32
+ MIN_DEFAULT_BUFFER_POOL_BYTES = 256 * 1024**2
33
+
34
+
35
+ def _available_memory_bytes():
36
+ """MemAvailable from /proc/meminfo, or None where unavailable (macOS…)."""
37
+ try:
38
+ with open("/proc/meminfo") as f:
39
+ for line in f:
40
+ if line.startswith("MemAvailable:"):
41
+ return int(line.split()[1]) * 1024
42
+ except OSError:
43
+ pass
44
+ return None
45
+
30
46
 
31
47
  def resolve_embedded_buffer_pool_size() -> int:
32
48
  """
33
49
  Resolve ``buffer_pool_size`` for embedded ``Database(...)`` constructors.
34
50
 
35
- Reads ``CGC_EMBEDDED_BUFFER_POOL_MB`` (integer MiB). Unset uses a 4 GiB
36
- default. ``0`` opts back into the library default (~80% of system memory).
37
- Invalid values log a warning and fall back to 4 GiB.
51
+ Reads ``CGC_EMBEDDED_BUFFER_POOL_MB`` (integer MiB). Unset uses an
52
+ adaptive default: 4 GiB, capped at half of currently-available memory
53
+ (floored at 256 MiB) — on a memory-constrained host (CI runners sharing
54
+ RAM with a Neo4j container, small VMs) a fixed 4 GiB pool made LadybugDB
55
+ fault natively (SIGSEGV, parity run exit -11) when the reservation could
56
+ not be backed. An explicit env value is always honored as-is; ``0`` opts
57
+ back into the library default (~80% of system memory).
38
58
  """
39
59
  raw = os.getenv("CGC_EMBEDDED_BUFFER_POOL_MB")
40
60
  if raw is None or str(raw).strip() == "":
41
- return DEFAULT_EMBEDDED_BUFFER_POOL_BYTES
61
+ available = _available_memory_bytes()
62
+ if available is None:
63
+ return DEFAULT_EMBEDDED_BUFFER_POOL_BYTES
64
+ adaptive = max(MIN_DEFAULT_BUFFER_POOL_BYTES, available // 2)
65
+ return min(DEFAULT_EMBEDDED_BUFFER_POOL_BYTES, adaptive)
42
66
  try:
43
67
  mb = int(str(raw).strip())
44
68
  except ValueError:
@@ -160,9 +184,15 @@ class EmbeddedGraphManager(GraphQueryInterface):
160
184
  f"Initializing {spec.display_name} at {self.db_path} "
161
185
  f"(buffer_pool_size={pool_msg})"
162
186
  )
163
- self._db = backend.Database(
164
- self.db_path, buffer_pool_size=buffer_pool_size
165
- )
187
+ if buffer_pool_size == 0:
188
+ # 0 means "library default": omit the kwarg
189
+ # rather than trusting every backend to treat
190
+ # a literal 0 that way.
191
+ self._db = backend.Database(self.db_path)
192
+ else:
193
+ self._db = backend.Database(
194
+ self.db_path, buffer_pool_size=buffer_pool_size
195
+ )
166
196
 
167
197
  # Initialise connection pool
168
198
  self._pool = queue.Queue()
@@ -560,7 +590,15 @@ class EmbeddedGraphManager(GraphQueryInterface):
560
590
  # Without this call the process hangs on exit because the
561
591
  # embedded Kùzu engine keeps background threads alive.
562
592
  try:
563
- if not self._db.is_closed():
593
+ # kuzu exposes is_closed as a METHOD on some builds and a
594
+ # bool ATTRIBUTE on others (0.11.x). Calling the attribute
595
+ # raised "'bool' object is not callable" — which this
596
+ # except swallowed, so the close NEVER ran and the
597
+ # background threads it exists to stop stayed alive.
598
+ closed = self._db.is_closed
599
+ if callable(closed):
600
+ closed = closed()
601
+ if not closed:
564
602
  self._db.close()
565
603
  info_logger(f"{self.BACKEND_SPEC.display_name} database closed successfully")
566
604
  except Exception as e:
@@ -632,16 +670,19 @@ class EmbeddedDriverWrapper:
632
670
  compat_state = getattr(self, "_compat_state", None)
633
671
  pool = getattr(self, "_pool", None)
634
672
  display_name = getattr(self, "_display_name", "Embedded")
673
+ backend_id = getattr(self, "_backend_id", "embedded")
635
674
  if pool is not None:
636
675
  return EmbeddedSessionWrapper(
637
676
  pool, getattr(self, "_write_lock", None),
638
677
  compat_state=compat_state, display_name=display_name,
678
+ backend_id=backend_id,
639
679
  )
640
680
  else:
641
681
  db = getattr(self, "db", None) or getattr(self, "conn", None)
642
682
  write_lock = getattr(self, "_write_lock", None) or getattr(self, "_query_lock", None)
643
683
  return EmbeddedSessionWrapper(
644
684
  db, write_lock, compat_state=compat_state, display_name=display_name,
685
+ backend_id=backend_id,
645
686
  )
646
687
  def close(self):
647
688
  pass
@@ -651,10 +692,12 @@ class EmbeddedDriverWrapper:
651
692
 
652
693
 
653
694
  class EmbeddedSessionWrapper:
654
- def __init__(self, pool_or_conn, write_lock=None, compat_state=None, display_name: str = "Embedded"):
695
+ def __init__(self, pool_or_conn, write_lock=None, compat_state=None, display_name: str = "Embedded",
696
+ backend_id: str = "embedded"):
655
697
  self._write_lock = write_lock or threading.Lock()
656
698
  self._query_lock = self._write_lock
657
699
  self._display_name = display_name
700
+ self._backend_id = backend_id
658
701
  # Disabled-query-type state is shared via the manager's compat_state so
659
702
  # fail-fast disabling persists across sessions. A standalone session
660
703
  # (tests / legacy callers) gets its own private state.
@@ -667,7 +710,20 @@ class EmbeddedSessionWrapper:
667
710
  # Backward compatibility check: check if it's a pool or connection
668
711
  if hasattr(pool_or_conn, "get") and not hasattr(pool_or_conn, "execute"):
669
712
  self._pool = pool_or_conn
670
- self.conn = self._pool.get()
713
+ try:
714
+ # The embedded manager is a per-subclass singleton: switching
715
+ # db_path closes the old database and drains its pool. A caller
716
+ # holding a STALE driver reference then blocked here forever
717
+ # with no diagnostic. Fail loudly instead.
718
+ self.conn = self._pool.get(timeout=30)
719
+ except queue.Empty:
720
+ raise RuntimeError(
721
+ "No database connection available after 30s — this driver's "
722
+ "connection pool is exhausted or its database manager was "
723
+ "closed/switched to another path. Re-acquire the driver via "
724
+ "get_database_manager().get_driver() instead of holding a "
725
+ "stale reference."
726
+ )
671
727
  else:
672
728
  self._pool = None
673
729
  self.conn = pool_or_conn
@@ -877,6 +933,60 @@ class EmbeddedSessionWrapper:
877
933
  with self._write_lock:
878
934
  result = self.conn.execute(translated_query, translated_params)
879
935
 
936
+ # LadybugDB (0.19.x) state-dependently drops SOME rows of a
937
+ # batched relationship-only UNWIND MERGE — no error is raised,
938
+ # the MERGE just writes nothing for those rows (a 17-row
939
+ # Struct-CONTAINS batch wrote 12; #1710). Locally an immediate
940
+ # identical re-run bound the stragglers, but on CI the drop
941
+ # survives re-execution, so after the batched pass every row
942
+ # is replayed as a single-row batch through the SAME translated
943
+ # query. MERGE is idempotent, so the union is safe; only
944
+ # ladybug pays the cost. The generic per-row rewrite path is
945
+ # deliberately NOT used here — its query surgery loses ~51
946
+ # CONTAINS edges (the #1612 signature).
947
+ if (
948
+ getattr(self, "_backend_id", "") == "ladybugdb"
949
+ and "MERGE" in query
950
+ and ("-[" in query or "]->" in query)
951
+ and "RETURN" not in query.upper()
952
+ ):
953
+ _u = re.search(r"UNWIND\s+\$(\w+)\s+AS\s+\w+", translated_query)
954
+ _rows = _u and translated_params.get(_u.group(1))
955
+ if isinstance(_rows, list) and len(_rows) > 1:
956
+ # Best-effort only: the batched pass above already
957
+ # wrote what it could, so a failing single must NEVER
958
+ # propagate — the first singles attempt let one raise
959
+ # and the escaping exception aborted the writer's
960
+ # remaining batches, costing ~51 CONTAINS edges (the
961
+ # union of idempotent MERGEs cannot otherwise shrink).
962
+ _single_failures = 0
963
+ _first_single_error = None
964
+ for _row in _rows:
965
+ single = dict(translated_params)
966
+ single[_u.group(1)] = [_row]
967
+ try:
968
+ self.conn.execute(translated_query, single)
969
+ except Exception as _se:
970
+ _single_failures += 1
971
+ if _first_single_error is None:
972
+ _first_single_error = str(_se)[:160]
973
+ if _single_failures:
974
+ debug_log(
975
+ f"Ladybug single-row replay: {_single_failures}/{len(_rows)} "
976
+ f"rows errored (first: {_first_single_error}) — batched pass "
977
+ f"result stands — query: {query[:90]}"
978
+ )
979
+ if os.environ.get("CGC_LBG_DIAG") and "helpers.go" in str(translated_params):
980
+ try:
981
+ _mq = re.sub(r"MERGE\s.*", "RETURN count(*)", translated_query, flags=re.S)
982
+ _mr = self.conn.execute(_mq, translated_params)
983
+ _matched = _mr.get_next()[0]
984
+ import sys as _sys
985
+ print(f"LBG_DIAG matched={_matched} batch={len(_rows)} q={translated_query[:110].strip()!r}", file=_sys.stderr, flush=True)
986
+ except Exception as _de:
987
+ import sys as _sys
988
+ print(f"LBG_DIAG count-err {str(_de)[:120]}", file=_sys.stderr, flush=True)
989
+
880
990
  return EmbeddedResultWrapper(result)
881
991
  except Exception as e:
882
992
  if self._should_fail_fast(query_type, e):
@@ -923,6 +1033,8 @@ class EmbeddedSessionWrapper:
923
1033
  )
924
1034
 
925
1035
  last_result = None
1036
+ dropped = 0
1037
+ first_drop_error = None
926
1038
  for item in batch_data:
927
1039
  loop_params = parameters.copy()
928
1040
  loop_params.pop(batch_param, None)
@@ -935,8 +1047,34 @@ class EmbeddedSessionWrapper:
935
1047
  except Exception as nested_e:
936
1048
  nested_err_str = str(nested_e).lower()
937
1049
  if "binder" in nested_err_str or "cannot find a valid label" in nested_err_str:
1050
+ # Expected: label-pair probing legitimately
1051
+ # misses on schemaless shapes.
938
1052
  continue
939
- raise nested_e
1053
+ # Transient failure (lock contention, buffer
1054
+ # pressure): retry the ROW once before dropping
1055
+ # it — writes are MERGE-idempotent. Silent
1056
+ # drops here were LadybugDB's missing-edge
1057
+ # signature in the parity run (#1612).
1058
+ try:
1059
+ last_result = self.run(loop_query, **loop_params)
1060
+ except Exception as retry_e:
1061
+ dropped += 1
1062
+ if first_drop_error is None:
1063
+ first_drop_error = str(retry_e)[:160]
1064
+ if dropped:
1065
+ if dropped == len(batch_data) and dropped > 0:
1066
+ # Every row failing is systematic breakage, not
1067
+ # transient pressure — raise so the caller's
1068
+ # own retry/failure accounting still engages.
1069
+ raise RuntimeError(
1070
+ f"Per-row fallback failed for ALL {dropped} rows "
1071
+ f"(first error: {first_drop_error}) — query: {query[:90]}"
1072
+ )
1073
+ warning_logger(
1074
+ f"Per-row fallback dropped {dropped}/{len(batch_data)} "
1075
+ f"rows after retry (first error: {first_drop_error}) — "
1076
+ f"query: {query[:90]}"
1077
+ )
940
1078
  return last_result or EmbeddedResultWrapper(None)
941
1079
 
942
1080
 
@@ -1025,6 +1163,26 @@ class EmbeddedSessionWrapper:
1025
1163
  # b) MERGE uid injection from row fields (row.name, row.line_number, …)
1026
1164
  unwind_m = re.search(r'UNWIND\s+\$(\w+)\s+AS\s+(\w+)', query)
1027
1165
  if unwind_m:
1166
+ # 1.5-pre: Collapse consecutive MATCH clauses into one comma-joined
1167
+ # MATCH. LadybugDB's planner silently yields ZERO rows for
1168
+ # UNWIND → MATCH (a {…}) → MATCH (b {…}) when the first MATCH is an
1169
+ # index-map lookup (File-by-path being the everyday case): each
1170
+ # MATCH works alone, chained they produce nothing — no error is
1171
+ # raised, so downstream MERGEs quietly write no edges. That was the
1172
+ # exact signature of the parity gap (all File-sourced CALLS edges
1173
+ # and a handful of Struct CONTAINS edges missing on ladybug only).
1174
+ # The comma form `MATCH (a {…}), (b {…})` is semantically identical
1175
+ # for non-optional patterns and both engines plan it correctly.
1176
+ # Only simple node patterns (no relationship arrows, no parens
1177
+ # inside the pattern) directly adjacent to the next MATCH are
1178
+ # merged, and never across OPTIONAL MATCH.
1179
+ _match_merge_re = re.compile(
1180
+ r'(?<!OPTIONAL )\bMATCH\s*(\([^()]*\)(?:\s*,\s*\([^()]*\))*)\s+MATCH\s*(?=\()'
1181
+ )
1182
+ _prev = None
1183
+ while _prev != query:
1184
+ _prev = query
1185
+ query = _match_merge_re.sub(r'MATCH \1, ', query, count=1)
1028
1186
  batch_param = unwind_m.group(1)
1029
1187
  row_var = unwind_m.group(2)
1030
1188
  batch_data = parameters.get(batch_param)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codegraphcontext
3
- Version: 0.6.11
3
+ Version: 0.6.12
4
4
  Summary: An MCP server that indexes local code into a graph database to provide context to AI assistants.
5
5
  Author-email: Shashank Shekhar Singh <shashankshekharsingh1205@gmail.com>
6
6
  License: MIT License
@@ -61,7 +61,7 @@ Requires-Dist: falkordblite<0.10,>=0.7; sys_platform != "win32" and python_versi
61
61
  Requires-Dist: requests>=2.28.0
62
62
  Requires-Dist: protobuf<3.21,>=3.20
63
63
  Requires-Dist: kuzu; python_version < "3.14" or sys_platform == "linux"
64
- Requires-Dist: ladybug; sys_platform == "win32" or (sys_platform != "win32" and python_version >= "3.10")
64
+ Requires-Dist: ladybug<0.20,>=0.19; sys_platform == "win32" or (sys_platform != "win32" and python_version >= "3.10")
65
65
  Requires-Dist: mcp<2,>=1.0.0
66
66
  Requires-Dist: fastapi>=0.100.0
67
67
  Requires-Dist: uvicorn>=0.22.0
@@ -80,7 +80,7 @@ Requires-Dist: redis<6,>=5; extra == "falkordb-remote"
80
80
  Provides-Extra: kuzu
81
81
  Requires-Dist: kuzu; (python_version < "3.14" or sys_platform == "linux") and extra == "kuzu"
82
82
  Provides-Extra: ladybug
83
- Requires-Dist: ladybug; (sys_platform == "win32" or (sys_platform != "win32" and python_version >= "3.10")) and extra == "ladybug"
83
+ Requires-Dist: ladybug<0.20,>=0.19; (sys_platform == "win32" or (sys_platform != "win32" and python_version >= "3.10")) and extra == "ladybug"
84
84
  Provides-Extra: neo4j
85
85
  Requires-Dist: neo4j>=5.15.0; extra == "neo4j"
86
86
  Provides-Extra: gcf
@@ -28,7 +28,7 @@ kuzu
28
28
  falkordblite<0.10,>=0.7
29
29
 
30
30
  [:sys_platform == "win32" or (sys_platform != "win32" and python_version >= "3.10")]
31
- ladybug
31
+ ladybug<0.20,>=0.19
32
32
 
33
33
  [datasources]
34
34
  pymysql
@@ -64,7 +64,7 @@ kuzu
64
64
  [ladybug]
65
65
 
66
66
  [ladybug:sys_platform == "win32" or (sys_platform != "win32" and python_version >= "3.10")]
67
- ladybug
67
+ ladybug<0.20,>=0.19
68
68
 
69
69
  [neo4j]
70
70
  neo4j>=5.15.0