8000 Support variables with dot in python templater by timchurch · Pull Request #5872 · sqlfluff/sqlfluff · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Support variables with dot in python templater #5872

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

Merged

Conversation

timchurch
Copy link
Contributor

Brief summary of the change made

fixes #5871

Adds support for python format strings containing variables with dot notation by temporarily converting these variables into a dictionary lookup using the fixed context key sqlfluff.

I believe this is the simplest, most straightforward solution to this issue. Adding this "magic" context key into configuration might not be intuitive at first, but I think it can be easily understood through the documentation.

Are there any other side effects of this change that we should be aware of?

No

Pull Request checklist

  • Please confirm you have completed any of the necessary steps below.

  • Included test cases to demonstrate any code changes, which may be one or more of the following:

    • .yml rule test cases in test/fixtures/rules/std_rule_cases.
    • .sql/.yml parser test cases in test/fixtures/dialects (note YML files can be auto generated with tox -e generate-fixture-yml).
    • Full autofix test cases in test/fixtures/linter/autofix.
    • Other.
  • Added appropriate documentation for the change.

  • Created GitHub issues for any relevant followup/future enhancements if appropriate.

Copy link
Contributor
github-actions bot commented May 14, 2024

Coverage Results ✅

Name    Stmts   Miss  Cover   Missing
-------------------------------------
TOTAL   18327      0   100%

236 files skipped due to complete coverage.

@coveralls
Copy link
coveralls commented May 14, 2024

Coverage Status

coverage: 99.985%. first build
when pulling bc0beb1 on timchurch:python-templater-variables-dot-notation
into 91690be on sqlfluff:main.

Copy link
Member
@alanmcruickshank alanmcruickshank left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Initially I didn't like this hack, but I think I'm warming to it.

It's definitely a hack, but it's a convenient one, and I think a pragmatic one. Good work 👍 .

I've got a couple of notes on how to make this clearer and easier for the user to understand. Likewise, making it clear when it fails so that the user knows what's happening.

@alanmcruickshank
8000
Copy link
Member

Oh and on the merge conflict, I split out a lot of the very large config files as part of #6052 .

The file that your edits should now go in is /docs/source/configuration/templating/python.rst. The actual documentation is almost identical to before (and the python section is just a copy paste of that section of the old configuration.rst file) - just in a different place.

timchurch and others added 4 commits September 11, 2024 13:59
Co-authored-by: Alan Cruickshank <alan+git@designingoverload.com>
…lfluff into python-templater-variables-dot-notation

# Conflicts:
#	docs/source/configuration.rst
#	src/sqlfluff/core/templaters/python.py
Copy link
Member
@alanmcruickshank alanmcruickshank left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice good work. I've added a test case to cover your new exception messages 👍 .

Sorry for the delayed review here.

@alanmcruickshank alanmcruickshank added this pull request to the merge queue Sep 18, 2024
Merged via the queue into sqlfluff:main with commit d678956 Sep 18, 2024
27 checks passed
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 this pull request may close these issues.

Allow variables with dot in sqlfluff:templater:python:context
4 participants
0