dbt-adapters 1.14.0__py3-none-any.whl → 1.14.3__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.

Potentially problematic release.


This version of dbt-adapters might be problematic. Click here for more details.

@@ -0,0 +1,31 @@
1
+ from datetime import datetime, date
2
+ from decimal import Decimal
3
+ from typing import Any, Dict, TYPE_CHECKING
4
+
5
+ if TYPE_CHECKING:
6
+ from agate import Table
7
+
8
+
9
+ def _column_filter(val: Any) -> Any:
10
+ return (
11
+ float(val)
12
+ if isinstance(val, Decimal)
13
+ else (
14
+ str(val)
15
+ if isinstance(val, datetime)
16
+ else str(val) if isinstance(val, date) else str(val)
17
+ )
18
+ )
19
+
20
+
21
+ def serialize_agate_table(table: "Table") -> Dict[str, Any]:
22
+ rows = []
23
+ for row in table.rows:
24
+ row = list(map(_column_filter, row))
25
+ rows.append(row)
26
+
27
+ return {
28
+ "column_names": table.column_names,
29
+ "column_types": [t.__class__.__name__ for t in table.column_types],
30
+ "rows": rows,
31
+ }
@@ -37,7 +37,7 @@ class RelationConfigBase:
37
37
 
38
38
  Returns: the `RelationConfigBase` representation associated with the provided dict
39
39
  """
40
- return cls(**filter_null_values(kwargs_dict)) # type: ignore
40
+ return cls(**filter_null_values(kwargs_dict))
41
41
 
42
42
  @classmethod
43
43
  def _not_implemented_error(cls) -> NotImplementedError:
@@ -102,7 +102,7 @@ class SQLConnectionManager(BaseConnectionManager):
102
102
 
103
103
  fire_event(
104
104
  AdapterEventDebug(
105
- message=f"Got a retryable error {type(e)}. {retry_limit-attempt} retries left. Retrying in 1 second.\nError:\n{e}"
105
+ message=f"Got a retryable error {type(e)}. {retry_limit - attempt} retries left. Retrying in 1 second.\nError:\n{e}"
106
106
  )
107
107
  )
108
108
  time.sleep(1)
dbt/adapters/sql/impl.py CHANGED
@@ -1,12 +1,14 @@
1
1
  from typing import Any, List, Optional, Tuple, Type, TYPE_CHECKING
2
2
 
3
3
  from dbt_common.events.functions import fire_event
4
+ from dbt_common.record import record_function
4
5
 
5
6
  from dbt.adapters.base import BaseAdapter, BaseRelation, available
6
7
  from dbt.adapters.cache import _make_ref_key_dict
7
8
  from dbt.adapters.contracts.connection import AdapterResponse, Connection
8
9
  from dbt.adapters.events.types import ColTypeChange, SchemaCreation, SchemaDrop
9
10
  from dbt.adapters.exceptions import RelationTypeNullError
11
+ from dbt.adapters.record.base import AdapterTestSqlRecord
10
12
  from dbt.adapters.sql.connections import SQLConnectionManager
11
13
 
12
14
  LIST_RELATIONS_MACRO_NAME = "list_relations_without_caching"
@@ -75,7 +77,7 @@ class SQLAdapter(BaseAdapter):
75
77
  import agate
76
78
 
77
79
  # TODO CT-211
78
- decimals = agate_table.aggregate(agate.MaxPrecision(col_idx)) # type: ignore[attr-defined]
80
+ decimals = agate_table.aggregate(agate.MaxPrecision(col_idx))
79
81
  return "float8" if decimals else "integer"
80
82
 
81
83
  @classmethod
@@ -247,7 +249,7 @@ class SQLAdapter(BaseAdapter):
247
249
  # return fetched output for engines where explain plans are emitted as columnar
248
250
  # results. Any macro override that deviates from this behavior may encounter an
249
251
  # assertion error in the runtime.
250
- adapter_response = result.response # type: ignore[attr-defined]
252
+ adapter_response = result.response
251
253
  assert isinstance(adapter_response, AdapterResponse), (
252
254
  f"Expected AdapterResponse from validate_sql macro execution, "
253
255
  f"got {type(adapter_response)}."
@@ -255,6 +257,10 @@ class SQLAdapter(BaseAdapter):
255
257
  return adapter_response
256
258
 
257
259
  # This is for use in the test suite
260
+ @available
261
+ @record_function(
262
+ AdapterTestSqlRecord, method=True, index_on_thread_id=True, id_field_name="thread_id"
263
+ )
258
264
  def run_sql_for_tests(self, sql, fetch, conn):
259
265
  cursor = conn.handle.cursor()
260
266
  try:
@@ -61,36 +61,23 @@
61
61
  {%- set dest_cols_csv = get_quoted_csv(dest_columns | map(attribute="name")) -%}
62
62
 
63
63
  {% if unique_key %}
64
- {% if unique_key is sequence and unique_key is not string %}
65
- delete from {{ target }}
66
- using {{ source }}
67
- where (
68
- {% for key in unique_key %}
69
- {% set source_unique_key = (source ~ "." ~ key) | trim %}
70
- {% set target_unique_key = (target ~ "." ~ key) | trim %}
71
- {{ equals(source_unique_key, target_unique_key) }}
72
- {{ "and " if not loop.last}}
73
- {% endfor %}
74
- {% if incremental_predicates %}
75
- {% for predicate in incremental_predicates %}
76
- and {{ predicate }}
77
- {% endfor %}
78
- {% endif %}
79
- );
80
- {% else %}
81
- delete from {{ target }}
82
- where (
83
- {{ unique_key }}) in (
84
- select ({{ unique_key }})
85
- from {{ source }}
86
- )
87
- {%- if incremental_predicates %}
88
- {% for predicate in incremental_predicates %}
89
- and {{ predicate }}
90
- {% endfor %}
91
- {%- endif -%};
92
-
64
+ {% if unique_key is string %}
65
+ {% set unique_key = [unique_key] %}
93
66
  {% endif %}
67
+
68
+ {%- set unique_key_str = unique_key|join(', ') -%}
69
+
70
+ delete from {{ target }}
71
+ where ({{ unique_key_str }}) in (
72
+ select distinct {{ unique_key_str }}
73
+ from {{ source }}
74
+ )
75
+ {%- if incremental_predicates %}
76
+ {% for predicate in incremental_predicates %}
77
+ and {{ predicate }}
78
+ {% endfor %}
79
+ {%- endif -%};
80
+
94
81
  {% endif %}
95
82
 
96
83
  insert into {{ target }} ({{ dest_cols_csv }})
@@ -11,7 +11,7 @@
11
11
  {%- set ref_dict = {} -%}
12
12
  {%- for _ref in model.refs -%}
13
13
  {% set _ref_args = [_ref.get('package'), _ref['name']] if _ref.get('package') else [_ref['name'],] %}
14
- {%- set resolved = ref(*_ref_args, v=_ref.get('version')) -%}
14
+ {%- set resolved = ref(*_ref_args, v=_ref.get('version')).render() -%}
15
15
  {%- if _ref.get('version') -%}
16
16
  {% do _ref_args.extend(["v" ~ _ref['version']]) %}
17
17
  {%- endif -%}
@@ -0,0 +1,123 @@
1
+ Metadata-Version: 2.4
2
+ Name: dbt-adapters
3
+ Version: 1.14.3
4
+ Summary: The set of adapter protocols and base functionality that supports integration with dbt-core
5
+ Project-URL: Homepage, https://github.com/dbt-labs/dbt-adapters/tree/main/dbt-adapters
6
+ Project-URL: Documentation, https://docs.getdbt.com
7
+ Project-URL: Repository, https://github.com/dbt-labs/dbt-adapters.git#subdirectory=dbt-adapters
8
+ Project-URL: Issues, https://github.com/dbt-labs/dbt-adapters/issues
9
+ Project-URL: Changelog, https://github.com/dbt-labs/dbt-adapters/blob/main/dbt-adapters/CHANGELOG.md
10
+ Author-email: dbt Labs <info@dbtlabs.com>
11
+ Maintainer-email: dbt Labs <info@dbtlabs.com>
12
+ License-File: LICENSE
13
+ Keywords: adapter,adapters,database,dbt,dbt Cloud,dbt Core,dbt Labs,dbt-core,elt
14
+ Classifier: Development Status :: 5 - Production/Stable
15
+ Classifier: License :: OSI Approved :: Apache Software License
16
+ Classifier: Operating System :: MacOS :: MacOS X
17
+ Classifier: Operating System :: Microsoft :: Windows
18
+ Classifier: Operating System :: POSIX :: Linux
19
+ Classifier: Programming Language :: Python :: 3.9
20
+ Classifier: Programming Language :: Python :: 3.10
21
+ Classifier: Programming Language :: Python :: 3.11
22
+ Classifier: Programming Language :: Python :: 3.12
23
+ Requires-Python: >=3.9.0
24
+ Requires-Dist: agate<2.0,>=1.0
25
+ Requires-Dist: dbt-common<2.0,>=1.13
26
+ Requires-Dist: mashumaro[msgpack]<3.15,>=3.9
27
+ Requires-Dist: protobuf<6.0,>=5.0
28
+ Requires-Dist: pytz>=2015.7
29
+ Requires-Dist: typing-extensions<5.0,>=4.0
30
+ Description-Content-Type: text/markdown
31
+
32
+ <p align="center">
33
+ <img
34
+ src="https://raw.githubusercontent.com/dbt-labs/dbt/ec7dee39f793aa4f7dd3dae37282cc87664813e4/etc/dbt-logo-full.svg"
35
+ alt="dbt logo"
36
+ width="500"
37
+ />
38
+ </p>
39
+
40
+ <p align="center">
41
+ <a href="https://pypi.org/project/dbt-adapters/">
42
+ <img src="https://badge.fury.io/py/dbt-adapters.svg" />
43
+ </a>
44
+ <a target="_blank" href="https://pypi.org/project/dbt-adapters/" style="background:none">
45
+ <img src="https://img.shields.io/pypi/pyversions/dbt-adapters">
46
+ </a>
47
+ <a href="https://github.com/psf/black">
48
+ <img src="https://img.shields.io/badge/code%20style-black-000000.svg" />
49
+ </a>
50
+ <a href="https://github.com/python/mypy">
51
+ <img src="https://www.mypy-lang.org/static/mypy_badge.svg" />
52
+ </a>
53
+ <a href="https://pepy.tech/project/dbt-athena">
54
+ <img src="https://static.pepy.tech/badge/dbt-adapters/month" />
55
+ </a>
56
+ </p>
57
+
58
+ # Adapters
59
+
60
+ There are two major adapter types: [base](/dbt-adapters/src/dbt/adapters/base/impl.py) and [sql](/dbt-adapters/src/dbt/adapters/sql/impl.py).
61
+
62
+ ## `base`
63
+
64
+ `BaseAdapter` defines the base functionality an adapter is required to implement in order to function with `dbt-core`.
65
+ There are several methods which have default implementations as well as methods that require the concrete adapter to implement them.
66
+
67
+ ## `sql`
68
+
69
+ `SQLAdapter` inherits from `BaseAdapter`, updates default implementations to work with SQL-based platforms,
70
+ and defines additional required methods to support those defaults.
71
+
72
+ # Components
73
+
74
+ An adapter is composed of several components.
75
+
76
+ - connections
77
+ - dialect
78
+ - relation caching
79
+ - integration with `dbt-core`
80
+
81
+ The first two are platform-specific and require significant implementation in a concrete adapter.
82
+ The last two are largely implemented in `dbt-adapters` with minor adjustments in a concrete adapter.
83
+
84
+ ## Connections
85
+
86
+ This component is responsible for creating and managing connections to storage and compute.
87
+
88
+ #### Files
89
+ - `dbt/adapters/{base|sql}/connections.py`
90
+
91
+ ## Dialect
92
+
93
+ This component is responsible for translating a request from `dbt-core` into a specific set of actions on the platform.
94
+
95
+ #### Files
96
+ - `dbt/adapters/base/column.py`
97
+ - `dbt/adapters/base/query_headers.py`
98
+ - `dbt/adapters/base/relation.py`
99
+ - `dbt/adapters/relation_configs/*`
100
+ - `dbt/adapters/clients/jinja.py`
101
+ - `dbt/include/global_project/*`
102
+
103
+ ## Relation caching
104
+
105
+ This component is responsible for managing a local cache of relations, relation metadata, and dependencies between relations.
106
+
107
+ #### Files
108
+ - `dbt/adapters/cache.py`
109
+
110
+ ## Integration with `dbt-core`
111
+
112
+ This component is responsible for managing the interface between `dbt-core` and a concrete adapter.
113
+
114
+ #### Files
115
+ - `dbt/adapters/{base|sql}/impl.py`
116
+ - `dbt/adapters/base/meta.py`
117
+ - `dbt/adapters/base/plugin.py`
118
+ - `dbt/adapters/capability.py`
119
+ - `dbt/adapters/factory.py`
120
+ - `dbt/adapters/protocol.py`
121
+ - `dbt/adapters/contracts/*`
122
+ - `dbt/adapters/events/*`
123
+ - `dbt/adapters/exceptions/*`
@@ -1,9 +1,9 @@
1
- dbt/adapters/__about__.py,sha256=jgA5fU_XZ5Gv-NyYGvOeyOvgy8rP58A_XiIlWHtvbZo,19
1
+ dbt/adapters/__about__.py,sha256=agg_op6gz96b723nzm4iSb1-8OF6yhKD2BiP8VOINwE,19
2
2
  dbt/adapters/__init__.py,sha256=3noHsg-64qI0_Pw6OR9F7l1vU2_qrJvinq8POTtuaZM,252
3
3
  dbt/adapters/cache.py,sha256=WGy4ewnz-J13LverTACBW2iFhGswrWLgm-wiBrQnMzo,20084
4
4
  dbt/adapters/capability.py,sha256=M3FkC9veKnNB7a7uQyl7EHX_AGNXPChbHAkcY4cgXCY,2534
5
5
  dbt/adapters/factory.py,sha256=9N-LjTnyqBKqK7KARjJdAPdQIRXQbVRfd2cBNDtU4Dc,9378
6
- dbt/adapters/protocol.py,sha256=qRsEFAKjUMVnoBspAiCUTICez1ckson-dFS04dTXSco,3818
6
+ dbt/adapters/protocol.py,sha256=4Em-TrGOlA7r8vcrKe7BtdIHKjVowWvZQRNisTu9Z8I,3796
7
7
  dbt/adapters/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
8
  dbt/adapters/reference_keys.py,sha256=lRN3gPdQD6Qciy-BAGx_rz3CFlbS7zMSZ43pZ_9ondE,1046
9
9
  dbt/adapters/utils.py,sha256=OtakbxPgxwrxN5Yd2vAO-cvLETSgzBwMWebhgegAVyA,2414
@@ -11,21 +11,25 @@ dbt/adapters/base/README.md,sha256=muHQntC07Lh6L1XfVgwKhV5RltOPBLYPdQqd8_7l34c,5
11
11
  dbt/adapters/base/__init__.py,sha256=Nc8lQVkOzAqdcxk4cw4E_raxN9CAWMwhQx4STdiicxg,456
12
12
  dbt/adapters/base/column.py,sha256=Uj20UixoxCn2rlv4QDNONyys6CDkDFyG3anCXKf0T2c,5350
13
13
  dbt/adapters/base/connections.py,sha256=-C5dOwGgMKH8n_v6wjwOxV7chBdS0GjOGwNQCUbhhWc,16951
14
- dbt/adapters/base/impl.py,sha256=bzwmhB_M5SaYNKjUuS6ELzIjIxFNwOdmM85t7_V1B0Y,74919
15
- dbt/adapters/base/meta.py,sha256=IKqviGf7gK_qGtrn0t8NaSdUaw8g_M8SjICacMvNwGY,5702
14
+ dbt/adapters/base/impl.py,sha256=OEHbj51pTMpQUJn7HV0aKafi3t5v3k2JCrZfzYcH4kM,77950
15
+ dbt/adapters/base/meta.py,sha256=c5j0qeGec1cAi-IlVV_JkhMk01p5XqbtGj02uxGP1S4,5686
16
16
  dbt/adapters/base/plugin.py,sha256=rm0GjNHnWM2mn0GJOjciZLwn-02xlzWCoMT9u-epwP0,1076
17
17
  dbt/adapters/base/query_headers.py,sha256=UluGd9IYCYkoMiDi5Yx_lnrCOSjWppjwRro4SIGgx8I,3496
18
- dbt/adapters/base/relation.py,sha256=LgluQrBxbkd3OvLCxFxds3UspuOMkBn6INv5FUlxGjQ,18924
18
+ dbt/adapters/base/relation.py,sha256=G7fKOLFkwjpfL3JUu6Vyh6FzlBCPhmQvmCSiCaePqNI,19185
19
+ dbt/adapters/catalogs/__init__.py,sha256=36a8CHPbTSUuq2FglM2TD6LaePEnSgIVkJuRm-3BeU0,351
20
+ dbt/adapters/catalogs/_client.py,sha256=T3c0YSBBM6tD4bX1XmqVQowIsQsUkkrBZT_0QoB2uzM,2111
21
+ dbt/adapters/catalogs/_exceptions.py,sha256=tPYk1-4n73GnY-a42wer0CJ9eyV4XEc28LrjvRp_r50,1129
22
+ dbt/adapters/catalogs/_integration.py,sha256=tjVGLD_6ySrKDaTFzf1NfpFbkzpHxtxkHLDmnWOE7T8,4492
19
23
  dbt/adapters/clients/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
24
  dbt/adapters/clients/jinja.py,sha256=NsZOiBpOLunS46hRL5OcX1MpY3Ih6_87Vgz4qd_PNbc,768
21
25
  dbt/adapters/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
- dbt/adapters/contracts/connection.py,sha256=CAKHn6zb5LJCxbtPoGJYOC0s2iV9_wX6RDO3mxL98jM,6933
26
+ dbt/adapters/contracts/connection.py,sha256=35mErirojY6Au63wjFgQokk_x7JWHjPUa6hiXjDEs0k,6917
23
27
  dbt/adapters/contracts/macros.py,sha256=NYVDi5ww7v4ksKBwF836TXE-2xU4IBaUINqvxMY-ieU,366
24
- dbt/adapters/contracts/relation.py,sha256=H_IYxRtg9LV8kYAfAiWeQAf-2ByMRN-EkfxHim-7AJE,4731
28
+ dbt/adapters/contracts/relation.py,sha256=uzeR91ixvWky32feBtKAIKCenmC5px6uXN6qY7mZZHg,4763
25
29
  dbt/adapters/events/README.md,sha256=kVUFIsDQrHTUmk9Mmu-yXYkWh4pA5MJK_H6739rQr5I,3521
26
30
  dbt/adapters/events/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
- dbt/adapters/events/adapter_types.proto,sha256=Cjs_XEZFGlKDj_dGbtjSUcAuXm6jRBRMnZEXHCQd5-I,9673
28
- dbt/adapters/events/adapter_types_pb2.py,sha256=CvkiYSbT6WKOKJgzgDBBbWta-LE4TChnNn26I9r2cbw,26808
31
+ dbt/adapters/events/adapter_types.proto,sha256=0vrNE_BYl0DO6UU-AvjSCylmrtQVBdqQoXeYyChzqmI,9704
32
+ dbt/adapters/events/adapter_types_pb2.py,sha256=uEf5Pl6Dp_s9W-ja8clwEQg9iLloLu0EqsbambYVIes,26849
29
33
  dbt/adapters/events/base_types.py,sha256=sTlNRl15GaRIrIDVxalf7sK08dfo3Ol1Ua2jbFO7-7c,966
30
34
  dbt/adapters/events/logging.py,sha256=1nRFswQubgUrVHL5DB9ewBtbEv1-OcIXC7mMmu3NOaM,2350
31
35
  dbt/adapters/events/types.py,sha256=nW7_FgrEmWlM-HWPHrYcJ5K5QLZtfspLizyqlXrJaoE,12189
@@ -36,7 +40,9 @@ dbt/adapters/exceptions/compilation.py,sha256=2QsAX-z_1K4q8jGtvbC1JM6dEh7lyOF7rT
36
40
  dbt/adapters/exceptions/connection.py,sha256=x82j2Ix242Slm6Ima8Tol3GLOB9yZYH5lq6IV1WKq54,445
37
41
  dbt/adapters/exceptions/database.py,sha256=nIXJdQyPQOZaiKvCkQ3MoKlKOiaN58rtDZflw3CSkug,1618
38
42
  dbt/adapters/record/__init__.py,sha256=u_0eJzN5RL90oL-RNoP2wWGMCGp0kG0lZ0uVWnnGdxs,123
39
- dbt/adapters/record/handle.py,sha256=mDsaNHZkUZMaLSg6QHSE11dbTrSLtfg9GRMcw2c2KAI,1011
43
+ dbt/adapters/record/base.py,sha256=oqBeddunk9bAyNZBC2pWQohYtD6_ju_tf_74I6NAN04,4277
44
+ dbt/adapters/record/handle.py,sha256=95yR-tALNXVfOhhfCEOvfwDeHI7PwuT2Wr_knw5PXyw,1352
45
+ dbt/adapters/record/serialization.py,sha256=ehcLioi4J7TujP58fMNGcePuMxx-2G4Dj1KoYm6j6FU,756
40
46
  dbt/adapters/record/cursor/cursor.py,sha256=rhk50XhOAWa4r1POSrb4-TX6MjJ-mwZfDsADxI41NYk,2412
41
47
  dbt/adapters/record/cursor/description.py,sha256=5LNebP2AF2aicPWfM9FsD5r7SAmdac8TX_4NZfJQgPk,1060
42
48
  dbt/adapters/record/cursor/execute.py,sha256=Y9HUVteOFbDtJJjZPQLny8UgKSs2OgNa19FS7w1bGRE,495
@@ -46,12 +52,12 @@ dbt/adapters/record/cursor/fetchone.py,sha256=IKtzTMQjSeK3g0svtWMXLx_7OGx6HpbPh1
46
52
  dbt/adapters/record/cursor/rowcount.py,sha256=BuiRd_JpQTPN3YaGACfsXe1vmsvO4c49kCpIBZoG6hE,515
47
53
  dbt/adapters/relation_configs/README.md,sha256=VVeqMLbBWsBVNXHa9GLKLBN25Ivc8y78GR-6OB2tf4U,1809
48
54
  dbt/adapters/relation_configs/__init__.py,sha256=Il1HHEI8HJGHEi2B8qsgv_CoNA2STO7SULDi78fQwZg,354
49
- dbt/adapters/relation_configs/config_base.py,sha256=IK9oKf9TuOTLIiKX8ms_X-p4yxZvPAlM7qg94mozvrA,1756
55
+ dbt/adapters/relation_configs/config_base.py,sha256=CAsnpbNSlwMgy47oQ_Iv-hRu6mObsMZY-l6T3DG-VIo,1740
50
56
  dbt/adapters/relation_configs/config_change.py,sha256=hf6fDWbZpKvZdM6z-OtY-GveipzfLRR_dsUZmYmXkdk,713
51
57
  dbt/adapters/relation_configs/config_validation.py,sha256=wlJUMwOEPhYFch-LRtEWfLNJMq8jL1tRhOUHmNX8nFw,1978
52
58
  dbt/adapters/sql/__init__.py,sha256=WLWZJfqc8pr1N1BMVe9gM-KQ4URJIeKfLqTuJBD1VN0,107
53
- dbt/adapters/sql/connections.py,sha256=XDmzgQ6uoTIdQNJrEsdjmaOuAZYTvaMzH03ZJueKMy8,8422
54
- dbt/adapters/sql/impl.py,sha256=HmH3eC-qVeCAAukjEOnUNZbH-UK32X-NL4kwb_EHzs0,10763
59
+ dbt/adapters/sql/connections.py,sha256=JEMvgOW167je6J33Xj_Q605cB-9gDNOmCo3zdAnWiI8,8424
60
+ dbt/adapters/sql/impl.py,sha256=dhpvlxc3mZWdcP42xMzW8_nM2zJGMMt1_hLUUfXx3Dw,10944
55
61
  dbt/include/__init__.py,sha256=qEFeq3yuf3lQKVseALmL8aPM8fpCS54B_5pry00M3hk,76
56
62
  dbt/include/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
63
  dbt/include/global_project/__init__.py,sha256=-0HL5OkeJSrxglm1Y-UltTiBPY2BbWx8ZpTiJ7ypSvw,73
@@ -88,7 +94,7 @@ dbt/include/global_project/macros/materializations/models/clone/create_or_replac
88
94
  dbt/include/global_project/macros/materializations/models/incremental/column_helpers.sql,sha256=hslQlGKW0oW97srfugsFVRR-L6RrzRcnwr3uLhzI0X4,2577
89
95
  dbt/include/global_project/macros/materializations/models/incremental/incremental.sql,sha256=8gyBXan-saJ9GTSa8d05vMa-RSwyZ7pStOeHJpHU4BI,4374
90
96
  dbt/include/global_project/macros/materializations/models/incremental/is_incremental.sql,sha256=Sm1TqOeqcCQofj3REFcA97yukPB1J_mClDd55r5GewE,478
91
- dbt/include/global_project/macros/materializations/models/incremental/merge.sql,sha256=STmUSjqR253tq5FcDvFeCPPch4oN2UVi4dxoyFFAq5c,5426
97
+ dbt/include/global_project/macros/materializations/models/incremental/merge.sql,sha256=slUOJSR6FzbQa3S6qbyxg-2OqyhI-SHZoT6a1T90dAk,4796
92
98
  dbt/include/global_project/macros/materializations/models/incremental/on_schema_change.sql,sha256=EOgcrYhwOGVPnyaBu7kIfe8LTOYVOu-AhxMtBs8ETpQ,4927
93
99
  dbt/include/global_project/macros/materializations/models/incremental/strategies.sql,sha256=ORGWiYfj-b3_VIps9FDlyx-Q4A2hZzX2aYLocW8b6pU,2613
94
100
  dbt/include/global_project/macros/materializations/seeds/helpers.sql,sha256=Y15ej-D3gm1ExIOMNT208q43gRk8d985WQBuGSooNL0,3920
@@ -101,7 +107,7 @@ dbt/include/global_project/macros/materializations/tests/helpers.sql,sha256=rxUx
101
107
  dbt/include/global_project/macros/materializations/tests/test.sql,sha256=Rz3O_3dWHlIofG3d2CwsP2bXFimRZUIwOevyB0iz1J4,1831
102
108
  dbt/include/global_project/macros/materializations/tests/unit.sql,sha256=KonePuFfwcz5uJ-JW0CrEy8_q-Gl45fonngGmFvQcNU,1252
103
109
  dbt/include/global_project/macros/materializations/tests/where_subquery.sql,sha256=xjuYd18tXo99OReJGQsfgEPYljUUyF00XzK4h0SJjdM,497
104
- dbt/include/global_project/macros/python_model/python.sql,sha256=OKy-IwnklJPXfjXinVwlS9_enmXKQWoibnLOZRNR28U,3466
110
+ dbt/include/global_project/macros/python_model/python.sql,sha256=V2j8MLlq3I01IWdRMrDA1J2Di2z_pHV4YYSMOa-WCVA,3475
105
111
  dbt/include/global_project/macros/relations/create.sql,sha256=99LLak1bhlhRw7yiI0c_4CKPlGyzqPBeBYBNeBPSmDo,701
106
112
  dbt/include/global_project/macros/relations/create_backup.sql,sha256=jAWJSw3BUxvYrjgBs3JkRJN_VHXtk05lMWPM4n-toWs,524
107
113
  dbt/include/global_project/macros/relations/create_intermediate.sql,sha256=bgPogZqRykUrdRxo_kvoKLrJ9C2x1c_TvtUZlYwUfmQ,568
@@ -157,7 +163,7 @@ dbt/include/global_project/macros/utils/right.sql,sha256=EwNG98CAFIwNDmarwopf7Rk
157
163
  dbt/include/global_project/macros/utils/safe_cast.sql,sha256=1mswwkDACmIi1I99JKb_-vq3kjMe4HhMRV70mW8Bt4Y,298
158
164
  dbt/include/global_project/macros/utils/split_part.sql,sha256=fXEIS0oIiYR7-4lYbb0QbZdG-q2TpV63AFd1ky4I5UM,714
159
165
  dbt/include/global_project/tests/generic/builtin.sql,sha256=p94xdyPwb2TlxgLBqCfrcRfJ1QNgsjPvBm8f0Q5eqZM,1022
160
- dbt_adapters-1.14.0.dist-info/METADATA,sha256=ejgZ1h7Wc-mKL7ytZ-a1HWUlFG5rDLAxnuwDEftrikA,2638
161
- dbt_adapters-1.14.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
162
- dbt_adapters-1.14.0.dist-info/licenses/LICENSE,sha256=9yjigiJhWcCZvQjdagGKDwrRph58QWc5P2bVSQwXo6s,11344
163
- dbt_adapters-1.14.0.dist-info/RECORD,,
166
+ dbt_adapters-1.14.3.dist-info/METADATA,sha256=ecRsTmWChdgwOvuT8CfCIWVrXcyhRtCh66uuSebnmtE,4494
167
+ dbt_adapters-1.14.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
168
+ dbt_adapters-1.14.3.dist-info/licenses/LICENSE,sha256=9yjigiJhWcCZvQjdagGKDwrRph58QWc5P2bVSQwXo6s,11344
169
+ dbt_adapters-1.14.3.dist-info/RECORD,,
@@ -1,76 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: dbt-adapters
3
- Version: 1.14.0
4
- Summary: The set of adapter protocols and base functionality that supports integration with dbt-core
5
- Project-URL: Homepage, https://github.com/dbt-labs/dbt-adapters/tree/main/dbt-adapters
6
- Project-URL: Documentation, https://docs.getdbt.com
7
- Project-URL: Repository, https://github.com/dbt-labs/dbt-adapters.git#subdirectory=dbt-adapters
8
- Project-URL: Issues, https://github.com/dbt-labs/dbt-adapters/issues
9
- Project-URL: Changelog, https://github.com/dbt-labs/dbt-adapters/blob/main/dbt-adapters/CHANGELOG.md
10
- Author-email: dbt Labs <info@dbtlabs.com>
11
- Maintainer-email: dbt Labs <info@dbtlabs.com>
12
- License-File: LICENSE
13
- Keywords: adapter,adapters,database,dbt,dbt Cloud,dbt Core,dbt Labs,dbt-core,elt
14
- Classifier: Development Status :: 5 - Production/Stable
15
- Classifier: License :: OSI Approved :: Apache Software License
16
- Classifier: Operating System :: MacOS :: MacOS X
17
- Classifier: Operating System :: Microsoft :: Windows
18
- Classifier: Operating System :: POSIX :: Linux
19
- Classifier: Programming Language :: Python :: 3.9
20
- Classifier: Programming Language :: Python :: 3.10
21
- Classifier: Programming Language :: Python :: 3.11
22
- Classifier: Programming Language :: Python :: 3.12
23
- Requires-Python: >=3.9.0
24
- Requires-Dist: agate<2.0,>=1.0
25
- Requires-Dist: dbt-common<2.0,>=1.13
26
- Requires-Dist: mashumaro[msgpack]<3.15,>=3.9
27
- Requires-Dist: protobuf<6.0,>=5.0
28
- Requires-Dist: pytz>=2015.7
29
- Requires-Dist: typing-extensions<5.0,>=4.0
30
- Description-Content-Type: text/markdown
31
-
32
- <p align="center">
33
- <img src="https://raw.githubusercontent.com/dbt-labs/dbt/ec7dee39f793aa4f7dd3dae37282cc87664813e4/etc/dbt-logo-full.svg" alt="dbt logo" width="500"/>
34
- </p>
35
-
36
- # dbt-adapters
37
-
38
- This package is responsible for:
39
-
40
- - defining database connection methods
41
- - caching information from databases
42
- - determining how relations are defined
43
-
44
- In this repo there is also our testing suite used for tesing adapter functionality
45
-
46
- # Adapters
47
-
48
- There are two major adapter types: base and sql
49
-
50
- ## `base`
51
-
52
- Defines the base implementation Adapters can use to build out full functionality.
53
-
54
- ## `sql`
55
-
56
- Defines a sql implementation for adapters that initially inherits the base implementation
57
- and comes with some pre-made methods and macros that can be overwritten as needed per adapter.
58
- (most common type of adapter.)
59
-
60
- # Files
61
-
62
- ## `cache.py`
63
-
64
- Cached information from the database.
65
-
66
- ## `factory.py`
67
-
68
- Defines how we generate adapter objects
69
-
70
- ## `protocol.py`
71
-
72
- Defines various interfaces for various adapter objects. Helps mypy correctly resolve methods.
73
-
74
- ## `reference_keys.py`
75
-
76
- Configures naming scheme for cache elements to be universal.