Skip to content

Allow configuration for known sections #4

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
merged 1 commit into from
Aug 24, 2024

Conversation

aci2n
Copy link
Contributor

@aci2n aci2n commented Aug 17, 2024

First of all thanks for the plugin, it works very well.

At work we have to import a module at the beggining of the file because we rely on some side effects from the import.
I wanted to force the import to move to the top and it seems the recommended way is to define custom sections together with https://pycqa.github.io/isort/docs/configuration/options.html#known-other.

So my config would look like:

{"sections": ["FUTURE", "THE_SECTION", "STDLIB", "THIRDPARTY", "FIRSTPARTY", "LOCALFOLDER"], "known_the_section": ["the_module"]}

Since these known_{section} keys are dynamic, they are not present in the dataclass definition for _Config, and are filtered before the isort.Config is created in the plugin.

The proposed change allows any config key that starts with the known_ prefix. I considered generating the list of valid known_ keys from the user-defined sections, but isort already validates that and didn't see the need for duplicating the logic.

An alternative approach would be to add the module to the FUTURE section but that is discouraged: https://pycqa.github.io/isort/docs/configuration/options.html#known-future-library

@aci2n aci2n force-pushed the allow_known_section_config branch from e751292 to d4ce8c9 Compare August 17, 2024 13:11
@chantera
Copy link
Owner

Thank you for your contribution.
I carefully checked the isort document and implementation.
The change you made looks good to me.

@chantera chantera merged commit 590cecc into chantera:main Aug 24, 2024
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.

2 participants