recce-nightly 0.56.0.20250304__py3-none-any.whl → 0.57.0.20250306__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.
Files changed (76) hide show
  1. recce/VERSION +1 -1
  2. recce/adapter/dbt_adapter/__init__.py +45 -5
  3. recce/data/404.html +1 -1
  4. recce/data/_next/static/Nk4rGHMTXAowrxVjr1CK0/_buildManifest.js +1 -0
  5. recce/data/_next/static/chunks/{29e3cc0d-490dbff344996865.js → 29e3cc0d-b9131230fdb267e7.js} +1 -1
  6. recce/data/_next/static/chunks/{36e1c10d-3bcdd9bb8564108c.js → 36e1c10d-440dfddfa8195fa6.js} +1 -1
  7. recce/data/_next/static/chunks/{3998a672-e71829c331c77ccb.js → 3998a672-18454f939c052b39.js} +1 -1
  8. recce/data/_next/static/chunks/{450c323b-79414be6f43ef15c.js → 450c323b-ff537c106edf3f59.js} +1 -1
  9. recce/data/_next/static/chunks/{47d8844f-ccb4e71fbabd12f3.js → 47d8844f-cac2989cb39ba350.js} +1 -1
  10. recce/data/_next/static/chunks/{157e448a-49151cad1ec51175.js → 523b8219-cd28a6efac8e1cf1.js} +1 -1
  11. recce/data/_next/static/chunks/{6dc81886-03da5372308c376d.js → 6dc81886-d45acadb4b6674c7.js} +1 -1
  12. recce/data/_next/static/chunks/764-350e6bbb8a63c229.js +65 -0
  13. recce/data/_next/static/chunks/{7a8a3e83-f7fe5f14c56108bf.js → 7a8a3e83-1a4edb77e4d0142d.js} +1 -1
  14. recce/data/_next/static/chunks/{7f27ae6c-c484e79185298424.js → 7f27ae6c-9c6bdf82ccd2f646.js} +1 -1
  15. recce/data/_next/static/chunks/921-4158ef2dc23e4a01.js +2 -0
  16. recce/data/_next/static/chunks/{9746af58-daab848e55b5faf7.js → 9746af58-344daabf5df08121.js} +1 -1
  17. recce/data/_next/static/chunks/{a30376cd-de90859763d1c500.js → a30376cd-0e2abcaded0e4cfc.js} +1 -1
  18. recce/data/_next/static/chunks/app/_not-found/page-8fb2dd95da4548ae.js +1 -0
  19. recce/data/_next/static/chunks/app/layout-2ba8d6f3664176aa.js +1 -0
  20. recce/data/_next/static/chunks/app/page-60e62c1c6f419625.js +1 -0
  21. recce/data/_next/static/chunks/{b63b1b3f-13deddaaba264453.js → b63b1b3f-fbe2ac2c00b4eb2f.js} +1 -1
  22. recce/data/_next/static/chunks/{c132bf7d-740a7144e614cb2d.js → c132bf7d-3375ff4277eceb81.js} +1 -1
  23. recce/data/_next/static/chunks/{868e7b5c-36d94ba5a58a2e6a.js → c1ceaa8b-c4f0232ef5c2c9ba.js} +1 -1
  24. recce/data/_next/static/chunks/{cf0511cf-88e5bf54e88504a3.js → cd9f8d63-ba9b342f3d5e92ac.js} +3 -3
  25. recce/data/_next/static/chunks/{ce84277d-ced9559f73764a27.js → ce84277d-3cee88b51629d895.js} +1 -1
  26. recce/data/_next/static/chunks/e24bf851-38fffe87a7b8784a.js +1 -0
  27. recce/data/_next/static/chunks/{fee69bc6-2cf346c884a74e9d.js → fee69bc6-4490eb47d2aaaa72.js} +1 -1
  28. recce/data/_next/static/chunks/main-535eacaa53931854.js +1 -0
  29. recce/data/_next/static/chunks/main-app-6f45568a6a7cd7b0.js +1 -0
  30. recce/data/_next/static/chunks/pages/_app-bbd1966052cb1e5d.js +1 -0
  31. recce/data/_next/static/chunks/pages/_error-2456b9a2e0600a52.js +1 -0
  32. recce/data/_next/static/chunks/{webpack-300961f547f48fe7.js → webpack-5ab3237140d2c0f8.js} +1 -1
  33. recce/data/_next/static/css/{1d7428fe54fca42f.css → c9ecb46a4b21c126.css} +1 -1
  34. recce/data/_next/static/media/montserrat-cyrillic-800-normal.22628180.woff2 +0 -0
  35. recce/data/_next/static/media/montserrat-cyrillic-800-normal.31d693bb.woff +0 -0
  36. recce/data/_next/static/media/montserrat-cyrillic-ext-800-normal.7e2c1e62.woff +0 -0
  37. recce/data/_next/static/media/montserrat-cyrillic-ext-800-normal.94a63aea.woff2 +0 -0
  38. recce/data/_next/static/media/montserrat-latin-800-normal.6f8fa298.woff2 +0 -0
  39. recce/data/_next/static/media/montserrat-latin-800-normal.97e20d5e.woff +0 -0
  40. recce/data/_next/static/media/montserrat-latin-ext-800-normal.013b84f9.woff2 +0 -0
  41. recce/data/_next/static/media/montserrat-latin-ext-800-normal.aff52ab0.woff +0 -0
  42. recce/data/_next/static/media/montserrat-vietnamese-800-normal.5f21869b.woff +0 -0
  43. recce/data/_next/static/media/montserrat-vietnamese-800-normal.c0035377.woff2 +0 -0
  44. recce/data/index.html +2 -2
  45. recce/data/index.txt +5 -5
  46. recce/tasks/profile.py +8 -0
  47. recce/util/cll.py +28 -17
  48. {recce_nightly-0.56.0.20250304.dist-info → recce_nightly-0.57.0.20250306.dist-info}/METADATA +1 -1
  49. {recce_nightly-0.56.0.20250304.dist-info → recce_nightly-0.57.0.20250306.dist-info}/RECORD +55 -55
  50. tests/tasks/test_profile.py +18 -9
  51. recce/data/_next/static/PdAZtrSpaIDsiEHk9Nkxs/_buildManifest.js +0 -1
  52. recce/data/_next/static/chunks/312-3e9b49b718b98737.js +0 -2
  53. recce/data/_next/static/chunks/771-71780b322a32673c.js +0 -65
  54. recce/data/_next/static/chunks/app/_not-found/page-c2ee18b5ec3e3d57.js +0 -1
  55. recce/data/_next/static/chunks/app/layout-5b30ab0207459cb8.js +0 -1
  56. recce/data/_next/static/chunks/app/page-5b86937f2974d587.js +0 -1
  57. recce/data/_next/static/chunks/b3b1872b-97ea0be5bd9b42bc.js +0 -1
  58. recce/data/_next/static/chunks/main-45628b9d5f140527.js +0 -1
  59. recce/data/_next/static/chunks/main-app-19c0918a6bb54549.js +0 -1
  60. recce/data/_next/static/chunks/pages/_app-ff7f75fed61fbef3.js +0 -1
  61. recce/data/_next/static/chunks/pages/_error-5e587f051118d074.js +0 -1
  62. recce/data/_next/static/media/montserrat-cyrillic-800-normal.5c8b3804.woff +0 -0
  63. recce/data/_next/static/media/montserrat-cyrillic-800-normal.c03acce9.woff2 +0 -0
  64. recce/data/_next/static/media/montserrat-cyrillic-ext-800-normal.83d3554a.woff2 +0 -0
  65. recce/data/_next/static/media/montserrat-cyrillic-ext-800-normal.8a4a9645.woff +0 -0
  66. recce/data/_next/static/media/montserrat-latin-800-normal.388abfc2.woff2 +0 -0
  67. recce/data/_next/static/media/montserrat-latin-800-normal.e7b55ea8.woff +0 -0
  68. recce/data/_next/static/media/montserrat-latin-ext-800-normal.40cba3c6.woff +0 -0
  69. recce/data/_next/static/media/montserrat-latin-ext-800-normal.85728e97.woff2 +0 -0
  70. recce/data/_next/static/media/montserrat-vietnamese-800-normal.0bd05041.woff +0 -0
  71. recce/data/_next/static/media/montserrat-vietnamese-800-normal.dfbbc7ba.woff2 +0 -0
  72. /recce/data/_next/static/{PdAZtrSpaIDsiEHk9Nkxs → Nk4rGHMTXAowrxVjr1CK0}/_ssgManifest.js +0 -0
  73. {recce_nightly-0.56.0.20250304.dist-info → recce_nightly-0.57.0.20250306.dist-info}/LICENSE +0 -0
  74. {recce_nightly-0.56.0.20250304.dist-info → recce_nightly-0.57.0.20250306.dist-info}/WHEEL +0 -0
  75. {recce_nightly-0.56.0.20250304.dist-info → recce_nightly-0.57.0.20250306.dist-info}/entry_points.txt +0 -0
  76. {recce_nightly-0.56.0.20250304.dist-info → recce_nightly-0.57.0.20250306.dist-info}/top_level.txt +0 -0
