zaturn 0.2.0__tar.gz → 0.2.1__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.
- {zaturn-0.2.0 → zaturn-0.2.1}/CHANGELOG.md +3 -0
- {zaturn-0.2.0/zaturn.egg-info → zaturn-0.2.1}/PKG-INFO +3 -2
- {zaturn-0.2.0 → zaturn-0.2.1}/README.md +1 -1
- {zaturn-0.2.0 → zaturn-0.2.1}/pyproject.toml +2 -1
- {zaturn-0.2.0 → zaturn-0.2.1}/uv.lock +34 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/mcp/__init__.py +4 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/tools/query_utils.py +13 -1
- {zaturn-0.2.0 → zaturn-0.2.1/zaturn.egg-info}/PKG-INFO +3 -2
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn.egg-info/SOURCES.txt +0 -1
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn.egg-info/requires.txt +1 -0
- zaturn-0.2.0/run_sse_server.py +0 -4
- {zaturn-0.2.0 → zaturn-0.2.1}/.gitignore +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/LICENSE +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/setup.cfg +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/__init__.py +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/agent_wrapper.py +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/app.py +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/static/fira_code.ttf +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/static/inter_ital_var.ttf +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/static/inter_var.ttf +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/static/js/htmx-multi-swap.js +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/static/js/htmx.min.js +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/static/logo.png +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/static/logo.svg +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/static/noto_emoji.ttf +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/storage.py +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/_shell.html +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/ai_message.html +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/c_settings_updated.html +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/c_source_card.html +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/chat.html +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/css/style.css +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/function_call.html +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/loader.html +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/manage_sources.html +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/nav.html +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/new_conversation.html +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/settings.html +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/setup_prompt.html +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/user_message.html +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/tools/__init__.py +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/tools/config.py +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/tools/core.py +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/tools/example_data/all_pokemon_data.csv +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/tools/visualizations.py +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn.egg-info/dependency_links.txt +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn.egg-info/entry_points.txt +0 -0
- {zaturn-0.2.0 → zaturn-0.2.1}/zaturn.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: zaturn
|
3
|
-
Version: 0.2.
|
3
|
+
Version: 0.2.1
|
4
4
|
Summary: AI Data Analysis MCP & Studio
|
5
5
|
Author-email: Karthik Devan <krtdvn@gmail.com>
|
6
6
|
Maintainer-email: Karthik Devan <krtdvn@gmail.com>
|
@@ -25,6 +25,7 @@ Requires-Dist: platformdirs>=4.3.7
|
|
25
25
|
Requires-Dist: plotly[express]>=6.0.1
|
26
26
|
Requires-Dist: psycopg2-binary>=2.9.10
|
27
27
|
Requires-Dist: pyarrow>=19.0.1
|
28
|
+
Requires-Dist: pymssql>=2.3.7
|
28
29
|
Requires-Dist: pymysql>=1.1.1
|
29
30
|
Requires-Dist: python-lsp-server>=1.12.2
|
30
31
|
Requires-Dist: python-slugify>=8.0.4
|
@@ -58,7 +59,7 @@ https://github.com/user-attachments/assets/d42dc433-e5ec-4b3e-bef0-5cfc097396ab
|
|
58
59
|
### Multiple Data Sources
|
59
60
|
|
60
61
|
Zaturn can currently connect to the following data sources:
|
61
|
-
- SQL Databases: PostgreSQL, SQLite, DuckDB, MySQL, ClickHouse
|
62
|
+
- SQL Databases: PostgreSQL, SQLite, DuckDB, MySQL, ClickHouse, SQL Server
|
62
63
|
- Files: CSV, Parquet
|
63
64
|
|
64
65
|
Connectors for more data sources are being added.
|
@@ -20,7 +20,7 @@ https://github.com/user-attachments/assets/d42dc433-e5ec-4b3e-bef0-5cfc097396ab
|
|
20
20
|
### Multiple Data Sources
|
21
21
|
|
22
22
|
Zaturn can currently connect to the following data sources:
|
23
|
-
- SQL Databases: PostgreSQL, SQLite, DuckDB, MySQL, ClickHouse
|
23
|
+
- SQL Databases: PostgreSQL, SQLite, DuckDB, MySQL, ClickHouse, SQL Server
|
24
24
|
- Files: CSV, Parquet
|
25
25
|
|
26
26
|
Connectors for more data sources are being added.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "zaturn"
|
3
|
-
version = "0.2.
|
3
|
+
version = "0.2.1"
|
4
4
|
description = "AI Data Analysis MCP & Studio"
|
5
5
|
authors = [
|
6
6
|
{name = "Karthik Devan", email = "krtdvn@gmail.com"},
|
@@ -27,6 +27,7 @@ dependencies = [
|
|
27
27
|
"plotly[express]>=6.0.1",
|
28
28
|
"psycopg2-binary>=2.9.10",
|
29
29
|
"pyarrow>=19.0.1",
|
30
|
+
"pymssql>=2.3.7",
|
30
31
|
"pymysql>=1.1.1",
|
31
32
|
"python-lsp-server>=1.12.2",
|
32
33
|
"python-slugify>=8.0.4",
|
@@ -1390,6 +1390,38 @@ wheels = [
|
|
1390
1390
|
{ url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293 },
|
1391
1391
|
]
|
1392
1392
|
|
1393
|
+
[[package]]
|
1394
|
+
name = "pymssql"
|
1395
|
+
version = "2.3.7"
|
1396
|
+
source = { registry = "https://pypi.org/simple" }
|
1397
|
+
sdist = { url = "https://files.pythonhosted.org/packages/ad/97/4e2b350ccc301a2ba38fe3af246f7cbff0f9d454beb30b57a73570789330/pymssql-2.3.7.tar.gz", hash = "sha256:5e6d79c7b1cec40aebec4b099c6e445ccaac24519e5e767b49a4e6f48c087e50", size = 184995 }
|
1398
|
+
wheels = [
|
1399
|
+
{ url = "https://files.pythonhosted.org/packages/8a/74/864e4ff683160a69925c5c528c3bf91daa1a7b294d3c313345e87c698c8a/pymssql-2.3.7-cp311-cp311-macosx_13_0_x86_64.whl", hash = "sha256:217985ffd3bafa7689de3976671f5c3c390ee4ceac2e458af11f22e9021f2ead", size = 2920984 },
|
1400
|
+
{ url = "https://files.pythonhosted.org/packages/70/0d/3eefc62a77401de9cfb600c2d277ed1c96e1256793bdeca06442eb7ad705/pymssql-2.3.7-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:25972328fc896b525f115f11c19832635a776f6474d957a6f7f610ac0db3ac75", size = 3135486 },
|
1401
|
+
{ url = "https://files.pythonhosted.org/packages/6d/9c/1fd81a6088eca9cd9edf073be52c67124add73e8a4d4ec68816a238039be/pymssql-2.3.7-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:31543f547613aa84016814bfd0f06687b603883148b1feff44a10604ef50dba8", size = 2443081 },
|
1402
|
+
{ url = "https://files.pythonhosted.org/packages/09/06/d35699e1bdcf06d901450eed70709179e217137b12275fd4ab73f5d6e9ab/pymssql-2.3.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4391064e5055f4967ae79074678b1794aae7ab4149864f9557054a56e72e2c74", size = 2784484 },
|
1403
|
+
{ url = "https://files.pythonhosted.org/packages/e5/22/0520248e02777359b95d804cdb16c28ccca8a6a947cc80655d8411b98203/pymssql-2.3.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9ade8beecc2ab5a90a193cd807311d4c74bb76ff3c699e7689f98247a5871442", size = 3685310 },
|
1404
|
+
{ url = "https://files.pythonhosted.org/packages/79/65/3d0312004705157779a8426fea16b505984068d7e03065623ca37b40b7d2/pymssql-2.3.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:09063a2eefdf8f1d7f52b1a8c50506c0807810934ec109aab2f590bfc0e78e5c", size = 3428722 },
|
1405
|
+
{ url = "https://files.pythonhosted.org/packages/b9/9c/6406c3313c0c81352ab7fcff8d1127f0301a0fd49e940a757b915ebdfa0a/pymssql-2.3.7-cp311-cp311-win32.whl", hash = "sha256:132698a5327ea78e17960f3a4322a1bae6a953edfd690dfba5f5ea28a3601114", size = 1322524 },
|
1406
|
+
{ url = "https://files.pythonhosted.org/packages/1d/4c/c6263a16ca905d0617ad8b3afdc354a0046992a1cbe453d626126d9b47bb/pymssql-2.3.7-cp311-cp311-win_amd64.whl", hash = "sha256:a4ead25c67bff2700afb25edaeac923e701465bd33f64b475eb61214b592b8cd", size = 2004594 },
|
1407
|
+
{ url = "https://files.pythonhosted.org/packages/04/42/2c647097ea0df1ab9b1bba31c936d179b083c06a229bdaf244f96b5d1309/pymssql-2.3.7-cp312-cp312-macosx_13_0_x86_64.whl", hash = "sha256:9ac8232d94447e37ee115d5184ac25ab89cb5c0990147457826b4662b99af124", size = 2904130 },
|
1408
|
+
{ url = "https://files.pythonhosted.org/packages/89/d8/45ce5a56291a2529e61fa0f541c9df6ebbc8889d52345d0e335ce5e75467/pymssql-2.3.7-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:7a25383d5e9c2cba4728830951329f453a8f404100b851c0a7c43456a8618927", size = 3122024 },
|
1409
|
+
{ url = "https://files.pythonhosted.org/packages/41/c0/29dfbc30ffaad024155d82d6c3d41d8993968d4da0bc8295233c0f320880/pymssql-2.3.7-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1bbb11b93fd21c261c8c6cf59302fecf66a0b75ce9281772d62252a29de43819", size = 2476192 },
|
1410
|
+
{ url = "https://files.pythonhosted.org/packages/f6/ec/780c60df9d942b419673f9f5d5ae6e2de279e5954af181df53c7a904d006/pymssql-2.3.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a4ee4a8b86de552c2714512ff144937baf8fc23cc7079cb481229e7c703d2793", size = 2814988 },
|
1411
|
+
{ url = "https://files.pythonhosted.org/packages/48/d3/91efb0ecf2cefc8aa2b1f6cc3cd77e80807ed37827a7fe0faad9379990ab/pymssql-2.3.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:56310017000e1a78e3e502be511be7211fd0e7d87d784303608e47fa3db28365", size = 3717811 },
|
1412
|
+
{ url = "https://files.pythonhosted.org/packages/5e/86/6822e6567d7f6587d772adf5d8fbe0157742f59932ddbf6831349c4b590f/pymssql-2.3.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:05ec2b7df85cfc1d849a701471cdab54d4da43d45b361cabb7641d9df6828545", size = 3463486 },
|
1413
|
+
{ url = "https://files.pythonhosted.org/packages/f8/c6/7e04d6d3b3a61d0a0ca63baf6d6d2b07e5991e98ae1b7662ebfc9e46f0c5/pymssql-2.3.7-cp312-cp312-win32.whl", hash = "sha256:d58c1fab2604fdf37f8e3a895c35ae4f26ec4195e200556c4e583c2c216d0a3d", size = 1307278 },
|
1414
|
+
{ url = "https://files.pythonhosted.org/packages/f4/4c/5860010cf9a1c2b8c2d37b18fee8720f61c452af5841e7dca4fef811aec5/pymssql-2.3.7-cp312-cp312-win_amd64.whl", hash = "sha256:257f9048a05220596e0697aade7fee9a993e19c51c652b1c0a0eca97769b5fd4", size = 1988370 },
|
1415
|
+
{ url = "https://files.pythonhosted.org/packages/0f/f2/91db1c61558ac797766011ebaaae94a2764f43cd6a8e1337d797d81cd3fa/pymssql-2.3.7-cp313-cp313-macosx_13_0_x86_64.whl", hash = "sha256:456d7d8b1bf24a611643a67546f2b2188e645250d2c6943bc59093ca03fd33e8", size = 2900668 },
|
1416
|
+
{ url = "https://files.pythonhosted.org/packages/68/ad/7d5f2892a86992f81bc36b54105ec400f0d5afb8009d2027761a2b9ab52a/pymssql-2.3.7-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:2cbea08bd03acb103b553b9cfccda93d5ffe4bd836f89071af2616e0b04e776e", size = 3119006 },
|
1417
|
+
{ url = "https://files.pythonhosted.org/packages/88/6a/1f6614352e59b79e59329774ef159bbd0447b172e62b32ffeea9ef396021/pymssql-2.3.7-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b9b9eceea38fd2f389fb325513cb99964f9465facc35b72174c6cfd93ef3e510", size = 2475555 },
|
1418
|
+
{ url = "https://files.pythonhosted.org/packages/b1/87/f4dc8f9bff8de57f6d6256ff89f7e2e424155c81ac0caea470a391e97e0b/pymssql-2.3.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:69e6feb6916d9e9c37b00538e8cdaf489788244b3111c3cc6e9efffe0e492405", size = 2814496 },
|
1419
|
+
{ url = "https://files.pythonhosted.org/packages/24/3b/a75181f0e42432c795651654802a237152403048e0b4265dd2c5f378ad4a/pymssql-2.3.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a30c31db155c45aafb355e39ede10593fe6c3f18e98117289cb611611901d608", size = 3717450 },
|
1420
|
+
{ url = "https://files.pythonhosted.org/packages/38/a9/d4cdbaa63a271e88380d1a99b749c99d6b5be1c4800777a9f9d4a0832f11/pymssql-2.3.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:37c16bc48a2ca88f1719bac6d2ebbbe7e2b821749bc1d04284975f1628300f13", size = 3463013 },
|
1421
|
+
{ url = "https://files.pythonhosted.org/packages/b0/29/ecacbacf81a5d8c186da77a1fe4f5cc948caf192f15371ead3bf7c95be65/pymssql-2.3.7-cp313-cp313-win32.whl", hash = "sha256:ef769e7c9427cb97143e61c70ec594834bf1954b0f89285b448bb2e3b7e8c2a3", size = 1306860 },
|
1422
|
+
{ url = "https://files.pythonhosted.org/packages/a3/9e/913aec491c17ccdd60603fd98661c993cd74e13526e62f0e07d3d489fa5a/pymssql-2.3.7-cp313-cp313-win_amd64.whl", hash = "sha256:ee3fdfe37e40ead646a622af3a8b405f6aa8d6f48e9b7a412a47dcf3be8b703e", size = 1988939 },
|
1423
|
+
]
|
1424
|
+
|
1393
1425
|
[[package]]
|
1394
1426
|
name = "pymysql"
|
1395
1427
|
version = "1.1.1"
|
@@ -1858,6 +1890,7 @@ dependencies = [
|
|
1858
1890
|
{ name = "plotly", extra = ["express"] },
|
1859
1891
|
{ name = "psycopg2-binary" },
|
1860
1892
|
{ name = "pyarrow" },
|
1893
|
+
{ name = "pymssql" },
|
1861
1894
|
{ name = "pymysql" },
|
1862
1895
|
{ name = "python-lsp-server" },
|
1863
1896
|
{ name = "python-slugify" },
|
@@ -1887,6 +1920,7 @@ requires-dist = [
|
|
1887
1920
|
{ name = "plotly", extras = ["express"], specifier = ">=6.0.1" },
|
1888
1921
|
{ name = "psycopg2-binary", specifier = ">=2.9.10" },
|
1889
1922
|
{ name = "pyarrow", specifier = ">=19.0.1" },
|
1923
|
+
{ name = "pymssql", specifier = ">=2.3.7" },
|
1890
1924
|
{ name = "pymysql", specifier = ">=1.1.1" },
|
1891
1925
|
{ name = "python-lsp-server", specifier = ">=1.12.2" },
|
1892
1926
|
{ name = "python-slugify", specifier = ">=8.0.4" },
|
@@ -56,6 +56,10 @@ for s in source_list:
|
|
56
56
|
source_type = 'mysql'
|
57
57
|
s = s.replace('mysql://', 'mysql+pymysql://')
|
58
58
|
source_name = source.split('/')[-1].split('?')[0]
|
59
|
+
elif source.startswith("mssql://"):
|
60
|
+
source_type = 'mssql'
|
61
|
+
s = s.replace('mssql://', 'mssql+pymssql://')
|
62
|
+
source_name = source.split('/')[-1].split('?')[0]
|
59
63
|
elif source.startswith('clickhouse://'):
|
60
64
|
source_type = 'clickhouse'
|
61
65
|
source_name = source.split('/')[-1].split('?')[0]
|
@@ -30,6 +30,10 @@ def list_tables(source):
|
|
30
30
|
for col in list(result):
|
31
31
|
if col.startswith("Tables_in_"):
|
32
32
|
return result[col].to_list()
|
33
|
+
|
34
|
+
case "mssql":
|
35
|
+
result = execute_query(source, "SELECT name FROM sys.tables")
|
36
|
+
return result['name'].to_list()
|
33
37
|
|
34
38
|
case "duckdb" | "csv" | "parquet" | "clickhouse":
|
35
39
|
result = execute_query(source, "SHOW TABLES")
|
@@ -46,7 +50,7 @@ def describe_table(source, table_name):
|
|
46
50
|
f'PRAGMA table_info("{table_name}");'
|
47
51
|
)
|
48
52
|
|
49
|
-
case 'postgresql':
|
53
|
+
case 'postgresql' | 'mssql':
|
50
54
|
return execute_query(source,
|
51
55
|
f"SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '{table_name}';"
|
52
56
|
)
|
@@ -81,6 +85,14 @@ def execute_query(source: dict, query: str):
|
|
81
85
|
result = session.execute(sqlalchemy.text(query))
|
82
86
|
return pd.DataFrame(result)
|
83
87
|
|
88
|
+
case "mssql":
|
89
|
+
engine = sqlalchemy.create_engine(url)
|
90
|
+
with Session(engine) as session:
|
91
|
+
# no known way to ensure read-only here
|
92
|
+
# please use read-only credentials
|
93
|
+
result = session.execute(sqlalchemy.text(query))
|
94
|
+
return pd.DataFrame(result)
|
95
|
+
|
84
96
|
case "postgresql":
|
85
97
|
engine = sqlalchemy.create_engine(url)
|
86
98
|
with engine.connect() as conn:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: zaturn
|
3
|
-
Version: 0.2.
|
3
|
+
Version: 0.2.1
|
4
4
|
Summary: AI Data Analysis MCP & Studio
|
5
5
|
Author-email: Karthik Devan <krtdvn@gmail.com>
|
6
6
|
Maintainer-email: Karthik Devan <krtdvn@gmail.com>
|
@@ -25,6 +25,7 @@ Requires-Dist: platformdirs>=4.3.7
|
|
25
25
|
Requires-Dist: plotly[express]>=6.0.1
|
26
26
|
Requires-Dist: psycopg2-binary>=2.9.10
|
27
27
|
Requires-Dist: pyarrow>=19.0.1
|
28
|
+
Requires-Dist: pymssql>=2.3.7
|
28
29
|
Requires-Dist: pymysql>=1.1.1
|
29
30
|
Requires-Dist: python-lsp-server>=1.12.2
|
30
31
|
Requires-Dist: python-slugify>=8.0.4
|
@@ -58,7 +59,7 @@ https://github.com/user-attachments/assets/d42dc433-e5ec-4b3e-bef0-5cfc097396ab
|
|
58
59
|
### Multiple Data Sources
|
59
60
|
|
60
61
|
Zaturn can currently connect to the following data sources:
|
61
|
-
- SQL Databases: PostgreSQL, SQLite, DuckDB, MySQL, ClickHouse
|
62
|
+
- SQL Databases: PostgreSQL, SQLite, DuckDB, MySQL, ClickHouse, SQL Server
|
62
63
|
- Files: CSV, Parquet
|
63
64
|
|
64
65
|
Connectors for more data sources are being added.
|
zaturn-0.2.0/run_sse_server.py
DELETED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|