sqlmesh 0.200.1.dev6__py3-none-any.whl → 0.200.1.dev8__py3-none-any.whl
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.
- sqlmesh/_version.py +2 -2
- sqlmesh/core/config/connection.py +26 -1
- sqlmesh/core/config/loader.py +8 -1
- {sqlmesh-0.200.1.dev6.dist-info → sqlmesh-0.200.1.dev8.dist-info}/METADATA +4 -4
- {sqlmesh-0.200.1.dev6.dist-info → sqlmesh-0.200.1.dev8.dist-info}/RECORD +9 -9
- {sqlmesh-0.200.1.dev6.dist-info → sqlmesh-0.200.1.dev8.dist-info}/WHEEL +0 -0
- {sqlmesh-0.200.1.dev6.dist-info → sqlmesh-0.200.1.dev8.dist-info}/entry_points.txt +0 -0
- {sqlmesh-0.200.1.dev6.dist-info → sqlmesh-0.200.1.dev8.dist-info}/licenses/LICENSE +0 -0
- {sqlmesh-0.200.1.dev6.dist-info → sqlmesh-0.200.1.dev8.dist-info}/top_level.txt +0 -0
sqlmesh/_version.py
CHANGED
|
@@ -17,5 +17,5 @@ __version__: str
|
|
|
17
17
|
__version_tuple__: VERSION_TUPLE
|
|
18
18
|
version_tuple: VERSION_TUPLE
|
|
19
19
|
|
|
20
|
-
__version__ = version = '0.200.1.
|
|
21
|
-
__version_tuple__ = version_tuple = (0, 200, 1, '
|
|
20
|
+
__version__ = version = '0.200.1.dev8'
|
|
21
|
+
__version_tuple__ = version_tuple = (0, 200, 1, 'dev8')
|
|
@@ -1627,7 +1627,32 @@ class MSSQLConnectionConfig(ConnectionConfig):
|
|
|
1627
1627
|
# Create the connection string
|
|
1628
1628
|
conn_str = ";".join(conn_str_parts)
|
|
1629
1629
|
|
|
1630
|
-
|
|
1630
|
+
conn = pyodbc.connect(conn_str, autocommit=kwargs.get("autocommit", False))
|
|
1631
|
+
|
|
1632
|
+
# Set up output converters for MSSQL-specific data types
|
|
1633
|
+
# Handle SQL type -155 (DATETIMEOFFSET) which is not yet supported by pyodbc
|
|
1634
|
+
# ref: https://github.com/mkleehammer/pyodbc/issues/134#issuecomment-281739794
|
|
1635
|
+
def handle_datetimeoffset(dto_value: t.Any) -> t.Any:
|
|
1636
|
+
from datetime import datetime, timedelta, timezone
|
|
1637
|
+
import struct
|
|
1638
|
+
|
|
1639
|
+
# Unpack the DATETIMEOFFSET binary format:
|
|
1640
|
+
# Format: <6hI2h = (year, month, day, hour, minute, second, nanoseconds, tz_hour_offset, tz_minute_offset)
|
|
1641
|
+
tup = struct.unpack("<6hI2h", dto_value)
|
|
1642
|
+
return datetime(
|
|
1643
|
+
tup[0],
|
|
1644
|
+
tup[1],
|
|
1645
|
+
tup[2],
|
|
1646
|
+
tup[3],
|
|
1647
|
+
tup[4],
|
|
1648
|
+
tup[5],
|
|
1649
|
+
tup[6] // 1000,
|
|
1650
|
+
timezone(timedelta(hours=tup[7], minutes=tup[8])),
|
|
1651
|
+
)
|
|
1652
|
+
|
|
1653
|
+
conn.add_output_converter(-155, handle_datetimeoffset)
|
|
1654
|
+
|
|
1655
|
+
return conn
|
|
1631
1656
|
|
|
1632
1657
|
return connect
|
|
1633
1658
|
|
sqlmesh/core/config/loader.py
CHANGED
|
@@ -169,7 +169,14 @@ def load_config_from_paths(
|
|
|
169
169
|
|
|
170
170
|
|
|
171
171
|
def load_config_from_yaml(path: Path) -> t.Dict[str, t.Any]:
|
|
172
|
-
|
|
172
|
+
content = yaml_load(path)
|
|
173
|
+
if not isinstance(content, dict):
|
|
174
|
+
raise ConfigError(
|
|
175
|
+
f"Invalid YAML configuration: expected a dictionary but got {type(content).__name__}. "
|
|
176
|
+
f"Please check the YAML syntax in your config file.",
|
|
177
|
+
location=path,
|
|
178
|
+
)
|
|
179
|
+
return content
|
|
173
180
|
|
|
174
181
|
|
|
175
182
|
def load_config_from_python_module(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sqlmesh
|
|
3
|
-
Version: 0.200.1.
|
|
3
|
+
Version: 0.200.1.dev8
|
|
4
4
|
Summary: Next-generation data transformation framework
|
|
5
5
|
Author-email: "TobikoData Inc." <engineering@tobikodata.com>
|
|
6
6
|
License: Apache License
|
|
@@ -243,7 +243,7 @@ Requires-Dist: PyAthena[Pandas]; extra == "athena"
|
|
|
243
243
|
Provides-Extra: azuresql
|
|
244
244
|
Requires-Dist: pymssql; extra == "azuresql"
|
|
245
245
|
Provides-Extra: azuresql-odbc
|
|
246
|
-
Requires-Dist: pyodbc; extra == "azuresql-odbc"
|
|
246
|
+
Requires-Dist: pyodbc>=5.0.0; extra == "azuresql-odbc"
|
|
247
247
|
Provides-Extra: bigquery
|
|
248
248
|
Requires-Dist: google-cloud-bigquery[pandas]; extra == "bigquery"
|
|
249
249
|
Requires-Dist: google-cloud-bigquery-storage; extra == "bigquery"
|
|
@@ -280,7 +280,7 @@ Requires-Dist: psycopg2-binary; extra == "dev"
|
|
|
280
280
|
Requires-Dist: pydantic; extra == "dev"
|
|
281
281
|
Requires-Dist: PyAthena[Pandas]; extra == "dev"
|
|
282
282
|
Requires-Dist: PyGithub>=2.6.0; extra == "dev"
|
|
283
|
-
Requires-Dist: pyodbc; extra == "dev"
|
|
283
|
+
Requires-Dist: pyodbc>=5.0.0; extra == "dev"
|
|
284
284
|
Requires-Dist: pyperf; extra == "dev"
|
|
285
285
|
Requires-Dist: pyspark~=3.5.0; extra == "dev"
|
|
286
286
|
Requires-Dist: pytest; extra == "dev"
|
|
@@ -318,7 +318,7 @@ Requires-Dist: duckdb>=1.2.0; extra == "motherduck"
|
|
|
318
318
|
Provides-Extra: mssql
|
|
319
319
|
Requires-Dist: pymssql; extra == "mssql"
|
|
320
320
|
Provides-Extra: mssql-odbc
|
|
321
|
-
Requires-Dist: pyodbc; extra == "mssql-odbc"
|
|
321
|
+
Requires-Dist: pyodbc>=5.0.0; extra == "mssql-odbc"
|
|
322
322
|
Provides-Extra: mysql
|
|
323
323
|
Requires-Dist: pymysql; extra == "mysql"
|
|
324
324
|
Provides-Extra: mwaa
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
sqlmesh/__init__.py,sha256=QjwaamJIdW7voXoS880yAx7tHm-Im4_mqGA-XJgafos,7631
|
|
2
|
-
sqlmesh/_version.py,sha256=
|
|
2
|
+
sqlmesh/_version.py,sha256=5eqiiVYkF5mY7pvN4MJKSuMaJgNLKzmN-m0_sk3nTQk,528
|
|
3
3
|
sqlmesh/magics.py,sha256=bEzYqXHcM0P3CjyUZ1O9arlmXAdLAhoglKbQ29fD9AE,41842
|
|
4
4
|
sqlmesh/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
sqlmesh/cicd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -41,13 +41,13 @@ sqlmesh/core/config/__init__.py,sha256=b4gFb04tpeZpowqJD-7h3U3TLgxrpQhZahVEAo6VW
|
|
|
41
41
|
sqlmesh/core/config/base.py,sha256=t8NQmsgQoZSc-k0dlDiCb8t1jj0AMYdGZ-6se9q_Pks,4898
|
|
42
42
|
sqlmesh/core/config/categorizer.py,sha256=6vzUoNLjR6GOEb_2mYVz2TwmMv2BfldgHX2u-Le5HZs,1975
|
|
43
43
|
sqlmesh/core/config/common.py,sha256=rsb2uVFqPEX3DMsWG_hApwztCuRJP-FAmaQ_5L3-S8g,4006
|
|
44
|
-
sqlmesh/core/config/connection.py,sha256=
|
|
44
|
+
sqlmesh/core/config/connection.py,sha256=uv2kTGKEA8aOZrPVV9XsgZaXy8sjcrKJYFDJw7PZmk8,87610
|
|
45
45
|
sqlmesh/core/config/feature_flag.py,sha256=JRcD31OG_t2cYc24meKbHDGB0iVID0P07V2oOeB_mgA,203
|
|
46
46
|
sqlmesh/core/config/format.py,sha256=6CXFbvnor56xbldKE-Vrm9k_ABRoY4v6vgIb3mCihiQ,1355
|
|
47
47
|
sqlmesh/core/config/gateway.py,sha256=tYngyqwd_4Qr9lhcv2hlvLvb_2pgYYtKu6hdGsTr-4I,1931
|
|
48
48
|
sqlmesh/core/config/janitor.py,sha256=NP0i51V8XwMrHw8uuwQknivuudIleNiFBtBnMuXmfIY,362
|
|
49
49
|
sqlmesh/core/config/linter.py,sha256=4Fh6UgY5FrRD9tk_R41Y-M_r91Wh7EQW3Pc1IdRN9Cg,1287
|
|
50
|
-
sqlmesh/core/config/loader.py,sha256=
|
|
50
|
+
sqlmesh/core/config/loader.py,sha256=uN4ljhj2ANEYW3ulny4JVQklmdu4LUtrTluB7-eWuYQ,8371
|
|
51
51
|
sqlmesh/core/config/migration.py,sha256=3lZIlmIcQH3_hIEm3Y3jFtvpw0YXzRzAnk4OdiklO6M,408
|
|
52
52
|
sqlmesh/core/config/model.py,sha256=GIz9kAfKD2NEXNzCZCQ17-CK2OtqN6WgeG1fvibcChM,3650
|
|
53
53
|
sqlmesh/core/config/naming.py,sha256=KVGaxUgswoQajXR_cHFJvgkmEFcU1V182GkOH1SJxuE,326
|
|
@@ -284,7 +284,7 @@ sqlmesh/utils/pydantic.py,sha256=o_NsXbIpDqNpUA1Uc5xF0ZzoXQYYB0DfHwdRxBwXPNk,120
|
|
|
284
284
|
sqlmesh/utils/rich.py,sha256=BpB47G0-JcU41LkGkeGKroexj4NOV5fox4-GOIXPgIc,3545
|
|
285
285
|
sqlmesh/utils/windows.py,sha256=r7Yin4WEwbvH7sKA3hOJtRsclmscNuBeCklCfVPvtQs,611
|
|
286
286
|
sqlmesh/utils/yaml.py,sha256=hvo5lmybYLcIx4p6CQwufS8X4MbwS60lEBnCmYJCXmU,2336
|
|
287
|
-
sqlmesh-0.200.1.
|
|
287
|
+
sqlmesh-0.200.1.dev8.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
|
|
288
288
|
web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
289
289
|
web/client/dist/index.html,sha256=DAv6ABGogw4xRLb0T_92WP_S7XWyqVhwBgGKWtuQwU4,5472
|
|
290
290
|
web/client/dist/assets/Audits-BuHAmFO8.js,sha256=zbYUF6WdUGMbnMm01GMNPb7xAJwj-o5wMdL56vPo2qE,1041
|
|
@@ -402,8 +402,8 @@ web/server/api/endpoints/models.py,sha256=kwj0s7uve3iZSMfmjkoPVMFMeY1sD0peTeyrWf
|
|
|
402
402
|
web/server/api/endpoints/modules.py,sha256=8hqqgonGay_mJmpCw0IdbjsPhWlQH2VLdKAqha-myac,468
|
|
403
403
|
web/server/api/endpoints/plan.py,sha256=bbbY50W_2MsZSTxOHWMKz0tbIm75nsRSlPy8GI2fg9Q,9306
|
|
404
404
|
web/server/api/endpoints/table_diff.py,sha256=SCy3-pr5x6bEEiOaZGCDbiHQhpgxwmnz3Acqa2Ie6jI,2090
|
|
405
|
-
sqlmesh-0.200.1.
|
|
406
|
-
sqlmesh-0.200.1.
|
|
407
|
-
sqlmesh-0.200.1.
|
|
408
|
-
sqlmesh-0.200.1.
|
|
409
|
-
sqlmesh-0.200.1.
|
|
405
|
+
sqlmesh-0.200.1.dev8.dist-info/METADATA,sha256=6iltUqhwL5J7sVZw03sFSo2HglwmE31AHyQv4W-m4ho,26678
|
|
406
|
+
sqlmesh-0.200.1.dev8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
407
|
+
sqlmesh-0.200.1.dev8.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
|
|
408
|
+
sqlmesh-0.200.1.dev8.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
|
|
409
|
+
sqlmesh-0.200.1.dev8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|