TIPCommon.validation

Modul TIPCommon.validation berisi class ParameterValidator, alat penting untuk memastikan integritas data dalam integrasi. Hal ini mengotomatiskan proses pemeriksaan jenis input, menerapkan batasan (seperti rentang numerik atau format email), dan menyediakan nilai penggantian yang aman untuk mencegah error runtime.

Class ParameterValidator

Class ParameterValidator menyediakan antarmuka standar untuk memvalidasi berbagai jenis parameter. Setiap metode menerima nama dan nilai parameter, serta menampilkan nilai yang divalidasi dalam jenis Python yang sesuai. Jika validasi gagal dan tidak ada default_value yang diberikan, ParameterValidationError akan dimunculkan.

Contoh penggunaan

Untuk menggunakan validator, lakukan inisialisasi dengan objek 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')

Validasi numerik dan batas

Metode ini memastikan bahwa input numerik berada dalam batas yang diharapkan dan dikonversi dengan benar ke jenis Python yang sesuai.

Fungsi Parameter Deskripsi & Pengembalian
validate_float()
  • param_name: (str)
  • value: (str | float)
Hasil: float

Memvalidasi bahwa nilai dapat di-cast ke float. Berguna untuk nilai minimum atau skor probabilitas.

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

Memvalidasi dan meng-casting nilai ke bilangan bulat.

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

Memastikan bilangan bulat berada dalam rentang inklusif yang ditentukan oleh min_limit dan max_limit.

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

Memastikan nilai adalah bilangan bulat antara 0 dan 100 inklusif.

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

Memastikan nilai adalah bilangan bulat ≥ 0.

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

Memastikan nilai adalah bilangan bulat dan tidak sama dengan 0.

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

Memastikan nilai adalah bilangan bulat > 0.

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

Memastikan nilai adalah limit yang ditentukan.

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

Memastikan nilai adalah limit yang ditentukan.

Struktur data dan validasi string

Metode ini memvalidasi jenis input yang lebih kompleks, seperti string yang dibatasi, objek JSON, dan format tertentu seperti alamat email.

Fungsi Parameter Deskripsi & Pengembalian
validate_csv()
  • csv_string: (str)
  • delimiter: (str) Defaultnya adalah ', '.
  • possible_values: (list) Daftar yang diizinkan opsional.
Hasil: list

Memisahkan string menjadi daftar menggunakan pembatas. Jika possible_values diberikan, setiap item akan divalidasi terhadap daftar tersebut.

validate_json()
  • json_string: (str)
  • **kwargs: Teruskan untuk json.loads().
Hasil: dict | list

Mengurai string menjadi objek JSON. Menampilkan error jika string bukan JSON yang valid.

validate_email()
  • email: (str)
Hasil: str

Memvalidasi bahwa string yang diberikan mengikuti format email standar.

validate_ddl()
  • value: (str)
  • ddl_values: (daftar) Daftar nilai yang valid yang diizinkan.
  • case_sensitive: (bool) Default-nya adalah False.
Hasil: str

Memvalidasi bahwa input cocok dengan salah satu nilai dalam DDL yang ditentukan.

validate_severity()
  • severity: (str | int)
  • possible_values: (daftar)
Hasil: int

Memvalidasi input tingkat keparahan platform. Memetakan dengan benar antara label tingkat keparahan standar platform (seperti "Tinggi") dan peringkat bilangan bulat yang setara.

Konfigurasi validasi global

Setiap metode validasi di class ParameterValidator mendukung argumen kata kunci opsional berikut untuk mengontrol perilaku saat terjadi kegagalan atau untuk proses debug:

  • default_value: Jika diberikan, nilai ini akan ditampilkan, bukan menampilkan ParameterValidationError saat validasi gagal.

  • print_value: (bool) Jika True, nilai tidak valid yang menyebabkan kegagalan disertakan dalam pesan log. Nilai defaultnya adalah True.

  • print_error: (bool) Jika True, pesan pengecualian spesifik disertakan dalam log platform. Nilai defaultnya adalah False.