Skip to content

Just use typer, as a base or recommendation? #28

@joshuataylor

Description

@joshuataylor

The completions, for atleast zsh, are missing a lot of options/CLI parameters, simply because of how fast the dbt CLI moves.

An alternative is to get the base completions working via typer (though it's a bit slow..).

This can be done via:

_DBT_COMPLETE=zsh_source dbt

e.g:

_DBT_COMPLETE=zsh_source dbt > $HOME/.local/share/zsh/completions/_dbt

dbt d

debug  -- Show information on the current dbt...
deps   -- Install dbt packages specified.
docs   -- Generate or serve the documentation...

dbt debug --

dbt debug --
--defer-state                                                  -- Override the state directory for deferral only.
--deprecated-favor-state                                       -- Internal flag for deprecating old env var.
--indirect-selection                                           -- Choose which tests to select that are adjacent to selected resources. Eager is most inclusive, cautious is most exclusive, and buildable is in bet
--log-format                                                   -- Specify the format of logging to the console and the log file. Use --log-format-file to configure the format for the log file differently than the
--log-format-file                                              -- Specify the format of logging to the log file by overriding the default value and the general --log-format setting.
--log-level                                                    -- Specify the minimum severity of events that are logged to the console and the log file. Use --log-level-file to configure the severity for the log
--log-level-file                                               -- Specify the minimum severity of events that are logged to the log file by overriding the default value and the general --log-level setting.
--log-path                                                     -- Configure the 'log-path'. Only applies this setting for the current run. Overrides the 'DBT_LOG_PATH' if it is set.
--no-cache-selected-only         --cache-selected-only         -- At start of run, populate relational cache only for schemas containing selected nodes, or for all schemas of interest.
--no-debug                       --debug                       -- Display debug logging during dbt execution. Useful for debugging and making bug reports.
--no-defer                       --defer                       -- If set, resolve unselected nodes by deferring to the manifest within the --state directory.
--no-fail-fast                   --fail-fast                   -- Stop execution on first failure.
--no-favor-state                 --favor-state                 -- If set, defer to the argument provided to the state flag for resolving unselected nodes, even if the node(s) exist as a database object in the cur
--no-log-cache-events            --log-cache-events            -- Enable verbose logging for relational cache events to help when debugging.
--no-partial-parse               --partial-parse               -- Allow for partial parsing by looking for and writing to a pickle file in the target directory. This overrides the user configuration file.
--no-populate-cache              --populate-cache              -- At start of run, use `show` or `information_schema` queries to populate a relational cache, which can speed up subsequent materializations.
--no-print                       --print                       -- Output all {{ print() }} macro calls.
--no-quiet                       --quiet                       -- Suppress all non-error logging to stdout. Does not affect {{ print() }} macro calls.
--no-send-anonymous-usage-stats  --send-anonymous-usage-stats  -- Send anonymous usage stats to dbt Labs.
--no-static-parser               --static-parser               -- Use the static parser.
--no-use-colors                  --use-colors                  -- Specify whether log output is colorized in the console and the log file. Use --use-colors-file/--no-use-colors-file to colorize the log file diffe
--no-use-colors-file             --use-colors-file             -- Specify whether log file output is colorized by overriding the default value and the general --use-colors/--no-use-colors setting.
--no-use-experimental-parser     --use-experimental-parser     -- Enable experimental parsing features.
--no-version-check               --version-check               -- If set, ensure the installed dbt version matches the require-dbt-version specified in the dbt_project.yml file (if any). Otherwise, allow them to
--printer-width                                                -- Sets the width of terminal output
--profile                                                      -- Which existing profile to load. Overrides setting in dbt_project.yml.
--record-timing-info                                           -- When this option is passed, dbt will output low-level timing stats to the specified file. Example: `--record-timing-info output.profile`
--state                                                        -- Unless overridden, use this state directory for both state comparison and deferral.
--target                                                       -- Which target to load for the given profile
--version                                                      -- Show version information and exit
--warn-error                                                   -- If dbt would normally warn, instead raise an exception. Examples include --select that selects nothing, deprecations, configurations with no assoc
--warn-error-options                                           -- If dbt would normally warn, instead raise an exception based on include/exclude configuration. Examples include --select that selects nothing, dep

Downside is that the work done in the https://github.com/dbt-labs/dbt-completion.bash project, the main thing I love it for, is the tab completion for models doesn't work.

I wonder if zsh completions are smart enough to use the typer completions as a base, then override --model, -s, --select etc for fast model completions?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions