Migration Guide
Migration Guide
Guide for migrating from older versions of BinomoAPI to the latest version.
Version 2.0 to 3.0
Major Changes
- Full async/await support
- Type safety improvements
- Professional error handling
- Enhanced logging system
- Configuration management
Breaking Changes
1. Async Support
Before (2.x):
# Synchronous API
api = BinomoAPI(auth_token, device_id)
balance = api.get_balance()
result = api.Call("EUR/USD", 60, 5.0)
After (3.x):
# Async API
async with BinomoAPI(auth_token, device_id) as api:
balance = await api.get_balance()
result = await api.place_call_option(
asset="EUR/USD",
duration_seconds=60,
amount=5.0
)2. Method Names
Before (2.x):
api.Call("EUR", 60, 5.0, True)
api.Put("GBP", 120, 10.0, False)
api.Getbalance()
After (3.x):
await api.place_call_option(
asset="EUR/USD",
duration_seconds=60,
amount=5.0,
use_demo=True
)
await api.place_put_option(
asset="GBP/USD",
duration_seconds=120,
amount=10.0,
use_demo=False
)
await api.get_balance()3. Error Handling
Before (2.x):
try:
result = api.Call("EUR", 60, 5.0)
if not result:
print("Trade failed")
except Exception as e:
print(f"Error: {e}")
After (3.x):
from BinomoAPI.exceptions import TradeError, InsufficientBalanceError
try:
result = await api.place_call_option(
asset="EUR/USD",
duration_seconds=60,
amount=5.0
)
except InsufficientBalanceError:
logging.error("Not enough funds")
except TradeError as e:
logging.error(f"Trade failed: {e}")4. Configuration
Before (2.x):
api = BinomoAPI(
auth_token,
device_id,
demo=True,
timeout=30
)
After (3.x):
from BinomoAPI.config_manager import get_config
config = get_config()
config.set("api", "timeout_seconds", 30)
config.save()
async with BinomoAPI(
auth_token=auth_token,
device_id=device_id,
demo=True
) as api:
# API uses configurationUpgrade Steps
- Install latest version:
pip install --upgrade BinomoAPI
- Update imports:
# Old imports
from BinomoAPI import BinomoAPI
# New imports
from BinomoAPI import BinomoAPI
from BinomoAPI.exceptions import (
AuthenticationError,
TradeError
)
- Update code structure:
import asyncio
from BinomoAPI import BinomoAPI
async def main():
async with BinomoAPI(...) as api:
# Your trading code here
pass
if __name__ == "__main__":
asyncio.run(main())Version 1.0 to 2.0
Major Changes
- WebSocket support
- Real-time data
- Basic error handling
- Demo account support
Breaking Changes
1. Authentication
Before (1.x):
api = BinomoAPI()
api.login("email", "password")
After (2.x):
api = BinomoAPI.login("email", "password")2. Trading Methods
Before (1.x):
api.trade("EUR", "CALL", 60, 5.0)
After (2.x):
api.Call("EUR", 60, 5.0)Upgrade Steps
- Install version 2.0:
pip install BinomoAPI==2.0.0
- Update authentication:
# Old style
api = BinomoAPI()
api.login("email", "password")
# New style
api = BinomoAPI.login("email", "password")Tips for Smooth Migration
1. Gradual Migration
Migrate one component at a time:
- Update authentication
- Convert to async/await
- Implement new error handling
- Update configuration
2. Testing Strategy
- Create test environment
- Run old and new versions in parallel
- Compare results
- Verify functionality
3. Common Issues
Async/Await Conversion
Problem:
# This will not work
result = api.place_call_option(...)
Solution:
# Use async/await
result = await api.place_call_option(...)Method Names
Problem:
# Old method names will raise AttributeError
api.Call(...)
Solution:
# Use new method names
await api.place_call_option(...)Configuration
Problem:
# Direct configuration no longer works
api = BinomoAPI(..., timeout=30)
Solution:
# Use configuration manager
config = get_config()
config.set("api", "timeout_seconds", 30)
config.save()Compatibility Mode
For smoother transition, version 3.0 includes compatibility mode:
from BinomoAPI import BinomoAPI
from BinomoAPI.compat import enable_legacy_mode
# Enable compatibility mode
enable_legacy_mode()
# Old methods will work with warnings
api.Call("EUR", 60, 5.0) # Works but warnsAdditional Resources
Getting Help
If you encounter issues during migration:
- Check the FAQ
- Join our Discord community
- Open an issue on GitHub
- Contact support team
Remember to always test thoroughly after migration!