TIPCommon.validation

Il modulo TIPCommon.validation contiene la classe ParameterValidator, uno strumento fondamentale per garantire l'integrità dei dati all'interno delle integrazioni. Automatizza il processo di controllo dei tipi di input, applica i vincoli (come intervalli numerici o formati email) e fornisce valori di riserva sicuri per evitare arresti anomali del runtime.

Il corso ParameterValidator

La classe ParameterValidator fornisce un'interfaccia standardizzata per la convalida di vari tipi di parametri. Ogni metodo accetta un nome e un valore del parametro, restituendo il valore convalidato nel tipo Python appropriato. Se la convalida non va a buon fine e non viene fornito alcun default_value, viene generato un ParameterValidationError.

Esempio di utilizzo

Per utilizzare lo strumento di convalida, inizializzalo con l'oggetto SDK siemplify:

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')

Convalida numerica e dei limiti

Questi metodi assicurano che gli input numerici rientrino nei limiti previsti e vengano convertiti correttamente nei tipi Python appropriati.

Funzione Parametri Descrizione e resi
validate_float()
  • param_name: (str)
  • value: (str | float)
Resi: float

Verifica che un valore possa essere convertito in un numero in virgola mobile. Utile per le soglie o i punteggi di probabilità.

validate_integer()
  • param_name: (str)
  • value: (str | int)
Resi: int

Convalida e converte un valore in un numero intero.

validate_range()
  • value: (str | int)
  • min_limit: (int)
  • max_limit: (int)
Resi: int

Garantisce che un numero intero rientri nell'intervallo inclusivo definito da min_limit e max_limit.

validate_percentage()
  • value: (str | int)
Resi: int

Assicura che il valore sia un numero intero compreso tra 0 e 100 inclusi.

validate_non_negative()
  • value: (str | int)
Resi: int

Assicura che il valore sia un numero intero ≥ 0.

validate_non_zero()
  • value: (str | int)
Resi: int

Garantisce che il valore sia un numero intero e non sia uguale a 0.

validate_positive()
  • value: (str | int)
Resi: int

Assicura che il valore sia un numero intero > 0.

validate_lower_limit()
  • value: (str | int)
  • limit: (int)
Resi: int

Assicura che il valore sia il limit specificato.

validate_upper_limit()
  • value: (str | int)
  • limit: (int)
Resi: int

Assicura che il valore sia il limit specificato.

Struttura dei dati e convalida delle stringhe

Questi metodi convalidano tipi di input più complessi, come stringhe delimitate, oggetti JSON e formati specifici come gli indirizzi email.

Funzione Parametri Descrizione e resi
validate_csv()
  • csv_string: (str)
  • delimiter: (str) Il valore predefinito è ', '.
  • possible_values: (elenco) Lista consentita facoltativa.
Resi: list

Divide una stringa in un elenco utilizzando il delimitatore. Se viene fornito possible_values, ogni elemento viene convalidato in base a questo elenco.

validate_json()
  • json_string: (str)
  • **kwargs: Trasferimento per json.loads().
Resi: dict | list

Analizza una stringa in un oggetto JSON. Genera un errore se la stringa non è un JSON valido.

validate_email()
  • email: (str)
Resi: str

Convalida che la stringa fornita segua un formato email standard.

validate_ddl()
  • value: (str)
  • ddl_values: (elenco) Lista consentita di valori validi.
  • case_sensitive: (booleano) Il valore predefinito è False.
Resi: str

Verifica che l'input corrisponda a uno dei valori in un DDL definito.

validate_severity()
  • severity: (str | int)
  • possible_values: (elenco)
Resi: int

Convalida un input di gravità della piattaforma. Mappa correttamente le etichette di gravità standard della piattaforma (ad esempio "Alta") e i relativi ranghi di numeri interi equivalenti.

Configurazione della convalida globale

Ogni metodo di convalida nella classe ParameterValidator supporta i seguenti argomenti delle parole chiave facoltativi per controllare il comportamento in caso di errore o per il debug:

  • default_value: se fornito, questo valore viene restituito anziché generare un ParameterValidationError quando la convalida non va a buon fine.

  • print_value: (bool) Quando True, il valore non valido che ha causato l'errore è incluso nel messaggio di log. Il valore predefinito è True.

  • print_error: (bool) Se True, il messaggio di eccezione specifico è incluso nei log della piattaforma. Il valore predefinito è False.