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-1instead of6 - Fixed thumbnail image parsing when the API returns a structured object instead of raw
bytesorstr - Allowed
GroupPeer.access_hashto 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a7253dd1fbb44012dce060c250a476378451db0cd34e36af4592aaefb199ce1f
|
|
| MD5 |
ba085d11bbb4cead0b33820708eabacf
|
|
| BLAKE2b-256 |
d151a33404926befe6ef6b2f4444e2f78deb30cda1a422f520995f051a9bd4b1
|
Provenance
The following attestation bundles were made for baleclient-1.0.7.tar.gz:
Publisher:
workflow.yml on Foad-KhAb/baleclient
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
baleclient-1.0.7.tar.gz -
Subject digest:
a7253dd1fbb44012dce060c250a476378451db0cd34e36af4592aaefb199ce1f - Sigstore transparency entry: 1096284810
- Sigstore integration time:
-
Permalink:
Foad-KhAb/baleclient@5cc92990229cdcd99151e1a63d150633fcc01855 -
Branch / Tag:
refs/tags/v1.0.7 - Owner: https://github.com/Foad-KhAb
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@5cc92990229cdcd99151e1a63d150633fcc01855 -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e46d5ab76fae25350de771448de885314c0f0f284b19424f24727b2fec7286e
|
|
| MD5 |
a5bbe5c0b81e749e68c55d21211e9920
|
|
| BLAKE2b-256 |
0ea783d99b6386b31f4cbb7134a574af0429b8614cee50b91b30fff1c1e33f8f
|
Provenance
The following attestation bundles were made for baleclient-1.0.7-py3-none-any.whl:
Publisher:
workflow.yml on Foad-KhAb/baleclient
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
baleclient-1.0.7-py3-none-any.whl -
Subject digest:
6e46d5ab76fae25350de771448de885314c0f0f284b19424f24727b2fec7286e - Sigstore transparency entry: 1096284822
- Sigstore integration time:
-
Permalink:
Foad-KhAb/baleclient@5cc92990229cdcd99151e1a63d150633fcc01855 -
Branch / Tag:
refs/tags/v1.0.7 - Owner: https://github.com/Foad-KhAb
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@5cc92990229cdcd99151e1a63d150633fcc01855 -
Trigger Event:
release
-
Statement type: