fix: Telegram adapter crash on Windows when library not installed (#304)
The ImportError fallback set ContextTypes = Any, but then ContextTypes.DEFAULT_TYPE was used as a type annotation at class definition time — Any doesn't have .DEFAULT_TYPE, causing AttributeError. Fix: create a _MockContextTypes class with DEFAULT_TYPE = Any. Also stub CommandHandler, TelegramMessageHandler, filters, ParseMode, and ChatType to prevent potential NameErrors. Fixes #304.
This commit is contained in:
@@ -29,7 +29,17 @@ except ImportError:
|
||||
Bot = Any
|
||||
Message = Any
|
||||
Application = Any
|
||||
ContextTypes = Any
|
||||
CommandHandler = Any
|
||||
TelegramMessageHandler = Any
|
||||
filters = None
|
||||
ParseMode = None
|
||||
ChatType = None
|
||||
|
||||
# Mock ContextTypes so type annotations using ContextTypes.DEFAULT_TYPE
|
||||
# don't crash during class definition when the library isn't installed.
|
||||
class _MockContextTypes:
|
||||
DEFAULT_TYPE = Any
|
||||
ContextTypes = _MockContextTypes
|
||||
|
||||
import sys
|
||||
from pathlib import Path as _Path
|
||||
|
||||
Reference in New Issue
Block a user