recce/data/index.txt CHANGED
@@ -1,7 +1,7 @@
1
- 2:I[38443,[],"ClientPageRoot"]
2
- 3:I[21636,["524","static/chunks/b3b1872b-97ea0be5bd9b42bc.js","434","static/chunks/868e7b5c-36d94ba5a58a2e6a.js","678","static/chunks/3998a672-e71829c331c77ccb.js","509","static/chunks/9746af58-daab848e55b5faf7.js","648","static/chunks/ce84277d-ced9559f73764a27.js","989","static/chunks/47d8844f-ccb4e71fbabd12f3.js","147","static/chunks/a30376cd-de90859763d1c500.js","995","static/chunks/fee69bc6-2cf346c884a74e9d.js","739","static/chunks/7a8a3e83-f7fe5f14c56108bf.js","283","static/chunks/450c323b-79414be6f43ef15c.js","303","static/chunks/36e1c10d-3bcdd9bb8564108c.js","22","static/chunks/29e3cc0d-490dbff344996865.js","25","static/chunks/b63b1b3f-13deddaaba264453.js","355","static/chunks/7f27ae6c-c484e79185298424.js","495","static/chunks/6dc81886-03da5372308c376d.js","599","static/chunks/c132bf7d-740a7144e614cb2d.js","852","static/chunks/cf0511cf-88e5bf54e88504a3.js","771","static/chunks/771-71780b322a32673c.js","931","static/chunks/app/page-5b86937f2974d587.js"],"default",1]
3
- 4:I[60299,[],""]
4
- 5:I[43276,[],""]
5
- 0:["PdAZtrSpaIDsiEHk9Nkxs",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}],[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/1d7428fe54fca42f.css","precedence":"next","crossOrigin":"$undefined"}]]],null],null]},[[null,["$","html",null,{"lang":"en","children":["$","body",null,{"suppressHydrationWarning":true,"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]}]],null],null],["$L6",null]]]]
1
+ 2:I[59969,[],"ClientPageRoot"]
2
+ 3:I[39890,["266","static/chunks/e24bf851-38fffe87a7b8784a.js","517","static/chunks/c1ceaa8b-c4f0232ef5c2c9ba.js","678","static/chunks/3998a672-18454f939c052b39.js","509","static/chunks/9746af58-344daabf5df08121.js","895","static/chunks/ce84277d-3cee88b51629d895.js","989","static/chunks/47d8844f-cac2989cb39ba350.js","147","static/chunks/a30376cd-0e2abcaded0e4cfc.js","995","static/chunks/fee69bc6-4490eb47d2aaaa72.js","739","static/chunks/7a8a3e83-1a4edb77e4d0142d.js","283","static/chunks/450c323b-ff537c106edf3f59.js","303","static/chunks/36e1c10d-440dfddfa8195fa6.js","22","static/chunks/29e3cc0d-b9131230fdb267e7.js","25","static/chunks/b63b1b3f-fbe2ac2c00b4eb2f.js","355","static/chunks/7f27ae6c-9c6bdf82ccd2f646.js","495","static/chunks/6dc81886-d45acadb4b6674c7.js","599","static/chunks/c132bf7d-3375ff4277eceb81.js","971","static/chunks/cd9f8d63-ba9b342f3d5e92ac.js","764","static/chunks/764-350e6bbb8a63c229.js","931","static/chunks/app/page-60e62c1c6f419625.js"],"default",1]
3
+ 4:I[49712,[],""]
4
+ 5:I[30691,[],""]
5
+ 0:["Nk4rGHMTXAowrxVjr1CK0",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}],[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/c9ecb46a4b21c126.css","precedence":"next","crossOrigin":"$undefined"}]]],null],null]},[[null,["$","html",null,{"lang":"en","children":["$","body",null,{"suppressHydrationWarning":true,"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]}]],null],null],["$L6",null]]]]
6
6
  6:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"recce"}],["$","meta","3",{"name":"description","content":"Recce: Data validation toolkit for comprehensive PR review"}],["$","link","4",{"rel":"icon","href":"/favicon.ico","type":"image/x-icon","sizes":"32x32"}]]
