Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
7f0db34
feat(async): Complete Phase 1 of async/await refactoring
TexasCoding Jul 30, 2025
0d03629
feat(async): Complete Phase 2 of async/await refactoring
TexasCoding Jul 30, 2025
c839a11
feat: implement AsyncOrderManager for Phase 3
TexasCoding Jul 31, 2025
ef89486
feat: implement AsyncPositionManager for Phase 3
TexasCoding Jul 31, 2025
d219cca
feat(async): implement Phase 3 - AsyncRealtimeDataManager and AsyncOr…
TexasCoding Jul 31, 2025
de7dcaf
feat(async): complete Phase 4 - AsyncProjectXRealtimeClient and facto…
TexasCoding Jul 31, 2025
dd35b5c
feat(tests): convert all tests to async using pytest-asyncio
TexasCoding Jul 31, 2025
cf7eebb
feat(async): fix async real-time client WebSocket and data handling
TexasCoding Jul 31, 2025
6aacb87
fix(async): fix async real-time order tracking and WebSocket subscrip…
TexasCoding Jul 31, 2025
520b874
fix(async): fix P&L calculations and market data retrieval
TexasCoding Jul 31, 2025
3bc9c65
fix(async): correct import name for async data manager
TexasCoding Jul 31, 2025
58d1b10
fix(async): add tick data to current_tick_data list for real-time pri…
TexasCoding Jul 31, 2025
193336f
fix(async): start real-time feed after initialization
TexasCoding Jul 31, 2025
e261b68
fix(async): complete async position management example and reduce ver…
TexasCoding Jul 31, 2025
d565a68
feat(async): fix deadlock in AsyncOrderBook and add comprehensive exa…
TexasCoding Aug 1, 2025
23c6609
fix(async): resolve additional deadlock in AsyncOrderBook.get_orderbo…
TexasCoding Aug 1, 2025
3c89f4e
refactor(async): complete async orderbook refactoring with all lintin…
TexasCoding Aug 1, 2025
9bea7e8
fix(async): resolve technical indicator issues in async example
TexasCoding Aug 1, 2025
1661877
feat(async): add async order and position tracking example with autom…
TexasCoding Aug 1, 2025
89bf04a
feat(async): add async interactive instrument search example
TexasCoding Aug 1, 2025
82862bc
fix(async): correct timeframe format in multi-timeframe strategy
TexasCoding Aug 1, 2025
3f56d35
fix(async): fix logging initialization in multi-timeframe strategy
TexasCoding Aug 1, 2025
bb441b3
fix(async): fix setup_logging reference and account_id type
TexasCoding Aug 1, 2025
2d0dc3f
fix(async): fix indicator calls and orderbook methods in multi-timefr…
TexasCoding Aug 1, 2025
0c7630f
fix(async): remove column_name parameter from indicator calls
TexasCoding Aug 1, 2025
84b867b
fix(async): fix SMA column name case in multi-timeframe strategy
TexasCoding Aug 1, 2025
54e2841
fix(async): handle SignalR CompletionMessage as debug not error
TexasCoding Aug 1, 2025
548eeed
feat(async): add API compatibility improvements for sync migration
TexasCoding Aug 1, 2025
84d56ea
feat!: migrate to async-only architecture for v2.0.0
TexasCoding Aug 1, 2025
6a8d4c9
async refactoring complete
TexasCoding Aug 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,51 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Old implementations are removed when improved
- Clean, modern code architecture is prioritized

## [2.0.0] - 2025-01-30

### Breaking Changes
- **🚀 Complete Async Migration**: Entire SDK migrated from synchronous to asynchronous architecture
- All public methods now require `await` keyword
- Clients must use `async with` for proper resource management
- No backward compatibility - clean async-only implementation
- Aligns with CLAUDE.md directive for "No Backward Compatibility" during development

### Added
- **✨ AsyncProjectX Client**: New async-first client implementation
- HTTP/2 support via httpx for improved performance
- Concurrent API operations with proper connection pooling
- Non-blocking I/O for all operations
- Async context manager support for resource cleanup

- **📦 Dependencies**: Added modern async libraries
- `httpx[http2]>=0.27.0` for async HTTP with HTTP/2 support
- `pytest-asyncio>=0.23.0` for async testing
- `aioresponses>=0.7.6` for mocking async HTTP

### Changed
- **🔄 Migration Pattern**: From sync to async
```python
# Old (Sync)
client = ProjectX(api_key, username)
client.authenticate()
positions = client.get_positions()

# New (Async)
async with AsyncProjectX.from_env() as client:
await client.authenticate()
positions = await client.get_positions()
```

### Performance Improvements
- **⚡ Concurrent Operations**: Multiple API calls can now execute simultaneously
- **🚄 HTTP/2 Support**: Reduced connection overhead and improved throughput
- **🔄 Non-blocking WebSocket**: Real-time data processing without blocking other operations

### Migration Notes
- This is a complete breaking change - all code using the SDK must be updated
- See `tests/test_async_client.py` for usage examples
- Phase 2-5 of async migration still pending (managers, real-time, etc.)

## [1.1.4] - 2025-01-30

### Fixed
Expand Down
Loading
Loading