dbt-common 1.11.0__tar.gz → 1.13.0__tar.gz

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 (107) hide show
  1. dbt_common-1.13.0/CHANGELOG.md +132 -0
  2. {dbt_common-1.11.0 → dbt_common-1.13.0}/PKG-INFO +5 -7
  3. dbt_common-1.13.0/dbt_common/__about__.py +1 -0
  4. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/behavior_flags.py +1 -1
  5. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/clients/_jinja_blocks.py +41 -2
  6. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/events/base_types.py +5 -2
  7. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/events/functions.py +1 -1
  8. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/events/logger.py +2 -2
  9. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/events/types_pb2.py +14 -4
  10. {dbt_common-1.11.0 → dbt_common-1.13.0}/pyproject.toml +3 -4
  11. dbt_common-1.11.0/CHANGELOG.md +0 -9
  12. dbt_common-1.11.0/dbt_common/__about__.py +0 -1
  13. {dbt_common-1.11.0 → dbt_common-1.13.0}/.gitignore +0 -0
  14. {dbt_common-1.11.0 → dbt_common-1.13.0}/LICENSE +0 -0
  15. {dbt_common-1.11.0 → dbt_common-1.13.0}/README.md +0 -0
  16. {dbt_common-1.11.0 → dbt_common-1.13.0}/codecov.yml +0 -0
  17. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/__init__.py +0 -0
  18. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/clients/__init__.py +0 -0
  19. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/clients/agate_helper.py +0 -0
  20. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/clients/jinja.py +0 -0
  21. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/clients/system.py +0 -0
  22. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/constants.py +0 -0
  23. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/context.py +0 -0
  24. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/contracts/__init__.py +0 -0
  25. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/contracts/config/__init__.py +0 -0
  26. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/contracts/config/base.py +0 -0
  27. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/contracts/config/materialization.py +0 -0
  28. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/contracts/config/metadata.py +0 -0
  29. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/contracts/config/properties.py +0 -0
  30. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/contracts/constraints.py +0 -0
  31. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/contracts/metadata.py +0 -0
  32. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/contracts/util.py +0 -0
  33. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/dataclass_schema.py +0 -0
  34. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/events/README.md +0 -0
  35. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/events/__init__.py +0 -0
  36. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/events/contextvars.py +0 -0
  37. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/events/event_handler.py +0 -0
  38. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/events/event_manager.py +0 -0
  39. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/events/event_manager_client.py +0 -0
  40. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/events/format.py +0 -0
  41. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/events/helpers.py +0 -0
  42. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/events/interfaces.py +0 -0
  43. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/events/types.proto +0 -0
  44. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/events/types.py +0 -0
  45. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/exceptions/__init__.py +0 -0
  46. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/exceptions/base.py +0 -0
  47. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/exceptions/cache.py +0 -0
  48. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/exceptions/connection.py +0 -0
  49. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/exceptions/contracts.py +0 -0
  50. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/exceptions/events.py +0 -0
  51. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/exceptions/jinja.py +0 -0
  52. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/exceptions/macros.py +0 -0
  53. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/exceptions/system.py +0 -0
  54. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/helper_types.py +0 -0
  55. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/invocation.py +0 -0
  56. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/py.typed +0 -0
  57. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/record.py +0 -0
  58. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/semver.py +0 -0
  59. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/tests.py +0 -0
  60. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/ui.py +0 -0
  61. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/utils/__init__.py +0 -0
  62. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/utils/casting.py +0 -0
  63. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/utils/connection.py +0 -0
  64. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/utils/dict.py +0 -0
  65. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/utils/encoding.py +0 -0
  66. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/utils/executor.py +0 -0
  67. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/utils/formatting.py +0 -0
  68. {dbt_common-1.11.0 → dbt_common-1.13.0}/dbt_common/utils/jinja.py +0 -0
  69. {dbt_common-1.11.0 → dbt_common-1.13.0}/docs/README.md +0 -0
  70. {dbt_common-1.11.0 → dbt_common-1.13.0}/docs/arch/adr-0001-build-tooling.md +0 -0
  71. {dbt_common-1.11.0 → dbt_common-1.13.0}/docs/guides/record_replay.md +0 -0
  72. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/agate/__init__.pyi +0 -0
  73. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/agate/data_types.pyi +0 -0
  74. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/colorama/__init__.pyi +0 -0
  75. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/isodate/__init__.pyi +0 -0
  76. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/__init__.pyi +0 -0
  77. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/config.pyi +0 -0
  78. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/core/__init__.pyi +0 -0
  79. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/core/const.pyi +0 -0
  80. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/core/helpers.pyi +0 -0
  81. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/core/meta/__init__.pyi +0 -0
  82. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/core/meta/code/__init__.pyi +0 -0
  83. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/core/meta/code/builder.pyi +0 -0
  84. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/core/meta/code/lines.pyi +0 -0
  85. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/core/meta/helpers.pyi +0 -0
  86. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/core/meta/mixin.pyi +0 -0
  87. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/core/meta/types/__init__.pyi +0 -0
  88. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/core/meta/types/common.pyi +0 -0
  89. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/core/meta/types/pack.pyi +0 -0
  90. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/core/meta/types/unpack.pyi +0 -0
  91. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/dialect.pyi +0 -0
  92. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/exceptions.pyi +0 -0
  93. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/helper.pyi +0 -0
  94. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/jsonschema/__init__.pyi +0 -0
  95. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/jsonschema/annotations.pyi +0 -0
  96. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/jsonschema/builder.pyi +0 -0
  97. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/jsonschema/dialects.pyi +0 -0
  98. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/jsonschema/models.pyi +0 -0
  99. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/jsonschema/schema.pyi +0 -0
  100. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/mixins/__init__.pyi +0 -0
  101. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/mixins/dict.pyi +0 -0
  102. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/mixins/json.pyi +0 -0
  103. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/mixins/msgpack.pyi +0 -0
  104. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/mixins/orjson.pyi +0 -0
  105. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/mixins/toml.pyi +0 -0
  106. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/mixins/yaml.pyi +0 -0
  107. {dbt_common-1.11.0 → dbt_common-1.13.0}/third-party-stubs/mashumaro/types.pyi +0 -0
