Adding queue.types to the module reload list in the main init.py

Properly exposing QueueProcessor in processor/init.py
Updating queue/init.py to import and expose all necessary types (QueuePriority, ProcessingMetrics)
Ensuring consistent import patterns across the codebase
The changes maintain the cog's architecture while fixing the import issues:

Module reloading system now includes all dependencies
Package hierarchy properly exposes all needed types
Import structure is consistent across components
All necessary types and models are accessible
This commit is contained in:
pacnpal
2024-11-17 23:51:11 +00:00
parent 6647c93a44
commit afe0e96b14
2 changed files with 57 additions and 101 deletions

View File

@@ -3,88 +3,58 @@
from typing import Dict, Any, Optional, Union, List, Tuple from typing import Dict, Any, Optional, Union, List, Tuple
import discord # type: ignore import discord # type: ignore
try: # Import constants first since they have no dependencies
# Try relative imports first from .constants import (
from .core import VideoProcessor REACTIONS,
from .constants import ( ReactionType,
REACTIONS, ReactionEmojis,
ReactionType, ProgressEmojis,
ReactionEmojis, get_reaction,
ProgressEmojis, get_progress_emoji,
get_reaction, )
get_progress_emoji,
) # Import core components
from .url_extractor import ( from .core import VideoProcessor
URLExtractor,
URLMetadata, # Import URL related components
URLPattern, from .url_extractor import (
URLType, URLExtractor,
URLPatternManager, URLMetadata,
URLValidator, URLPattern,
URLMetadataExtractor, URLType,
) URLPatternManager,
from .message_validator import ( URLValidator,
MessageValidator, URLMetadataExtractor,
ValidationContext, )
ValidationRule,
ValidationResult, # Import validation components
ValidationRuleManager, from .message_validator import (
ValidationCache, MessageValidator,
ValidationStats, ValidationContext,
ValidationCacheEntry, ValidationRule,
ValidationError, ValidationResult,
) ValidationRuleManager,
from .message_handler import MessageHandler ValidationCache,
from .queue_handler import QueueHandler ValidationStats,
from .queue_processor import QueueProcessor # Added import ValidationCacheEntry,
from .reactions import ( ValidationError,
handle_archived_reaction, )
update_queue_position_reaction,
update_progress_reaction, # Import reaction handlers
update_download_progress_reaction, from .reactions import (
) handle_archived_reaction,
from ..utils.progress_tracker import progress_tracker update_queue_position_reaction,
except ImportError: update_progress_reaction,
# Fall back to absolute imports if relative imports fail update_download_progress_reaction,
from videoarchiver.processor.core import VideoProcessor )
from videoarchiver.processor.constants import (
REACTIONS, # Import progress tracking
ReactionType, from ..utils.progress_tracker import progress_tracker
ReactionEmojis,
ProgressEmojis, # Import handlers after other dependencies are loaded
get_reaction, from .message_handler import MessageHandler
get_progress_emoji, from .queue_handler import QueueHandler
) from .queue_processor import QueueProcessor
from videoarchiver.processor.url_extractor import (
URLExtractor,
URLMetadata,
URLPattern,
URLType,
URLPatternManager,
URLValidator,
URLMetadataExtractor,
)
from videoarchiver.processor.message_validator import (
MessageValidator,
ValidationContext,
ValidationRule,
ValidationResult,
ValidationRuleManager,
ValidationCache,
ValidationStats,
ValidationCacheEntry,
ValidationError,
)
from videoarchiver.processor.message_handler import MessageHandler
from videoarchiver.processor.queue_handler import QueueHandler
from videoarchiver.processor.queue_processor import QueueProcessor # Added import
from videoarchiver.processor.reactions import (
handle_archived_reaction,
update_queue_position_reaction,
update_progress_reaction,
update_download_progress_reaction,
)
from videoarchiver.utils.progress_tracker import progress_tracker
# Export public classes and constants # Export public classes and constants
__all__ = [ __all__ = [
@@ -92,7 +62,7 @@ __all__ = [
"VideoProcessor", "VideoProcessor",
"MessageHandler", "MessageHandler",
"QueueHandler", "QueueHandler",
"QueueProcessor", # Added export "QueueProcessor",
# URL Extraction # URL Extraction
"URLExtractor", "URLExtractor",
"URLMetadata", "URLMetadata",

View File

@@ -8,24 +8,10 @@ from typing import Any, ClassVar, Dict, List, Optional, Tuple, TYPE_CHECKING
import discord # type: ignore import discord # type: ignore
from discord.ext import commands # type: ignore from discord.ext import commands # type: ignore
try: from videoarchiver.core.types import ComponentState, ProcessorState, ComponentStatus, IComponent, IConfigManager, IQueueManager
# Try relative imports first from videoarchiver.processor.constants import REACTIONS
from ..core.types import ComponentState, ProcessorState, ComponentStatus from videoarchiver.utils import progress_tracker
from .constants import REACTIONS from videoarchiver.utils.exceptions import ProcessorError
from ..utils import progress_tracker
from ..utils.exceptions import ProcessorError
except ImportError:
# Fall back to absolute imports if relative imports fail
from videoarchiver.core.types import ComponentState, ProcessorState, ComponentStatus
from videoarchiver.processor.constants import REACTIONS
from videoarchiver.utils import progress_tracker
from videoarchiver.utils.exceptions import ProcessorError
if TYPE_CHECKING:
from .cleanup_manager import CleanupManager
from .message_handler import MessageHandler
from .queue_handler import QueueHandler
from ..core.types import IComponent, IConfigManager, IQueueManager
logger = logging.getLogger("VideoArchiver") logger = logging.getLogger("VideoArchiver")