AnP/Python/Utils/Checks.py

32 lines
848 B
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from typing import Any, Self, Sequence
from re import Pattern as REPattern
from Utils.Patterns import RE
class Check:
@staticmethod
def is_string(item:Any|None) -> bool:
return isinstance(item, str)
@classmethod
def is_key(cls:type[Self], item:Any|None) -> bool:
return isinstance(item, str) and RE.KEY.match(item) is not None
@staticmethod
def is_array(item:Any|None) -> bool:
return isinstance(item, (list, tuple))
@staticmethod
def is_dictionary(item:Any|None) -> bool:
return isinstance(item, dict)
@staticmethod
def is_function(item:Any|None) -> bool:
return callable(item)
@staticmethod
def is_regular_expression(item:Any|None) -> bool:
return isinstance(item, REPattern)