הגדרת type של subclasses

בקוד בתמונה המשתנה order הוא tuple שבתוכו הרבה subclasses של Piece
הבעיה היא שכאשר אני כותב Tuple[Piece,…] אני מקבל שגיאות.
רק כאשר אני כותב Any במקום Piece השגיאות נעלמות.
(האם זה קשור לכך שהקלאסס הנ"ל יורשות גם מהמיקסינים ?)
האם יש דרך טובה יותר ?
ניסיתי גם ליצור alias כלומר ליצור טייפ של tuple עם כל השמות של כלי המשחק בתוכו , ולמרות שכלי המשחק מיובאים בקובץ, mypy לא קיבל את זה.

אלו השגיאות שאני מקבל :

השאלה בעיקרון היא אותה שאלה:

לייק 1

ניסיתי להשתמש ב

reveal_type(Rook)

וקיבלתי :

board/board.py:16: note: Revealed type is 'def (**kwargs: Any) -> pieces.rook.Rook'

וזה לא אומר לי הרבה …
חשבתי גם להשתמש בtypevar עם באונד לpiece , רק שגם כאן אני לא בטוח שהבנתי איך עושים את זה

אוקיי , הבנתי - Type[Rook]

הבעיה היא שעכשיו הוא מתלונן על הסדר …בגלל ההיפוך בסוף בצבע המנוגד …

הפתרון שמצאתי הוא כזה - השאלה היא האם יש דרך פחות מכוערת …
....

האם ניתן לפתור על ידי
[Bishop]] Tuple[Type[Rook], Type

וכן הלאה?

לייק 1

כן , רק שים לב שבצבע המנוגד הוא יתלונן לך שהסדר הפוך , אז תחשוב איך להתגבר על זה.

באמצעות Union אני מניח…

לייק 1