Sans io telegram api with couple io backends
Project description
# Sans io implementation of telegram api
Tiny telegram bot-api wrapper library.
## Reasons
* [aiotg](https://github.com/szastupov/aiotg) is framework, not library and have no proxy support.
* Raw api calls translation is better for understanding and will not break if telegram api will be changed.
* `snake_case`
## Features
* support both, sync and async ways to deal with io.
* Simple as telegram api is.
* `snake_case` api converted to telegram `camelCase`.
* Polling `offset` handled for you via `get_updates` method.
* Handling timeout between requests automatically (via `delay` keyword-only argument).
* Use any io backend you want.
## Implementation
[Sans io](http://sans-io.readthedocs.io/) implementation based on generators
for simplifying flow and holding state. `siotelegram` have io backends based on:
* requests
* aiohttp
* [aiorequests](https://github.com/pohmelie/aiorequests)
## Example
``` python
import asyncio
import siotelegram
TOKEN = "token"
def requests_example():
api = siotelegram.RequestsTelegramApi(TOKEN)
response = api.get_updates()
print(response)
async def aiohttp_example():
async with siotelegram.AioHTTPTelegramApi(TOKEN) as api:
response = await api.get_updates()
print(response)
async def aiorequests_example():
api = siotelegram.AioRequestsTelegramApi(TOKEN)
response = await api.get_updates()
print(response)
if __name__ == "__main__":
import time
# requests
requests_example()
time.sleep(1)
# aiohttp
loop = asyncio.get_event_loop()
loop.run_until_complete(aiohttp_example())
time.sleep(1)
# aiorequests
import aiorequests
import concurrent
with concurrent.futures.ThreadPoolExecutor(max_workers=100) as executor:
loop = asyncio.get_event_loop()
loop.set_default_executor(executor)
aiorequests.set_async_requests(loop=loop)
loop.run_until_complete(aiorequests_example())
```
Tiny telegram bot-api wrapper library.
## Reasons
* [aiotg](https://github.com/szastupov/aiotg) is framework, not library and have no proxy support.
* Raw api calls translation is better for understanding and will not break if telegram api will be changed.
* `snake_case`
## Features
* support both, sync and async ways to deal with io.
* Simple as telegram api is.
* `snake_case` api converted to telegram `camelCase`.
* Polling `offset` handled for you via `get_updates` method.
* Handling timeout between requests automatically (via `delay` keyword-only argument).
* Use any io backend you want.
## Implementation
[Sans io](http://sans-io.readthedocs.io/) implementation based on generators
for simplifying flow and holding state. `siotelegram` have io backends based on:
* requests
* aiohttp
* [aiorequests](https://github.com/pohmelie/aiorequests)
## Example
``` python
import asyncio
import siotelegram
TOKEN = "token"
def requests_example():
api = siotelegram.RequestsTelegramApi(TOKEN)
response = api.get_updates()
print(response)
async def aiohttp_example():
async with siotelegram.AioHTTPTelegramApi(TOKEN) as api:
response = await api.get_updates()
print(response)
async def aiorequests_example():
api = siotelegram.AioRequestsTelegramApi(TOKEN)
response = await api.get_updates()
print(response)
if __name__ == "__main__":
import time
# requests
requests_example()
time.sleep(1)
# aiohttp
loop = asyncio.get_event_loop()
loop.run_until_complete(aiohttp_example())
time.sleep(1)
# aiorequests
import aiorequests
import concurrent
with concurrent.futures.ThreadPoolExecutor(max_workers=100) as executor:
loop = asyncio.get_event_loop()
loop.set_default_executor(executor)
aiorequests.set_async_requests(loop=loop)
loop.run_until_complete(aiorequests_example())
```
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
siotelegram-0.2.0.tar.gz
(3.8 kB
view details)
Built Distribution
File details
Details for the file siotelegram-0.2.0.tar.gz
.
File metadata
- Download URL: siotelegram-0.2.0.tar.gz
- Upload date:
- Size: 3.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7073003d893e1d16a75bce7b816065a284e97c56834e0f740f1b32cbaab1efad |
|
MD5 | 4b6be29ecb76eaede4119c8e08aa764e |
|
BLAKE2b-256 | f75ec59b7605d1e8ebaa8349b265210be461a78026e17bfa5335ec96e97b2a9c |
File details
Details for the file siotelegram-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: siotelegram-0.2.0-py3-none-any.whl
- Upload date:
- Size: 6.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 898c3c7010e7d45de7d9e0138e07d7dbd0eaf583f2d55c0a9b29b8ac2727f990 |
|
MD5 | 88ab8848e8de6e6e35a4253086c3d623 |
|
BLAKE2b-256 | 43cc1ef2ad7854b62d48a64d71c31785d7d0c091006c174359c34fcb3e386f01 |