File utils.py of Package python-sentence-transformers

from __future__ import annotations

import os
import tempfile


def is_ci() -> bool:
    """
    Check if the code is running in a Continuous Integration (CI) environment.
    This is determined by checking for the presence of certain environment variables.
    """
    return "GITHUB_ACTIONS" in os.environ


class SafeTemporaryDirectory(tempfile.TemporaryDirectory):
    """
    The GitHub Actions CI on Windows sometimes raises a NotADirectoryError when cleaning up the temporary directory.
    This class is a workaround to avoid the error.

    Unlike tempfile.TemporaryDirectory(ignore_cleanup_errors=True), this also works on Python 3.9.
    """

    def __init__(self, *args, **kwargs) -> None:
        kwargs["ignore_cleanup_errors"] = True
        try:
            super().__init__(*args, **kwargs)
        except TypeError:
            del kwargs["ignore_cleanup_errors"]
            super().__init__(*args, **kwargs)

    def __exit__(self, *args, **kwargs):
        try:
            super().__exit__(*args, **kwargs)
        except NotADirectoryError:
            pass
openSUSE Build Service is sponsored by