dbgraph 0.2.8__tar.gz → 0.2.10__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 (97) hide show
  1. {dbgraph-0.2.8 → dbgraph-0.2.10}/.idea/workspace.xml +90 -75
  2. {dbgraph-0.2.8 → dbgraph-0.2.10}/PKG-INFO +13 -13
  3. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/__init__.py +2 -0
  4. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/entity/aspect.py +1 -1
  5. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/persistent/orm_graph_persistent.py +9 -1
  6. {dbgraph-0.2.8 → dbgraph-0.2.10}/pyproject.toml +13 -13
  7. dbgraph-0.2.10/tests/units/dbgraph.log +0 -0
  8. {dbgraph-0.2.8 → dbgraph-0.2.10}/tests/units/test_orm_graph_persistent.py +6 -0
  9. {dbgraph-0.2.8 → dbgraph-0.2.10}/uv.lock +301 -240
  10. {dbgraph-0.2.8 → dbgraph-0.2.10}/.gitignore +0 -0
  11. {dbgraph-0.2.8 → dbgraph-0.2.10}/.idea/.gitignore +0 -0
  12. {dbgraph-0.2.8 → dbgraph-0.2.10}/.idea/codeStyles/codeStyleConfig.xml +0 -0
  13. {dbgraph-0.2.8 → dbgraph-0.2.10}/.idea/dbgraph.iml +0 -0
  14. {dbgraph-0.2.8 → dbgraph-0.2.10}/.idea/inspectionProfiles/profiles_settings.xml +0 -0
  15. {dbgraph-0.2.8 → dbgraph-0.2.10}/.idea/misc.xml +0 -0
  16. {dbgraph-0.2.8 → dbgraph-0.2.10}/.idea/modules.xml +0 -0
  17. {dbgraph-0.2.8 → dbgraph-0.2.10}/.idea/pydantic.xml +0 -0
  18. {dbgraph-0.2.8 → dbgraph-0.2.10}/.idea/vcs.xml +0 -0
  19. {dbgraph-0.2.8 → dbgraph-0.2.10}/.python-version +0 -0
  20. {dbgraph-0.2.8 → dbgraph-0.2.10}/README.md +0 -0
  21. {dbgraph-0.2.8 → dbgraph-0.2.10}/data/northwind-desc.md +0 -0
  22. {dbgraph-0.2.8 → dbgraph-0.2.10}/data/northwind-graph-import.db +0 -0
  23. {dbgraph-0.2.8 → dbgraph-0.2.10}/data/northwind-graph-v2.json +0 -0
  24. {dbgraph-0.2.8 → dbgraph-0.2.10}/data/northwind-graph-v4.json +0 -0
  25. {dbgraph-0.2.8 → dbgraph-0.2.10}/data/northwind-graph.db +0 -0
  26. {dbgraph-0.2.8 → dbgraph-0.2.10}/data/northwind-graph.json +0 -0
  27. {dbgraph-0.2.8 → dbgraph-0.2.10}/data/northwind-graph.png +0 -0
  28. {dbgraph-0.2.8 → dbgraph-0.2.10}/data/northwind-index/corpus.jsonl +0 -0
  29. {dbgraph-0.2.8 → dbgraph-0.2.10}/data/northwind-index/corpus.mmindex.json +0 -0
  30. {dbgraph-0.2.8 → dbgraph-0.2.10}/data/northwind-index/data.csc.index.npy +0 -0
  31. {dbgraph-0.2.8 → dbgraph-0.2.10}/data/northwind-index/indices.csc.index.npy +0 -0
  32. {dbgraph-0.2.8 → dbgraph-0.2.10}/data/northwind-index/indptr.csc.index.npy +0 -0
  33. {dbgraph-0.2.8 → dbgraph-0.2.10}/data/northwind-index/params.index.json +0 -0
  34. {dbgraph-0.2.8 → dbgraph-0.2.10}/data/northwind-index/vocab.index.json +0 -0
  35. {dbgraph-0.2.8 → dbgraph-0.2.10}/data/northwind-semantic-v5.json +0 -0
  36. {dbgraph-0.2.8 → dbgraph-0.2.10}/data/northwind.db +0 -0
  37. {dbgraph-0.2.8 → dbgraph-0.2.10}/data/time-results.txt +0 -0
  38. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/builder/__init__.py +0 -0
  39. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/builder/graph_builder.py +0 -0
  40. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/builder/sql_graph_builder.py +0 -0
  41. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/descriptor/__init__.py +0 -0
  42. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/descriptor/graph_descriptor.py +0 -0
  43. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/descriptor/langchain_graph_descriptor.py +0 -0
  44. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/descriptor/prompt_templates.py +0 -0
  45. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/entity/__init__.py +0 -0
  46. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/entity/asset.py +0 -0
  47. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/entity/asset_type.py +0 -0
  48. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/entity/dbgraph.py +0 -0
  49. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/entity/link.py +0 -0
  50. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/entity/link_type.py +0 -0
  51. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/entity/rdbgraph.py +0 -0
  52. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/io/__init__.py +0 -0
  53. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/io/graph_loader.py +0 -0
  54. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/io/graph_writer.py +0 -0
  55. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/io/json_graph_loader.py +0 -0
  56. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/io/json_graph_writer.py +0 -0
  57. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/persistent/__init__.py +0 -0
  58. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/persistent/graph_not_found.py +0 -0
  59. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/persistent/graph_persistent.py +0 -0
  60. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/persistent/models/__init__.py +0 -0
  61. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/persistent/models/asset_aspect_orm.py +0 -0
  62. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/persistent/models/asset_orm.py +0 -0
  63. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/persistent/models/base.py +0 -0
  64. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/persistent/models/graph_orm.py +0 -0
  65. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/persistent/models/link_aspect_orm.py +0 -0
  66. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/persistent/models/link_orm.py +0 -0
  67. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/render/__init__.py +0 -0
  68. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/render/graph_renderer.py +0 -0
  69. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/render/markdown_renderer.py +0 -0
  70. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/search/__init__.py +0 -0
  71. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/search/bm25_search_engine.py +0 -0
  72. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/search/search_engine.py +0 -0
  73. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/utils/__init__.py +0 -0
  74. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/utils/logging.py +0 -0
  75. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/utils/serialize.py +0 -0
  76. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph/utils/singleton.py +0 -0
  77. {dbgraph-0.2.8 → dbgraph-0.2.10}/dbgraph.log +0 -0
  78. {dbgraph-0.2.8 → dbgraph-0.2.10}/diagrams/entity.png +0 -0
  79. {dbgraph-0.2.8 → dbgraph-0.2.10}/diagrams/entity.txt +0 -0
  80. {dbgraph-0.2.8 → dbgraph-0.2.10}/diagrams/usecase.png +0 -0
  81. {dbgraph-0.2.8 → dbgraph-0.2.10}/diagrams/usecase.txt +0 -0
  82. {dbgraph-0.2.8 → dbgraph-0.2.10}/docs/index.md +0 -0
  83. {dbgraph-0.2.8 → dbgraph-0.2.10}/docs/refs/aspect.md +0 -0
  84. {dbgraph-0.2.8 → dbgraph-0.2.10}/docs/refs/graph.md +0 -0
  85. {dbgraph-0.2.8 → dbgraph-0.2.10}/main.py +0 -0
  86. {dbgraph-0.2.8 → dbgraph-0.2.10}/mkdocs.yml +0 -0
  87. {dbgraph-0.2.8 → dbgraph-0.2.10}/tests/__init__.py +0 -0
  88. {dbgraph-0.2.8 → dbgraph-0.2.10}/tests/integrates/__init__.py +0 -0
  89. {dbgraph-0.2.8 → dbgraph-0.2.10}/tests/integrates/test_json_graph_loader.py +0 -0
  90. {dbgraph-0.2.8 → dbgraph-0.2.10}/tests/integrates/test_json_graph_writer.py +0 -0
  91. {dbgraph-0.2.8 → dbgraph-0.2.10}/tests/integrates/test_langchain_graph_descriptor.py +0 -0
  92. {dbgraph-0.2.8 → dbgraph-0.2.10}/tests/integrates/test_sql_graph_builder.py +0 -0
  93. {dbgraph-0.2.8 → dbgraph-0.2.10}/tests/integrates/test_trino_builder.py +0 -0
  94. {dbgraph-0.2.8 → dbgraph-0.2.10}/tests/units/__init__.py +0 -0
  95. {dbgraph-0.2.8 → dbgraph-0.2.10}/tests/units/test_dbgraph.py +0 -0
  96. {dbgraph-0.2.8 → dbgraph-0.2.10}/tests/units/test_markdown_renderer.py +0 -0
  97. {dbgraph-0.2.8 → dbgraph-0.2.10}/tests/units/test_rdbgraph.py +0 -0
