import importlib.util import platform import sys from pathlib import Path from packaging.requirements import Requirement from setuptools import find_packages, setup def read_version(fname="whisper/version.py"): spec = importlib.util.spec_from_file_location("version", fname) version_module = importlib.util.module_from_spec(spec) spec.loader.exec_module(version_module) return version_module.__version__ def parse_requirements(file_path = Path(__file__).with_name("requirements.txt")): lines = file_path.read_text(encoding="utf-8").splitlines() return [str(Requirement(line)) for line in lines if not line.startswith("#")] requirements = [] if sys.platform.startswith("linux") and platform.machine() == "x86_64": requirements.append("triton>=2.0.0") setup( name="openai-whisper", py_modules=["whisper"], version=read_version(), description="Robust Speech Recognition via Large-Scale Weak Supervision", long_description=open("README.md", encoding="utf-8").read(), long_description_content_type="text/markdown", readme="README.md", python_requires=">=3.8", author="OpenAI", url="https://github.com/openai/whisper", license="MIT", packages=find_packages(exclude=["tests*"]), install_requires=parse_requirements(Path(__file__).with_name("requirements.txt")), entry_points={ "console_scripts": ["whisper=whisper.transcribe:cli"], }, include_package_data=True, extras_require={"dev": ["pytest", "scipy", "black", "flake8", "isort"]}, )