TIPCommon.validation

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

הכיתה ParameterValidator

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

דוגמה לשימוש

כדי להשתמש בכלי האימות, מאתחלים אותו באמצעות אובייקט siemplify SDK:

from TIPCommon.validation import ParameterValidator

# Initialize the validator
validator = ParameterValidator(siemplify)

# Validate and cast strings to specific types
validated_float = validator.validate_float(param_name='Threshold', value='3.7')
validated_int = validator.validate_integer(param_name='Retry Count', value='5')

אימות מספרי ומגבלות

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

תפקיד פרמטרים תיאור והחזרות
validate_float()
  • ‫param_name: (מחרוזת)
  • ‫value: (str | float)
החזרות: float

בודקת אם אפשר להמיר ערך למספר עשרוני. שימושי לספים או לניקוד הסתברות.

validate_integer()
  • ‫param_name: (מחרוזת)
  • ‫value: (מחרוזת | מספר שלם)
החזרות: int

הפונקציה מאמתת ערך וממירה אותו למספר שלם.

validate_range()
  • ‫value: (מחרוזת | מספר שלם)
  • min_limit: (int)
  • max_limit: (int)
החזרות: int

הפונקציה מוודאת שמספר שלם נמצא בטווח שמוגדר על ידי min_limit ו-max_limit.

validate_percentage()
  • ‫value: (מחרוזת | מספר שלם)
החזרות: int

הפונקציה מוודאת שהערך הוא מספר שלם בין 0 ל-100, כולל.

validate_non_negative()
  • ‫value: (מחרוזת | מספר שלם)
החזרות: int

הפונקציה מוודאת שהערך הוא מספר שלם ≥ 0.

validate_non_zero()
  • ‫value: (מחרוזת | מספר שלם)
החזרות: int

הערך חייב להיות מספר שלם ושונה מ-0.

validate_positive()
  • ‫value: (מחרוזת | מספר שלם)
החזרות: int

הפונקציה מוודאת שהערך הוא מספר שלם > 0.

validate_lower_limit()
  • ‫value: (מחרוזת | מספר שלם)
  • ‫limit: (מספר שלם)
החזרות: int

הערך הוא ≥ הערך שצוין limit.

validate_upper_limit()
  • ‫value: (מחרוזת | מספר שלם)
  • ‫limit: (מספר שלם)
החזרות: int

הערך הוא ≤ הערך שצוין limit.

מבנה נתונים ואימות מחרוזות

השיטות האלה מאמתות סוגי קלט מורכבים יותר, כמו מחרוזות מופרדות, אובייקטים של JSON ופורמטים ספציפיים כמו כתובות אימייל.

תפקיד פרמטרים תיאור והחזרות
validate_csv()
  • ‫csv_string: (מחרוזת)
  • ‫delimiter: (str) ברירת המחדל היא ', '.
  • ‫possible_values: (רשימה) רשימת היתרים אופציונלית.
החזרות: list

מפצלת מחרוזת לרשימה באמצעות התו המפריד. אם מציינים את possible_values, המערכת מאמתת כל פריט מול הרשימה הזו.

validate_json()
  • ‫json_string: (מחרוזת)
  • ‫**kwargs: העברה ללא שינוי של json.loads().
החזרות: dict | list

הפונקציה מנתחת מחרוזת לאובייקט JSON. מוחזרת שגיאה אם המחרוזת היא לא JSON תקין.

validate_email()
  • ‫email: (מחרוזת)
החזרות: str

הפונקציה מאמתת שהמחרוזת שצוינה היא בפורמט סטנדרטי של כתובת אימייל.

validate_ddl()
  • ‫value: (מחרוזת)
  • ‫ddl_values: (רשימה) רשימת היתרים של ערכים תקינים.
  • ‫case_sensitive: (bool) ברירת המחדל היא False.
החזרות: str

הפונקציה בודקת שהקלט תואם לאחד מהערכים ב-DDL מוגדר.

validate_severity()
  • ‫severity: (מחרוזת | מספר שלם)
  • ‫possible_values: (רשימה)
החזרות: int

מאמת את חומרת הפלטפורמה שהוזנה. ממפה בצורה נכונה בין תוויות חומרה סטנדרטיות לפלטפורמה (כמו 'גבוהה') לבין דירוגי המספרים המקבילים שלהן.

הגדרות גלובליות של אימות

כל שיטת אימות במחלקה ParameterValidator תומכת בארגומנטים הבאים של מילות מפתח אופציונליות כדי לשלוט בהתנהגות במקרה של כשל או לצורך ניפוי באגים:

  • ‫default_value: אם מציינים ערך, הוא מוחזר במקום להפעיל ParameterValidationError אם האימות נכשל.

  • ‫print_value: (bool) אם הערך הוא True, הערך הלא תקין שגרם לכשל נכלל בהודעת היומן. ברירת המחדל היא True.

  • ‫print_error: (bool) אם הערך הוא True, הודעת החריגה הספציפית נכללת ביומני הפלטפורמה. ברירת המחדל היא False.