Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
31 changes: 31 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,37 @@ 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.4] - 2025-08-02

### Changed
- **πŸ—οΈ Major Architecture Refactoring**: Converted all large monolithic modules into multi-file packages
- **client.py** β†’ `client/` package (8 specialized modules)
- `rate_limiter.py`: Async rate limiting functionality
- `auth.py`: Authentication and token management
- `http.py`: HTTP client and request handling
- `cache.py`: Intelligent caching for instruments and market data
- `market_data.py`: Market data operations (instruments, bars)
- `trading.py`: Trading operations (positions, trades)
- `base.py`: Base class combining all mixins
- `__init__.py`: Main ProjectX class export
- **order_manager.py** β†’ `order_manager/` package (10 modules)
- **position_manager.py** β†’ `position_manager/` package (12 modules)
- **realtime_data_manager.py** β†’ `realtime_data_manager/` package (9 modules)
- **realtime.py** β†’ `realtime/` package (8 modules)
- **utils.py** β†’ `utils/` package (10 modules)

### Improved
- **πŸ“ Code Organization**: Separated concerns into logical modules for better maintainability
- **πŸš€ Developer Experience**: Easier navigation and understanding of codebase structure
- **βœ… Testing**: Improved testability with smaller, focused modules
- **πŸ”§ Maintainability**: Each module now has a single, clear responsibility

### Technical Details
- **Backward Compatibility**: All existing imports continue to work without changes
- **No API Changes**: Public interfaces remain identical
- **Import Optimization**: Reduced circular dependency risks
- **Memory Efficiency**: Better module loading with focused imports

## [2.0.2] - 2025-08-02

### Added
Expand Down
34 changes: 31 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -174,9 +174,37 @@ Good documentation is essential for this project:
## Architecture Guidelines

### Project Structure
- Maintain the existing modular architecture
- Place new files in appropriate modules
- Consider impacts on existing components

The SDK uses a modular architecture where large components are split into multi-file packages:

- **Client Module** (`client/`): Core async client functionality
- `auth.py`: Authentication and token management
- `http.py`: HTTP client and request handling
- `cache.py`: Caching for instruments and market data
- `market_data.py`: Market data operations
- `trading.py`: Trading operations
- `base.py`: Base class combining mixins

- **Trading Modules**:
- `order_manager/`: Order lifecycle management (10 modules)
- `position_manager/`: Portfolio and risk management (12 modules)

- **Real-time Modules**:
- `realtime/`: WebSocket client functionality (8 modules)
- `realtime_data_manager/`: Real-time OHLCV data (9 modules)

- **Utilities** (`utils/`): Shared utilities (10 modules)
- Trading calculations, portfolio analytics, pattern detection
- Market microstructure, formatting, environment handling

- **Indicators** (`indicators/`): 58+ technical indicators
- Organized by category (momentum, overlap, volatility, etc.)

### Adding New Features
- Place new functionality in the appropriate existing module
- For large features, consider creating a new sub-module
- Maintain backward compatibility for all public APIs
- Follow the established mixin pattern for client extensions

### Performance Considerations
- Implement time window filtering for analysis methods
Expand Down
4 changes: 2 additions & 2 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
project = "project-x-py"
copyright = "2025, Jeff West"
author = "Jeff West"
release = "2.0.3"
version = "2.0.3"
release = "2.0.4"
version = "2.0.4"

# -- General configuration ---------------------------------------------------

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "project-x-py"
version = "2.0.3"
version = "2.0.4"
description = "High-performance Python SDK for futures trading with real-time WebSocket data, technical indicators, order management, and market depth analysis"
readme = "README.md"
license = { text = "MIT" }
Expand Down
2 changes: 1 addition & 1 deletion src/project_x_py/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

from typing import Any

__version__ = "2.0.3"
__version__ = "2.0.4"
__author__ = "TexasCoding"

# Core client classes - renamed from Async* to standard names
Expand Down
Loading
Loading