Skip to main content

A type-hinted async Telegram bot library.

Project description

Roboto

codecov

A type-hinted async Telegram bot library, supporting trio, curio and asyncio.

Roboto's API is not perfectly stable nor complete yet. It will be kept a 0.x.0 until the Telegram Bot API is completely implemented, and will be bumped to 1.0.0 when it is complete.

Basic usage

Roboto is still a low-level bot API, meaning it does not provide much abstraction over the Bot API yet (that is planned, though).

Currently, a basic echo bot with roboto looks like:

from roboto import Token, BotAPI
from trio import run  # This could be asyncio or curio as well!


api_token = Token('your-bot-token')


async def main() -> None:
    async with BotAPI.make(api_token) as bot:
        offset = 0

        while True:
            updates = await bot.get_updates(offset)

            for update in updates:
                if update.message is not None and update.message.text is not None:
                    await bot.send_message(
                        update.message.chat.id,
                        update.message.text,
                    )

            if updates:
                offset = updates[-1].update_id + 1


# In asyncio it should be "main()".
run(main)

Being statically-typed, Roboto supports easy autocompletion and mypy static checking.

Contributing

Check our contributing guide to know how to develop on Roboto and contribute to our project.

Goals

Principles

  • Ease of static checking for client code, especially static typing.
  • Forwards compatibility (additions to the bot HTTP API should not break older versions of Roboto easily).

Achieved milestones

Next milestones

Acknowledgements

This used to be a disclaimer that we were vendoring asks. We are not anymore (the feature we needed is now on upstream), but I will still keep the acknowledgemente because it (through anyio) gives us the ability to support the three major async event loops, asyncio, trio and curio!

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

roboto-telegram-0.4.0.tar.gz (24.4 kB view details)

Uploaded Source

Built Distribution

roboto_telegram-0.4.0-py3-none-any.whl (25.1 kB view details)

Uploaded Python 3

File details

Details for the file roboto-telegram-0.4.0.tar.gz.

File metadata

  • Download URL: roboto-telegram-0.4.0.tar.gz
  • Upload date:
  • Size: 24.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.5 CPython/3.8.3 Linux/5.6.15-arch1-1

File hashes

Hashes for roboto-telegram-0.4.0.tar.gz
Algorithm Hash digest
SHA256 c0d772d84f757cdbd1601a26e1eaff330dc52a3378ba7a2964bd9962f98a9302
MD5 7c15751041d66d5529d86f278a7b37fc
BLAKE2b-256 6353848498fd45873ba8536d2f2695086b221f15f78c5576d524d19e103774fa

See more details on using hashes here.

File details

Details for the file roboto_telegram-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: roboto_telegram-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 25.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.5 CPython/3.8.3 Linux/5.6.15-arch1-1

File hashes

Hashes for roboto_telegram-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 13163bcdf63ba80a20257939e5ac29a1dc3efac4a0f41ac05d150415acd82469
MD5 5b11dc8524b526453f84d317838deafd
BLAKE2b-256 e45c2cd6b70c5af619c0fafb6cd0d52c380c19d092873e78cd56d91ea5e0ad42

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