@@ -6,6 +6,9 @@
6
6
  <component name="ChangeListManager">
7
7
  <list default="true" id="263a96da-9a82-40fd-89b2-ba71dd2c194d" name="Changes" comment="update sql builder and tests">
8
8
  <change beforePath="$PROJECT_DIR$/.idea/dbgraph.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dbgraph.iml" afterDir="false" />
9
+ <change beforePath="$PROJECT_DIR$/dbgraph/persistent/orm_graph_persistent.py" beforeDir="false" afterPath="$PROJECT_DIR$/dbgraph/persistent/orm_graph_persistent.py" afterDir="false" />
10
+ <change beforePath="$PROJECT_DIR$/tests/units/test_orm_graph_persistent.py" beforeDir="false" afterPath="$PROJECT_DIR$/tests/units/test_orm_graph_persistent.py" afterDir="false" />
11
+ <change beforePath="$PROJECT_DIR$/uv.lock" beforeDir="false" afterPath="$PROJECT_DIR$/uv.lock" afterDir="false" />
9
12
  </list>
10
13
  <option name="SHOW_DIALOG" value="false" />
11
14
  <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -50,6 +53,9 @@
50
53
  &quot;repository&quot;: &quot;dbgraph&quot;
51
54
  }
52
55
  }</component>
