sqlmesh 0.200.1.dev7__py3-none-any.whl → 0.200.1.dev9__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 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.dev7'
21
- __version_tuple__ = version_tuple = (0, 200, 1, 'dev7')
20
+ __version__ = version = '0.200.1.dev9'
21
+ __version_tuple__ = version_tuple = (0, 200, 1, 'dev9')
@@ -1627,7 +1627,32 @@ class MSSQLConnectionConfig(ConnectionConfig):
1627
1627
  # Create the connection string
1628
1628
  conn_str = ";".join(conn_str_parts)
1629
1629
 
1630
- return pyodbc.connect(conn_str, autocommit=kwargs.get("autocommit", False))
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
 
@@ -194,7 +194,8 @@ def load_config_from_python_module(
194
194
 
195
195
  if config_obj is None or not isinstance(config_obj, Config):
196
196
  raise ConfigError(
197
- f"Config needs to be a valid object of type sqlmesh.core.config.Config. Found `{config_obj}` instead at '{module_path}'."
197
+ f"Config needs to be a valid object of type sqlmesh.core.config.Config. Found `{config_obj}` instead at '{module_path}'.",
198
+ module_path,
198
199
  )
199
200
 
200
201
  return (
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlmesh
3
- Version: 0.200.1.dev7
3
+ Version: 0.200.1.dev9
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=MQg0lV_302j4u4_7pDmNZHvOOujcXyUZw-vbKIwul8E,528
2
+ sqlmesh/_version.py,sha256=FlIy8vX7gaBLk6tFwGdei1NOSaRrF-YPOidgzyPN2XA,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=rVEhyFb9r3lk9m0MGBz_Ktyx83LnSrj9L6TDO63_9MM,86538
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=uN4ljhj2ANEYW3ulny4JVQklmdu4LUtrTluB7-eWuYQ,8371
50
+ sqlmesh/core/config/loader.py,sha256=Bv3BiZsSb-wYyFpntZjvTbsnWFT_QY5fLokEoa-MJ0w,8397
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.dev7.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
287
+ sqlmesh-0.200.1.dev9.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.dev7.dist-info/METADATA,sha256=lNK3JzVTRLPCTXxBFUdlwN8yyFmjtxozqX6olr2jQNc,26657
406
- sqlmesh-0.200.1.dev7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
407
- sqlmesh-0.200.1.dev7.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
408
- sqlmesh-0.200.1.dev7.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
409
- sqlmesh-0.200.1.dev7.dist-info/RECORD,,
405
+ sqlmesh-0.200.1.dev9.dist-info/METADATA,sha256=ZBNqtyzEa-4gbI63KXfB_tjs2UASBixCpv3pibSaxL0,26678
406
+ sqlmesh-0.200.1.dev9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
407
+ sqlmesh-0.200.1.dev9.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
408
+ sqlmesh-0.200.1.dev9.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
409
+ sqlmesh-0.200.1.dev9.dist-info/RECORD,,