HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/python_discovery/_compat.py
"""Platform compatibility utilities for Python discovery."""

from __future__ import annotations

import functools
import logging
import pathlib
import tempfile
from typing import Final

_LOGGER: Final[logging.Logger] = logging.getLogger(__name__)


@functools.lru_cache(maxsize=1)
def fs_is_case_sensitive() -> bool:
    with tempfile.NamedTemporaryFile(prefix="TmP") as tmp_file:
        result = not pathlib.Path(tmp_file.name.lower()).exists()
    _LOGGER.debug("filesystem is %scase-sensitive", "" if result else "not ")
    return result


def fs_path_id(path: str) -> str:
    return path.casefold() if not fs_is_case_sensitive() else path


__all__ = [
    "fs_is_case_sensitive",
    "fs_path_id",
]