Skip to main content

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())
```

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)

Uploaded Source

Built Distribution

siotelegram-0.2.0-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

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

Hashes for siotelegram-0.2.0.tar.gz
Algorithm Hash digest
SHA256 7073003d893e1d16a75bce7b816065a284e97c56834e0f740f1b32cbaab1efad
MD5 4b6be29ecb76eaede4119c8e08aa764e
BLAKE2b-256 f75ec59b7605d1e8ebaa8349b265210be461a78026e17bfa5335ec96e97b2a9c

See more details on using hashes here.

File details

Details for the file siotelegram-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for siotelegram-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 898c3c7010e7d45de7d9e0138e07d7dbd0eaf583f2d55c0a9b29b8ac2727f990
MD5 88ab8848e8de6e6e35a4253086c3d623
BLAKE2b-256 43cc1ef2ad7854b62d48a64d71c31785d7d0c091006c174359c34fcb3e386f01

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page