Current Path: > > opt > cloudlinux > venv > lib64 > python3.11 > > site-packages > isort
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
__pycache__ | Directory | - | - | |
_vendored | Directory | - | - | |
deprecated | Directory | - | - | |
stdlibs | Directory | - | - | |
__init__.py | File | 871 bytes | April 17 2025 13:10:58. | |
__main__.py | File | 36 bytes | April 17 2025 13:10:58. | |
_version.py | File | 72 bytes | April 17 2025 13:10:58. | |
api.py | File | 26120 bytes | April 17 2025 13:10:58. | |
comments.py | File | 933 bytes | April 17 2025 13:10:58. | |
core.py | File | 22525 bytes | April 17 2025 13:10:58. | |
exceptions.py | File | 7060 bytes | April 17 2025 13:10:58. | |
files.py | File | 1589 bytes | April 17 2025 13:10:58. | |
format.py | File | 5483 bytes | April 17 2025 13:10:58. | |
hooks.py | File | 3338 bytes | April 17 2025 13:10:58. | |
identify.py | File | 8373 bytes | April 17 2025 13:10:58. | |
io.py | File | 2216 bytes | April 17 2025 13:10:58. | |
literal.py | File | 3713 bytes | April 17 2025 13:10:58. | |
logo.py | File | 388 bytes | April 17 2025 13:10:58. | |
main.py | File | 46823 bytes | April 17 2025 13:10:58. | |
output.py | File | 27804 bytes | April 17 2025 13:10:58. | |
parse.py | File | 25332 bytes | April 17 2025 13:10:58. | |
place.py | File | 5171 bytes | April 17 2025 13:10:58. | |
profiles.py | File | 2144 bytes | April 17 2025 13:10:58. | |
py.typed | File | 0 bytes | April 17 2025 13:10:58. | |
pylama_isort.py | File | 1308 bytes | April 17 2025 13:10:58. | |
sections.py | File | 297 bytes | April 17 2025 13:10:58. | |
settings.py | File | 35584 bytes | April 17 2025 13:10:58. | |
setuptools_commands.py | File | 2297 bytes | April 17 2025 13:10:58. | |
sorting.py | File | 4515 bytes | April 17 2025 13:10:58. | |
utils.py | File | 2413 bytes | April 17 2025 13:10:58. | |
wrap.py | File | 6321 bytes | April 17 2025 13:10:58. | |
wrap_modes.py | File | 13569 bytes | April 17 2025 13:10:58. |
import re from typing import TYPE_CHECKING, Any, Callable, Iterable, List, Optional if TYPE_CHECKING: from .settings import Config else: Config = Any _import_line_intro_re = re.compile("^(?:from|import) ") _import_line_midline_import_re = re.compile(" import ") def module_key( module_name: str, config: Config, sub_imports: bool = False, ignore_case: bool = False, section_name: Optional[Any] = None, straight_import: Optional[bool] = False, ) -> str: match = re.match(r"^(\.+)\s*(.*)", module_name) if match: sep = " " if config.reverse_relative else "_" module_name = sep.join(match.groups()) prefix = "" if ignore_case: module_name = str(module_name).lower() else: module_name = str(module_name) if sub_imports and config.order_by_type: if module_name in config.constants: prefix = "A" elif module_name in config.classes: prefix = "B" elif module_name in config.variables: prefix = "C" elif module_name.isupper() and len(module_name) > 1: # see issue #376 prefix = "A" elif module_name in config.classes or module_name[0:1].isupper(): prefix = "B" else: prefix = "C" if not config.case_sensitive: module_name = module_name.lower() length_sort = ( config.length_sort or (config.length_sort_straight and straight_import) or str(section_name).lower() in config.length_sort_sections ) _length_sort_maybe = (str(len(module_name)) + ":" + module_name) if length_sort else module_name return f"{module_name in config.force_to_top and 'A' or 'B'}{prefix}{_length_sort_maybe}" def section_key(line: str, config: Config) -> str: section = "B" if ( not config.sort_relative_in_force_sorted_sections and config.reverse_relative and line.startswith("from .") ): match = re.match(r"^from (\.+)\s*(.*)", line) if match: # pragma: no cover - regex always matches if line starts with "from ." line = f"from {' '.join(match.groups())}" if config.group_by_package and line.strip().startswith("from"): line = line.split(" import", 1)[0] if config.lexicographical: line = _import_line_intro_re.sub("", _import_line_midline_import_re.sub(".", line)) else: line = re.sub("^from ", "", line) line = re.sub("^import ", "", line) if config.sort_relative_in_force_sorted_sections: sep = " " if config.reverse_relative else "_" line = re.sub(r"^(\.+)", rf"\1{sep}", line) if line.split(" ")[0] in config.force_to_top: section = "A" # * If honor_case_in_force_sorted_sections is true, and case_sensitive and # order_by_type are different, only ignore case in part of the line. # * Otherwise, let order_by_type decide the sorting of the whole line. This # is only "correct" if case_sensitive and order_by_type have the same value. if config.honor_case_in_force_sorted_sections and config.case_sensitive != config.order_by_type: split_module = line.split(" import ", 1) if len(split_module) > 1: module_name, names = split_module if not config.case_sensitive: module_name = module_name.lower() if not config.order_by_type: names = names.lower() line = " import ".join([module_name, names]) elif not config.case_sensitive: line = line.lower() elif not config.order_by_type: line = line.lower() return f"{section}{len(line) if config.length_sort else ''}{line}" def sort( config: Config, to_sort: Iterable[str], key: Optional[Callable[[str], Any]] = None, reverse: bool = False, ) -> List[str]: return config.sorting_function(to_sort, key=key, reverse=reverse) def naturally( to_sort: Iterable[str], key: Optional[Callable[[str], Any]] = None, reverse: bool = False ) -> List[str]: """Returns a naturally sorted list""" if key is None: key_callback = _natural_keys else: def key_callback(text: str) -> List[Any]: return _natural_keys(key(text)) # type: ignore return sorted(to_sort, key=key_callback, reverse=reverse) def _atoi(text: str) -> Any: return int(text) if text.isdigit() else text def _natural_keys(text: str) -> List[Any]: return [_atoi(c) for c in re.split(r"(\d+)", text)]
SILENT KILLER Tool