-
-
Notifications
You must be signed in to change notification settings - Fork 741
Implement CCXT Exchange Builder Factory with TDD methodology #1092
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
tommy-ca
wants to merge
43
commits into
bmoscon:master
Choose a base branch
from
tommy-ca:feature/ccxt-exchange-builder-factory
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Implement CCXT Exchange Builder Factory with TDD methodology #1092
tommy-ca
wants to merge
43
commits into
bmoscon:master
from
tommy-ca:feature/ccxt-exchange-builder-factory
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Implement transparent HTTP/WebSocket proxy support with Pydantic v2 - Add simple 3-component architecture following START SMALL principles - Create comprehensive test suite (28 unit + 12 integration tests, all passing) - Consolidate documentation into organized structure by audience - Add kiro specification tracking for proxy system completion - Support environment variables, YAML, and programmatic configuration - Enable per-exchange proxy overrides with SOCKS4/SOCKS5/HTTP support - Maintain zero breaking changes to existing code 🤖 Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
- Add ProxyUrlConfig and ProxyPoolConfig for multi-proxy support - Implement selection strategies (RoundRobin, Random, LeastConnections) - Add health checking with TCPHealthChecker and HealthCheckConfig - Create ProxyPool management class with automatic failover - Extend ProxyConfig to support both single proxies and pools - Add comprehensive test suite with 14 TDD tests - Maintain full backward compatibility (52/52 tests passing) - Archive duplicate proxy specifications and consolidate Features: - Multiple proxy support with configurable selection strategies - Health monitoring and automatic unhealthy proxy filtering - Load balancing with connection tracking - Graceful fallback when healthy proxies unavailable - Type-safe configuration with Pydantic v2 validation Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
- Complete Task 4.1: CcxtExchangeBuilder Factory implementation - Add dynamic feed class generation for CCXT exchanges - Implement exchange ID validation and CCXT module loading - Add symbol normalization and subscription filter hook systems - Support endpoint overrides and adapter class customization - Create comprehensive test suite with 20 behavioral tests (all passing) - Follow TDD RED-GREEN-REFACTOR cycle with proper test conversion - Integrate with existing cryptofeed Feed architecture and FeedHandler - Support 105 CCXT exchanges with extensible factory pattern 🤖 Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
Closing this PR - will create on my own fork instead for development purposes |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Complete implementation of Task 4.1: CcxtExchangeBuilder Factory using Test-Driven Development methodology. This adds a flexible factory system for generating feed classes for any CCXT-supported exchange.
Key Features
Technical Implementation
CcxtExchangeBuilder
dynamically generates classes inheriting fromCcxtFeed
ccxt.async_support
andccxt.pro
modulesTesting
Test Coverage
Usage Example
Files Changed
cryptofeed/exchanges/ccxt_generic.py
- CcxtExchangeBuilder implementationcryptofeed/exchanges/ccxt_adapters.py
- Extended adapter registry systemtests/unit/test_ccxt_exchange_builder.py
- Comprehensive test suitetests/unit/test_ccxt_adapter_registry.py
- Adapter registry tests.kiro/specs/ccxt-generic-pro-exchange/tasks.md
- Task completion trackingIntegration
🤖 Generated with Claude Code
via Happy