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

Fix config.get for iterable sections #2020

Merged
merged 6 commits into from Dec 2, 2021
Merged

Fix config.get for iterable sections #2020

merged 6 commits into from Dec 2, 2021

Conversation

jpy-git
Copy link
Contributor

@jpy-git jpy-git commented Dec 1, 2021

Brief summary of the change made

Was using config.get method and realised it should take an iterable of str to handle nested config sections but the current implementation only works for a single section str.
Used the already existing get_sections method to handle this.

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 python test/generate_parse_fixture_yml.py or by running tox locally).
    • 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.

@@ -615,7 +615,11 @@ def get(
self, val: str, section: Union[str, Iterable[str]] = "core", default: Any = None
):
"""Get a particular value from the config."""
return self._configs[section].get(val, default)
Copy link
Contributor Author

Choose a reason for hiding this comment

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

would only work for if session a str

@@ -615,7 +615,11 @@ def get(
self, val: str, section: Union[str, Iterable[str]] = "core", default: Any = None
):
"""Get a particular value from the config."""
return self._configs[section].get(val, default)
section_dict = self.get_section(section)
Copy link
Contributor Author

Choose a reason for hiding this comment

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

handles nested config sections

Comment on lines +619 to +620
if section_dict is None:
return default
Copy link
Contributor Author

Choose a reason for hiding this comment

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

returns default if the section doesn't exist. Could alternatively raise a KeyError if preferred. Fine either way

@codecov
Copy link

codecov bot commented Dec 1, 2021

Codecov Report

Merging #2020 (2e25f0b) into main (6bc8791) will not change coverage.
The diff coverage is 100.00%.

Impacted file tree graph

@@            Coverage Diff            @@
##              main     #2020   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files          148       148           
  Lines        10381     10384    +3     
=========================================
+ Hits         10381     10384    +3     
Impacted Files Coverage Δ
src/sqlfluff/core/config.py 100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 6bc8791...2e25f0b. Read the comment docs.

@jpy-git jpy-git changed the title Fix config.get for iterable segments Fix config.get for iterable sections Dec 1, 2021
@jpy-git
Copy link
Contributor Author

jpy-git commented Dec 2, 2021

@barrywhart could you take a look at this please, it's a quick bugfix for the config.get method

@jpy-git jpy-git merged commit 117740c into sqlfluff:main Dec 2, 2021
@jpy-git jpy-git deleted the config_get branch December 2, 2021 21:40
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.

None yet

2 participants