from setuptools import setup import re requirements = [] with open("requirements.txt") as f: requirements = f.read().splitlines() version = "" with open("discord/__init__.py") as f: version = re.search(r'^__version__\s*=\s*[\'"]([^\'"]*)[\'"]', f.read(), re.MULTILINE).group(1) if not version: raise RuntimeError("version is not set") if version.endswith(("a", "b", "rc")): # append version identifier based on commit count try: import subprocess p = subprocess.Popen(["git", "rev-list", "--count", "HEAD"], stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, err = p.communicate() if out: version += out.decode("utf-8").strip() p = subprocess.Popen(["git", "rev-parse", "--short", "HEAD"], stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, err = p.communicate() if out: version += "+g" + out.decode("utf-8").strip() except Exception: pass readme = "" with open("README.rst") as f: readme = f.read() extras_require = { "voice": ["PyNaCl>=1.3.0,<1.5"], "docs": [ "sphinx==4.0.2", "sphinxcontrib_trio==1.1.2", "sphinxcontrib-websupport", ], "speed": [ "orjson>=3.5.4", ], } packages = [ "discord", "discord.types", "discord.ui", "discord.webhook", "discord.ext.commands", "discord.ext.tasks", ] setup( name="discord.py", author="Rapptz", url="https://github.com/Rapptz/discord.py", project_urls={ "Documentation": "https://discordpy.readthedocs.io/en/latest/", "Issue tracker": "https://github.com/Rapptz/discord.py/issues", }, version=version, packages=packages, license="MIT", description="A Python wrapper for the Discord API", long_description=readme, long_description_content_type="text/x-rst", include_package_data=True, install_requires=requirements, extras_require=extras_require, python_requires=">=3.8.0", classifiers=[ "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: MIT License", "Intended Audience :: Developers", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Topic :: Internet", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Utilities", "Typing :: Typed", ], )