mirror of
https://github.com/aiogram/aiogram.git
synced 2025-12-06 16:15:51 +00:00
83 lines
2.2 KiB
Python
Executable file
83 lines
2.2 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='aiogram@illemius.xyz',
|
|
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()
|
|
)
|