Source code for paper_firehose.core.command_utils

"""Shared utilities for command implementations.

Provides common patterns used across multiple commands.
"""

from typing import Optional, List
from .config import ConfigManager


[docs] def resolve_topics(config_manager: ConfigManager, topic: Optional[str] = None) -> List[str]: """Resolve topic argument to list of topics to process. If a specific topic is provided, returns a list containing just that topic. Otherwise, returns all available topics from the configuration. Args: config_manager: Configuration manager instance topic: Optional specific topic name. If None, all topics are returned. Returns: List of topic names to process Examples: >>> cfg = ConfigManager() >>> resolve_topics(cfg, "physics") # Returns ["physics"] >>> resolve_topics(cfg, None) # Returns all topics like ["physics", "biology", ...] """ if topic: return [topic] return config_manager.get_available_topics()