sqlmesh 0.210.1.dev12__py3-none-any.whl → 0.210.1.dev13__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
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.210.1.dev12'
32
- __version_tuple__ = version_tuple = (0, 210, 1, 'dev12')
31
+ __version__ = version = '0.210.1.dev13'
32
+ __version_tuple__ = version_tuple = (0, 210, 1, 'dev13')
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -1586,6 +1586,7 @@ class SeedModel(_Model):
1586
1586
  string_columns = []
1587
1587
 
1588
1588
  columns_to_types = self.columns_to_types_ or {}
1589
+ column_names_to_check = set(columns_to_types)
1589
1590
  for name, tpe in columns_to_types.items():
1590
1591
  if tpe.this in (exp.DataType.Type.DATE, exp.DataType.Type.DATE32):
1591
1592
  date_columns.append(name)
@@ -1605,6 +1606,14 @@ class SeedModel(_Model):
1605
1606
  rename_dict[normalized_name] = column
1606
1607
  if rename_dict:
1607
1608
  df.rename(columns=rename_dict, inplace=True)
1609
+ # These names have already been checked
1610
+ column_names_to_check -= set(rename_dict)
1611
+
1612
+ missing_columns = column_names_to_check - set(df.columns)
1613
+ if missing_columns:
1614
+ raise_config_error(
1615
+ f"Seed model '{self.name}' has missing columns: {missing_columns}", self._path
1616
+ )
1608
1617
 
1609
1618
  # convert all date/time types to native pandas timestamp
1610
1619
  for column in [*date_columns, *datetime_columns]:
@@ -1614,7 +1623,15 @@ class SeedModel(_Model):
1614
1623
 
1615
1624
  # extract datetime.date from pandas timestamp for DATE columns
1616
1625
  for column in date_columns:
1617
- df[column] = df[column].dt.date
1626
+ try:
1627
+ df[column] = df[column].dt.date
1628
+ except Exception as ex:
1629
+ logger.error(
1630
+ "Failed to convert column '%s' to date in seed model '%s': %s",
1631
+ column,
1632
+ self.name,
1633
+ ex,
1634
+ )
1618
1635
 
1619
1636
  for column in bool_columns:
1620
1637
  df[column] = df[column].apply(lambda i: str_to_bool(str(i)))
sqlmesh/dbt/seed.py CHANGED
@@ -17,6 +17,7 @@ from sqlglot import exp
17
17
 
18
18
  from sqlmesh.core.config.common import VirtualEnvironmentMode
19
19
  from sqlmesh.core.model import Model, SeedKind, create_seed_model
20
+ from sqlmesh.core.model.seed import CsvSettings
20
21
  from sqlmesh.dbt.basemodel import BaseModelConfig
21
22
  from sqlmesh.dbt.column import ColumnConfig
22
23
 
@@ -80,9 +81,12 @@ class SeedConfig(BaseModelConfig):
80
81
 
81
82
  kwargs["columns"] = new_columns
82
83
 