56
+ <component name="ProblemsViewState">
57
+ <option name="selectedTabId" value="ProjectErrors" />
58
+ </component>
53
59
  <component name="ProjectColorInfo">{
54
60
  &quot;associatedIndex&quot;: 0,
55
61
  &quot;fromUser&quot;: false
@@ -62,67 +68,68 @@
62
68
  <option name="hideEmptyMiddlePackages" value="true" />
63
69
  <option name="showLibraryContents" value="true" />
64
70
  </component>
65
- <component name="PropertiesComponent">{
66
- &quot;keyToString&quot;: {
67
- &quot;ASKED_SHARE_PROJECT_CONFIGURATION_FILES&quot;: &quot;true&quot;,
68
- &quot;ModuleVcsDetector.initialDetectionPerformed&quot;: &quot;true&quot;,
69
- &quot;Python tests.Python tests for tests.integrates.test_json_graph_loader.TestJSONGraphLoader.executor&quot;: &quot;Run&quot;,
70
- &quot;Python tests.Python tests for tests.integrates.test_sql_graph_builder.TestSQLGraphBuilder.executor&quot;: &quot;Run&quot;,
71
- &quot;Python tests.Python tests for tests.integrates.test_sql_graph_builder.TestSQLGraphBuilder.test_build_graph.executor&quot;: &quot;Run&quot;,
72
- &quot;Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_cat_stats_aspect.executor&quot;: &quot;Run&quot;,
73
- &quot;Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_columns.executor&quot;: &quot;Run&quot;,
74
- &quot;Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_columns_orm.executor&quot;: &quot;Run&quot;,
75
- &quot;Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_null_info.executor&quot;: &quot;Run&quot;,
76
- &quot;Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_numerical_stats_aspect.executor&quot;: &quot;Run&quot;,
77
- &quot;Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_table_orm.executor&quot;: &quot;Run&quot;,
78
- &quot;Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_table_row_count.executor&quot;: &quot;Run&quot;,
79
- &quot;Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_temp_aspect.executor&quot;: &quot;Run&quot;,
80
- &quot;Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__is_column_textual.executor&quot;: &quot;Run&quot;,
81
- &quot;Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test_build_graph.executor&quot;: &quot;Run&quot;,
82
- &quot;Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test_table_names.executor&quot;: &quot;Run&quot;,
83
- &quot;Python tests.Python tests for tests.test_dbgraph.TestDBGraph.executor&quot;: &quot;Run&quot;,
84
- &quot;Python tests.Python tests for tests.test_json_graph_loader.TestJSONGraphLoader.executor&quot;: &quot;Run&quot;,
85
- &quot;Python tests.Python tests for tests.test_json_graph_loader.TestJSONGraphLoader.test_get_neighbors_sub_graph.executor&quot;: &quot;Run&quot;,
86
- &quot;Python tests.Python tests for tests.test_load_graph_sql.TestLoadGraphSQL.test_load.executor&quot;: &quot;Run&quot;,
87
- &quot;Python tests.Python tests for tests.test_markdown_renderer.TestMarkdownRenderer.executor&quot;: &quot;Run&quot;,
88
- &quot;Python tests.Python tests for tests.test_orm_graph_persistent.TestORMGraphPersistent.executor&quot;: &quot;Run&quot;,
89
- &quot;Python tests.Python tests for tests.test_orm_graph_persistent.TestORMGraphPersistent.test_cr_asset_aspect.executor&quot;: &quot;Run&quot;,
90
- &quot;Python tests.Python tests for tests.test_orm_graph_persistent.TestORMGraphPersistent.test_cr_link_aspect.executor&quot;: &quot;Run&quot;,
91
- &quot;Python tests.Python tests for tests.test_orm_graph_persistent.TestORMGraphPersistent.test_crud_assets.executor&quot;: &quot;Run&quot;,
92
- &quot;Python tests.Python tests for tests.test_orm_graph_persistent.TestORMGraphPersistent.test_crud_links.executor&quot;: &quot;Run&quot;,
93
- &quot;Python tests.Python tests for tests.test_orm_graph_persistent.TestORMGraphPersistent.test_insert_assets.executor&quot;: &quot;Run&quot;,
94
- &quot;Python tests.Python tests for tests.test_orm_graph_persistent.TestORMGraphPersistent.test_insert_graph.executor&quot;: &quot;Run&quot;,
95
- &quot;Python tests.Python tests for tests.test_orm_graph_persistent.TestORMGraphPersistent.test_insert_links.executor&quot;: &quot;Run&quot;,
96
- &quot;Python tests.Python tests for tests.test_orm_graph_persistent.TestORMGraphPersistent.test_save_load_graph.executor&quot;: &quot;Run&quot;,
97
- &quot;Python tests.Python tests for tests.test_rdbgraph.TestRDBGraph.executor&quot;: &quot;Run&quot;,
98
- &quot;Python tests.Python tests for tests.test_sql_graph_builder.TestSQLGraphBuilder.executor&quot;: &quot;Run&quot;,
99
- &quot;Python tests.Python tests for tests.test_sql_graph_builder.TestSQLGraphBuilder.test__build_links.executor&quot;: &quot;Run&quot;,
100
- &quot;Python tests.Python tests for tests.test_sql_graph_builder.TestSQLGraphBuilder.test_build_graph.executor&quot;: &quot;Run&quot;,
101
- &quot;Python tests.Python tests for tests.test_sql_graph_persistent.TestSQLGraphPersistent.executor&quot;: &quot;Run&quot;,
102
- &quot;Python tests.Python tests for tests.test_sql_graph_persistent.TestSQLGraphPersistent.test_asset.executor&quot;: &quot;Run&quot;,
103
- &quot;Python tests.Python tests for tests.test_sql_graph_persistent.TestSQLGraphPersistent.test_delete_graph.executor&quot;: &quot;Run&quot;,
104
- &quot;Python tests.Python tests for tests.test_sql_graph_persistent.TestSQLGraphPersistent.test_link.executor&quot;: &quot;Run&quot;,
105
- &quot;Python tests.Python tests for tests.test_sql_graph_persistent.TestSQLGraphPersistent.test_load_graph.executor&quot;: &quot;Run&quot;,
106
- &quot;Python tests.Python tests for tests.test_sql_graph_persistent.TestSQLGraphPersistent.test_save_graph.executor&quot;: &quot;Run&quot;,
107
- &quot;Python tests.Python tests in test_load_graph_sql.py.executor&quot;: &quot;Run&quot;,
108
- &quot;Python tests.Python tests in test_trino_builder.py.executor&quot;: &quot;Run&quot;,
109
- &quot;Python tests.Python tests in tests.executor&quot;: &quot;Run&quot;,
110
- &quot;Python tests.Python tests in units.executor&quot;: &quot;Run&quot;,
111
- &quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
112
- &quot;RunOnceActivity.git.unshallow&quot;: &quot;true&quot;,
113
- &quot;RunOnceActivity.typescript.service.memoryLimit.init&quot;: &quot;true&quot;,
114
- &quot;codeWithMe.voiceChat.enabledByDefault&quot;: &quot;false&quot;,
115
- &quot;git-widget-placeholder&quot;: &quot;optimize-queries&quot;,
116
- &quot;ignore.virus.scanning.warn.message&quot;: &quot;true&quot;,
117
- &quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
118
- &quot;node.js.detected.package.jshint&quot;: &quot;true&quot;,
119
- &quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
120
- &quot;node.js.selected.package.jshint&quot;: &quot;&quot;,
121
- &quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
122
- &quot;run.code.analysis.last.selected.profile&quot;: &quot;aDefault&quot;,
123
- &quot;settings.editor.selected.configurable&quot;: &quot;preferences.PingConfigurable&quot;
71
+ <component name="PropertiesComponent"><![CDATA[{
72
+ "keyToString": {
73
+ "ASKED_SHARE_PROJECT_CONFIGURATION_FILES": "true",
74
+ "ModuleVcsDetector.initialDetectionPerformed": "true",
75
+ "Python tests.Python tests for tests.integrates.test_json_graph_loader.TestJSONGraphLoader.executor": "Run",
76
+ "Python tests.Python tests for tests.integrates.test_sql_graph_builder.TestSQLGraphBuilder.executor": "Run",
77
+ "Python tests.Python tests for tests.integrates.test_sql_graph_builder.TestSQLGraphBuilder.test_build_graph.executor": "Run",
78
+ "Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_cat_stats_aspect.executor": "Run",
79
+ "Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_columns.executor": "Run",
80
+ "Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_columns_orm.executor": "Run",
81
+ "Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_null_info.executor": "Run",
82
+ "Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_numerical_stats_aspect.executor": "Run",
83
+ "Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_table_orm.executor": "Run",
84
+ "Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_table_row_count.executor": "Run",
85
+ "Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_temp_aspect.executor": "Run",
86
+ "Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__is_column_textual.executor": "Run",
87
+ "Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test_build_graph.executor": "Run",
88
+ "Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test_table_names.executor": "Run",
89
+ "Python tests.Python tests for tests.test_dbgraph.TestDBGraph.executor": "Run",
90
+ "Python tests.Python tests for tests.test_json_graph_loader.TestJSONGraphLoader.executor": "Run",
91
+ "Python tests.Python tests for tests.test_json_graph_loader.TestJSONGraphLoader.test_get_neighbors_sub_graph.executor": "Run",
92
+ "Python tests.Python tests for tests.test_load_graph_sql.TestLoadGraphSQL.test_load.executor": "Run",
93
+ "Python tests.Python tests for tests.test_markdown_renderer.TestMarkdownRenderer.executor": "Run",
94
+ "Python tests.Python tests for tests.test_orm_graph_persistent.TestORMGraphPersistent.executor": "Run",
95
+ "Python tests.Python tests for tests.test_orm_graph_persistent.TestORMGraphPersistent.test_cr_asset_aspect.executor": "Run",
96
+ "Python tests.Python tests for tests.test_orm_graph_persistent.TestORMGraphPersistent.test_cr_link_aspect.executor": "Run",
97
+ "Python tests.Python tests for tests.test_orm_graph_persistent.TestORMGraphPersistent.test_crud_assets.executor": "Run",
98
+ "Python tests.Python tests for tests.test_orm_graph_persistent.TestORMGraphPersistent.test_crud_links.executor": "Run",
99
+ "Python tests.Python tests for tests.test_orm_graph_persistent.TestORMGraphPersistent.test_insert_assets.executor": "Run",
100
+ "Python tests.Python tests for tests.test_orm_graph_persistent.TestORMGraphPersistent.test_insert_graph.executor": "Run",
101
+ "Python tests.Python tests for tests.test_orm_graph_persistent.TestORMGraphPersistent.test_insert_links.executor": "Run",
102
+ "Python tests.Python tests for tests.test_orm_graph_persistent.TestORMGraphPersistent.test_save_load_graph.executor": "Run",
103
+ "Python tests.Python tests for tests.test_rdbgraph.TestRDBGraph.executor": "Run",
104
+ "Python tests.Python tests for tests.test_sql_graph_builder.TestSQLGraphBuilder.executor": "Run",
105
+ "Python tests.Python tests for tests.test_sql_graph_builder.TestSQLGraphBuilder.test__build_links.executor": "Run",
106
+ "Python tests.Python tests for tests.test_sql_graph_builder.TestSQLGraphBuilder.test_build_graph.executor": "Run",
107
+ "Python tests.Python tests for tests.test_sql_graph_persistent.TestSQLGraphPersistent.executor": "Run",
108
+ "Python tests.Python tests for tests.test_sql_graph_persistent.TestSQLGraphPersistent.test_asset.executor": "Run",
109
+ "Python tests.Python tests for tests.test_sql_graph_persistent.TestSQLGraphPersistent.test_delete_graph.executor": "Run",
110
+ "Python tests.Python tests for tests.test_sql_graph_persistent.TestSQLGraphPersistent.test_link.executor": "Run",
111
+ "Python tests.Python tests for tests.test_sql_graph_persistent.TestSQLGraphPersistent.test_load_graph.executor": "Run",
112
+ "Python tests.Python tests for tests.test_sql_graph_persistent.TestSQLGraphPersistent.test_save_graph.executor": "Run",
113
+ "Python tests.Python tests for tests.units.test_orm_graph_persistent.TestORMGraphPersistent.test_save_load_graph.executor": "Run",
114
+ "Python tests.Python tests in test_load_graph_sql.py.executor": "Run",
115
+ "Python tests.Python tests in test_trino_builder.py.executor": "Run",
116
+ "Python tests.Python tests in tests.executor": "Run",
117
+ "Python tests.Python tests in units.executor": "Run",
118
+ "RunOnceActivity.ShowReadmeOnStart": "true",
119
+ "RunOnceActivity.git.unshallow": "true",
120
+ "RunOnceActivity.typescript.service.memoryLimit.init": "true",
121
+ "codeWithMe.voiceChat.enabledByDefault": "false",
122
+ "git-widget-placeholder": "optimize-queries",
123
+ "ignore.virus.scanning.warn.message": "true",
124
+ "node.js.detected.package.eslint": "true",
125
+ "node.js.detected.package.jshint": "true",
126
+ "node.js.selected.package.eslint": "(autodetect)",
127
+ "node.js.selected.package.jshint": "",
128
+ "nodejs_package_manager_path": "npm",
129
+ "run.code.analysis.last.selected.profile": "aDefault",
130
+ "settings.editor.selected.configurable": "preferences.PingConfigurable"
124
131
  }
125
- }</component>
132
+ }]]></component>
126
133
  <component name="PyConsoleOptionsProvider">
127
134
  <option name="myPythonConsoleState">
128
135
  <console-settings module-name="dbgraph" is-module-sdk="true">
@@ -137,7 +144,7 @@
137
144
  <recent name="C:\Users\minhden\Projects\dbgraph\tests\units" />
138
145
  </key>
139
146
  </component>
140
- <component name="RunManager" selected="Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_table_orm">
147
+ <component name="RunManager" selected="Python tests.Python tests for tests.units.test_orm_graph_persistent.TestORMGraphPersistent.test_save_load_graph">
141
148
  <configuration name="Python tests for tests.integrates.test_sql_graph_builder.TestSQLGraphBuilder.test_build_graph" type="tests" factoryName="Autodetect" temporary="true" nameIsGenerated="true">
142
149
  <module name="dbgraph" />
143
150
  <option name="ENV_FILES" value="" />
@@ -155,7 +162,7 @@
155
162
  <option name="_new_targetType" value="&quot;PYTHON&quot;" />
156
163
  <method v="2" />
157
164
  </configuration>
158
- <configuration name="Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_cat_stats_aspect" type="tests" factoryName="Autodetect" temporary="true" nameIsGenerated="true">
165
+ <configuration name="Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_table_orm" type="tests" factoryName="Autodetect" temporary="true" nameIsGenerated="true">
159
166
  <module name="dbgraph" />
160
167
  <option name="ENV_FILES" value="" />
161
168
  <option name="INTERPRETER_OPTIONS" value="" />
@@ -168,11 +175,11 @@
168
175
  <option name="DEBUG_JUST_MY_CODE" value="false" />
169
176
  <option name="RUN_TOOL" value="" />
170
177
  <option name="_new_additionalArguments" value="&quot;&quot;" />
171
- <option name="_new_target" value="&quot;tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_cat_stats_aspect&quot;" />
178
+ <option name="_new_target" value="&quot;tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_table_orm&quot;" />
172
179
  <option name="_new_targetType" value="&quot;PYTHON&quot;" />
173
180
  <method v="2" />
174
181
  </configuration>
175
- <configuration name="Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_table_orm" type="tests" factoryName="Autodetect" temporary="true" nameIsGenerated="true">
182
+ <configuration name="Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_table_row_count" type="tests" factoryName="Autodetect" temporary="true" nameIsGenerated="true">
176
183
  <module name="dbgraph" />
177
184
  <option name="ENV_FILES" value="" />
178
185
  <option name="INTERPRETER_OPTIONS" value="" />
@@ -185,11 +192,11 @@
185
192
  <option name="DEBUG_JUST_MY_CODE" value="false" />
186
193
  <option name="RUN_TOOL" value="" />
187
194
  <option name="_new_additionalArguments" value="&quot;&quot;" />
188
- <option name="_new_target" value="&quot;tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_table_orm&quot;" />
195
+ <option name="_new_target" value="&quot;tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_table_row_count&quot;" />
189
196
  <option name="_new_targetType" value="&quot;PYTHON&quot;" />
190
197
  <method v="2" />
191
198
  </configuration>
192
- <configuration name="Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_table_row_count" type="tests" factoryName="Autodetect" temporary="true" nameIsGenerated="true">
199
+ <configuration name="Python tests for tests.units.test_orm_graph_persistent.TestORMGraphPersistent.test_save_load_graph" type="tests" factoryName="Autodetect" temporary="true" nameIsGenerated="true">
193
200
  <module name="dbgraph" />
194
201
  <option name="ENV_FILES" value="" />
195
202
  <option name="INTERPRETER_OPTIONS" value="" />
@@ -202,34 +209,34 @@
202
209
  <option name="DEBUG_JUST_MY_CODE" value="false" />
203
210
  <option name="RUN_TOOL" value="" />
204
211
  <option name="_new_additionalArguments" value="&quot;&quot;" />
205
- <option name="_new_target" value="&quot;tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_table_row_count&quot;" />
212
+ <option name="_new_target" value="&quot;tests.units.test_orm_graph_persistent.TestORMGraphPersistent.test_save_load_graph&quot;" />
206
213
  <option name="_new_targetType" value="&quot;PYTHON&quot;" />
207
214
  <method v="2" />
208
215
  </configuration>
209
- <configuration name="Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test_build_graph" type="tests" factoryName="Autodetect" temporary="true" nameIsGenerated="true">
216
+ <configuration name="Python tests in units" type="tests" factoryName="Autodetect" temporary="true" nameIsGenerated="true">
210
217
  <module name="dbgraph" />
211
218
  <option name="ENV_FILES" value="" />
212
219
  <option name="INTERPRETER_OPTIONS" value="" />
213
220
  <option name="PARENT_ENVS" value="true" />
214
221
  <option name="SDK_HOME" value="" />
215
- <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
222
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/tests/units" />
216
223
  <option name="IS_MODULE_SDK" value="true" />
217
224
  <option name="ADD_CONTENT_ROOTS" value="true" />
218
225
  <option name="ADD_SOURCE_ROOTS" value="true" />
219
226
  <option name="DEBUG_JUST_MY_CODE" value="false" />
220
- <option name="RUN_TOOL" value="true" />
227
+ <option name="RUN_TOOL" value="" />
221
228
  <option name="_new_additionalArguments" value="&quot;&quot;" />
222
- <option name="_new_target" value="&quot;tests.integrates.test_trino_builder.TestTrinoBuilder.test_build_graph&quot;" />
223
- <option name="_new_targetType" value="&quot;PYTHON&quot;" />
229
+ <option name="_new_target" value="&quot;$PROJECT_DIR$/tests/units&quot;" />
230
+ <option name="_new_targetType" value="&quot;PATH&quot;" />
224
231
  <method v="2" />
225
232
  </configuration>
226
233
  <recent_temporary>
227
234
  <list>
235
+ <item itemvalue="Python tests.Python tests for tests.units.test_orm_graph_persistent.TestORMGraphPersistent.test_save_load_graph" />
236
+ <item itemvalue="Python tests.Python tests in units" />
228
237
  <item itemvalue="Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_table_orm" />
229
238
  <item itemvalue="Python tests.Python tests for tests.integrates.test_sql_graph_builder.TestSQLGraphBuilder.test_build_graph" />
230
239
  <item itemvalue="Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_table_row_count" />
231
- <item itemvalue="Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test_build_graph" />
232
- <item itemvalue="Python tests.Python tests for tests.integrates.test_trino_builder.TestTrinoBuilder.test__get_cat_stats_aspect" />
233
240
  </list>
234
241
  </recent_temporary>
235
242
  </component>
@@ -336,7 +343,15 @@
336
343
  <option name="project" value="LOCAL" />
337
344
  <updated>1790214726709</updated>
338
345
  </task>
339
- <option name="localTasksCounter" value="12" />
346
+ <task id="LOCAL-00012" summary="update sql builder and tests">
347
+ <option name="closed" value="true" />
348
+ <created>1790219300115</created>
349
+ <option name="number" value="00012" />
350
+ <option name="presentableId" value="LOCAL-00012" />
351
+ <option name="project" value="LOCAL" />
352
+ <updated>1790219300115</updated>
353
+ </task>
354
+ <option name="localTasksCounter" value="13" />
340
355
  <servers />
341
356
  </component>
342
357
  <component name="TypeScriptGeneratedFilesManager">
@@ -1,30 +1,30 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: dbgraph
3
- Version: 0.2.8
3
+ Version: 0.2.10
4
4
  Summary: dbgraph is a database profiling tool which model the database as a graph
5
5
  Requires-Python: >=3.11
6
- Requires-Dist: bm25s>=0.3.9
7
- Requires-Dist: build>=1.6.0
6
+ Requires-Dist: bm25s==0.3.11
7
+ Requires-Dist: build==1.6.1
8
8
  Requires-Dist: grip>=4.6.2
9
- Requires-Dist: langchain-openai>=1.6.0
10
- Requires-Dist: langchain>=1.3.16
11
- Requires-Dist: matplotlib>=3.11.0
9
+ Requires-Dist: langchain-openai==1.6.5
10
+ Requires-Dist: langchain==1.4.2
11
+ Requires-Dist: matplotlib==3.11.2
12
12
  Requires-Dist: mkdocs-gen-files>=0.6.1
13
13
  Requires-Dist: mkdocs-material>=9.7.7
14
14
  Requires-Dist: mkdocs>=1.6.1
15
15
  Requires-Dist: mkdocstrings[python]>=1.0.6
16
- Requires-Dist: openai>=2.45.0
16
+ Requires-Dist: openai==3.19.2
17
17
  Requires-Dist: psutil>=7.2.2
18
- Requires-Dist: pydantic>=2.13.4
18
+ Requires-Dist: pydantic==2.13.5
19
19
  Requires-Dist: pydot>=4.0.1
20
20
  Requires-Dist: pympler>=1.1
21
21
  Requires-Dist: pyrefly>=0.60.0
22
22
  Requires-Dist: pystemmer>=3.1.0
23
- Requires-Dist: python-dotenv>=1.2.2
24
- Requires-Dist: rustworkx>=0.18.0
25
- Requires-Dist: sqlalchemy>=2.0.52
26
- Requires-Dist: tqdm>=4.68.4
27
- Requires-Dist: trino>=0.339.0
23
+ Requires-Dist: python-dotenv==1.2.3
24
+ Requires-Dist: rustworkx==0.18.1
25
+ Requires-Dist: sqlalchemy==2.0.54
26
+ Requires-Dist: tqdm==4.70.1
27
+ Requires-Dist: trino==0.340.0
28
28
  Description-Content-Type: text/markdown
29
29
 
30
30
  # DBGraph - Building schema graph with LLM Assistance
@@ -6,6 +6,7 @@ from dbgraph.entity.link_type import LinkType
6
6
  from dbgraph.builder.sql_graph_builder import SQLGraphBuilder
7
7
  from dbgraph.descriptor.langchain_graph_descriptor import LangchainGraphDescriptor
8
8
  from dbgraph.render.markdown_renderer import MarkdownRenderer
9
+ from dbgraph.persistent.orm_graph_persistent import ORMGraphPersistent
9
10
 
10
11
  __all__ = [
11
12
  "Asset",
@@ -16,4 +17,5 @@ __all__ = [
16
17
  "SQLGraphBuilder",
17
18
  "LangchainGraphDescriptor",
18
19
  "MarkdownRenderer",
20
+ "ORMGraphPersistent"
19
21
  ]
@@ -134,7 +134,7 @@ class RColumnStatisticsAspect(Aspect):
134
134
 
135
135
  non_null_count: int
136
136
  null_count: int
137
- is_textual: bool
137
+ is_textual: bool = False
138
138
  numerical_stats: RNumericalStatistics | None = None
139
139
  categorical_stats: RCategoricalStatistics | None = None
140
140
  temporal_stats: RTemporalStatistics | None = None
@@ -2,7 +2,7 @@ import json
2
2
  from dataclasses import dataclass, asdict
3
3
  from uuid import UUID
4
4
 
5
- from sqlalchemy import create_engine, select, delete, and_
5
+ from sqlalchemy import create_engine, select, delete, and_, event
6
6
  from sqlalchemy.orm import Session
7
7
 
8
8
  from dbgraph import Asset, Link, DatabaseGraph, LinkType, AssetType
@@ -35,6 +35,13 @@ class ORMGraphPersistent(GraphPersistent):
35
35
 
36
36
  def __post_init__(self):
37
37
  self.engine = create_engine(self.persistent_uri)
38
+
39
+ @event.listens_for(self.engine, "connect")
40
+ def set_sqlite_pragma(dbapi_connection, connection_record):
41
+ cursor = dbapi_connection.cursor()
42
+ cursor.execute("PRAGMA foreign_keys=ON")
43
+ cursor.close()
44
+
38
45
  Base.metadata.create_all(self.engine)
39
46
 
40
47
  def insert_graph(self, graph_id: UUID, graph_name: str):
@@ -212,6 +219,7 @@ class ORMGraphPersistent(GraphPersistent):
212
219
  categorical_stats=categorical_aspect,
213
220
  numerical_stats=numerical_aspect,
214
221
  temporal_stats=temp_aspect,
222
+ is_textual=aspect_data["is_textual"]
215
223
  )
216
224
  case "semantic_properties":
217
225
  aspect = SemanticAspect(**aspect_data)
@@ -4,33 +4,33 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "dbgraph"
7
- version = "0.2.8"
7
+ version = "0.2.10"
8
8
  description = "dbgraph is a database profiling tool which model the database as a graph"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
11
11
  dependencies = [
12
- "bm25s>=0.3.9",
13
- "build>=1.6.0",
12
+ "bm25s==0.3.11",
13
+ "build==1.6.1",
14
14
  "grip>=4.6.2",
15
- "langchain>=1.3.16",
16
- "langchain-openai>=1.6.0",
17
- "matplotlib>=3.11.0",
15
+ "langchain==1.4.2",
16
+ "langchain-openai==1.6.5",
17
+ "matplotlib==3.11.2",
18
18
  "mkdocs>=1.6.1",
19
19
  "mkdocs-gen-files>=0.6.1",
20
20
  "mkdocs-material>=9.7.7",
21
21
  "mkdocstrings[python]>=1.0.6",
22
- "openai>=2.45.0",
22
+ "openai==3.19.2",
23
23
  "psutil>=7.2.2",
24
- "pydantic>=2.13.4",
24
+ "pydantic==2.13.5",
25
25
  "pydot>=4.0.1",
26
26
  "pympler>=1.1",
27
27
  "pyrefly>=0.60.0",
28
28
  "pystemmer>=3.1.0",
29
- "python-dotenv>=1.2.2",
30
- "rustworkx>=0.18.0",
31
- "sqlalchemy>=2.0.52",
32
- "tqdm>=4.68.4",
33
- "trino>=0.339.0",
29
+ "python-dotenv==1.2.3",
30
+ "rustworkx==0.18.1",
31
+ "sqlalchemy==2.0.54",
32
+ "tqdm==4.70.1",
33
+ "trino==0.340.0",
34
34
  ]
35
35
 
36
36
  [tool.setuptools.packages.find]
File without changes
@@ -84,6 +84,7 @@ class TestORMGraphPersistent(unittest.TestCase):
84
84
  name="column-1-1-statistic",
85
85
  non_null_count=0,
86
86
  null_count=0,
87
+ is_textual=False,
87
88
  numerical_stats=RNumericalStatistics(min=0, max=0, mean=0),
88
89
  categorical_stats=None,
89
90
  ),
@@ -108,6 +109,7 @@ class TestORMGraphPersistent(unittest.TestCase):
108
109
  non_null_count=0,
109
110
  null_count=0,
110
111
  numerical_stats=None,
112
+ is_textual=False,
111
113
  categorical_stats=RCategoricalStatistics(
112
114
  value_counts={"1": 1, "2": 2}
113
115
  ),
@@ -132,6 +134,7 @@ class TestORMGraphPersistent(unittest.TestCase):
132
134
  name="column-2-1-statistic",
133
135
  non_null_count=0,
134
136
  null_count=0,
137
+ is_textual=False,
135
138
  numerical_stats=None,
136
139
  categorical_stats=None,
137
140
  temporal_stats=RTemporalStatistics(
@@ -362,6 +365,9 @@ class TestORMGraphPersistent(unittest.TestCase):
362
365
  self.persistent.save_graph(target_id, "test", self.graph)
363
366
  graph = self.persistent.load_graph(target_id)
364
367
  self.assertEqual(self.graph, graph)
368
+ self.persistent.delete_graph(target_id)
369
+ assets = self.persistent.get_assets(target_id)
370
+ self.assertEqual(0, len(assets))
365
371
 
366
372
 
367
373
  if __name__ == "__main__":