Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE] Add support for --exclude option to fmt CLI command #261

Closed
ericvergnaud opened this issue Aug 30, 2024 · 0 comments · Fixed by #263
Closed

[FEATURE] Add support for --exclude option to fmt CLI command #261

ericvergnaud opened this issue Aug 30, 2024 · 0 comments · Fixed by #263

Comments

@ericvergnaud
Copy link
Contributor

ericvergnaud commented Aug 30, 2024

fmt CLI command looks for all *.sql files regardless of their location.
This makes it impossible to exclude formatting samples that are intentionally malformed.
We need an --exclude option such that files can be excluded based on a pattern

@ericvergnaud ericvergnaud changed the title [Feature] Add support for --exclude option to fmt CLI command [FEATURE] Add support for --exclude option to fmt CLI command Sep 3, 2024
@nfx nfx closed this as completed in #263 Sep 3, 2024
nfx pushed a commit that referenced this issue Sep 3, 2024
Current implementation does not support exclusions when running 'fmt'
command.
This is blocking when verifying notebooks in ucx because the fmt sqlglot
converts single line comments `-- comment` into inlined comments `/*
comment */ ` thus misleading the verifier.
This PR implements exclusions when running 'fmt' command.
Example cmd line is '`databricks labs lsql fmt --exclude
tests/units/samples`'
The added unit test is verified manually.
Fixes #261

Signed-off-by: Eric Vergnaud <eric.vergnaud@databricks.com>
Co-authored-by: Eric Vergnaud <eric.vergnaud@databricks.com>
@nfx nfx mentioned this issue Sep 3, 2024
nfx added a commit that referenced this issue Sep 3, 2024
* Make hatch a prerequisite ([#259](#259)). In this commit, Eric Vergnaud has introduced a change to make the installation of `hatch` version 1.9.4 a prerequisite for the project to avoid errors related to `pip` command recognition. The Makefile has been updated to handle the installation of hatch automatically, and the `hatch env create` command is now used instead of `pip install hatch==1.7.0`. This change ensures that the development environment is consistent and reliable by maintaining the correct version of hatch and automatically handling its installation. Additionally, the `.venv/bin/python` and `dev` targets have been updated accordingly to reflect these changes. This commit also formats all files using the `make dev fmt` command, which helps maintain consistent code formatting throughout the project.
* add support for exclusions in `fmt` command ([#263](#263)). In this release, we have added support for exclusions to the `fmt` command in the 'databricks/labs/lsql/cli.py' module. This feature allows users to specify a list of directories or files to exclude while formatting SQL files, which is particularly useful when verifying SQL notebooks in ucx. The `fmt` command now accepts a new optional parameter 'exclude', which accepts an iterable of strings that specify the relative paths to exclude. Any `sql_file` that is a descendant of any `exclusion` is skipped during formatting. The exclusions are implemented by converting the relative paths into `Path` objects. This change addresses the issue where single line comments are converted into inlined comments, causing misinterpretation. The added unit test is manually verified, and this pull request fixes issue [#261](#261). This feature was authored and co-authored by Eric Vergnaud.
nfx added a commit that referenced this issue Sep 3, 2024
* Make hatch a prerequisite
([#259](#259)). In this
commit, Eric Vergnaud has introduced a change to make the installation
of `hatch` version 1.9.4 a prerequisite for the project to avoid errors
related to `pip` command recognition. The Makefile has been updated to
handle the installation of hatch automatically, and the `hatch env
create` command is now used instead of `pip install hatch==1.7.0`. This
change ensures that the development environment is consistent and
reliable by maintaining the correct version of hatch and automatically
handling its installation. Additionally, the `.venv/bin/python` and
`dev` targets have been updated accordingly to reflect these changes.
This commit also formats all files using the `make dev fmt` command,
which helps maintain consistent code formatting throughout the project.
* add support for exclusions in `fmt` command
([#263](#263)). In this
release, we have added support for exclusions to the `fmt` command in
the 'databricks/labs/lsql/cli.py' module. This feature allows users to
specify a list of directories or files to exclude while formatting SQL
files, which is particularly useful when verifying SQL notebooks in ucx.
The `fmt` command now accepts a new optional parameter 'exclude', which
accepts an iterable of strings that specify the relative paths to
exclude. Any `sql_file` that is a descendant of any `exclusion` is
skipped during formatting. The exclusions are implemented by converting
the relative paths into `Path` objects. This change addresses the issue
where single line comments are converted into inlined comments, causing
misinterpretation. The added unit test is manually verified, and this
pull request fixes issue
[#261](#261). This feature
was authored and co-authored by Eric Vergnaud.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant