| Linux server27.hostingraja.org 2.6.32-954.3.5.lve1.4.93.el6.x86_64 #1 SMP Wed Oct 4 17:04:29 UTC 2023 x86_64 Path : /opt/cloudlinux/venv/lib/python3.11/site-packages/setuptools/compat/ |
| Current File : //opt/cloudlinux/venv/lib/python3.11/site-packages/setuptools/compat/py311.py |
from __future__ import annotations
import shutil
import sys
from typing import Any, Callable, TYPE_CHECKING
if TYPE_CHECKING:
from _typeshed import StrOrBytesPath, ExcInfo
# Same as shutil._OnExcCallback from typeshed
_OnExcCallback = Callable[[Callable[..., Any], str, BaseException], object]
def shutil_rmtree(
path: StrOrBytesPath,
ignore_errors: bool = False,
onexc: _OnExcCallback | None = None,
) -> None:
if sys.version_info >= (3, 12):
return shutil.rmtree(path, ignore_errors, onexc=onexc)
def _handler(fn: Callable[..., Any], path: str, excinfo: ExcInfo) -> None:
if onexc:
onexc(fn, path, excinfo[1])
return shutil.rmtree(path, ignore_errors, onerror=_handler)