84
+ # dbt treats single whitespace as a null value
85
+ csv_settings = CsvSettings(na_values=[" "], keep_default_na=True)
86
+
83
87
  return create_seed_model(
84
88
  self.canonical_name(context),
85
- SeedKind(path=seed_path),
89
+ SeedKind(path=seed_path, csv_settings=csv_settings),
86
90
  dialect=self.dialect(context),
87
91
  audit_definitions=audit_definitions,
88
92
  virtual_environment_mode=virtual_environment_mode,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlmesh
3
- Version: 0.210.1.dev12
3
+ Version: 0.210.1.dev13
4
4
  Summary: Next-generation data transformation framework
5
5
  Author-email: "TobikoData Inc." <engineering@tobikodata.com>
6
6
  License: Apache License
@@ -1,5 +1,5 @@
1
1
  sqlmesh/__init__.py,sha256=QjwaamJIdW7voXoS880yAx7tHm-Im4_mqGA-XJgafos,7631
2
- sqlmesh/_version.py,sha256=2c20pUHA2FFoeLY-rhEss8wyBEIHLKv-FRv3YUFMOmQ,723
2
+ sqlmesh/_version.py,sha256=1uz5CFTEr8Rb_OM-x-KjXSmYEoZlfudlM1hjeX3wdw4,723
3
3
  sqlmesh/magics.py,sha256=xLh3u4eqpVrKRVN5KF3X84RPRqjygAB9AJP1TXwH8hg,42086
4
4
  sqlmesh/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  sqlmesh/cicd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -88,7 +88,7 @@ sqlmesh/core/model/__init__.py,sha256=C8GRZ53xuXEA9hQv3BQS9pNNyd9rZ06R_B96UYGhDu
88
88
  sqlmesh/core/model/cache.py,sha256=csun0RJguHzKX6-qITcOs4fVP4f8_Ts8qiUVV4sHY6Q,7869
89
89
  sqlmesh/core/model/common.py,sha256=xCMdwkJXnwjE9-56wNb1HiER0KHmWbBzc2Tm--2u168,25610
90
90
  sqlmesh/core/model/decorator.py,sha256=bL-JuNrdBAikZSjVxnXqeB9i0e9qC7jm7yLjwiZ38aU,9470
91
- sqlmesh/core/model/definition.py,sha256=KCleJFFI1cnY-9ctCs_p6pKJE8kKghYo0xvy3aPCwek,114002
91
+ sqlmesh/core/model/definition.py,sha256=Hn1kFYTpNPNhbvRnsC1HFdHl2lV0SL-z7rM3kuTHm1U,114730
92
92
  sqlmesh/core/model/kind.py,sha256=87nRKwfmYdrI3UuUYRygMZcotPX2yCmOEKrmxmsxulE,37873
93
93
  sqlmesh/core/model/meta.py,sha256=t6NFwQBJ8eMKsBqgdqnZ5952NdM3XrC6Vgi4l6jj8e0,20455
94
94
  sqlmesh/core/model/schema.py,sha256=_HMYfzK9wWXh7_CQDIIGnuQUD4aiX3o5D2cRp2sERzc,3387
@@ -138,7 +138,7 @@ sqlmesh/dbt/package.py,sha256=IBBQueVB4_4C9tIk0-GUL-O2uibNxXu6W2a4AeHHcOU,4322
138
138
  sqlmesh/dbt/profile.py,sha256=hAqL8lfT98pSBY-wCInPg2WhFEjCNUGF2bx5UcWFx-4,3939
139
139
  sqlmesh/dbt/project.py,sha256=su_WHBq94WnjFe5of2Bl6mV9RebVWDnNcjmLw2Ou0so,4280
140
140
  sqlmesh/dbt/relation.py,sha256=rgDJQUuENjqq7kpMJJ6AdlgwYmcYjA1oFj6LCYCS-Hg,227
141
- sqlmesh/dbt/seed.py,sha256=MeazvIHSf1pOzzI4xjTJPdd43mItwxeybRsduYCOmXE,4271
141
+ sqlmesh/dbt/seed.py,sha256=j6kIXs7XcXAkXLr9ZzUzaqszjZ8ONyJkfZ-AzW3vkXo,4476
142
142
  sqlmesh/dbt/source.py,sha256=IZK-aOV-KdWIOPuXqRjJZAZ7phW1HUXoHtE-3clgkx4,4125
143
143
  sqlmesh/dbt/target.py,sha256=7KMQAyd0Jy2TaAJ0rydswWFz1sfHXg4aWeMgcmPanR8,43941
144
144
  sqlmesh/dbt/test.py,sha256=aOTKqYpVafff-TU4Xhbc9eZr6QAuFLMxIu_sV-18JLQ,8282
@@ -293,7 +293,7 @@ sqlmesh/utils/pydantic.py,sha256=o_NsXbIpDqNpUA1Uc5xF0ZzoXQYYB0DfHwdRxBwXPNk,120
293
293
  sqlmesh/utils/rich.py,sha256=cwQ5nJ6sgz64xHtoh6_ec7ReV5YpsOGhMtUJnwoRfEI,3549
294
294
  sqlmesh/utils/windows.py,sha256=r7Yin4WEwbvH7sKA3hOJtRsclmscNuBeCklCfVPvtQs,611
295
295
  sqlmesh/utils/yaml.py,sha256=hvo5lmybYLcIx4p6CQwufS8X4MbwS60lEBnCmYJCXmU,2336
296
- sqlmesh-0.210.1.dev12.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
296
+ sqlmesh-0.210.1.dev13.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
297
297
  sqlmesh_dbt/__init__.py,sha256=awYS5y5mz-1NUmx6i5h5NSTJ7tidRl9NC0FAnFWSF6U,350
298
298
  sqlmesh_dbt/cli.py,sha256=KIXPvLB9teqNbonx18CX3gQl_TaTXkJ8yGDxV6ruVY4,2897
299
299
  sqlmesh_dbt/console.py,sha256=80sCEbrKfR5f3SvxIyI7hw_SuiDiiUwuJYxXbQO2014,830
@@ -417,8 +417,8 @@ web/server/api/endpoints/models.py,sha256=kwj0s7uve3iZSMfmjkoPVMFMeY1sD0peTeyrWf
417
417
  web/server/api/endpoints/modules.py,sha256=8hqqgonGay_mJmpCw0IdbjsPhWlQH2VLdKAqha-myac,468
418
418
  web/server/api/endpoints/plan.py,sha256=bbbY50W_2MsZSTxOHWMKz0tbIm75nsRSlPy8GI2fg9Q,9306
419
419
  web/server/api/endpoints/table_diff.py,sha256=8XTwgOh6QBbNy_hTM1JuHgRjbnie-pGPrphiW-FNLjQ,6058
420
- sqlmesh-0.210.1.dev12.dist-info/METADATA,sha256=EmIDmkF-kVXpUu0WKRBUUEUWU3m3HSJCbPK6g8U__VE,26757
421
- sqlmesh-0.210.1.dev12.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
422
- sqlmesh-0.210.1.dev12.dist-info/entry_points.txt,sha256=sHAf6tQczIM8xZoduN4qaUjV7QEPVUUW_LCT8EDUMv4,155
423
- sqlmesh-0.210.1.dev12.dist-info/top_level.txt,sha256=RQ-33FPe2IgL0rgossAfJkCRtqslz9b7wFARqiWLC5Q,24
424
- sqlmesh-0.210.1.dev12.dist-info/RECORD,,
420
+ sqlmesh-0.210.1.dev13.dist-info/METADATA,sha256=xZpYBLkoqAF8TffTkLqKbK2ILMstDa6WZkTXJlP4-Oc,26757
421
+ sqlmesh-0.210.1.dev13.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
422
+ sqlmesh-0.210.1.dev13.dist-info/entry_points.txt,sha256=sHAf6tQczIM8xZoduN4qaUjV7QEPVUUW_LCT8EDUMv4,155
423
+ sqlmesh-0.210.1.dev13.dist-info/top_level.txt,sha256=RQ-33FPe2IgL0rgossAfJkCRtqslz9b7wFARqiWLC5Q,24
424
+ sqlmesh-0.210.1.dev13.dist-info/RECORD,,