7
7
  1:null
recce/tasks/profile.py CHANGED
@@ -12,6 +12,7 @@ from ..models import Check
12
12
 
13
13
  class ProfileDiffParams(BaseModel):
14
14
  model: str
15
+ columns: List[str] = None
15
16
 
16
17
 
17
18
  class ProfileResult(BaseModel):
@@ -32,6 +33,7 @@ class ProfileDiffTask(Task):
32
33
  dbt_adapter: DbtAdapter = default_context().adapter
33
34
 
34
35
  model: str = self.params.model
36
+ selected_columns: List[str] = self.params.columns
35
37
 
36
38
  self._verify_dbt_profiler(dbt_adapter)
37
39
 
@@ -40,6 +42,12 @@ class ProfileDiffTask(Task):
40
42
 
41
43
  base_columns = [column for column in dbt_adapter.get_columns(model, base=True)]
42
44
  curr_columns = [column for column in dbt_adapter.get_columns(model, base=False)]
45
+
46
+ if selected_columns:
47
+ # Only profile the columns in the filter_columns
48
+ base_columns = [column for column in base_columns if column.name in selected_columns]
49
+ curr_columns = [column for column in curr_columns if column.name in selected_columns]
50
+
43
51
  total = len(base_columns) + len(curr_columns)
44
52
  completed = 0
45
53
 
recce/util/cll.py CHANGED
@@ -80,25 +80,32 @@ class ColumnLevelDependencyColumn:
80
80
  depends_on: List[ColumnLevelDependsOn]
81
81
 
82
82
 
83
- def _cll_expression(expression, default_table) -> ColumnLevelDependencyColumn:
83
+ def _cll_expression(expression, table_alias_map) -> ColumnLevelDependencyColumn:
84
84
  # given an expression, return the columns depends on
85
85
  # [{node: table, column: column}, ...]
86
86
 
87
87
  if isinstance(expression, Column):
88
88
  column = expression
89
+ alias = column.table
90
+
91
+ if alias is None:
92
+ table = next(iter(table_alias_map.values()))
93
+ else:
94
+ table = table_alias_map[alias]
95
+
89
96
  return ColumnLevelDependencyColumn(
90
97
  type='passthrough',
91
- depends_on=[ColumnLevelDependsOn(column.table or default_table, column.name)]
98
+ depends_on=[ColumnLevelDependsOn(table, column.name)]
92
99
  )
93
100
  elif isinstance(expression, Paren):
94
- return _cll_expression(expression.this, default_table)
101
+ return _cll_expression(expression.this, table_alias_map)
95
102
  elif isinstance(expression, Binary):
96
103
  depends_on = []
97
104
  if expression.left:
98
- depends_on_left = _cll_expression(expression.left, default_table).depends_on
105
+ depends_on_left = _cll_expression(expression.left, table_alias_map).depends_on
99
106
  depends_on.extend(depends_on_left)
100
107
  if expression.right:
101
- depends_on_right = _cll_expression(expression.right, default_table).depends_on
108
+ depends_on_right = _cll_expression(expression.right, table_alias_map).depends_on
102
109
  depends_on.extend(depends_on_right)
103
110
  type = 'derived' if depends_on else 'source'
104
111
  return ColumnLevelDependencyColumn(type=type, depends_on=depends_on)
@@ -107,22 +114,22 @@ def _cll_expression(expression, default_table) -> ColumnLevelDependencyColumn:
107
114
  default = expression.args['default']
108
115
  depends_on = []
109
116
  for expr in ifs:
110
- depends_on_one = _cll_expression(expr, default_table).depends_on
117
+ depends_on_one = _cll_expression(expr, table_alias_map).depends_on
111
118
  depends_on.extend(depends_on_one)
112
119
  if default is not None:
113
- depends_on.extend(_cll_expression(default, default_table).depends_on)
120
+ depends_on.extend(_cll_expression(default, table_alias_map).depends_on)
114
121
  type = 'derived' if depends_on else 'source'
115
122
  return ColumnLevelDependencyColumn(type=type, depends_on=depends_on)
116
123
  elif isinstance(expression, If):
117
124
  depends_on = []
118
125
  if expression.this:
119
- depends_on_one = _cll_expression(expression.this, default_table).depends_on
126
+ depends_on_one = _cll_expression(expression.this, table_alias_map).depends_on
120
127
  depends_on.extend(depends_on_one)
121
128
  if expression.args.get('true'):
122
- depends_on_one = _cll_expression(expression.args.get('true'), default_table).depends_on
129
+ depends_on_one = _cll_expression(expression.args.get('true'), table_alias_map).depends_on
123
130
  depends_on.extend(depends_on_one)
124
131
  if expression.args.get('false'):
125
- depends_on_one = _cll_expression(expression.args.get('false'), default_table).depends_on
132
+ depends_on_one = _cll_expression(expression.args.get('false'), table_alias_map).depends_on
126
133
  depends_on.extend(depends_on_one)
127
134
  type = 'derived' if depends_on else 'source'
128
135
  return ColumnLevelDependencyColumn(type=type, depends_on=depends_on)
@@ -130,24 +137,24 @@ def _cll_expression(expression, default_table) -> ColumnLevelDependencyColumn:
130
137
  if expression.expressions:
131
138
  depends_on = []
132
139
  for expr in expression.expressions:
133
- depends_on_one = _cll_expression(expr, default_table).depends_on
140
+ depends_on_one = _cll_expression(expr, table_alias_map).depends_on
134
141
  depends_on.extend(depends_on_one)
135
142
  type = 'derived' if depends_on else 'source'
136
143
  return ColumnLevelDependencyColumn(type=type, depends_on=depends_on)
137
144
  if expression.this:
138
- depends_on = _cll_expression(expression.this, default_table).depends_on
145
+ depends_on = _cll_expression(expression.this, table_alias_map).depends_on
139
146
  type = 'derived' if depends_on else 'source'
140
147
  return ColumnLevelDependencyColumn(type=type, depends_on=depends_on)
141
148
 
142
149
  return ColumnLevelDependencyColumn(type='source', depends_on=[])
143
150
  elif expression.this and isinstance(expression.this, Expression):
144
- depends_on = _cll_expression(expression.this, default_table).depends_on
151
+ depends_on = _cll_expression(expression.this, table_alias_map).depends_on
145
152
  type = 'derived' if depends_on else 'source'
146
153
  return ColumnLevelDependencyColumn(type=type, depends_on=depends_on)
147
154
  elif expression.expressions:
148
155
  depends_on = []
