Official Python SDK for AccessibleTranslator API - automated cognitive accessibility
Project description
AccessibleTranslator Python SDK
Official Python SDK for AccessibleTranslator API - automated cognitive accessibility
Transform complex text into accessible content for users with autism, intellectual disabilities, limited vocabulary, and other cognitive accessibility needs.
Features
- Async/Sync Support: Built with asyncio for optimal performance
- Type Safety: Full type hints with Pydantic models
- Comprehensive Error Handling: Detailed error messages and retry logic
- API Key Authentication: Secure API key-based authentication
- Complete API Coverage: All endpoints including text translation, transformations, and word balance
Installation
pip install accessibletranslator
Quick Start
import asyncio
import accessibletranslator
from accessibletranslator.models.translation_request import TranslationRequest
async def main():
# Configure the client with your API key
configuration = accessibletranslator.Configuration(
api_key={'ApiKeyAuth': 'sk_your_api_key_here'}
)
async with accessibletranslator.ApiClient(configuration) as api_client:
# Create API instances
translation_api = accessibletranslator.TranslationApi(api_client)
# Transform text for better accessibility
request = TranslationRequest(
text="The implementation of this algorithm requires substantial computational resources and exhibits significant complexity in its operational parameters.",
transformations=[
"language_simple_sentences",
"language_common_words",
"clarity_concrete_examples"
]
)
# Get the accessible version
result = await translation_api.text_api_translate_post(request)
print(f"Original: {request.text}")
print(f"Accessible: {result.translated_text}")
print(f"Word balance: {result.word_balance}")
print(f"Processing time: {result.processing_time_ms}ms")
# Run the example
asyncio.run(main())
Authentication
Get your API key from AccessibleTranslator:
import accessibletranslator
configuration = accessibletranslator.Configuration(
api_key={'ApiKeyAuth': 'sk_your_api_key_here'}
)
API Reference
Text Translation
Transform text for cognitive accessibility:
import asyncio
import accessibletranslator
from accessibletranslator.models.translation_request import TranslationRequest
async def translate_text():
configuration = accessibletranslator.Configuration(
api_key={'ApiKeyAuth': 'sk_your_api_key_here'}
)
async with accessibletranslator.ApiClient(configuration) as api_client:
translation_api = accessibletranslator.TranslationApi(api_client)
request = TranslationRequest(
text="Your complex text here",
transformations=[
"language_simple_sentences",
"language_common_words",
"clarity_pronouns"
],
target_language="Same as input" # or "English", "Spanish", etc.
)
result = await translation_api.text_api_translate_post(request)
return result
asyncio.run(translate_text())
Available Transformations
Get list of available transformations:
async def get_transformations():
configuration = accessibletranslator.Configuration(
api_key={'ApiKeyAuth': 'sk_your_api_key_here'}
)
async with accessibletranslator.ApiClient(configuration) as api_client:
translation_api = accessibletranslator.TranslationApi(api_client)
transformations = await translation_api.available_transformations_api_transformations_get()
print(f"Available transformations: {transformations.total_transformations}")
for transform in transformations.transformations:
print(f"- {transform.name}: {transform.description}")
return transformations
asyncio.run(get_transformations())
Target Languages
Get supported target languages:
async def get_languages():
configuration = accessibletranslator.Configuration(
api_key={'ApiKeyAuth': 'sk_your_api_key_here'}
)
async with accessibletranslator.ApiClient(configuration) as api_client:
translation_api = accessibletranslator.TranslationApi(api_client)
languages = await translation_api.available_target_languages_api_target_languages_get()
print(f"Supported languages: {languages.total_languages}")
for lang in languages.languages:
print(f"- {lang}")
return languages
asyncio.run(get_languages())
Word Balance
Check your remaining word balance:
async def check_balance():
configuration = accessibletranslator.Configuration(
api_key={'ApiKeyAuth': 'sk_your_api_key_here'}
)
async with accessibletranslator.ApiClient(configuration) as api_client:
user_api = accessibletranslator.UserManagementApi(api_client)
balance = await user_api.word_balance_users_word_balance_get()
print(f"Remaining words: {balance.word_balance}")
return balance
asyncio.run(check_balance())
Error Handling
import asyncio
import accessibletranslator
from accessibletranslator.rest import ApiException
async def handle_errors():
configuration = accessibletranslator.Configuration(
api_key={'ApiKeyAuth': 'sk_your_api_key_here'}
)
async with accessibletranslator.ApiClient(configuration) as api_client:
translation_api = accessibletranslator.TranslationApi(api_client)
try:
request = TranslationRequest(
text="Text to transform",
transformations=["language_simple_sentences"]
)
result = await translation_api.text_api_translate_post(request)
return result
except ApiException as e:
if e.status == 401:
print("Invalid API key")
elif e.status == 402:
print("Insufficient word balance")
elif e.status == 422:
print("Invalid request data")
else:
print(f"API error: {e.status} - {e.reason}")
except Exception as e:
print(f"Unexpected error: {e}")
asyncio.run(handle_errors())
Rate Limiting
The API includes rate limiting. The SDK can automatically handle retries when properly configured:
import asyncio
import accessibletranslator
from accessibletranslator.models.translation_request import TranslationRequest
from accessibletranslator.exceptions import ApiException
async def with_retry():
# ⚠️ IMPORTANT: Retries must be explicitly enabled
configuration = accessibletranslator.Configuration(
api_key={'ApiKeyAuth': 'sk_your_api_key_here'},
api_key_prefix={'ApiKeyAuth': 'Bearer'}, # Required for authentication
retries=3 # Enable 3 retry attempts with exponential backoff
)
async with accessibletranslator.ApiClient(configuration) as api_client:
translation_api = accessibletranslator.TranslationApi(api_client)
# Define the request
request = TranslationRequest(
text="Text to translate",
transformations=["language_simple_sentences"]
)
try:
# The SDK will automatically retry on rate limits (429) and server errors (5xx)
# Retry timing: 100ms → 200ms → 400ms → 800ms (exponential backoff)
result = await translation_api.text_api_translate_post(request)
return result
except ApiException as e:
if e.status == 429:
print("Rate limit exceeded. All retries exhausted. Please wait and try again.")
elif e.status >= 500:
print("Server error. All retries exhausted.")
else:
print(f"API error: {e.status} - {e.reason}")
raise
asyncio.run(with_retry())
Note: By default, retries are disabled. You must set retries=N to enable automatic retry handling for rate limits and server errors.
Health Check
Check API health status:
async def health_check():
configuration = accessibletranslator.Configuration()
async with accessibletranslator.ApiClient(configuration) as api_client:
system_api = accessibletranslator.SystemApi(api_client)
health = await system_api.health_check_health_get()
print(f"API Status: {health.status}")
print(f"Timestamp: {health.timestamp}")
return health
asyncio.run(health_check())
Requirements
- Python 3.9+
- aiohttp
- pydantic
- typing-extensions
Support
- Documentation: AccessibleTranslator API Docs
- Issues: For SDK-related issues, please open an issue in the repository
- API Support: Visit AccessibleTranslator.com for general API support
License
This SDK is licensed under the MIT License.
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
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 accessibletranslator-1.0.1.tar.gz.
File metadata
- Download URL: accessibletranslator-1.0.1.tar.gz
- Upload date:
- Size: 50.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75a848fcc337c438cd2c382b6549d6c1e1acf325717741d7e8896c49ec041788
|
|
| MD5 |
61024050acd5bb938baadafa4308bcbf
|
|
| BLAKE2b-256 |
ab9999d359ecff8e4b994a34c1fb5399f60c927b75cd919d19adbe67c427bd43
|
File details
Details for the file accessibletranslator-1.0.1-py3-none-any.whl.
File metadata
- Download URL: accessibletranslator-1.0.1-py3-none-any.whl
- Upload date:
- Size: 48.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e6c5a7707ccd319889d5fd17f245f40fcbdc2c08249054fce1147b19ba1d3e5
|
|
| MD5 |
9eb7f61d8b33e0fa5e74873d12003f56
|
|
| BLAKE2b-256 |
831fd2fbc4c212305193be9ad7a673795a8ed8b12017555c926e3322a90f2783
|