This file documents the dependency requirements extracted from the source projects and their usage patterns.
flask==3.0.1
gunicorn==21.2.0
flask-cors
python-dotenv
requests
pytest
pytest-cov
black
faceit
responses
pymongo
awpy
zstandard
cloudscraper
selenium
undetected-chromedriverpandas
matplotlib
awpy- Standard library only - No external dependencies
- Compatible with Python 3.7+
requests- HTTP client functionalitypython-dotenv- Environment variable management (optional)
pandas- Data manipulation and analysisnumpy- Numerical operations (dependency of pandas)
- Standard library only - Uses json, pathlib, os
- Optional:
python-dotenvfor configuration
- JavaScript/Browser APIs only - No Node.js dependencies
- Uses native browser APIs
awpy- CS2 demo parsing (wraps demoinfocs-golang)pandas- Data manipulationmatplotlib- Visualization and heatmap generation
# No additional dependencies required
pip install python-dotenv # Optional for configurationpip install pandas numpy matplotlibpip install awpy pandas matplotlibpip install requests pandas numpy matplotlib awpy python-dotenvpip install pytest pytest-cov responses black
pip install requests pandas numpy matplotlib awpy python-dotenvThe extendo project included this Docker setup for reference:
- Python 3.12 base image
- Chrome browser installation for Selenium
- System dependencies for undetected-chromedriver
- Flask development server configuration
- API service with environment variable support
- MongoDB service with persistent volumes
- Port mapping: 5000:5000 for API, 27017:27017 for MongoDB
From the extendo test suite, key testing patterns include:
import responses
import pytest
@responses.activate
def test_api_call():
responses.add(responses.GET, "http://api.example.com", json={"data": "test"})
# Test code here@pytest.fixture(scope="session")
def client():
return APIClient(api_key="dummy_key")
@pytest.fixture
def no_sleep(monkeypatch):
monkeypatch.setattr(time, "sleep", lambda x: None)- Tests for 429 (rate limit) responses
- Tests for retry logic with exponential backoff
- Cache validation and clearing tests
- Server error handling (5xx responses)
- LRU cache for frequently accessed data
- Cache clearing for testing and development
- Performance monitoring with timing utilities
- Thread-safe operations for demo parsing
- Parallel processing for multiple demos
- Background task queues for heavy operations
- API keys stored in environment variables
- Database connection strings externalized
- Debug flags configurable per environment
- Rate limiting implementation
- Error handling that doesn't expose internals
- Input validation and sanitization
- No external dependencies in content scripts
- Uses native browser APIs
- Communication with background scripts via message passing
- No build process required for simple extensions
- Optional: Webpack for more complex builds
- Testing can be done manually or with browser automation
- Gunicorn for production Flask serving
- MongoDB Atlas for managed database
- Environment-specific configuration
- Logging and monitoring setup
- Horizontal scaling with load balancers
- Worker processes for background tasks
- Caching layers for frequently accessed data