aiogram/setup.py
2019-06-29 19:53:18 +03:00

87 lines
2.3 KiB
Python
Executable file

#!/usr/bin/env python3
import pathlib
import re
import sys
from setuptools import find_packages, setup
try:
from pip.req import parse_requirements
except ImportError: # pip >= 10.0.0
from pip._internal.req import parse_requirements
WORK_DIR = pathlib.Path(__file__).parent
# Check python version
MINIMAL_PY_VERSION = (3, 7)
if sys.version_info < MINIMAL_PY_VERSION:
raise RuntimeError(
"aiogram works only with Python {}+".format(".".join(map(str, MINIMAL_PY_VERSION)))
)
def get_version():
"""
Read version
:return: str
"""
txt = (WORK_DIR / "aiogram" / "__init__.py").read_text("utf-8")
try:
return re.findall(r"^__version__ = '([^']+)'\r?$", txt, re.M)[0]
except IndexError:
raise RuntimeError("Unable to determine version.")
def get_description():
"""
Read full description from 'README.rst'
:return: description
:rtype: str
"""
with open("README.rst", "r", encoding="utf-8") as f:
return f.read()
def get_requirements(filename=None):
"""
Read requirements from 'requirements txt'
:return: requirements
:rtype: list
"""
if filename is None:
filename = "requirements.txt"
file = WORK_DIR / filename
install_reqs = parse_requirements(str(file), session="hack")
return [str(ir.req) for ir in install_reqs]
setup(
name="aiogram",
version=get_version(),
packages=find_packages(exclude=("tests", "tests.*", "examples.*", "docs")),
url="https://github.com/aiogram/aiogram",
license="MIT",
author="Alex Root Junior",
requires_python=">=3.7",
author_email="jroot.junior@gmail.com",
description="Is a pretty simple and fully asynchronous library for Telegram Bot API",
long_description=get_description(),
classifiers=[
"Development Status :: 5 - Production/Stable",
"Environment :: Console",
"Framework :: AsyncIO",
"Intended Audience :: Developers",
"Intended Audience :: System Administrators",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3.7",
"Topic :: Software Development :: Libraries :: Application Frameworks",
],
install_requires=get_requirements(),
package_data={"": ["requirements.txt"]},
include_package_data=False,
)