2017-09-12 00:29:04 +03:00
|
|
|
#!/usr/bin/env python3
|
2018-05-02 13:45:47 +03:00
|
|
|
import pathlib
|
|
|
|
|
import re
|
2018-02-22 02:11:29 +02:00
|
|
|
import sys
|
2017-05-19 19:11:42 +03:00
|
|
|
|
2018-04-15 04:12:24 +03:00
|
|
|
from setuptools import find_packages, setup
|
|
|
|
|
|
2018-05-02 13:45:47 +03:00
|
|
|
WORK_DIR = pathlib.Path(__file__).parent
|
2017-05-19 19:11:42 +03:00
|
|
|
|
2018-05-02 13:45:47 +03:00
|
|
|
# Check python version
|
2018-06-23 17:39:24 +03:00
|
|
|
MINIMAL_PY_VERSION = (3, 7)
|
2018-02-22 02:11:29 +02:00
|
|
|
if sys.version_info < MINIMAL_PY_VERSION:
|
2018-05-02 13:45:47 +03:00
|
|
|
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.')
|
2018-02-22 02:11:29 +02:00
|
|
|
|
2017-05-19 19:11:42 +03:00
|
|
|
|
|
|
|
|
def get_description():
|
2017-09-12 00:29:04 +03:00
|
|
|
"""
|
|
|
|
|
Read full description from 'README.rst'
|
|
|
|
|
|
|
|
|
|
:return: description
|
|
|
|
|
:rtype: str
|
|
|
|
|
"""
|
2018-01-27 09:54:19 +02:00
|
|
|
with open('README.rst', 'r', encoding='utf-8') as f:
|
2017-05-19 19:11:42 +03:00
|
|
|
return f.read()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
setup(
|
|
|
|
|
name='aiogram',
|
2018-05-02 13:45:47 +03:00
|
|
|
version=get_version(),
|
2018-04-15 04:12:24 +03:00
|
|
|
packages=find_packages(exclude=('tests', 'tests.*', 'examples.*', 'docs',)),
|
2017-11-19 00:39:25 +02:00
|
|
|
url='https://github.com/aiogram/aiogram',
|
2017-05-19 19:11:42 +03:00
|
|
|
license='MIT',
|
|
|
|
|
author='Alex Root Junior',
|
2018-06-23 17:39:24 +03:00
|
|
|
requires_python='>=3.7',
|
2018-09-07 21:24:13 +03:00
|
|
|
author_email='jroot.junior@gmail.com',
|
2019-10-14 16:06:35 +03:00
|
|
|
description='Is a pretty simple and fully asynchronous framework for Telegram Bot API',
|
2017-05-19 19:11:42 +03:00
|
|
|
long_description=get_description(),
|
|
|
|
|
classifiers=[
|
2018-05-11 00:27:18 +03:00
|
|
|
'Development Status :: 5 - Production/Stable',
|
2017-05-19 19:11:42 +03:00
|
|
|
'Environment :: Console',
|
|
|
|
|
'Framework :: AsyncIO',
|
2018-01-27 09:54:19 +02:00
|
|
|
'Intended Audience :: Developers',
|
|
|
|
|
'Intended Audience :: System Administrators',
|
2017-05-19 19:11:42 +03:00
|
|
|
'License :: OSI Approved :: MIT License',
|
2018-06-23 17:39:24 +03:00
|
|
|
'Programming Language :: Python :: 3.7',
|
2020-01-01 17:14:54 +02:00
|
|
|
'Programming Language :: Python :: 3.8',
|
Bot API 5.0 (#454)
* increased Telegram Bot API version
* AIOG-T-64 added logOut method
* AIOG-T-64 added logOut method test
* AIOG-T-64 logOut type annotation fix
* AIOG-T-65 added close (close_bot) method
* AIOG-T-65 old `close` method deprecation warn
* AIOG-T-65 `close_bot` test added
* AIOG-T-67 added ip_address param to set_webhook, updated docs
* updated deprecation text
Co-authored-by: Martin Winks <mpa@snejugal.ru>
* AIOG-T-69 param `drop_pending_updates` added in methods `setWebhook` and `deleteWebhook`
* AIOG-T-71 new `ChatLocation` class
* AIOG-T-70 updated `Chat` class: bio, linked chats, location
* AIOG-T-68 field `ip_address` added to class `WebhookInfo`
* AIOG-T-72 param `only_if_banned` added to `unbanChatMember` method
* AIOG-T-72 updated Chat.unban shortcut
* AIOG-T-73 field `file_name` added to `Audio` and `Video` classes
* AIOG-T-74 param `disable_content_type_detection` added in `sendDocument` method and `InputMediaDocument` class
* AIOG-T-75 Added the ability to pin messages in private chats (docs update)
* AIOG-T-76 Added the parameter message_id to the method unpinChatMessage to allow unpinning of the specific pinned message
* AIOG-T-77 Added the method unpinAllChatMessages, which can be used to unpin all pinned messages in a chat.
* AIOG-T-78 updated send_media_group description; added media qty check
* AIOG-T-80 field `live_period` added to `Location` class
* AIOG-T-81 Added support for live location heading
* AIOG-T-82 added the field proximity_alert_distance to the classes Location, InlineQueryResultLocation, InputLocationMessageContent; fixed heading in InputLocationMessageContent
* AIOG-T-82 added parameter proximity_alert_distance to the methods sendLocation and editMessageLiveLocation
* AIOG-T-83 Added the type ProximityAlertTriggered
* AIOG-T-83 Added field proximity_alert_triggered to the class Message
* AIOG-T-84 Added the field horizontal_accuracy to the classes Location, InlineQueryResultLocation, InputLocationMessageContent
* AIOG-T-84 Added the parameter horizontal_accuracy to the methods sendLocation and editMessageLiveLocation.
* Added live_period to InputLocationMessageContent (missed?)
* AIOG-T-85 Added the field sender_chat to the class Message
* AIOG-T-86 Added `is_anonymous` field to `chatMember` class
* AIOG-T-87 Added the parameter is_anonymous to the method promoteChatMember
* AIOG-T-89 Added the method `copyMessage`
* AIOG-T-90 Poll docs update
* AIOG-T-91 ability to manually specify text entities
* AIOG-T-92 Google Places as a venue API provider
* AIOG-T-93 Added the field allow_sending_without_reply to the methods
* AIOG-T-94 football and slot machine dice
* removed Optional
Co-authored-by: Ramzan Bekbulatov <bekbulatov.ramzan@ya.ru>
* Apply suggestions from code review
removed Optional
Co-authored-by: Ramzan Bekbulatov <bekbulatov.ramzan@ya.ru>
* Don't use deprecated Bot.close method from dispatcher (Replaced by session.close)
* Fix copyMessage method, update alias (with deprecation)
Fix imports
* AIOG-T-79: Easy way to use custom API server
* Update docs
* Bump requirements
* Rollback email
* AIOG-T-93 allow_sending_without_reply to send_message shortcuts
* AIOG-T-93 added allow_sending_without_reply to send_photo shortcuts
* AIOG-T-93 added allow_sending_without_reply to send_video shortcuts
* Union[type, None] -> Optional[type] refactoring
* AIOG-T-93 added allow_sending_without_reply to send_animation shortcuts
* added type hint to reply field
* AIOG-T-93 added allow_sending_without_reply to send_audio shortcuts
* AIOG-T-93 added allow_sending_without_reply to send_document shortcuts
* AIOG-T-93 added allow_sending_without_reply to send_sticker shortcuts
* AIOG-T-93 added allow_sending_without_reply to send_video_note shortcuts
* AIOG-T-93 added allow_sending_without_reply to send_voice shortcuts
* AIOG-T-93 added allow_sending_without_reply to send_location shortcuts
* AIOG-T-93 added allow_sending_without_reply to send_venue shortcuts
* AIOG-T-93 added allow_sending_without_reply to send_contact shortcuts
* AIOG-T-93 added allow_sending_without_reply to send_poll shortcuts
* AIOG-T-93 added allow_sending_without_reply to send_dice shortcuts
* AIOG-T-93 added allow_sending_without_reply to send_media_group shortcuts
* AIOG-T-92 added google_place_ to send_venue shortcuts
* AIOG-T-91 added entities to send_message shortcuts
* AIOG-T-91 added caption_entities to send_photo shortcuts
* AIOG-T-91 added caption_entities to send_video shortcuts
* AIOG-T-91 added caption_entities to send_animation shortcuts
* AIOG-T-91 added caption_entities to send_audio shortcuts
* AIOG-T-91 added caption_entities to send_document shortcuts
* AIOG-T-91 added caption_entities to send_voice shortcuts
* AIOG-T-91 added explanation_parse_mode to send_poll shortcuts
* AIOG-T-91 added entities to edit_message_text shortcuts
* AIOG-T-91 added caption_entities to edit_message_caption shortcuts
* fixed types.MessageEntity -> MessageEntity in docs
Co-authored-by: Martin Winks <mpa@snejugal.ru>
Co-authored-by: Ramzan Bekbulatov <bekbulatov.ramzan@ya.ru>
Co-authored-by: Alex Root Junior <jroot.junior@gmail.com>
2020-11-08 18:51:39 +03:00
|
|
|
'Programming Language :: Python :: 3.9',
|
2021-11-11 00:45:17 +02:00
|
|
|
'Programming Language :: Python :: 3.10',
|
2018-01-27 09:54:19 +02:00
|
|
|
'Topic :: Software Development :: Libraries :: Application Frameworks',
|
2017-05-19 19:11:42 +03:00
|
|
|
],
|
2020-01-01 17:14:54 +02:00
|
|
|
install_requires=[
|
2021-11-07 01:44:13 +02:00
|
|
|
'aiohttp>=3.8.0,<3.9.0',
|
|
|
|
|
'Babel>=2.9.1,<2.10.0',
|
|
|
|
|
'certifi>=2021.10.8',
|
2020-01-01 17:14:54 +02:00
|
|
|
],
|
|
|
|
|
extras_require={
|
|
|
|
|
'proxy': [
|
2020-09-13 23:25:27 +03:00
|
|
|
'aiohttp-socks>=0.5.3,<0.6.0',
|
2020-01-01 17:14:54 +02:00
|
|
|
],
|
|
|
|
|
'fast': [
|
2021-11-07 01:44:13 +02:00
|
|
|
'uvloop>=0.16.0,<0.17.0',
|
2020-01-01 17:14:54 +02:00
|
|
|
'ujson>=1.35',
|
|
|
|
|
],
|
|
|
|
|
},
|
2018-11-25 18:32:58 +02:00
|
|
|
include_package_data=False,
|
2017-05-19 19:11:42 +03:00
|
|
|
)
|