שאלה בנוגע להערה של MYPY

תגיות:

אז החלטתי לעשות שימוש במודול: FILECMP
יש לי פונקציה שמקבלת אובייקט מתוך המודול: DIRCMP

כשניסיתי לעשות ANNOTATION קיבלתי את ההערה הבאה (רק בSTRICT):
"Missing type parameters for generic type "dircmp""

חיפשתי בכל רחבי האינטרנט ולא ממש הצלחתי למצוא משהו שיעזור לי, אז אני שואל פה…

foo(dcmp: filecmp.dircmp) -> None:
...

כרגע שמתי שם ANY…

אתה צריך ספציפית את האובייקט הזה לייבא גם לתוך הקוד (בנוסף על הספריה) ואז לקשר אליו באמצעות שם האובייקט בלבד.

נסה תראה אם זה עובד לך.

ניסיתי לעשות
from filecmp import dircmp

עדיין לא עבד…

מה כל ההערה שהוא זורק לך ? רק מה שרשמת ?

כן
זה דורש איזה פעולה של להמציא GENERIC TYPE - מה שנראה לי מורכב מדי בשביל אובייקט שכבר קיים…
את Path של pathlib הוא ידע לזהות…

כשעושים:
type(filecmp.dircmp)

הוא אומר:

<class 'type'>

יש אפשרות בטייפינג להכניס לזה גם טיפוס למשל מחרוזת כדי להגדיר לו את הטייפ.
תנסה את השורה הבאה:

def foo(obj: dircmp[str]) -> None:

אז הוא עובר את הMYPY אבל לא מריץ את הקוד:

Traceback (most recent call last):
  File ".\wit.py", line 95, in <module>
    def check_if_same(dcmp: filecmp.dircmp[str]) -> bool:
TypeError: 'type' object is not subscriptable

תעשה

from filecmp import dircmp 

ואז תרשום את השורה כמו שכתבתי לך זה אמור לעבוד.

ניסיתי לפני שפרסמתי את השאילתא -> עושה את אותה התקלה…

אצלי עשיתי וזה עובד עם strict … אני לא ידוע אולי אתה מנסה לעשות עליו [ ] במקום אחר ולא בהכרח זה מתייחס לחתימת הפונקציה ? זה הדבר היחיד שעוד אני יכול לחשוב עליו.

כאילו איפשהו שם יש

dcmp[..]

:woman_shrugging:

לייק 1

אין כזה :weary:
לא קריטי, אני אשתמש בANY שזה די חבל פשוט…