Skip to main content

No project description provided

Project description

BaleClient

BaleClient is a maintained fork / rework of Aiobale, an asynchronous Python client for Bale Messenger.

The original library is great but contains several bugs and incomplete implementations. This project fixes those issues and adds improvements for reliability, stability, and usability.


Installation

Install from PyPI:

pip install baleclient

Upgrade to the latest version:

pip install -U baleclient

Install from source:

git clone https://github.com/Foad-KhAb/baleclient.git
cd baleclient
pip install -e .

Requirements

  • Python 3.11+

Quick Example

from baleclient import Client

async def main():
    async with Client("session") as client:
        me = await client.get_me()
        print(me)

Features

  • Fully asynchronous API
  • Lightweight and fast
  • Improved parsing reliability
  • Better error handling
  • Maintained fork of Aiobale

Based On

This project is based on:

Aiobale https://github.com/Enalite/aiobale

Credit to the original author for the initial implementation.


Why BaleClient?

While using Aiobale in real projects, I encountered several issues such as:

  • parsing bugs
  • inconsistent API responses
  • missing validations
  • edge cases not handled

BaleClient fixes these problems and introduces improvements to make the library more stable for production usage.


Fixes

The following issues in the original library have been fixed:

  • Fixed dialog response parsing
  • Fixed message caption parsing
  • Fixed history response validation errors
  • Fixed incorrect type validations in response models
  • Fixed document MIME type parsing when the API returns a dictionary instead of a string
  • Fixed thumbnail parsing when the API returns 6-1 instead of 6
  • Fixed thumbnail image parsing when the API returns a structured object instead of raw bytes or str
  • Allowed GroupPeer.access_hash to be optional to support peers returned without an access hash

This list will continue to grow as more protocol inconsistencies are discovered and resolved.


Improvements

Additional enhancements and quality-of-life improvements:

  • Improved error handling for corrupted or modified session files
  • Improved robustness when parsing Bale API responses with inconsistent structures
  • Added safer handling for missing or optional message fields
  • Added normalization for inconsistent thumbnail payload structures
  • Improved resilience against schema variations in document and media responses

Changelog

v0.1.0

  • Initial release
  • Fork of Aiobale with several fixes
  • Improved session error handling

Documentation

Documentation will be expanded in future releases.

For now, refer to:

  • The source code
  • Example usage in the repository

Notes

  • BaleClient is not an official Bale API library
  • The Bale API is internal and may change without notice

License

This project follows the same license as the original project unless otherwise specified.

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

baleclient-1.0.7.tar.gz (110.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

baleclient-1.0.7-py3-none-any.whl (216.3 kB view details)

Uploaded Python 3

File details

Details for the file baleclient-1.0.7.tar.gz.

File metadata

  • Download URL: baleclient-1.0.7.tar.gz
  • Upload date:
  • Size: 110.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for baleclient-1.0.7.tar.gz
Algorithm Hash digest
SHA256 a7253dd1fbb44012dce060c250a476378451db0cd34e36af4592aaefb199ce1f
MD5 ba085d11bbb4cead0b33820708eabacf
BLAKE2b-256 d151a33404926befe6ef6b2f4444e2f78deb30cda1a422f520995f051a9bd4b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for baleclient-1.0.7.tar.gz:

Publisher: workflow.yml on Foad-KhAb/baleclient

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file baleclient-1.0.7-py3-none-any.whl.

File metadata

  • Download URL: baleclient-1.0.7-py3-none-any.whl
  • Upload date:
  • Size: 216.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for baleclient-1.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 6e46d5ab76fae25350de771448de885314c0f0f284b19424f24727b2fec7286e
MD5 a5bbe5c0b81e749e68c55d21211e9920
BLAKE2b-256 0ea783d99b6386b31f4cbb7134a574af0429b8614cee50b91b30fff1c1e33f8f

See more details on using hashes here.

Provenance

The following attestation bundles were made for baleclient-1.0.7-py3-none-any.whl:

Publisher: workflow.yml on Foad-KhAb/baleclient

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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