-
Notifications
You must be signed in to change notification settings - Fork 1.6k
/
params.py
304 lines (251 loc) · 8.81 KB
/
params.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
import click
import yaml
from pathlib import Path, PurePath
from click import ParamType
class YAML(ParamType):
"""The Click YAML type. Converts YAML strings into objects."""
name = "YAML"
def convert(self, value, param, ctx):
# assume non-string values are a problem
if not isinstance(value, str):
self.fail(f"Cannot load YAML from type {type(value)}", param, ctx)
try:
return yaml.load(value, Loader=yaml.Loader)
except yaml.parser.ParserError:
self.fail(f"String '{value}' is not valid YAML", param, ctx)
args = click.option(
"--args",
help="Supply arguments to the macro. This dictionary will be mapped to the keyword arguments defined in the selected macro. This argument should be a YAML string, eg. '{my_variable: my_value}'",
type=YAML(),
)
browser = click.option(
"--browser/--no-browser",
help="Wether or not to open a local web browser after starting the server",
default=True,
)
cache_selected_only = click.option(
"--cache-selected-only/--no-cache-selected-only",
help="Pre cache database objects relevant to selected resource only.",
default=False,
)
compile_docs = click.option(
"--compile/--no-compile",
help="Wether or not to run 'dbt compile' as part of docs generation",
default=True,
)
compile_parse = click.option(
"--compile/--no-compile",
help="TODO: No help text currently available",
default=True,
)
config_dir = click.option(
"--config-dir",
help="If specified, DBT will show path information for this project",
type=click.STRING,
)
debug = click.option(
"--debug/--no-debug",
"-d/ ",
help="Display debug logging during dbt execution. Useful for debugging and making bug reports.",
default=False,
)
defer = click.option(
"--defer/--no-defer",
help="If set, defer to the state variable for resolving unselected nodes.",
default=True,
)
event_buffer_size = click.option(
"--event-buffer-size",
help="Sets the max number of events to buffer in EVENT_HISTORY.",
default=100000,
type=click.INT,
)
exclude = click.option("--exclude", help="Specify the nodes to exclude.")
fail_fast = click.option(
"--fail-fast/--no-fail-fast", "-x/ ", help="Stop execution on first failure.", default=False
)
full_refresh = click.option(
"--full-refresh",
help="If specified, dbt will drop incremental models and fully-recalculate the incremental table from the model definition.",
is_flag=True,
)
indirect_selection = click.option(
"--indirect_selection",
help="Select all tests that are adjacent to selected resources, even if they those resources have been explicitly selected.",
type=click.Choice(["eager", "cautious"], case_sensitive=False),
default="eager",
)
log_format = click.option(
"--log-format",
help="Specify the log format, overriding the command's default.",
type=click.Choice(["text", "json", "default"], case_sensitive=False),
default="default",
)
log_path = click.option(
"--log-path",
help="Configure the 'log-path'. Only applies this setting for the current run. Overrides the 'DBT_LOG_PATH' if it is set.",
type=click.Path(),
)
models = click.option("-m", "-s", help="Specify the nodes to include.", multiple=True)
output = click.option(
"--output",
help="TODO: No current help text",
type=click.Choice(["json", "name", "path", "selector"], case_sensitive=False),
default="name",
)
ouptut_keys = click.option(
"--output-keys",
help="TODO: No current help text",
default=False,
)
output_path = click.option(
"--output",
"-o",
help="Specify the output path for the json report. By default, outputs to 'target/sources.json'",
type=click.Path(file_okay=True, dir_okay=False, writable=True),
default=PurePath.joinpath(Path.cwd(), "target/sources.json"),
)
parse_only = click.option(
"--parse-only",
help="TODO: No help text currently available",
is_flag=True,
)
partial_parse = click.option(
"--partial-parse/--no-partial-parse",
help="Allow for partial parsing by looking for and writing to a pickle file in the target directory. This overrides the user configuration file.",
default=True,
)
port = click.option(
"--port", help="Specify the port number for the docs server", default=8080, type=click.INT
)
print = click.option(
"--print/--no-print", help="Output all {{ print() }} macro calls.", default=True
)
printer_width = click.option(
"--printer_width", help="Sets the width of terminal output", type=click.INT, default=80
)
profile = click.option(
"--profile",
help="Which profile to load. Overrides setting in dbt_project.yml.",
)
profiles_dir = click.option(
"--profiles-dir",
help=f"Which directory to look in for the profiles.yml file. Default = {PurePath.joinpath(Path.home(), '.dbt')}",
default=PurePath.joinpath(Path.home(), ".dbt"),
type=click.Path(
exists=True,
),
)
project_dir = click.option(
"--project-dir",
help="Which directory to look in for the dbt_project.yml file. Default is the current working directory and its parents.",
default=Path.cwd(),
type=click.Path(exists=True),
)
quiet = click.option(
"--quiet/--no-quiet",
help="Suppress all non-error logging to stdout. Does not affect {{ print() }} macro calls.",
default=False,
)
record_timing = click.option(
"-r",
"--record-timing-info",
help="When this option is passed, dbt will output low-level timing stats to the specified file. Example: `--record-timing-info output.profile`",
is_flag=True,
default=False,
)
resource_type = click.option(
"--resource-type",
help="TODO: No current help text",
type=click.Choice(
[
"metric",
"source",
"analysis",
"model",
"test",
"exposure",
"snapshot",
"seed",
"default",
"all",
],
case_sensitive=False,
),
default="default",
)
selector = click.option("--selector", help="The selector name to use, as defined in selectors.yml")
send_anonymous_usage_stats = click.option(
"--anonymous-usage-stats/--no-anonymous-usage-stats",
help="Send anonymous usage stats to dbt Labs.",
default=True,
)
show = click.option(
"--show",
help="Show a sample of the loaded data in the terminal",
default=False,
)
skip_profile_setup = click.option(
"--skip-profile-setup",
"-s",
help="Skip interative profile setup.",
default=False,
)
state = click.option(
"--state",
help="If set, use the given directory as the source for json files to compare with this project.",
)
static_parser = click.option(
"--static-parser/--no-static-parser", help="Use the static parser.", default=True
)
store_failures = click.option(
"--store-failures", help="Store test results (failing rows) in the database", default=False
)
target = click.option("-t", "--target", help="Which target to load for the given profile")
target_path = click.option(
"--target-path",
help="Configure the 'target-path'. Only applies this setting for the current run. Overrides the 'DBT_TARGET_PATH' if it is set.",
type=click.Path(),
)
threads = click.option(
"--threads",
help="Specify number of threads to use while executing models. Overrides settings in profiles.yml.",
default=1,
type=click.INT,
)
use_colors = click.option(
"--use-colors/--no-use-colors",
help="Output is colorized by default and may also be set in a profile or at the command line.",
default=True,
)
use_experimental_parser = click.option(
"--use-experimental-parser/--no-use-experimental-parser",
help="Enable experimental parsing features.",
default=False,
)
vars = click.option(
"--vars",
help="Supply variables to the project. This argument overrides variables defined in your dbt_project.yml file. This argument should be a YAML string, eg. '{my_variable: my_value}'",
type=YAML(),
)
version = click.option("--version", help="Show version information", is_flag=True, default=False)
version_check = click.option(
"--version-check/--no-version-check",
help="Ensure dbt's version matches the one specified in the dbt_project.yml file ('require-dbt-version')",
default=True,
)
warn_error = click.option(
"--warn-error/--no-warn-error",
help="If dbt would normally warn, instead raise an exception. Examples include --models that selects nothing, deprecations, configurations with no associated models, invalid test configurations, and missing sources/refs in tests.",
default=False,
)
write_json = click.option(
"--write-json/--no-write-json",
help="Writing the manifest and run_results.json files to disk",
default=True,
)
write_manifest = click.option(
"--write-manifest/--no-write-manifest",
help="TODO: No help text currently available",
default=True,
)