149
156
  for expr in expression.expressions:
150
- depends_on_one = _cll_expression(expr, default_table).depends_on
157
+ depends_on_one = _cll_expression(expr, table_alias_map).depends_on
151
158
  depends_on.extend(depends_on_one)
152
159
  type = 'derived' if depends_on else 'source'
153
160
  return ColumnLevelDependencyColumn(type=type, depends_on=depends_on)
@@ -183,7 +190,11 @@ def cll(sql, schema=None, dialect=None) -> Dict[str, ColumnLevelDependencyColumn
183
190
  global_lineage = {}
184
191
  for scope in traverse_scope(expression):
185
192
  scope_lineage = {}
186
- default_table = scope.expression.args['from'].name if scope.expression.args.get('from') else None
193
+
194
+ table_alias_map = {
195
+ t.alias_or_name: t.name
196
+ for t in scope.tables
197
+ }
187
198
 
188
199
  if isinstance(scope.expression, Union) or isinstance(scope.expression, Intersect):
189
200
  for union_scope in scope.union_scopes:
@@ -199,13 +210,13 @@ def cll(sql, schema=None, dialect=None) -> Dict[str, ColumnLevelDependencyColumn
199
210
  if isinstance(select, Column):
200
211
  # 'select a'
201
212
  column = select
202
- column_cll = _cll_expression(column, default_table)
213
+ column_cll = _cll_expression(column, table_alias_map)
203
214
  elif isinstance(select, Alias):
204
215
  # 'select a as b'
205
216
  # 'select CURRENT_TIMESTAMP() as create_at'
206
217
  alias = select
207
218
  col_expression = alias.this
208
- column_cll = _cll_expression(col_expression, default_table)
219
+ column_cll = _cll_expression(col_expression, table_alias_map)
209
220
  if (
210
221
  column_cll and
211
222
  column_cll.type == 'passthrough' and
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: recce-nightly
3
- Version: 0.56.0.20250304
3
+ Version: 0.57.0.20250306
4
4
  Summary: Environment diff tool for dbt
5
5
  Home-page: https://github.com/InfuseAI/recce
6
6
  Author: InfuseAI Dev Team
@@ -1,4 +1,4 @@
1
- recce/VERSION,sha256=qYVYcBsBZ1mLJk5aRwJcbTKCnt5cK2A1kbTdPaGWJYw,16
1
+ recce/VERSION,sha256=TecqXTD8Ufr49ZFVWWVfd6d60JtIO74SF86XwJam32Q,16
2
2
  recce/__init__.py,sha256=PUViz81KEpWnnIvX3wRaz3hq7FVUorVoZdbLNfSBaoM,1879
3
3
  recce/artifact.py,sha256=a7P1cXd6lglEZF2OYeNvsEg9ME-ocJo5oPU4VZVeaz0,6586
4
4
  recce/cli.py,sha256=vmZ-OwSlcWsYuIrxHpZdbdJOO67ZDQm8LLgBI6sMY4o,30295
@@ -16,60 +16,60 @@ recce/summary.py,sha256=yPAaGCkOmfhLjwF2rGpS66XR88TjyNG6GI3T6lsRIeg,18809
16
16
  recce/adapter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
17
  recce/adapter/base.py,sha256=rCdRJklpgAnQ864Ez0c0tzU_YPCWIb4clNiJ87niDcg,3582
18
18
  recce/adapter/sqlmesh_adapter.py,sha256=_nnWHhd46p1MIW5-riQFYMf638OlSdwugIKgTwYiRYM,5160
19
- recce/adapter/dbt_adapter/__init__.py,sha256=sRHOX20EjwyYZnVy1QIUeCspfCUEbz7U0SxVevxKsBA,45029
19
+ recce/adapter/dbt_adapter/__init__.py,sha256=HQis4rEGIfS3_ONSMNy-cRqe6bbu6_u5-LXvJiSquzY,46642
20
20
  recce/adapter/dbt_adapter/dbt_version.py,sha256=CwsOEu101fzMUwUYD3Y7btDPAALQNwA7J6C4Auc_wzM,1225
21
21
  recce/apis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
22
  recce/apis/check_api.py,sha256=S4OYx3vR5iezo1vnWpk56JUZiprAr9UgYcz-HEIsROs,6211
23
23
  recce/apis/check_func.py,sha256=onhGppZ7LDrVmipHaXZI-WaTVRFZDwb2oQhbYe0tSXY,4316
24
24
  recce/apis/run_api.py,sha256=FdNFWt7JrPbCv2CQkswbsaw5gZNGesjQBi749jbQtK0,3326
25
25
  recce/apis/run_func.py,sha256=ndEqhNzZtWvQsWUFhfPJ7GcjzJaI5vfBpDsU1adqOrI,7136
26
- recce/data/404.html,sha256=XrENUaPSWiTrmcmSE9yBfkjKLUuWkOc7zj_8XIx1WIk,6206
26
+ recce/data/404.html,sha256=e3M3hPP9PpTwo6pYxi8UIlIlntljxt3U7hmnr--W14M,6206
27
27
  recce/data/favicon.ico,sha256=B2mBumUOnzvUrXrqNkrc5QfdDXjzEXRcWkWur0fJ6sM,2565
28
- recce/data/index.html,sha256=2YF5hsvxJRTExRivxLQyV73kV_ZtqVVUPwekrH1aDtU,38924
29
- recce/data/index.txt,sha256=YIF_ld8DCyUPMLcZDt21anzDHrczmLthI3EJyJvvMs4,3283
30
- recce/data/_next/static/PdAZtrSpaIDsiEHk9Nkxs/_buildManifest.js,sha256=YO8ZajobGBQfFtGDwJn72G4J4BUoFhXxEs4bevyXW9c,224
31
- recce/data/_next/static/PdAZtrSpaIDsiEHk9Nkxs/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
32
- recce/data/_next/static/chunks/157e448a-49151cad1ec51175.js,sha256=Gu8zzhH5DrQ1dtvwlQwYB71iXUHIwWFpQnlvFOWCpmc,172836
33
- recce/data/_next/static/chunks/29e3cc0d-490dbff344996865.js,sha256=J_kTn0f6O93AITYvwPTtGocHNpWcRc6jxewfKoWypZM,700
34
- recce/data/_next/static/chunks/312-3e9b49b718b98737.js,sha256=GwmjEY2_In1voBy2ydbBjiD1SKkYhBi4FpVzHz9SlBs,124102
35
- recce/data/_next/static/chunks/36e1c10d-3bcdd9bb8564108c.js,sha256=sPlYULPKcSMUt76Tl5UuahMey2HRDXL9kXKLMKZ58kg,7834
36
- recce/data/_next/static/chunks/3998a672-e71829c331c77ccb.js,sha256=iLL11_y4ZYup5Ok_ldyokMvRapFzCHlmTQzMUoGH50g,9024
37
- recce/data/_next/static/chunks/450c323b-79414be6f43ef15c.js,sha256=uVr2kDp2eBCptIRsUGdjXrD7uhW9au0lqjjfc6UFGo0,2205
38
- recce/data/_next/static/chunks/47d8844f-ccb4e71fbabd12f3.js,sha256=lS55cthdnBY4v711yVgEggvwuUAcRmvXr7v2uDeuavE,697
39
- recce/data/_next/static/chunks/6dc81886-03da5372308c376d.js,sha256=6WXmCKKfxzLuNYV_x2dUzt3GXdHznGFlh9I_JC3EgU0,69733
40
- recce/data/_next/static/chunks/771-71780b322a32673c.js,sha256=hMnqtu6JLmyGp0i7fOqG-8efXckcwr4RFIm_4XWY7AE,1251936
41
- recce/data/_next/static/chunks/7a8a3e83-f7fe5f14c56108bf.js,sha256=uGPtYWcSDemiQ6xi47w4e7a2TjNuM9NyhW3EpHJtUuE,1299
42
- recce/data/_next/static/chunks/7f27ae6c-c484e79185298424.js,sha256=JZUcAr_gG7oAiZXnmA_ojZiGzIf0SEv89hmPD0FITnU,779
43
- recce/data/_next/static/chunks/868e7b5c-36d94ba5a58a2e6a.js,sha256=ycCf7oxFMlREO6ktodNyD-WqQnMN5v94LM261e3ZX9E,81301
44
- recce/data/_next/static/chunks/9746af58-daab848e55b5faf7.js,sha256=AC-Yavu2ADGv60TthgUGvueO-qdSKpDej67kCyMBjiA,3750
45
- recce/data/_next/static/chunks/a30376cd-de90859763d1c500.js,sha256=uemc2oBj7S6gBQC2i6W4TxMRChGZiOTX0RU19ICcSV8,797
46
- recce/data/_next/static/chunks/b3b1872b-97ea0be5bd9b42bc.js,sha256=JDLaYYfBV-RNVMjKJHk4FfBH8BGUT0jGM65ACDUaRcU,153870
47
- recce/data/_next/static/chunks/b63b1b3f-13deddaaba264453.js,sha256=p0C5UmxZq3Uv6hwNwJXpSE3CU8x05uTbxuwgQFxnJB0,572
48
- recce/data/_next/static/chunks/c132bf7d-740a7144e614cb2d.js,sha256=UcjSk0aOveAkJxiP1i-Y4HwLLZT2U4FJorN8T7UN5ng,198537
49
- recce/data/_next/static/chunks/ce84277d-ced9559f73764a27.js,sha256=Z1yTUJgZeDmomJ3CVdK6yK844rfCQrXNiyWq1JZRsT4,1151
50
- recce/data/_next/static/chunks/cf0511cf-88e5bf54e88504a3.js,sha256=WEdvx1dCdx11ema5n9wjFRVliYFnDG6JhQZWXdTl7EQ,82989
51
- recce/data/_next/static/chunks/fee69bc6-2cf346c884a74e9d.js,sha256=ZeahUew6VR99OiHzADdTsqChgmseWMJU9EUNqn8exsQ,484
28
+ recce/data/index.html,sha256=pAc50KbbMbQpPXdrZUIj-pTHBEzx1lEn6clN28mkQGk,38924
29
+ recce/data/index.txt,sha256=Q_AR8-Uz_CoYeVkkYiC71tF-QdA9kF8lpg3EG4fc464,3283
30
+ recce/data/_next/static/Nk4rGHMTXAowrxVjr1CK0/_buildManifest.js,sha256=exkbHO1leuEKEXHHfj0lbuMtCwdCvEooo-IROnmIziM,224
31
+ recce/data/_next/static/Nk4rGHMTXAowrxVjr1CK0/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
32
+ recce/data/_next/static/chunks/29e3cc0d-b9131230fdb267e7.js,sha256=37FmTMjhQVxlEmYqvJJ216ETHQvHptSPibf99Lu80Hw,700
33
+ recce/data/_next/static/chunks/36e1c10d-440dfddfa8195fa6.js,sha256=qt9sigGpLVxFi4TEdU2DApSGcCdTP0At0ADCIttRXaY,7834
34
+ recce/data/_next/static/chunks/3998a672-18454f939c052b39.js,sha256=AYGoGBDH2RnulfT1bZn9h-lxrI1T9qxcB-vCkQakYvs,9024
35
+ recce/data/_next/static/chunks/450c323b-ff537c106edf3f59.js,sha256=2ZSbiQfo1djir2lkY9YH8MfNctGSZBLwutEs7YpafLY,2205
36
+ recce/data/_next/static/chunks/47d8844f-cac2989cb39ba350.js,sha256=EcdugrMXcIR4mJSwwYvdzBJyOAS2lPQawW2_wEIwmjI,697
37
+ recce/data/_next/static/chunks/523b8219-cd28a6efac8e1cf1.js,sha256=nNll8F-JeZ-LfIPX8hKd5yhuPU9g66yPwdafpEW9FD8,172836
38
+ recce/data/_next/static/chunks/6dc81886-d45acadb4b6674c7.js,sha256=acPrcw_y7gPN0nYgoOD-kNIXDDG1_dMf4vOkdGewn-w,69733
39
+ recce/data/_next/static/chunks/764-350e6bbb8a63c229.js,sha256=uoLpv9otY_iofv6RDdq5d4aOhvTc8AglHdomKRguOXo,1253448
40
+ recce/data/_next/static/chunks/7a8a3e83-1a4edb77e4d0142d.js,sha256=YOj2sUu1jLyepXBodWq-IDC9mBAxewXoWWtfV761YfU,1299
41
+ recce/data/_next/static/chunks/7f27ae6c-9c6bdf82ccd2f646.js,sha256=gpeILbbuIpWFePOS3aGr8q6wxbUe66edKf6xxntkaUs,779
42
+ recce/data/_next/static/chunks/921-4158ef2dc23e4a01.js,sha256=O6tcaghpaqUPi5qYX1Ns1nY7MPlNDUzvIR-RnKTbbGM,124084
43
+ recce/data/_next/static/chunks/9746af58-344daabf5df08121.js,sha256=NahogxMs7qzQO6aMxRoHmX1pmoT_CXGVivTQtXzLtbY,3750
44
+ recce/data/_next/static/chunks/a30376cd-0e2abcaded0e4cfc.js,sha256=il5x_7VyKCZ20cImkncbk5BThVWHPq_YaY2wHds0vXE,797
45
+ recce/data/_next/static/chunks/b63b1b3f-fbe2ac2c00b4eb2f.js,sha256=GDnIPq_pAw9bBOZGgN9Z-Ta4n7rSn33865OBsajq98U,572
46
+ recce/data/_next/static/chunks/c132bf7d-3375ff4277eceb81.js,sha256=1RngtzcdyN0cn7-AaIe0MAGHGZGzIPOYnC0wjSGDvd8,198537
47
+ recce/data/_next/static/chunks/c1ceaa8b-c4f0232ef5c2c9ba.js,sha256=Qa9sq70raxPDIqGfMNGsqMvcvn_4oSOW0qLhW_x4J2I,81301
48
+ recce/data/_next/static/chunks/cd9f8d63-ba9b342f3d5e92ac.js,sha256=mFQ9Kal5Uo1h3I_pdTFZAkXDfzmTahHK1jaBUX6_hpk,82989
49
+ recce/data/_next/static/chunks/ce84277d-3cee88b51629d895.js,sha256=UO9OUHwfPe7OLUUijS1ZTnII4LBIm0HIbMFb3x6jVIw,1151
50
+ recce/data/_next/static/chunks/e24bf851-38fffe87a7b8784a.js,sha256=RJCLHr-FOgG9e3P7oPqkVGngvJjowxp0lGUOjeBrAHQ,154153
51
+ recce/data/_next/static/chunks/fee69bc6-4490eb47d2aaaa72.js,sha256=VUqzkEYmj__weFY-sKMolY5fnZ5xPq2lN2ot3RwJD2c,484
52
52
  recce/data/_next/static/chunks/framework-ded83d71b51ce901.js,sha256=0Xsxxnmw5fjRHz8ni6vlaF9tQjfjNGZcZv2oMy7A_T4,140000
53
- recce/data/_next/static/chunks/main-45628b9d5f140527.js,sha256=VBOq_k3RABfEldfp7ZMeRO5ZxVVogt6j61EengWZMxs,111208
54
- recce/data/_next/static/chunks/main-app-19c0918a6bb54549.js,sha256=RRCMb4CBnuCWu2uKimFahMwwL7zojIE6VzGUqMQHX0A,471
53
+ recce/data/_next/static/chunks/main-535eacaa53931854.js,sha256=C0FtQ17JHicfJREVXbUFno6U-IEwDlijoEl3MR-4458,111194
54
+ recce/data/_next/static/chunks/main-app-6f45568a6a7cd7b0.js,sha256=hGpeb-FK-N-AXwm-OVCDL46ySB0zDcPZWFt8ztRu4R4,471
55
55
  recce/data/_next/static/chunks/polyfills-42372ed130431b0a.js,sha256=CXPB1kyIrcjjyVBBDLWLKI9yEY1ZZbeASUON648vloM,112594
56
- recce/data/_next/static/chunks/webpack-300961f547f48fe7.js,sha256=8OPi9L96S4ufdwFGh6_i4MY1ZBdCvgGKFhIUffnW52I,3836
57
- recce/data/_next/static/chunks/app/layout-5b30ab0207459cb8.js,sha256=VFah6WC0V8g90J_Bn2EQbb0TqwMFtVbyQBf2HSyjmQE,161
58
- recce/data/_next/static/chunks/app/page-5b86937f2974d587.js,sha256=emOMYsVVk6DNlKuUwnke65Wh1QtVd7j58SnT9ypDS34,189243
59
- recce/data/_next/static/chunks/app/_not-found/page-c2ee18b5ec3e3d57.js,sha256=IpT4caDEmZoJzQXmF-ne7PXemWi5E5nFF9t6SG0WHrk,1746
60
- recce/data/_next/static/chunks/pages/_app-ff7f75fed61fbef3.js,sha256=6yZ4xjG5xNCedVNP1JeD4BBkJeQpKtkmE8tdO9bEXeE,283
61
- recce/data/_next/static/chunks/pages/_error-5e587f051118d074.js,sha256=zvLvmg-hcW_z7aBjugTO5m2mDVJExs4bUMpeJee9-lU,249
62
- recce/data/_next/static/css/1d7428fe54fca42f.css,sha256=3EEZieaMASciZVLa8Aa17GTnDPL9YqP01lfxCCPcfDQ,21872
63
- recce/data/_next/static/media/montserrat-cyrillic-800-normal.5c8b3804.woff,sha256=l8EX4hmc2aw1GajwGrsgCUoqh-5E2j1bCG7oZKqsXEU,11044
64
- recce/data/_next/static/media/montserrat-cyrillic-800-normal.c03acce9.woff2,sha256=octlRkRfDnbmvmAYiXQPNtQHyEN5b7qodsqvxo3NPz4,8796
65
- recce/data/_next/static/media/montserrat-cyrillic-ext-800-normal.83d3554a.woff2,sha256=7O_wB00EeNW1kS2a1-QrDVoT55rSXnusd8yCMMLL6lk,9776
66
- recce/data/_next/static/media/montserrat-cyrillic-ext-800-normal.8a4a9645.woff,sha256=DPxbhPSjhUGcf5y7WmxkNkaAoA0Oky8pIb6Ov0ezeyw,12844
67
- recce/data/_next/static/media/montserrat-latin-800-normal.388abfc2.woff2,sha256=Wym3ndAa3Lk0iGNrjwyFAU14ij4unOEnFcQ0Ej9VLSQ,15332
68
- recce/data/_next/static/media/montserrat-latin-800-normal.e7b55ea8.woff,sha256=iE4IEjoil7143Bwji9EeUkub9gERS_x9oIE_-TrUoT0,19436
69
- recce/data/_next/static/media/montserrat-latin-ext-800-normal.40cba3c6.woff,sha256=o_KOXmxRxHHOWIceGURbUTEp3csjQbJeD3Gh_pKzEss,19248
70
- recce/data/_next/static/media/montserrat-latin-ext-800-normal.85728e97.woff2,sha256=EpXJqJRuCdvNjtG4DT-ClT8ZyItLv2CuNwlYv9RtC50,13856
71
- recce/data/_next/static/media/montserrat-vietnamese-800-normal.0bd05041.woff,sha256=cF1W1bAhFnd05_8ljijgMGrZIkQACMF1YBHcej06mC4,6920
72
- recce/data/_next/static/media/montserrat-vietnamese-800-normal.dfbbc7ba.woff2,sha256=C0ZWWMMu_3IBlZL_FJVl8WyPFeSDWV4_Q4qDLlpTECo,5196
56
+ recce/data/_next/static/chunks/webpack-5ab3237140d2c0f8.js,sha256=UhIOPFOodp6y1VtJwVwZ3pJpFRAcL8fxH3StMg_GmKI,3839
57
+ recce/data/_next/static/chunks/app/layout-2ba8d6f3664176aa.js,sha256=a7GPQIB1NRTmOOtJjq6T6jgW94croNWWad7y8nVUTyY,162
58
+ recce/data/_next/static/chunks/app/page-60e62c1c6f419625.js,sha256=JLOH42ybuK4WZRXpv8L0uqyWj0uzscjyz9A2haO3cDg,191540
59
+ recce/data/_next/static/chunks/app/_not-found/page-8fb2dd95da4548ae.js,sha256=KHevuFyLhcoxj_GPVwKGwjm6TlpxZwKerTojSKeA0vY,1749
60
+ recce/data/_next/static/chunks/pages/_app-bbd1966052cb1e5d.js,sha256=J3yb8gzUVS_QjdgYlepNJ9mPJWsQ73io3cS5S8aa_yE,284
61
+ recce/data/_next/static/chunks/pages/_error-2456b9a2e0600a52.js,sha256=OQiA3e-DyZV7_RmSuJcxYK7KPaWYAhOTx8gW6cdaNI8,250
62
+ recce/data/_next/static/css/c9ecb46a4b21c126.css,sha256=JbGypR8aDNuZavNvH6dhPtSbMVSCsy0ycPrz_6XkiVc,21925
63
+ recce/data/_next/static/media/montserrat-cyrillic-800-normal.22628180.woff2,sha256=P5Sx5PNkdTlDYzAdulW_OPRfMokDLi6XTpmS8KJSRoI,11148
64
+ recce/data/_next/static/media/montserrat-cyrillic-800-normal.31d693bb.woff,sha256=ITxULbMzWscxwUi_v3GpzTSYVWlwq_z9fpEvAkEvHJw,11020
65
+ recce/data/_next/static/media/montserrat-cyrillic-ext-800-normal.7e2c1e62.woff,sha256=6J3PqBk_hOFVM8PpfZeSfwZQumQd6LTPPjnaVha2KQ0,12672
66
+ recce/data/_next/static/media/montserrat-cyrillic-ext-800-normal.94a63aea.woff2,sha256=qHQDcPj9VkK-6sE5nxIKvejtNLo5RwBULzyH9nZsEwo,12052
67
+ recce/data/_next/static/media/montserrat-latin-800-normal.6f8fa298.woff2,sha256=Tyiv8SvOCaTmT_S2FaOZ5FuZz52F1aVV9hzIfrI7sEI,19036
68
+ recce/data/_next/static/media/montserrat-latin-800-normal.97e20d5e.woff,sha256=O3hUbMaqKvL7tlGscLIlvxQbLpHgOmCRLfwQ6RjJvE0,20784
69
+ recce/data/_next/static/media/montserrat-latin-ext-800-normal.013b84f9.woff2,sha256=tOnyR2cgiUm1cKtlrN9CY6FzD2yAMBe90slHKC0cBms,33776
70
+ recce/data/_next/static/media/montserrat-latin-ext-800-normal.aff52ab0.woff,sha256=IaGLu1tg0bPED9SLQjsK_VdkG3_RCq82GBmSP56xNFU,41956
71
+ recce/data/_next/static/media/montserrat-vietnamese-800-normal.5f21869b.woff,sha256=9ke3AivSl-ihV218s2s9NyJS8t0ETKDdqIK4rJWiPl0,7544
72
+ recce/data/_next/static/media/montserrat-vietnamese-800-normal.c0035377.woff2,sha256=bnmP7vEVe-4gLSDBsmKqD-SATv6-Pg-pxnTpSj7BCeI,7948
73
73
  recce/data/imgs/feedback/thumbs-down.png,sha256=q9KVIbaZku1TWkYHuleYlO-b6HsTApYh3St5xNHMGMg,10695
74
74
  recce/data/imgs/feedback/thumbs-up.png,sha256=VF3BH8bmYEqcSsMDJO57xMqW4t6crCXUXaMlOPgI_OE,10556
75
75
  recce/data/logo/recce-logo-white.png,sha256=y3re8iEucJnMUkAkRS2CjWHTlOydyvgWdWjuQKcXDbk,46923
@@ -87,7 +87,7 @@ recce/tasks/core.py,sha256=BM8LCyRaOJ_YEgeng0qpJkhEJm654pe7U-epJr6a9hg,4115
87
87
  recce/tasks/dataframe.py,sha256=ppOUanqNT0PdCg2PZoo4uk_L3vzfRxS0uU5aXlE7bIQ,3648
88
88
  recce/tasks/histogram.py,sha256=OY3hzFmlhzRvgYbw2LEV9R63Pl3RdJZp81s5AbKS4KQ,13444
89
89
  recce/tasks/lineage.py,sha256=0my9cyB93IYIUFgVQrLd_7VoQAlkcHrCv_dMDYVnqrc,541
90
- recce/tasks/profile.py,sha256=DwBI9QXJHE5Mg5x3QZavMMtu1_sTo0Lei57bA-p4XmE,6806
90
+ recce/tasks/profile.py,sha256=f0h97BegJjghjkc21Ylf1RqOvMJkdC9NTHBI0LxrO3I,7198
91
91
  recce/tasks/query.py,sha256=kBCITSpgShSfHRsRur0glKKHa7jCwFivtFChYXdwu7Y,12139
92
92
  recce/tasks/rowcount.py,sha256=cxQaEU1K_wp6EcCiNXuQxtSDvJXyC82CX5csjiB7eFs,9747
93
93
  recce/tasks/schema.py,sha256=28mmZni0AU1bLfptt7Np3ddKhQ5XZsrtYINonQ2OQOo,2274
@@ -96,7 +96,7 @@ recce/tasks/valuediff.py,sha256=7GcSy7emPSLXjqcJomJ5aK9V8Eamo864ln-iOyNnW5A,1511
96
96
  recce/util/__init__.py,sha256=0lcJectK7Z7k9h0EaYCcv4Bgw2PN03OdJoxb3tbV5j8,37
97
97
  recce/util/breaking.py,sha256=GnUHuk1xm1pEKu8u8kZx4rGhy1BQvUrD8oTSNTNMOq8,2052
98
98
  recce/util/cache.py,sha256=QB6wzxe0M3jNTwP0M27Ys8F2hF-oda4-LyXXG9THuZQ,646
99
- recce/util/cll.py,sha256=jwmkt-DQTd1d9HOJQHjs8osbK_eq4g_He76wvQRAtYg,11283
99
+ recce/util/cll.py,sha256=hrKd4DGqu51T3rju3C_nI-HZIpJ_Tz6lDH8ESIbAwys,11463
100
100
  recce/util/io.py,sha256=uMBpJBKKOUPHTBgntkVkuaVUkY8grDIlA8ORCtFLE5E,3372
101
101
  recce/util/logger.py,sha256=Vmd2PuyzBkML7zvPmJKe3yNfELFjRZqX7abA23wquzg,746
102
102
  recce/util/pydantic_model.py,sha256=KumKuyCjbTzEMsKLE4-b-eZfp0gLhYDdmVtw1-hxiJw,587
@@ -123,15 +123,15 @@ tests/tasks/conftest.py,sha256=UefgbNfJufLOmgHLiEFXIjOVmu8-58GbS6m5-NcEu20,143
123
123
  tests/tasks/test_histogram.py,sha256=F-FwgVuNpkcz_u7GsJ_xaMDaaSlay9nnHKBYt4sLV1I,4119
124
124
  tests/tasks/test_lineage.py,sha256=UxiG7gNjbfT8UIsdgM5TFfwl69xSIZ0WhNOLVw41VkQ,918
125
125
  tests/tasks/test_preset_checks.py,sha256=BQWwlo1_C9trrkuiTF4opXjAApgU7TvNbx9EzWXc8u0,1263
126
- tests/tasks/test_profile.py,sha256=wBLGvaAi1JXA15A9Z-1IBqpDtr7WHooXY8jqrEDNVHo,1074
126
+ tests/tasks/test_profile.py,sha256=T2TD47ErmTIZLMcrwjLzSewNnb5oRRkoie19RXJvj1M,1402
127
127
  tests/tasks/test_query.py,sha256=aLbMw6O9hMkbT0wol_Q447a6X1MEwWJYZtwJjHmm0bs,4177
128
128
  tests/tasks/test_row_count.py,sha256=hjrKP1u2aZ9V0EWb0WGXDz4-V2kYaiNeiJ_Mqin8BPg,2920
129
129
  tests/tasks/test_schema.py,sha256=O2zLJzzYZBwoKA5BVYDE7UuaeQtAznKzFDXNw7xzMU4,2897
130
130
  tests/tasks/test_top_k.py,sha256=hqYWSd9xE1GU0wgvpgKeLHbPVd5CABYcTJvgA49JRyA,1707
131
131
  tests/tasks/test_valuediff.py,sha256=_z1Ci4ba4lFSWwbj7cbKBRtWqLgV_1HIZGqQlEFl61o,1863
132
- recce_nightly-0.56.0.20250304.dist-info/LICENSE,sha256=CQjjMy9aYPhfe8xG_bcpIfKtNkdxLZ5IOb8oPygtUhY,11343
133
- recce_nightly-0.56.0.20250304.dist-info/METADATA,sha256=CCfVhk41fNdJ8FBKLkPJg0XLmCPMqwV2tUiOi_7YqsU,13218
134
- recce_nightly-0.56.0.20250304.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
135
- recce_nightly-0.56.0.20250304.dist-info/entry_points.txt,sha256=oqoY_IiwIqXbgrIsPnlqUqao2eiIeP2dprowkOlmeyg,40
136
- recce_nightly-0.56.0.20250304.dist-info/top_level.txt,sha256=6PKGVpf75idP0C6KEaldDzzZUauIxNu1ZDstau1pI4I,12
137
- recce_nightly-0.56.0.20250304.dist-info/RECORD,,
132
+ recce_nightly-0.57.0.20250306.dist-info/LICENSE,sha256=CQjjMy9aYPhfe8xG_bcpIfKtNkdxLZ5IOb8oPygtUhY,11343
133
+ recce_nightly-0.57.0.20250306.dist-info/METADATA,sha256=09EcBVbsD-DtNGmtdni58s6Wczn1-ukOhJwXv1wL0tY,13218
134
+ recce_nightly-0.57.0.20250306.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
135
+ recce_nightly-0.57.0.20250306.dist-info/entry_points.txt,sha256=oqoY_IiwIqXbgrIsPnlqUqao2eiIeP2dprowkOlmeyg,40
136
+ recce_nightly-0.57.0.20250306.dist-info/top_level.txt,sha256=6PKGVpf75idP0C6KEaldDzzZUauIxNu1ZDstau1pI4I,12
137
+ recce_nightly-0.57.0.20250306.dist-info/RECORD,,
@@ -2,22 +2,22 @@ import pytest
2
2
 
3
3
  from recce.tasks import ProfileDiffTask
4
4
 
5
-
6
- def test_profile_diff(dbt_test_helper):
7
- csv_data_curr = """
5
+ csv_data_curr = """
8
6
  customer_id,name,age
9
7
  1,Alice,30
10
8
  2,Bob,25
11
9
  3,Charlie,35
12
10
  """
13
11
 
14
- csv_data_base = """
15
- customer_id,name,age
16
- 1,Alice,35
17
- 2,Bob,25
18
- 3,Charlie,35
19
- """
12
+ csv_data_base = """
13
+ customer_id,name,age
14
+ 1,Alice,35
15
+ 2,Bob,25
16
+ 3,Charlie,35
17
+ """
18
+
20
19
 
20
+ def test_profile_diff(dbt_test_helper):
21
21
  dbt_test_helper.create_model("customers", csv_data_base, csv_data_curr)
22
22
  params = dict(model='customers')
23
23
  task = ProfileDiffTask(params)
@@ -27,6 +27,15 @@ def test_profile_diff(dbt_test_helper):
27
27
  assert len(run_result.base.data) == 3
28
28
 
29
29
 
30
+ def test_profile_diff_with_selected_columns(dbt_test_helper):
31
+ dbt_test_helper.create_model("customers", csv_data_base, csv_data_curr)
32
+ params = dict(model='customers', columns=['name', 'age'])
33
+ task = ProfileDiffTask(params)
34
+ run_result = task.execute()
35
+ assert len(run_result.current.data) == 2
36
+ assert len(run_result.base.data) == 2
37
+
38
+
30
39
  def test_validator():
31
40
  from recce.tasks.profile import ProfileDiffCheckValidator
32
41
 
@@ -1 +0,0 @@
1
- self.__BUILD_MANIFEST={__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},"/_error":["static/chunks/pages/_error-5e587f051118d074.js"],sortedPages:["/_app","/_error"]},self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();