@@ -0,0 +1,132 @@
1
+ # dbt-common Changelog
2
+
3
+ - This file provides a full account of all changes to `dbt-common`
4
+ - Changes are listed under the (pre)release in which they first appear. Subsequent releases include changes from previous releases.
5
+ - "Breaking changes" listed under a version may require action from end users or external maintainers when upgrading to that version.
6
+ - Do not edit this file directly. This file is auto-generated using [changie](https://github.com/miniscruff/changie). For details on how to document a change, see [the contributing guide](https://github.com/dbt-labs/dbt-common/blob/main/CONTRIBUTING.md#adding-changelog-entry)
7
+
8
+ ## dbt-common 1.7.0 - July 30, 2024
9
+
10
+ ### Under the Hood
11
+
12
+ - Add record grouping mechanism to record/replay. ([#169](https://github.com/dbt-labs/dbt-common/issues/169))
13
+
14
+ ## dbt-common 1.6.0 - July 2, 2024
15
+
16
+ ### Features
17
+
18
+ - Add to and to_columns to ColumnLevelConstraint and ModelLevelConstraint contracts ([#168](https://github.com/dbt-labs/dbt-common/issues/168))
19
+
20
+ ### Fixes
21
+
22
+ - Fix case-insensitive env vars for Windows ([#166](https://github.com/dbt-labs/dbt-common/issues/166))
23
+
24
+ ## dbt-common 1.4.0 - June 18, 2024
25
+
26
+ ### Under the Hood
27
+
28
+ - Add support for basic diff of run recordings. ([#144](https://github.com/dbt-labs/dbt-common/issues/144))
29
+ - Deserialize Record objects on a just-in-time basis. ([#151](https://github.com/dbt-labs/dbt-common/issues/151))
30
+
31
+ ## dbt-common 1.3.0 - June 5, 2024
32
+
33
+ ### Under the Hood
34
+
35
+ - Move CatalogKey, ColumnMetadata, ColumnMap, CatalogTable to dbt-common ([#147](https://github.com/dbt-labs/dbt-common/issues/147))
36
+
37
+ ## dbt-common 1.2.0 - May 29, 2024
38
+
39
+ ### Under the Hood
40
+
41
+ - Allow dynamic selection of record types when recording. ([#140](https://github.com/dbt-labs/dbt-common/issues/140))
42
+ - Move StatsItem, StatsDict, TableMetadata to dbt-common ([#141](https://github.com/dbt-labs/dbt-common/issues/141))
43
+
44
+ ## dbt-common 1.1.0 - May 21, 2024
45
+
46
+ ### Features
47
+
48
+ - Support adding callbacks to the event manager ([#131](https://github.com/dbt-labs/dbt-common/issues/131))
49
+ - Add a print event to support firing event to console in --quiet mode ([#8756](https://github.com/dbt-labs/dbt-common/issues/8756))
50
+
51
+ ## dbt-common 1.0.4 - May 7, 2024
52
+
53
+ ### Features
54
+
55
+ - Enable serialization contexts ([#126](https://github.com/dbt-labs/dbt-common/issues/126))
56
+
57
+ ## dbt-common 1.0.3 - May 1, 2024
58
+
59
+ ### Dependencies
60
+
61
+ - Pin agate `>=1.7.0,<1.10` ([#119](https://github.com/dbt-labs/dbt-common/pull/119))
62
+ - update pathspec upper version limitation ([#120](https://github.com/dbt-labs/dbt-common/pull/120))
63
+
64
+ ## dbt-common 1.0.2 - April 24, 2024
65
+
66
+ ### Features
67
+
68
+ - Add ability to silence warnings via `WarnErrorOptions` ([#111](https://github.com/dbt-labs/dbt-common/issues/111))
69
+
70
+ ### Under the Hood
71
+
72
+ - Remove the final underscore from secret and private environment variable constants. ([#109](https://github.com/dbt-labs/dbt-common/issues/109))
73
+
74
+ ## dbt-common 1.0.1 - April 12, 2024
75
+
76
+ ### Features
77
+
78
+ - Support environment variables which dbt can see but user code cannot. ([#103](https://github.com/dbt-labs/dbt-common/issues/103))
79
+ - Add `error_tag` util to the `ui` module ([#107](https://github.com/dbt-labs/dbt-common/issues/107))
80
+
81
+ ## dbt-common 1.0.0 - April 1, 2024
82
+
83
+ ### Under the Hood
84
+
85
+ - Implement record/replay mechanism ([#9689](https://github.com/dbt-labs/dbt-common/issues/9689))
86
+ - Stream JSON on read/write instead of holding it in memory ([#96](https://github.com/dbt-labs/dbt-common/issues/96))
87
+ - Improve startup performance by lazy-compiling mashumaro serialization functions ([#97](https://github.com/dbt-labs/dbt-common/issues/97))
88
+
89
+ ## dbt-common 0.1.6 - February 22, 2024
90
+
91
+ ### Fixes
92
+
93
+ - Fix the unset_contextvars function in events/contextvars.py ([#82](https://github.com/dbt-labs/dbt-common/issues/82))
94
+
95
+ ### Under the Hood
96
+
97
+ - Restrict protobuf library to major version 4. ([#9566](https://github.com/dbt-labs/dbt-common/issues/9566))
98
+
99
+ ## dbt-common 0.1.65- February 8, 2024
100
+
101
+ ### Under the Hood
102
+
103
+ - Add Invocation Context Support to MultiThreadedExecutor ([#75](https://github.com/dbt-labs/dbt-common/issues/75))
104
+
105
+ ## dbt-common 0.1.4 - February 7, 2024
106
+
107
+ ### Fixes
108
+
109
+ - Make invocation contexts more reliable in testing scenarios. ([#52](https://github.com/dbt-labs/dbt-common/issues/52))
110
+
111
+ ### Under the Hood
112
+
113
+ - Remove `fire_event_if_test` method ([#66](https://github.com/dbt-labs/dbt-common/issues/66))
114
+
115
+ ## dbt-common 0.1.3 - February 1, 2024
116
+
117
+ ### Features
118
+
119
+ - Cache static objects between tests to accelerate integration runs. ([#55](https://github.com/dbt-labs/dbt-common/issues/55))
120
+ - Added a new InvocationContext class for application context management. ([#57](https://github.com/dbt-labs/dbt-common/issues/57))
121
+ - Add dataclass utility `Mergeable` ([#58](https://github.com/dbt-labs/dbt-common/issues/58))
122
+
123
+ ## dbt-common 0.1.1 - January 26, 2024
124
+
125
+ ### Under the Hood
126
+
127
+ - Clean up macro contexts. ([#35](https://github.com/dbt-labs/dbt-common/issues/35))
128
+ - Change metadata_vars \`if not\` to \`if ... is None\` ([#6073](https://github.com/dbt-labs/dbt-common/issues/6073))
129
+ - Inject TagIterator into BlockIterator for greater flexibility. ([#38](https://github.com/dbt-labs/dbt-common/issues/38))
130
+
131
+ ### Contributors
132
+ - [@truls-p](https://github.com/truls-p) ([#6073](https://github.com/dbt-labs/dbt-common/issues/6073))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: dbt-common
3
- Version: 1.11.0
3
+ Version: 1.13.0
4
4
  Summary: The shared common utilities that dbt-core and adapter implementations use
5
5
  Project-URL: Homepage, https://github.com/dbt-labs/dbt-common
6
6
  Project-URL: Repository, https://github.com/dbt-labs/dbt-common.git
@@ -8,22 +8,20 @@ Project-URL: Issues, https://github.com/dbt-labs/dbt-common/issues
8
8
  Project-URL: Changelog, https://github.com/dbt-labs/dbt-common/blob/main/CHANGELOG.md
9
9
  Author-email: dbt Labs <info@dbtlabs.com>
10
10
  Maintainer-email: dbt Labs <info@dbtlabs.com>
11
- License-Expression: Apache-2.0
12
- License-File: LICENSE
11
+ License: Apache-2.0
13
12
  Classifier: Development Status :: 2 - Pre-Alpha
14
13
  Classifier: License :: OSI Approved :: Apache Software License
15
14
  Classifier: Operating System :: MacOS :: MacOS X
16
15
  Classifier: Operating System :: Microsoft :: Windows
17
16
  Classifier: Operating System :: POSIX :: Linux
18
17
  Classifier: Programming Language :: Python
19
- Classifier: Programming Language :: Python :: 3.8
20
18
  Classifier: Programming Language :: Python :: 3.9
21
19
  Classifier: Programming Language :: Python :: 3.10
22
20
  Classifier: Programming Language :: Python :: 3.11
23
21
  Classifier: Programming Language :: Python :: 3.12
24
22
  Classifier: Programming Language :: Python :: Implementation :: CPython
25
23
  Classifier: Programming Language :: Python :: Implementation :: PyPy
26
- Requires-Python: >=3.8
24
+ Requires-Python: >=3.9
27
25
  Requires-Dist: agate<1.10,>=1.7.0
28
26
  Requires-Dist: colorama<0.5,>=0.3.9
29
27
  Requires-Dist: deepdiff<8.0,>=7.0
@@ -32,7 +30,7 @@ Requires-Dist: jinja2<4,>=3.1.3
32
30
  Requires-Dist: jsonschema<5.0,>=4.0
33
31
  Requires-Dist: mashumaro[msgpack]<4.0,>=3.9
34
32
  Requires-Dist: pathspec<0.13,>=0.9
35
- Requires-Dist: protobuf<5.0.0,>=4.0.0
33
+ Requires-Dist: protobuf<6.0,>=5.0
36
34
  Requires-Dist: python-dateutil<3.0,>=2.0
37
35
  Requires-Dist: requests<3.0.0
38
36
  Requires-Dist: typing-extensions<5.0,>=4.4
@@ -49,7 +47,7 @@ Requires-Dist: mypy<2.0,>=1.3; extra == 'lint'
49
47
  Requires-Dist: pytest<8.0,>=7.3; extra == 'lint'
50
48
  Requires-Dist: types-jinja2<3.0,>=2.11; extra == 'lint'
51
49
  Requires-Dist: types-jsonschema<5.0,>=4.17; extra == 'lint'
52
- Requires-Dist: types-protobuf<5.0,>=4.24; extra == 'lint'
50
+ Requires-Dist: types-protobuf<6.0,>=5.0; extra == 'lint'
53
51
  Requires-Dist: types-python-dateutil<3.0,>=2.8; extra == 'lint'
54
52
  Requires-Dist: types-pyyaml<7.0,>=6.0; extra == 'lint'
55
53
  Requires-Dist: types-requests; extra == 'lint'
@@ -0,0 +1 @@
1
+ version = "1.13.0"
@@ -139,4 +139,4 @@ class Behavior:
139
139
  for flag in self._flags:
140
140
  if flag.name == name:
141
141
  return flag
142
- raise CompilationError(f"The flag {name} has not be registered.")
142
+ raise CompilationError(f"The flag {name} has not been registered.")
@@ -1,6 +1,7 @@
1
+ import dataclasses
1
2
  import re
2
3
  from collections import namedtuple
3
- from typing import Iterator, List, Optional, Set, Union
4
+ from typing import Dict, Iterator, List, Optional, Set, Union
4
5
 
5
6
  from dbt_common.exceptions import (
6
7
  BlockDefinitionNotAtTopError,
@@ -104,11 +105,25 @@ STRING_PATTERN = regex(r"(?P<string>('([^'\\]*(?:\\.[^'\\]*)*)'|" r'"([^"\\]*(?:
104
105
  QUOTE_START_PATTERN = regex(r"""(?P<quote>(['"]))""")
105
106
 
106
107
 
108
+ @dataclasses.dataclass
109
+ class PositionedMatch:
110
+ """This class is used to cache search information, accelerating TagIterator.
111
+ It records the result of searching a string from the start_pos and also
112
+ the position of the first match, or None if there is no match."""
113
+
114
+ start_pos: int
115
+ match: Optional[re.Match]
116
+
117
+
107
118
  class TagIterator:
108
119
  def __init__(self, text: str) -> None:
109
120
  self.text: str = text
110
121
  self.pos: int = 0
111
122
 
123
+ # A cache of the most recent matches seen for each pattern, maintained
124
+ # in order to avoid slowly re-searching long inputs many times.
125
+ self._past_matches: Dict[re.Pattern, PositionedMatch] = {}
126
+
112
127
  def linepos(self, end: Optional[int] = None) -> str:
113
128
  """Return relative position in line.
114
129
 
@@ -130,7 +145,31 @@ class TagIterator:
130
145
  self.pos -= amount
131
146
 
132
147
  def _search(self, pattern: re.Pattern) -> Optional[re.Match]:
133
- return pattern.search(self.text, self.pos)
148
+ # Check to see if we have cached a search for this pattern already.
149
+ positioned_match = self._past_matches.get(pattern)
150
+
151
+ if positioned_match is None or positioned_match.start_pos > self.pos:
152
+ # We did not have a cached search, or we did, but it was done at a location
153
+ # further along in the string and can't be used. Do a search and cache it.
154
+ match = pattern.search(self.text, self.pos)
155
+ self._past_matches[pattern] = PositionedMatch(self.pos, match)
156
+ else:
157
+ # We have a cached search and its start position falls before (or at) the
158
+ # current search position...
159
+ if positioned_match.match is None:
160
+ # ...but there is no match in the rest of the text.
161
+ match = None
162
+ elif positioned_match.match.start() >= self.pos:
163
+ # ...and there is a match we can reuse, because we have not yet passed
164
+ # the start position of the match. It's still the next match.
165
+ match = positioned_match.match
166
+ else:
167
+ # ...but we have passed the start of the cached match, and need to do a
168
+ # new search from our current position and cache it.
169
+ match = pattern.search(self.text, self.pos)
170
+ self._past_matches[pattern] = PositionedMatch(self.pos, match)
171
+
172
+ return match
134
173
 
135
174
  def _match(self, pattern: re.Pattern) -> Optional[re.Match]:
136
175
  return pattern.match(self.text, self.pos)
@@ -91,15 +91,18 @@ class BaseEvent:
91
91
 
92
92
  def to_dict(self):
93
93
  return MessageToDict(
94
- self.pb_msg, preserving_proto_field_name=True, including_default_value_fields=True
94
+ self.pb_msg,
95
+ preserving_proto_field_name=True,
96
+ always_print_fields_with_no_presence=True,
95
97
  )
96
98
 
97
99
  def to_json(self) -> str:
98
100
  return MessageToJson(
99
101
  self.pb_msg,
100
102
  preserving_proto_field_name=True,
101
- including_default_value_fields=True,
103
+ always_print_fields_with_no_presence=True,
102
104
  indent=None,
105
+ sort_keys=True,
103
106
  )
104
107
 
105
108
  def level_tag(self) -> EventLevel:
@@ -97,7 +97,7 @@ def msg_to_dict(msg: EventMsg) -> dict:
97
97
  msg_dict = MessageToDict(
98
98
  msg,
99
99
  preserving_proto_field_name=True,
100
- including_default_value_fields=True, # type: ignore
100
+ always_print_fields_with_no_presence=True,
101
101
  )
102
102
  except Exception as exc:
103
103
  event_type = type(msg).__name__
@@ -13,11 +13,11 @@ from dbt_common.events.base_types import EventLevel, EventMsg
13
13
  from dbt_common.events.format import timestamp_to_datetime_string
14
14
  from dbt_common.utils.encoding import ForgivingJSONEncoder
15
15
 
16
- PRINT_EVENT_NAME = "PrintEvent"
16
+ PRINT_EVENT_NAMES = ("PrintEvent", "ShowNode", "CompiledNode")
17
17
 
18
18
 
19
19
  def _is_print_event(msg: EventMsg) -> bool:
20
- return msg.info.name == PRINT_EVENT_NAME
20
+ return msg.info.name in PRINT_EVENT_NAMES
21
21
 
22
22
 
23
23
  # A Filter is a function which takes a BaseEvent and returns True if the event
@@ -1,12 +1,22 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
3
4
  # source: types.proto
4
- # Protobuf Python Version: 4.25.2
5
+ # Protobuf Python Version: 5.28.3
5
6
  """Generated protocol buffer code."""
6
7
  from google.protobuf import descriptor as _descriptor
7
8
  from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
8
10
  from google.protobuf import symbol_database as _symbol_database
9
11
  from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 5,
15
+ 28,
16
+ 3,
17
+ '',
18
+ 'types.proto'
19
+ )
10
20
  # @@protoc_insertion_point(imports)
11
21
 
12
22
  _sym_db = _symbol_database.Default()
@@ -20,9 +30,9 @@ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0btypes.proto\x1
20
30
  _globals = globals()
21
31
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
22
32
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'types_pb2', _globals)
23
- if _descriptor._USE_C_DESCRIPTORS == False:
24
- DESCRIPTOR._options = None
25
- _globals['_EVENTINFO_EXTRAENTRY']._options = None
33
+ if not _descriptor._USE_C_DESCRIPTORS:
34
+ DESCRIPTOR._loaded_options = None
35
+ _globals['_EVENTINFO_EXTRAENTRY']._loaded_options = None
26
36
  _globals['_EVENTINFO_EXTRAENTRY']._serialized_options = b'8\001'
27
37
  _globals['_EVENTINFO']._serialized_start=62
28
38
  _globals['_EVENTINFO']._serialized_end=335
@@ -3,7 +3,7 @@ name = "dbt-common"
3
3
  dynamic = ["version"]
4
4
  description = "The shared common utilities that dbt-core and adapter implementations use"
5
5
  readme = "README.md"
6
- requires-python = ">=3.8"
6
+ requires-python = ">=3.9"
7
7
  license = "Apache-2.0"
8
8
  keywords = []
9
9
  authors = [
@@ -19,7 +19,6 @@ classifiers = [
19
19
  "Operating System :: Microsoft :: Windows",
20
20
  "Operating System :: POSIX :: Linux",
21
21
  "Programming Language :: Python",
22
- "Programming Language :: Python :: 3.8",
23
22
  "Programming Language :: Python :: 3.9",
24
23
  "Programming Language :: Python :: 3.10",
25
24
  "Programming Language :: Python :: 3.11",
@@ -36,7 +35,7 @@ dependencies = [
36
35
  "Jinja2>=3.1.3,<4",
37
36
  "mashumaro[msgpack]>=3.9,<4.0",
38
37
  "pathspec>=0.9,<0.13",
39
- "protobuf>=4.0.0,<5.0.0",
38
+ "protobuf>=5.0,<6.0",
40
39
  "python-dateutil>=2.0,<3.0",
41
40
  "requests<3.0.0", # needs to match dbt-core
42
41
  "typing-extensions>=4.4,<5.0",
@@ -52,7 +51,7 @@ lint = [
52
51
  "pytest>=7.3,<8.0", # needed for linting tests
53
52
  "types-Jinja2>=2.11,<3.0",
54
53
  "types-jsonschema>=4.17,<5.0",
55
- "types-protobuf>=4.24,<5.0",
54
+ "types-protobuf>=5.0,<6.0",
56
55
  "types-python-dateutil>=2.8,<3.0",
57
56
  "types-PyYAML>=6.0,<7.0",
58
57
  "types-requests"
@@ -1,9 +0,0 @@
1
- # Changelog
2
- All notable changes to this project will be documented in this file.
3
-
4
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
- adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
6
- and is generated by [Changie](https://github.com/miniscruff/changie).
7
-
8
-
9
- No releases yet, this file will be updated when generating your first release.
@@ -1 +0,0 @@
1
- version = "1.11.0"
File without changes
File without changes
File without changes
File without changes
File without changes