Files
proxy-scraper-checker/proxy_scraper_checker/utils.py
T
2024-02-01 14:52:29 +03:00

27 lines
642 B
Python

from __future__ import annotations
import os
from pathlib import Path
from typing import Union
from urllib.parse import urlparse
import aiofiles.os
import charset_normalizer
IS_DOCKER = os.getenv("IS_DOCKER") == "1"
def is_url(value: str, /) -> bool:
parsed_url = urlparse(value)
return bool(parsed_url.scheme and parsed_url.netloc)
def bytes_decode(value: bytes, /) -> str:
return str(charset_normalizer.from_bytes(value)[0])
async def check_access(path: Union[Path, str], /, *, mode: int) -> None:
if not await aiofiles.os.access(path, mode):
msg = f"{path} is not accessible"
raise ValueError(msg)