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.9.tar.gz (110.2 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.9-py3-none-any.whl (216.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for baleclient-1.0.9.tar.gz
Algorithm Hash digest
SHA256 c22f96a0badaf5696ac73be35f069477b9fa4bed9f92cb923b7dd23551f49805
MD5 95380e57066fdf210d1a626222c6def5
BLAKE2b-256 a483f653a2cfa63148bbcb447cd7d988e32799d08e831c858df7b0bdf99cc4ad

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for baleclient-1.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 0dca74b6316dd6f888f8ed62673787212ec21c1d9acbe9fa1c55acc06218742e
MD5 b6765767e2dca69eb625e1ca62a208f6
BLAKE2b-256 10f35bed151430d8dc689bbfb085eac76aea54337eb0ad1dc82bc16a56f78b7f

See more details on using hashes here.

Provenance

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