diff options
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/build_profile_docs.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/scripts/build_profile_docs.py b/scripts/build_profile_docs.py new file mode 100755 index 00000000..e0a86f89 --- /dev/null +++ b/scripts/build_profile_docs.py @@ -0,0 +1,44 @@ +#! /bin/env python +import os +from typing import Any, Generator, Iterable, Type, Dict + +from isort._future import dataclass +from isort.main import _build_arg_parser +from isort.profiles import profiles +from isort.settings import _DEFAULT_SETTINGS as config + +OUTPUT_FILE = os.path.abspath( + os.path.join(os.path.dirname(os.path.abspath(__file__)), "../docs/configuration/profiles.md") +) + +HEADER = """Built-in Profile for isort +======== + +The following profiles are built into isort to allow easy interoperability with +common projects and code styles. + +To use any of the listed profiles, use `isort --profile PROFILE_NAME` from the command line, or `profile=PROFILE_NAME` in your configuration file. + +""" + +def format_profile(profile_name: str, profile: Dict[str, Any]) -> str: + options = "\n".join(f" - **{name}**: `{repr(value)}`" for name, value in profile.items()) + return f""" +#{profile_name} + +{profile.get('descripiton', '')} +{options} +""" + + +def document_text() -> str: + return f"{HEADER}{''.join(format_profile(profile_name, profile) for profile_name, profile in profiles.items())}" + + +def write_document(): + with open(OUTPUT_FILE, "w") as output_file: + output_file.write(document_text()) + + +if __name__ == "__main__": + write_document() |
