1
import importlib.metadata
5
def is_package_available(name: str) -> bool:
6
return importlib.util.find_spec(name) is not None
9
def get_package_version(name: str) -> str:
11
return importlib.metadata.version(name)
16
_fastapi_available = is_package_available("fastapi")
17
_flash_attn2_available = is_package_available("flash_attn") and get_package_version("flash_attn").startswith("2")
18
_jieba_available = is_package_available("jieba")
19
_matplotlib_available = is_package_available("matplotlib")
20
_nltk_available = is_package_available("nltk")
21
_requests_available = is_package_available("requests")
22
_rouge_available = is_package_available("rouge_chinese")
23
_starlette_available = is_package_available("sse_starlette")
24
_uvicorn_available = is_package_available("uvicorn")
27
def is_fastapi_availble():
28
return _fastapi_available
31
def is_flash_attn2_available():
32
return _flash_attn2_available
35
def is_jieba_available():
36
return _jieba_available
39
def is_matplotlib_available():
40
return _matplotlib_available
43
def is_nltk_available():
44
return _nltk_available
47
def is_requests_available():
48
return _requests_available
51
def is_rouge_available():
52
return _rouge_available
55
def is_starlette_available():
56
return _starlette_available
59
def is_uvicorn_available():
60
return _uvicorn_available