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.6.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.6-py3-none-any.whl (216.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: baleclient-1.0.6.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.6.tar.gz
Algorithm Hash digest
SHA256 d468142c92ec1293750b5fa3e8fbd63abb70c8660f5dba32e21823f533b3206c
MD5 66e346e9ff5f4173d49656249dde909b
BLAKE2b-256 1dd4144fa22595f4a20557e807da842599af8a9fbb854c54cf507dbcc39df926

See more details on using hashes here.

Provenance

The following attestation bundles were made for baleclient-1.0.6.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.6-py3-none-any.whl.

File metadata

  • Download URL: baleclient-1.0.6-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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 93c564844868a1358024e578d16753cb9b5d24c7c71e4763d795afca3ed35ea4
MD5 b4f207adec931579c9ab7c5a66de6d89
BLAKE2b-256 7f1fc5a93b877b4d4aab82b6c5aaa194cd571abbc62007382fa0bb5d2ff5f307

See more details on using hashes here.

Provenance

The following attestation bundles were made for baleclient-1.0.6-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