""" BackgroundFX Pro API Module. Provides high-level interfaces for processing, streaming, and serving. """ from .pipeline import ( ProcessingPipeline, PipelineConfig, PipelineResult, ProcessingMode, PipelineStage ) from .video_processor import ( VideoProcessorAPI, VideoStats, StreamConfig, VideoStreamMode, OutputFormat ) from .batch_processor import ( BatchProcessor, BatchConfig, BatchItem, BatchReport, BatchPriority, FileType ) from .api_server import ( app, ServerConfig, ProcessingRequest, ImageProcessingRequest, VideoProcessingRequest, BatchProcessingRequest, StreamingRequest, ProcessingResponse, JobStatus, JobManager ) from .websocket import ( WebSocketHandler, WebSocketServer, WSMessage, MessageType, ClientSession, SessionManager, FrameProcessor, start_standalone_server ) __all__ = [ # Pipeline 'ProcessingPipeline', 'PipelineConfig', 'PipelineResult', 'ProcessingMode', 'PipelineStage', # Video Processor 'VideoProcessorAPI', 'VideoStats', 'StreamConfig', 'VideoStreamMode', 'OutputFormat', # Batch Processor 'BatchProcessor', 'BatchConfig', 'BatchItem', 'BatchReport', 'BatchPriority', 'FileType', # API Server 'app', 'ServerConfig', 'ProcessingRequest', 'ImageProcessingRequest', 'VideoProcessingRequest', 'BatchProcessingRequest', 'StreamingRequest', 'ProcessingResponse', 'JobStatus', 'JobManager', # WebSocket 'WebSocketHandler', 'WebSocketServer', 'WSMessage', 'MessageType', 'ClientSession', 'SessionManager', 'FrameProcessor', 'start_standalone_server' ] # Version info __version__ = '1.0.0' # Quick start functions def start_api_server(host: str = "0.0.0.0", port: int = 8000, **kwargs): """Quick start the REST API server.""" import uvicorn from .api_server import app, config config.HOST = host config.PORT = port for key, value in kwargs.items(): if hasattr(config, key.upper()): setattr(config, key.upper(), value) uvicorn.run(app, host=host, port=port) def start_websocket_server(host: str = "0.0.0.0", port: int = 8001): """Quick start the WebSocket server.""" import asyncio asyncio.run(start_standalone_server(host, port)) def create_pipeline(**kwargs) -> ProcessingPipeline: """Create a configured processing pipeline.""" config = PipelineConfig(**kwargs) return ProcessingPipeline(config) def create_batch_processor(**kwargs) -> BatchProcessor: """Create a configured batch processor.""" config = BatchConfig(**kwargs) return BatchProcessor(config)