TIPCommon.validation

El módulo TIPCommon.validation contiene la clase ParameterValidator, una herramienta fundamental para garantizar la integridad de los datos en las integraciones. Automatiza el proceso de verificación de los tipos de entrada, aplica restricciones (como rangos numéricos o formatos de correo electrónico) y proporciona valores alternativos seguros para evitar fallas durante el tiempo de ejecución.

La clase ParameterValidator

La clase ParameterValidator proporciona una interfaz estandarizada para validar varios tipos de parámetros. Cada método acepta un nombre y un valor de parámetro, y devuelve el valor validado en su tipo de Python apropiado. Si falla la validación y no se proporciona un default_value, se genera un ParameterValidationError.

Ejemplo de uso

Para usar el validador, inicialízalo con el objeto del SDK de 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')

Validación numérica y de límites

Estos métodos garantizan que las entradas numéricas se encuentren dentro de los límites esperados y se conviertan correctamente a sus tipos de Python apropiados.

Función Parámetros Descripción y devoluciones
validate_float()
  • param_name: (cadena)
  • value: (cadena o número de punto flotante)
Muestra: float

Valida que un valor se pueda convertir en un número de punto flotante. Es útil para los umbrales o las puntuaciones de probabilidad.

validate_integer()
  • param_name: (cadena)
  • value: (str | int)
Muestra: int

Valida y convierte un valor en un número entero.

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

Garantiza que un número entero se encuentre dentro del rango inclusivo definido por min_limit y max_limit.

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

Garantiza que el valor sea un número entero entre 0 y 100, ambos incluidos.

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

Garantiza que el valor sea un número entero ≥ 0.

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

Garantiza que el valor sea un número entero y no sea igual a 0.

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

Garantiza que el valor sea un número entero > 0.

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

Garantiza que el valor sea el limit especificado.

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

Garantiza que el valor sea el limit especificado.

Estructura de datos y validación de cadenas

Estos métodos validan tipos de entrada más complejos, como cadenas delimitadas, objetos JSON y formatos específicos, como direcciones de correo electrónico.

Función Parámetros Descripción y devoluciones
validate_csv()
  • csv_string: (cadena)
  • delimiter: (cadena) El valor predeterminado es ', '.
  • possible_values: (lista) Es una lista de entidades permitidas opcional.
Muestra: list

Divide una cadena en una lista usando el delimitador. Si se proporciona possible_values, se valida cada elemento con esa lista.

validate_json()
  • json_string: (cadena)
  • **kwargs: Es un parámetro de transferencia para json.loads().
Muestra: dict | list

Analiza una cadena en un objeto JSON. Genera un error si la cadena no es un JSON válido.

validate_email()
  • email: (cadena)
Muestra: str

Valida que la cadena proporcionada siga un formato de correo electrónico estándar.

validate_ddl()
  • value: (cadena)
  • ddl_values: (lista) Es la lista blanca de valores válidos.
  • case_sensitive: (bool) El valor predeterminado es False.
Muestra: str

Valida que la entrada coincida con uno de los valores de un DDL definido.

validate_severity()
  • severity: (str | int)
  • possible_values: (lista)
Muestra: int

Valida la entrada de gravedad de la plataforma. Asigna correctamente las etiquetas de gravedad estándar de la plataforma (como "Alta") y sus rangos de números enteros equivalentes.

Configuración de validación global

Todos los métodos de validación de la clase ParameterValidator admiten los siguientes argumentos de palabras clave opcionales para controlar el comportamiento en caso de falla o para la depuración:

  • default_value: Si se proporciona, este valor se devuelve en lugar de generar un ParameterValidationError cuando falla la validación.

  • print_value: (bool) Cuando es True, el valor no válido que causó la falla se incluye en el mensaje de registro. El valor predeterminado es True.

  • print_error: (bool) Cuando es True, el mensaje de excepción específico se incluye en los registros de la plataforma. El valor predeterminado es False.