Skip to content

Module isort.utils

View Source
import os

import sys

from contextlib import contextmanager

from typing import Iterator

def exists_case_sensitive(path: str) -> bool:

    """Returns if the given path exists and also matches the case on Windows.

    When finding files that can be imported, it is important for the cases to match because while

    file os.path.exists("module.py") and os.path.exists("MODULE.py") both return True on Windows,

    Python can only import using the case of the real file.

    """

    result = os.path.exists(path)

    if (sys.platform.startswith("win") or sys.platform == "darwin") and result:  # pragma: no cover

        directory, basename = os.path.split(path)

        result = basename in os.listdir(directory)

    return result

@contextmanager

def chdir(path: str) -> Iterator[None]:

    """Context manager for changing dir and restoring previous workdir after exit."""

    curdir = os.getcwd()

    os.chdir(path)

    try:

        yield

    finally:

        os.chdir(curdir)

Functions

chdir

def chdir(
    path: str
) -> Iterator[NoneType]

Context manager for changing dir and restoring previous workdir after exit.

View Source
@contextmanager

def chdir(path: str) -> Iterator[None]:

    """Context manager for changing dir and restoring previous workdir after exit."""

    curdir = os.getcwd()

    os.chdir(path)

    try:

        yield

    finally:

        os.chdir(curdir)

exists_case_sensitive

def exists_case_sensitive(
    path: str
) -> bool

Returns if the given path exists and also matches the case on Windows.

When finding files that can be imported, it is important for the cases to match because while file os.path.exists("module.py") and os.path.exists("MODULE.py") both return True on Windows, Python can only import using the case of the real file.

View Source
def exists_case_sensitive(path: str) -> bool:

    """Returns if the given path exists and also matches the case on Windows.

    When finding files that can be imported, it is important for the cases to match because while

    file os.path.exists("module.py") and os.path.exists("MODULE.py") both return True on Windows,

    Python can only import using the case of the real file.

    """

    result = os.path.exists(path)

    if (sys.platform.startswith("win") or sys.platform == "darwin") and result:  # pragma: no cover

        directory, basename = os.path.split(path)

        result = basename in os.listdir(directory)

    return result