- 
          
- 
                Notifications
    You must be signed in to change notification settings 
- Fork 740
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
CcxtExchangeBuilderdynamically generates classes inheriting fromCcxtFeedccxt.async_supportandccxt.promodulesTesting
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