pointblank 0.8.0__py3-none-any.whl → 0.8.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
pointblank/__init__.py CHANGED
@@ -9,6 +9,7 @@ except PackageNotFoundError: # pragma: no cover
9
9
  __version__ = "0.0.0"
10
10
 
11
11
  # Import objects from the module
12
+ from pointblank.actions import send_slack_notification
12
13
  from pointblank.assistant import assistant
13
14
  from pointblank.column import (
14
15
  col,
@@ -24,13 +25,14 @@ from pointblank.datascan import DataScan, col_summary_tbl
24
25
  from pointblank.draft import DraftValidation
25
26
  from pointblank.schema import Schema
26
27
  from pointblank.tf import TF
27
- from pointblank.thresholds import Actions, Thresholds
28
+ from pointblank.thresholds import Actions, FinalActions, Thresholds
28
29
  from pointblank.validate import (
29
30
  Validate,
30
31
  config,
31
32
  get_action_metadata,
32
33
  get_column_count,
33
34
  get_row_count,
35
+ get_validation_summary,
34
36
  load_dataset,
35
37
  missing_vals_tbl,
36
38
  preview,
@@ -42,6 +44,7 @@ __all__ = [
42
44
  "Validate",
43
45
  "Thresholds",
44
46
  "Actions",
47
+ "FinalActions",
45
48
  "Schema",
46
49
  "DataScan",
47
50
  "DraftValidation",
@@ -59,6 +62,8 @@ __all__ = [
59
62
  "preview",
60
63
  "missing_vals_tbl",
61
64
  "get_action_metadata",
65
+ "get_validation_summary",
62
66
  "get_column_count",
63
67
  "get_row_count",
68
+ "send_slack_notification",
64
69
  ]
pointblank/_constants.py CHANGED
@@ -165,6 +165,7 @@ REPORTING_LANGUAGES = [
165
165
  "zh-Hant",
166
166
  "ja",
167
167
  "ko",
168
+ "vi",
168
169
  "ru",
169
170
  "cs",
170
171
  "pl",
@@ -12,6 +12,7 @@ EXPECT_FAIL_TEXT = {
12
12
  "zh-Hant": "應用先決條件",
13
13
  "ja": "前提条件が適用されました",
14
14
  "ko": "전제 조건 적용됨",
15
+ "vi": "Điều kiện tiên quyết đã được áp dụng",
15
16
  "ru": "Применяемое предварительное условие",
16
17
  "cs": "Aplikována vstupní podmínka",
17
18
  "pl": "Zastosowano warunek wstępny",
@@ -35,6 +36,7 @@ EXPECT_FAIL_TEXT = {
35
36
  "zh-Hant": "計算後的列",
36
37
  "ja": "計算された列",
37
38
  "ko": "계산된 열",
39
+ "vi": "cột được tính toán",
38
40
  "ru": "Вычисленный столбец",
39
41
  "cs": "vypočtený sloupec",
40
42
  "pl": "kolumna obliczeniowa",
@@ -58,6 +60,7 @@ EXPECT_FAIL_TEXT = {
58
60
  "zh-Hant": "還有{num_omitted}個",
59
61
  "ja": "他に{num_omitted}個",
60
62
  "ko": "외 {num_omitted}개",
63
+ "vi": "và {num_omitted} khác",
61
64
  "ru": "И {num_omitted} больше",
62
65
  "cs": "a {num_omitted} dalších",
63
66
  "pl": "i jeszcze {num_omitted}",
@@ -78,9 +81,10 @@ EXPECT_FAIL_TEXT = {
78
81
  "ro": "Se așteaptă ca valorile din {column_text} să fie {operator} {values_text}.",
79
82
  "tr": "Beklenti, {column_text} 'deki değerlerin {operator} {values_text} olması gerektiğidir.",
80
83
  "zh-Hans": "预期在{column_text} 的值应当{operator} {values_text}。",
81
- "zh-Hant": "{column_text}之值應為{operator} {values_text}。",
84
+ "zh-Hant": "{column_text}之值應{operator} {values_text}。",
82
85
  "ja": "{column_text}の値が{operator} {values_text}であることを期待します。",
83
86
  "ko": "{column_text}의 값이 {operator} {values_text}이어야 합니다.",
87
+ "vi": "Kỳ vọng các giá trị trong {column_text} phải {operator} {values_text}.",
84
88
  "ru": "Ожидайте, что значения в {column_text} должны быть {operator} {values_text}.",
85
89
  "cs": "Očekává se, že hodnoty ve sloupci {column_text} budou {operator} {values_text}.",
86
90
  "pl": "Spodziewaj się, że wartości w {column_text} powinny wynosic {operator} {values_text}.",
@@ -101,9 +105,10 @@ EXPECT_FAIL_TEXT = {
101
105
  "ro": "Depășirea unităților de test eșuate unde valorile din {column_text} ar fi trebuit să fie {operator} {values_text}.",
102
106
  "tr": "{column_text} 'deki değerlerin {operator} {values_text} olması gereken başarısız test birimlerinin aşılması.",
103
107
  "zh-Hans": "错误过多,其中{column_text}中的值应当被 {operator} {values_text}。",
104
- "zh-Hant": "錯誤過多,{column_text}之值應為{operator} {values_text}。",
108
+ "zh-Hant": "錯誤過多,{column_text}之值應{operator} {values_text}。",
105
109
  "ja": "{column_text}の値が{operator} {values_text}であるべきテスト単位の失敗の超過。",
106
110
  "ko": "{column_text}의 값이 {operator} {values_text}이어야 했던 실패한 테스트 단위 초과.",
111
+ "vi": "Vượt quá số đơn vị kiểm tra thất bại trong đó các giá trị trong {column_text} đáng lẽ phải {operator} {values_text}.",
107
112
  "ru": "Превышение неудачных тестовых единиц, где значения в {column_text} должны были быть {operator} {values_text}.",
108
113
  "cs": "Překročení počtu neúspěšných testů, kde hodnoty ve sloupci {column_text} měly být {operator} {values_text}.",
109
114
  "pl": "Nie było przekroczenie nieudanych jednostek testujacych, gdzie wartości w {column_text} powinien byc {operator} {values_text}.",
@@ -127,6 +132,7 @@ EXPECT_FAIL_TEXT = {
127
132
  "zh-Hant": "{column_text}之值應該在{values_text}集合中。",
128
133
  "ja": "{column_text}の値が{values_text}の集合に含まれていることを期待します。",
129
134
  "ko": "{column_text}의 값이 {values_text} 집합에 포함되어야 합니다.",
135
+ "vi": "Kỳ vọng các giá trị trong {column_text} phải nằm trong tập hợp {values_text}.",
130
136
  "ru": "Ожидайте, что значения в {column_text} должны быть в наборе {values_text}.",
131
137
  "cs": "Očekává se, že hodnoty ve sloupci {column_text} budou v množině {values_text}.",
132
138
  "pl": "Spodziewaj się, że wartości w {column_text} powinny byc w zestawie {values_text}.",
@@ -173,6 +179,7 @@ EXPECT_FAIL_TEXT = {
173
179
  "zh-Hant": "{column_text}之值不應在{values_text}集合中。",
174
180
  "ja": "{column_text}の値が{values_text}の集合に含まれていないことを期待します。",
175
181
  "ko": "{column_text}의 값이 {values_text} 집합에 포함되지 않아야 합니다.",
182
+ "vi": "Kỳ vọng các giá trị trong {column_text} không nằm trong tập hợp {values_text}.",
176
183
  "ru": "Ожидайте, что значения в {column_text} не должны быть в наборе {values_text}.",
177
184
  "cs": "Očekává se, že hodnoty ve sloupci {column_text} nebudou v množině {values_text}.",
178
185
  "pl": "Spodziewaj się, że wartości w {column_text} nie powinny należec do zestawu {values_text}.",
@@ -196,6 +203,7 @@ EXPECT_FAIL_TEXT = {
196
203
  "zh-Hant": "錯誤過多,{column_text}之值不應在{values_text}集合中。",
197
204
  "ja": "{column_text}の値が{values_text}の集合に含まれていないべきテスト単位の失敗の超過。",
198
205
  "ko": "{column_text}의 값이 {values_text} 집합에 포함되지 않았어야 했던 실패한 테스트 단위 초과.",
206
+ "vi": "Vượt quá số đơn vị kiểm tra thất bại trong đó các giá trị trong {column_text} đáng lẽ không nên nằm trong tập hợp {values_text}.",
199
207
  "ru": "Превышение неудачных тестовых единиц, где значения в {column_text} не должны были быть в наборе {values_text}.",
200
208
  "cs": "Překročení počtu neúspěšných testů, kde hodnoty ve sloupci {column_text} neměly být v množině {values_text}.",
201
209
  "pl": "Nie było przekroczenie nieudanych jednostek testowych, gdzie wartości w {column_text} nie powinny były w zbiorze {values_text}.",
@@ -219,6 +227,7 @@ EXPECT_FAIL_TEXT = {
219
227
  "zh-Hant": "{column_text}之值應該介於{value_1}和{value_2}之間。",
220
228
  "ja": "{column_text}の値が{value_1}と{value_2}の間であることを期待します。",
221
229
  "ko": "{column_text}의 값이 {value_1}과 {value_2} 사이여야 합니다.",
230
+ "vi": "Vượt quá số đơn vị kiểm tra thất bại trong đó các giá trị trong {column_text} đáng lẽ không nên nằm trong tập hợp {values_text}.",
222
231
  "ru": "Ожидайте, что значения в {column_text} должны находиться между {value_1} и {value_2}.",
223
232
  "cs": "Očekává se, že hodnoty ve sloupci {column_text} budou mezi {value_1} a {value_2}.",
224
233
  "pl": "Spodziewaj się, że wartości w {column_text} powinny zawierac się między {value_1} a {value_2}.",
@@ -242,6 +251,7 @@ EXPECT_FAIL_TEXT = {
242
251
  "zh-Hant": "錯誤過多,{column_text}之值應該介於{value_1}和{value_2}之間。",
243
252
  "ja": "{column_text}の値が{value_1}と{value_2}の間であるべきテスト単位の失敗の超過。",
244
253
  "ko": "{column_text}의 값이 {value_1}과 {value_2} 사이여야 했던 실패한 테스트 단위 초과.",
254
+ "vi": "Vượt quá số đơn vị kiểm tra thất bại trong đó các giá trị trong {column_text} đáng lẽ phải nằm trong khoảng từ {value_1} đến {value_2}.",
245
255
  "ru": "Превышение неудачных тестовых единиц, где значения в {column_text} должны были находиться между {value_1} и {value_2}.",
246
256
  "cs": "Překročení počtu neúspěšných testů, kde hodnoty ve sloupci {column_text} měly být mezi {value_1} a {value_2}.",
247
257
  "pl": "Wystapiło przekroczenie liczby jednostek testowych zakończonych niepowodzeniem, w przypadku których wartości w kolumnie {column_text} powinny znajdowac się między {value_1} a {value_2}.",
@@ -265,6 +275,7 @@ EXPECT_FAIL_TEXT = {
265
275
  "zh-Hant": "{column_text}之值不應該介於{value_1}和{value_2}之間。",
266
276
  "ja": "{column_text}の値が{value_1}と{value_2}の間でないことを期待します。",
267
277
  "ko": "{column_text}의 값이 {value_1}과 {value_2} 사이가 아니어야 합니다.",
278
+ "vi": "Kỳ vọng các giá trị trong {column_text} không nằm trong khoảng từ {value_1} đến {value_2}.",
268
279
  "ru": "Ожидайте, что значения в {column_text} не должны находиться между {value_1} и {value_2}.",
269
280
  "cs": "Očekává se, že hodnoty ve sloupci {column_text} nebudou mezi {value_1} a {value_2}.",
270
281
  "pl": "Spodziewaj się, że wartości w {column_text} nie powinny byc między {value_1} a {value_2}.",
@@ -288,6 +299,7 @@ EXPECT_FAIL_TEXT = {
288
299
  "zh-Hant": "錯誤過多,{column_text}之值不應該介於{value_1}和{value_2}之間。",
289
300
  "ja": "{column_text}の値が{value_1}と{value_2}の間でないべきテスト単位の失敗の超過。",
290
301
  "ko": "{column_text}의 값이 {value_1}과 {value_2} 사이가 아니어야 했던 실패한 테스트 단위 초과.",
302
+ "vi": "Vượt quá số đơn vị kiểm tra thất bại trong đó các giá trị trong {column_text} đáng lẽ không nên nằm trong khoảng từ {value_1} đến {value_2}.",
291
303
  "ru": "Превышение неудачных тестовых единиц, где значения в {column_text} не должны были находиться между {value_1} и {value_2}.",
292
304
  "cs": "Překročení počtu neúspěšných testů, kde hodnoty ve sloupci {column_text} neměly být mezi {value_1} a {value_2}.",
293
305
  "pl": "Wystapiło przekroczenie liczby jednostek testowych zakończonych niepowodzeniem, w przypadku których wartości w kolumnie {column_text} nie powinny znajdowac się między {value_1} a {value_2}.",
@@ -311,6 +323,7 @@ EXPECT_FAIL_TEXT = {
311
323
  "zh-Hant": "{column_text}之值應為Null。",
312
324
  "ja": "{column_text}のすべての値がNullであることを期待します。",
313
325
  "ko": "{column_text}의 모든 값이 Null이어야 합니다.",
326
+ "vi": "Kỳ vọng tất cả các giá trị trong {column_text} đều là Null.",
314
327
  "ru": "Ожидайте, что все значения в {column_text} должны быть Null.",
315
328
  "cs": "Očekává se, že všechny hodnoty ve sloupci {column_text} budou Null.",
316
329
  "pl": "Spodziewaj się, że wszystkie wartości w {column_text} powinny miec wartośc Null.",
@@ -334,6 +347,7 @@ EXPECT_FAIL_TEXT = {
334
347
  "zh-Hant": "錯誤過多,{column_text}之值應為Null。",
335
348
  "ja": "{column_text}の値がNullであるべきテスト単位の失敗の超過。",
336
349
  "ko": "{column_text}의 값이 Null이어야 했던 실패한 테스트 단위 초과.",
350
+ "vi": "Vượt quá số đơn vị kiểm tra thất bại trong đó các giá trị trong {column_text} đáng lẽ phải là Null.",
337
351
  "ru": "Превышение неудачных тестовых единиц, где значения в {column_text} должны были быть Null.",
338
352
  "cs": "Překročení počtu neúspěšných testů, kde hodnoty ve sloupci {column_text} měly být Null.",
339
353
  "pl": "Nie było przekroczenie nieudanych jednostek testowych, gdzie wartości w {column_text} powinny były Null.",
@@ -357,6 +371,7 @@ EXPECT_FAIL_TEXT = {
357
371
  "zh-Hant": "{column_text}之值不應為Null。",
358
372
  "ja": "{column_text}のすべての値がNullでないことを期待します。",
359
373
  "ko": "{column_text}의 모든 값이 Null이 아니어야 합니다.",
374
+ "vi": "Kỳ vọng tất cả các giá trị trong {column_text} không phải là Null.",
360
375
  "ru": "Ожидайте, что все значения в {column_text} не должны быть Null.",
361
376
  "cs": "Očekává se, že žádné hodnoty ve sloupci {column_text} nebudou Null.",
362
377
  "pl": "Spodziewaj się, że wszystkie wartości w {column_text} nie powinny miec wartości Null.",
@@ -380,6 +395,7 @@ EXPECT_FAIL_TEXT = {
380
395
  "zh-Hant": "錯誤過多,{column_text}之值不應為Null。",
381
396
  "ja": "{column_text}の値がNullでないべきテスト単位の失敗の超過。",
382
397
  "ko": "{column_text}의 값이 Null이 아니어야 했던 실패한 테스트 단위 초과.",
398
+ "vi": "Vượt quá số đơn vị kiểm tra thất bại trong đó các giá trị trong {column_text} đáng lẽ không nên là Null.",
383
399
  "ru": "Превышение неудачных тестовых единиц, где значения в {column_text} не должны были быть Null.",
384
400
  "cs": "Překročení počtu neúspěšných testů, kde hodnoty ve sloupci {column_text} neměly být Null.",
385
401
  "pl": "Nie było przekroczenie nieudanych jednostek testowych, gdzie wartości w {column_text} nie powinny były zostac Null.",
@@ -403,6 +419,7 @@ EXPECT_FAIL_TEXT = {
403
419
  "zh-Hant": "{column_text}之值應該匹配正則表達式。",
404
420
  "ja": "{column_text}の値が正規表現: {values_text}に一致することを期待します。",
405
421
  "ko": "{column_text}의 값이 정규식 {values_text}와 일치해야 합니다.",
422
+ "vi": "Kỳ vọng các giá trị trong {column_text} phải khớp với biểu thức chính quy: {values_text}.",
406
423
  "ru": "Ожидайте, что значения в {column_text} должны соответствовать регулярному выражению: {values_text}.",
407
424
  "cs": "Očekává se, že hodnoty ve sloupci {column_text} budou odpovídat regulárnímu výrazu: {values_text}.",
408
425
  "pl": "Spodziewaj się, że wartości w {column_text} powinny byc zgodne z wyrażeniem regularnym: {values_text}.",
@@ -426,6 +443,7 @@ EXPECT_FAIL_TEXT = {
426
443
  "zh-Hant": "錯誤過多,{column_text}之值應該匹配正則表達式。",
427
444
  "ja": "{column_text}の値が正規表現: {values_text}に一致するべきテスト単位の失敗の超過。",
428
445
  "ko": "{column_text}의 값이 정규식 {values_text}와 일치했어야 했던 실패한 테스트 단위 초과.",
446
+ "vi": "Vượt quá số đơn vị kiểm tra thất bại trong đó các giá trị trong {column_text} đáng lẽ phải khớp với biểu thức chính quy: {values_text}.",
429
447
  "ru": "Превышение неудачных тестовых единиц, где значения в {column_text} должны были соответствовать регулярному выражению: {values_text}.",
430
448
  "cs": "Překročení počtu neúspěšných testů, kde hodnoty ve sloupci {column_text} měly odpovídat regulárnímu výrazu: {values_text}.",
431
449
  "pl": "Wystapiło przekroczenie liczby jednostek testowych zakończonych niepowodzeniem, w przypadku których wartości w {column_text} powinny odpowiadac wyrażeniu regularnemu: {values_text}.",
@@ -449,6 +467,7 @@ EXPECT_FAIL_TEXT = {
449
467
  "zh-Hant": "值應該與給定的Python表達式一致。",
450
468
  "ja": "値が指定されたPython式に一致することを期待します。",
451
469
  "ko": "값이 주어진 Python 표현식과 일치해야 합니다.",
470
+ "vi": "Kỳ vọng các giá trị phải phù hợp với biểu thức Python đã cho.",
452
471
  "ru": "Ожидайте, что значения должны совпадать с заданным выражением Python.",
453
472
  "cs": "Očekává se, že hodnoty budou vyhovovat danému výrazu v Pythonu.",
454
473
  "pl": "Oczekuj, że wartości powinny byc zgodne z podanym wyrażeniem Python.",
@@ -472,6 +491,7 @@ EXPECT_FAIL_TEXT = {
472
491
  "zh-Hant": "錯誤過多,值應該與給定的Python表達式一致。",
473
492
  "ja": "値が指定されたPython式に一致するべきテスト単位の失敗の超過。",
474
493
  "ko": "값이 주어진 Python 표현식과 일치했어야 했던 실패한 테스트 단위 초과.",
494
+ "vi": "Vượt quá số đơn vị kiểm tra thất bại trong đó các giá trị đáng lẽ phải phù hợp với biểu thức Python đã cho.",
475
495
  "ru": "Превышение неудачных тестовых единиц, где значения должны были быть согласованы с заданным выражением Python.",
476
496
  "cs": "Překročení počtu neúspěšných testů, kde hodnoty měly vyhovovat danému výrazu v Pythonu.",
477
497
  "pl": "Wystapiło przekroczenie niepomyślnych jednostek testowych, w przypadku których wartości powinny zgadzac się z podanym wyrażeniem Python.",
@@ -495,6 +515,7 @@ EXPECT_FAIL_TEXT = {
495
515
  "zh-Hant": "{column_text}列應該存在。",
496
516
  "ja": "列{column_text}が存在することを期待します。",
497
517
  "ko": "열 {column_text}이 존재해야 합니다.",
518
+ "vi": "Kỳ vọng cột {column_text} tồn tại.",
498
519
  "ru": "Ожидайте, что столбец {column_text} существует.",
499
520
  "cs": "Očekává se, že sloupec {column_text} existuje.",
500
521
  "pl": "Spodziewaj się, że kolumna {column_text} istnieje.",
@@ -518,6 +539,7 @@ EXPECT_FAIL_TEXT = {
518
539
  "zh-Hant": "未成功確認{column_text}列存在。",
519
540
  "ja": "列{column_text}が存在することを検証できませんでした。",
520
541
  "ko": "열 {column_text}이 존재하는지 검증 실패.",
542
+ "vi": "Thất bại khi xác nhận rằng cột {column_text} tồn tại.",
521
543
  "ru": "Неверка этого столбца {column_text} существует.",
522
544
  "cs": "Nepovedlo se ověřit, že sloupec {column_text} existuje.",
523
545
  "pl": "Niepowodzenie weryfikacji, że kolumna {column_text} istnieje.",
@@ -541,6 +563,7 @@ EXPECT_FAIL_TEXT = {
541
563
  "zh-Hant": "在所有列裡,不應出現重複的行。",
542
564
  "ja": "全ての列において完全に異なる行を期待します。",
543
565
  "ko": "모든 열에 걸쳐 완전히 고유한 행이 있어야 합니다.",
566
+ "vi": "Kỳ vọng các hàng hoàn toàn khác biệt trên tất cả các cột.",
544
567
  "ru": "Ожидайте совершенно разные строки во всех столбцах.",
545
568
  "cs": "Očekávají se úplně odlišné řádky napříč všemi sloupci.",
546
569
  "pl": "Oczekuj unikalnych wierszy we wszystkich kolumnach.",
@@ -564,6 +587,7 @@ EXPECT_FAIL_TEXT = {
564
587
  "zh-Hant": "錯誤過多,在所有列裡,有重複的行出現。",
565
588
  "ja": "全ての列において完全に異なる行でないテスト単位の失敗の超過。",
566
589
  "ko": "모든 열에 걸쳐 고유한 행이 아니었던 실패한 테스트 단위 초과.",
590
+ "vi": "Vượt quá số đơn vị kiểm tra thất bại trong đó các hàng không hoàn toàn khác biệt trên tất cả các cột.",
567
591
  "ru": "Превышение неудачных испытательных блоков, где не было различных строк по всем столбцам.",
568
592
  "cs": "Překročení počtu neúspěšných testů, kde nebyly odlišné řádky napříč všemi sloupci.",
569
593
  "pl": "Wystapiło przekroczenie liczby niepomyślnych jednostek testowych, gdy nie było odrębnych wierszy we wszystkich kolumnach.",
@@ -587,6 +611,7 @@ EXPECT_FAIL_TEXT = {
587
611
  "zh-Hant": "在{column_text}列中,不應出現重複的行。",
588
612
  "ja": "{column_text}において完全に異なる行を期待します。",
589
613
  "ko": "{column_text}에 걸쳐 완전히 고유한 행이 있어야 합니다.",
614
+ "vi": "Kỳ vọng các hàng hoàn toàn khác biệt trên {column_text}.",
590
615
  "ru": "Ожидайте совершенно разные строки в {column_text}.",
591
616
  "cs": "Očekávají se úplně odlišné řádky napříč sloupci {column_text}.",
592
617
  "pl": "Spodziewaj się całkowicie odrębnych wierszy w {column_text}.",
@@ -610,6 +635,7 @@ EXPECT_FAIL_TEXT = {
610
635
  "zh-Hant": "錯誤過多,在所選擇的列中,有重複的行出現。",
611
636
  "ja": "選択された列において完全に異なる行でないテスト単位の失敗の超過。",
612
637
  "ko": "선택된 열에 걸쳐 고유한 행이 아니었던 실패한 테스트 단위 초과.",
638
+ "vi": "Vượt quá số đơn vị kiểm tra thất bại trong đó các hàng không hoàn toàn khác biệt trên các cột đã chọn.",
613
639
  "ru": "Превышение неудачных тестовых блоков, где не было различных строк в выбранных столбцах.",
614
640
  "cs": "Překročení počtu neúspěšných testů, kde nebyly odlišné řádky napříč vybranými sloupci.",
615
641
  "pl": "Przekroczenie liczby niepomyślnych jednostek testowych, w których nie było odrębnych wierszy w wybranych kolumnach.",
@@ -633,6 +659,7 @@ EXPECT_FAIL_TEXT = {
633
659
  "zh-Hant": "預期列模式(column schemas)應該匹配。",
634
660
  "ja": "列スキーマが一致することを期待します。",
635
661
  "ko": "열 스키마가 일치해야 합니다.",
662
+ "vi": "Kỳ vọng các lược đồ cột phù hợp với nhau.",
636
663
  "ru": "Ожидайте, что схемы столбцов совпадают.",
637
664
  "cs": "Očekává se, že schémata sloupců se shodují.",
638
665
  "pl": "Spodziewaj się, że schematy kolumn będa zgodne.",
@@ -656,6 +683,7 @@ EXPECT_FAIL_TEXT = {
656
683
  "zh-Hant": "未成功確認列模式(column schemas)匹配。",
657
684
  "ja": "列スキーマが一致することを検証できませんでした。",
658
685
  "ko": "열 스키마가 일치하는지 검증 실패.",
686
+ "vi": "Thất bại khi xác nhận rằng các lược đồ cột phù hợp với nhau.",
659
687
  "ru": "Неверка соответствия схем столбцов.",
660
688
  "cs": "Nepovedlo se ověřit, že schémata sloupců se shodují.",
661
689
  "pl": "Niepowodzenie weryfikacji zgodności schematów kolumn.",
@@ -679,6 +707,7 @@ EXPECT_FAIL_TEXT = {
679
707
  "zh-Hant": "兩張表內行數應該相等。",
680
708
  "ja": "2つのテーブルの行数が一致することを期待します。",
681
709
  "ko": "두 테이블의 행 수가 일치해야 합니다.",
710
+ "vi": "Kỳ vọng số lượng hàng của hai bảng phải giống nhau.",
682
711
  "ru": "Ожидается, что количество строк в двух таблицах будет одинаковым.",
683
712
  "cs": "Očekává se, že počty řádků pro dvě tabulky se shodují.",
684
713
  "pl": "Oczekuje się, że liczby wierszy są równe dla dwóch tabel.",
@@ -702,6 +731,7 @@ EXPECT_FAIL_TEXT = {
702
731
  "zh-Hant": "兩張表內行數不相等。",
703
732
  "ja": "2つのテーブルの行数が一致しませんでした。",
704
733
  "ko": "두 테이블의 행 수가 일치하지 않았습니다.",
734
+ "vi": "Số lượng hàng của hai bảng không giống nhau.",
705
735
  "ru": "Количество строк для двух таблиц не совпало.",
706
736
  "cs": "Počty řádků pro dvě tabulky se neshodovaly.",
707
737
  "pl": "Liczba wierszy dla dwóch tabel nie zgadzała się.",
@@ -725,6 +755,7 @@ EXPECT_FAIL_TEXT = {
725
755
  "zh-Hant": "行數應該正好為{values_text}。",
726
756
  "ja": "行数がちょうど{values_text}であることを期待します。",
727
757
  "ko": "행 수가 정확히 {values_text}이어야 합니다.",
758
+ "vi": "Kỳ vọng số lượng hàng phải đúng bằng {values_text}.",
728
759
  "ru": "Ожидайте, что количество строк будет ровно {values_text}.",
729
760
  "cs": "Očekává se, že počet řádků je přesně {values_text}.",
730
761
  "pl": "Oczekuj, że liczba wierszy wynosi dokładnie {values_text}.",
@@ -748,6 +779,7 @@ EXPECT_FAIL_TEXT = {
748
779
  "zh-Hant": "行數與{values_text}不相等。",
749
780
  "ja": "行数が{values_text}と一致しませんでした。",
750
781
  "ko": "행 수가 {values_text}와 일치하지 않았습니다.",
782
+ "vi": "Số lượng hàng không khớp với {values_text}.",
751
783
  "ru": "Количество строк не соответствует {values_text}.",
752
784
  "cs": "Počet řádků neodpovídal {values_text}.",
753
785
  "pl": "Liczba wierszy nie zgadzała się z {values_text}.",
@@ -771,6 +803,7 @@ EXPECT_FAIL_TEXT = {
771
803
  "zh-Hant": "兩張表內列數應該相等。",
772
804
  "ja": "2つのテーブルの列数が一致することを期待します。",
773
805
  "ko": "두 테이블의 열 수가 일치해야 합니다.",
806
+ "vi": "Kỳ vọng số lượng cột của hai bảng phải giống nhau.",
774
807
  "ru": "Ожидайте, что количество столбцов в двух таблицах совпадает.",
775
808
  "cs": "Očekává se, že počty sloupců pro dvě tabulky se shodují.",
776
809
  "pl": "Oczekuj, że liczby kolumn dla dwóch tabel będą się zgadzać.",
@@ -794,6 +827,7 @@ EXPECT_FAIL_TEXT = {
794
827
  "zh-Hant": "兩張表內列數不相等。",
795
828
  "ja": "2つのテーブルの列数が一致しませんでした。",
796
829
  "ko": "두 테이블의 열 수가 일치하지 않았습니다.",
830
+ "vi": "Số lượng cột của hai bảng không giống nhau.",
797
831
  "ru": "Количество колонок в двух таблицах не совпадает.",
798
832
  "cs": "Počty sloupců pro dvě tabulky se neshodovaly.",
799
833
  "pl": "Liczby kolumn w obu tabelach nie zgadzały się.",
@@ -817,6 +851,7 @@ EXPECT_FAIL_TEXT = {
817
851
  "zh-Hant": "列數應該正好為{values_text}。",
818
852
  "ja": "列数がちょうど{values_text}であることを期待します。",
819
853
  "ko": "열 수가 정확히 {values_text}이어야 합니다.",
854
+ "vi": "Kỳ vọng số lượng cột phải đúng bằng {values_text}.",
820
855
  "ru": "Ожидайте, что количество столбцов будет ровно {values_text}.",
821
856
  "cs": "Očekává se, že počet sloupců je přesně {values_text}.",
822
857
  "pl": "Oczekuj, że liczba kolumn będzie wynosić dokładnie {values_text}.",
@@ -840,6 +875,7 @@ EXPECT_FAIL_TEXT = {
840
875
  "zh-Hant": "列數與{values_text}不相等。",
841
876
  "ja": "列数が{values_text}と一致しませんでした。",
842
877
  "ko": "열 수가 {values_text}와 일치하지 않았습니다.",
878
+ "vi": "Số lượng cột không khớp với {values_text}.",
843
879
  "ru": "Количество столбцов не соответствует {values_text}.",
844
880
  "cs": "Počet sloupců neodpovídal {values_text}.",
845
881
  "pl": "Liczba kolumn nie jest zgodna z liczbą {values_text}.",
@@ -867,6 +903,7 @@ VALIDATION_REPORT_TEXT = {
867
903
  "zh-Hant": "Pointblank驗證",
868
904
  "ja": "Pointblankバリデーション",
869
905
  "ko": "Pointblank 검증",
906
+ "vi": "Kiểm Định Pointblank",
870
907
  "ru": "Проверка Pointblank",
871
908
  "cs": "Pointblank Validace",
872
909
  "pl": "Walidacja Pointblank",
@@ -890,6 +927,7 @@ VALIDATION_REPORT_TEXT = {
890
927
  "zh-Hant": "Pointblank驗證計劃",
891
928
  "ja": "Pointblankバリデーション計画",
892
929
  "ko": "Pointblank 검증 계획",
930
+ "vi": "Kế Hoạch Kiểm Định Pointblank",
893
931
  "ru": "План проверки Pointblank",
894
932
  "cs": "Pointblank Validační Plán",
895
933
  "pl": "Plan walidacji Pointblank",
@@ -913,6 +951,7 @@ VALIDATION_REPORT_TEXT = {
913
951
  "zh-Hant": "未執行查詢",
914
952
  "ja": "検証が実行されていません",
915
953
  "ko": "검증 수행되지 않음",
954
+ "vi": "Không Thực Hiện Kiểm Tra",
916
955
  "ru": "Допрос не производился",
917
956
  "cs": "Nebyla provedena žádná kontrola",
918
957
  "pl": "Żadne zapytanie nie zostało wykonane",
@@ -936,6 +975,7 @@ VALIDATION_REPORT_TEXT = {
936
975
  "zh-Hant": "無驗證步驟",
937
976
  "ja": "検証ステップがありません",
938
977
  "ko": "검증 단계 없음",
978
+ "vi": "KHÔNG CÓ BƯỚC KIỂM ĐỊNH",
939
979
  "ru": "НЕТ ШАГОВ ПРОВЕРКИ",
940
980
  "cs": "ŽÁDNÉ VALIDAČNÍ KROKY",
941
981
  "pl": "BRAK KROKÓW WALIDACJI",
@@ -959,6 +999,7 @@ VALIDATION_REPORT_TEXT = {
959
999
  "zh-Hant": "有 {fail_rows_extract} 筆「失敗」的資料列可作為CSV檔案。",
960
1000
  "ja": "{fail_rows_extract}の'失敗'行がCSVファイルとして利用可能です。",
961
1001
  "ko": "CSV 파일로 사용 가능한 {fail_rows_extract}개의 '실패' 행이 있습니다.",
1002
+ "vi": "Có {fail_rows_extract} hàng 'thất bại' có sẵn dưới dạng tệp CSV.",
962
1003
  "ru": "В CSV-файле доступны строки {fail_rows_extract} 'fail'.",
963
1004
  "cs": "K dispozici je {fail_rows_extract} 'neúspěšných' řádků jako soubor CSV.",
964
1005
  "pl": "Istnieje {fail_rows_extract} wierszy 'fail' dostępnych jako plik CSV.",
@@ -982,6 +1023,7 @@ VALIDATION_REPORT_TEXT = {
982
1023
  "zh-Hant": "資料表未經修改。",
983
1024
  "ja": "テーブルの変更はありません。",
984
1025
  "ko": "테이블 수정 없음.",
1026
+ "vi": "Không có chỉnh sửa nào đối với bảng.",
985
1027
  "ru": "Никаких изменений таблицы данных.",
986
1028
  "cs": "Žádné úpravy tabulky.",
987
1029
  "pl": "Brak zmian w tabeli.",
@@ -1005,6 +1047,7 @@ VALIDATION_REPORT_TEXT = {
1005
1047
  "zh-Hant": "已為此步驟修改資料表。",
1006
1048
  "ja": "このステップのためにデータテーブルが変更されました。",
1007
1049
  "ko": "이 단계에서 데이터 테이블이 수정되었습니다.",
1050
+ "vi": "Bảng dữ liệu đã được chỉnh sửa cho bước này.",
1008
1051
  "ru": "Таблица данных была изменена для этого шага.",
1009
1052
  "cs": "Datová tabulka byla pro tento krok upravena.",
1010
1053
  "pl": "Tabela została zmieniona w tym kroku.",
@@ -1028,6 +1071,7 @@ VALIDATION_REPORT_TEXT = {
1028
1071
  "zh-Hant": "使用與「{seg_col_x}」欄位中「{seg_val_x}」值關聯的區段。",
1029
1072
  "ja": "列'{seg_col_x}'の値'{seg_val_x}'に関連するセグメントを使用しています。",
1030
1073
  "ko": "열 '{seg_col_x}'의 값 '{seg_val_x}'와 연관된 세그먼트 사용 중.",
1074
+ "vi": "Sử dụng phân đoạn liên quan đến giá trị '{seg_val_x}' từ cột '{seg_col_x}'.",
1031
1075
  "ru": "Использование сегмента, связанного со значением '{seg_val_x}' из столбца '{seg_col_x}'.",
1032
1076
  "cs": "Používá se segment spojený s hodnotou '{seg_val_x}' ze sloupce '{seg_col_x}'.",
1033
1077
  "pl": "Korzystanie z segmentu zwiazanego z wartościa '{seg_val_x}' z kolumny '{seg_col_x}'.",
@@ -1051,6 +1095,7 @@ VALIDATION_REPORT_TEXT = {
1051
1095
  "zh-Hant": "沒有評估問題。",
1052
1096
  "ja": "評価の問題はありません。",
1053
1097
  "ko": "평가 문제 없음.",
1098
+ "vi": "Không có vấn đề đánh giá.",
1054
1099
  "ru": "Нет проблем с оценкой.",
1055
1100
  "cs": "Žádné problémy s vyhodnocením.",
1056
1101
  "pl": "Brak problemów z ocena.",
@@ -1074,6 +1119,7 @@ VALIDATION_REPORT_TEXT = {
1074
1119
  "zh-Hant": "步驟(STEP)",
1075
1120
  "ja": "ステップ",
1076
1121
  "ko": "단계",
1122
+ "vi": "BƯỚC",
1077
1123
  "ru": "ШАГ",
1078
1124
  "cs": "KROK",
1079
1125
  "pl": "KROK",
@@ -1097,6 +1143,7 @@ VALIDATION_REPORT_TEXT = {
1097
1143
  "zh-Hant": "步驟(STEPS)",
1098
1144
  "ja": "ステップ",
1099
1145
  "ko": "단계",
1146
+ "vi": "CÁC BƯỚC",
1100
1147
  "ru": "ШАГИ",
1101
1148
  "cs": "KROKY",
1102
1149
  "pl": "KROKI",
@@ -1120,6 +1167,7 @@ VALIDATION_REPORT_TEXT = {
1120
1167
  "zh-Hant": "欄位",
1121
1168
  "ja": "列",
1122
1169
  "ko": "열",
1170
+ "vi": "CÁC CỘT",
1123
1171
  "ru": "КОЛУМЫ",
1124
1172
  "cs": "SLOUPCE",
1125
1173
  "pl": "KOLUMNY",
@@ -1143,6 +1191,7 @@ VALIDATION_REPORT_TEXT = {
1143
1191
  "zh-Hant": "數值",
1144
1192
  "ja": "値",
1145
1193
  "ko": "값",
1194
+ "vi": "GIÁ TRỊ",
1146
1195
  "ru": "ЦЕННОСТИ",
1147
1196
  "cs": "HODNOTY",
1148
1197
  "pl": "WARTOŚCI",
@@ -1166,6 +1215,7 @@ VALIDATION_REPORT_TEXT = {
1166
1215
  "zh-Hant": "綱要(SCHEMA)",
1167
1216
  "ja": "スキーマ",
1168
1217
  "ko": "스키마",
1218
+ "vi": "LƯỢC ĐỒ",
1169
1219
  "ru": "СХЕМА",
1170
1220
  "cs": "SCHÉMA",
1171
1221
  "pl": "SCHEMAT",
@@ -1189,6 +1239,7 @@ VALIDATION_REPORT_TEXT = {
1189
1239
  "zh-Hant": "Python類型",
1190
1240
  "ja": "Python型",
1191
1241
  "ko": "Python 타입",
1242
+ "vi": "KIỂU Python",
1192
1243
  "ru": "Python ТИПЫ",
1193
1244
  "cs": "Python TYPY",
1194
1245
  "pl": "TYPY Python",
@@ -1212,6 +1263,7 @@ VALIDATION_REPORT_TEXT = {
1212
1263
  "zh-Hant": "SQL類型",
1213
1264
  "ja": "SQL型",
1214
1265
  "ko": "SQL 타입",
1266
+ "vi": "KIỂU SQL",
1215
1267
  "ru": "ВИДЫ SQL",
1216
1268
  "cs": "SQL TYPY",
1217
1269
  "pl": "TYPY SQL",
pointblank/_utils.py CHANGED
@@ -463,6 +463,7 @@ def _get_api_text() -> str:
463
463
  "Validate",
464
464
  "Thresholds",
465
465
  "Actions",
466
+ "FinalActions",
466
467
  "Schema",
467
468
  "DraftValidation",
468
469
  ]
@@ -508,6 +509,7 @@ def _get_api_text() -> str:
508
509
  "Validate.get_sundered_data",
509
510
  "Validate.get_data_extracts",
510
511
  "Validate.all_passed",
512
+ "Validate.assert_passing",
511
513
  "Validate.n",
512
514
  "Validate.n_passed",
513
515
  "Validate.n_failed",
@@ -523,11 +525,20 @@ def _get_api_text() -> str:
523
525
  "preview",
524
526
  "col_summary_tbl",
525
527
  "missing_vals_tbl",
528
+ "assistant",
529
+ "load_dataset",
530
+ ]
531
+
532
+ utility_exported = [
526
533
  "get_column_count",
527
534
  "get_row_count",
528
- "load_dataset",
535
+ "get_action_metadata",
536
+ "get_validation_summary",
529
537
  "config",
530
- "assistant",
538
+ ]
539
+
540
+ prebuilt_actions_exported = [
541
+ "send_slack_notification",
531
542
  ]
532
543
 
533
544
  validate_desc = """When peforming data validation, you'll need the `Validate` class to get the
@@ -562,6 +573,17 @@ datasets included in the package can be accessed via the `load_dataset()` functi
562
573
  `config()` utility lets us set global configuration parameters. Want to chat with an assistant? Use
563
574
  the `assistant()` function to get help with Pointblank."""
564
575
 
576
+ utility_desc = """The Utility Functions group contains functions that are useful for accessing
577
+ metadata about the target data. Use `get_column_count()` or `get_row_count()` to get the number of
578
+ columns or rows in a table. The `get_action_metadata()` function is useful when building custom
579
+ actions since it returns metadata about the validation step that's triggering the action. Lastly,
580
+ the `config()` utility lets us set global configuration parameters."""
581
+
582
+ prebuilt_actions_desc = """The Prebuilt Actions group contains a function that can be used to
583
+ send a Slack notification when validation steps exceed failure threshold levels or just to provide a
584
+ summary of the validation results, including the status, number of steps, passing and failing steps,
585
+ table information, and timing details."""
586
+
565
587
  #
566
588
  # Add headings (`*_desc` text) and API details for each family of functions/methods
567
589
  #
@@ -578,9 +600,15 @@ the `assistant()` function to get help with Pointblank."""
578
600
  api_text += f"""\n## The Interrogation and Reporting family\n\n{interrogation_desc}\n\n"""
579
601
  api_text += get_api_details(module=pointblank, exported_list=interrogation_exported)
580
602
 
581
- api_text += f"""\n## The Utilities family\n\n{inspect_desc}\n\n"""
603
+ api_text += f"""\n## The Inspection and Assistance family\n\n{inspect_desc}\n\n"""
582
604
  api_text += get_api_details(module=pointblank, exported_list=inspect_exported)
583
605
 
606
+ api_text += f"""\n## The Utility Functions family\n\n{utility_desc}\n\n"""
607
+ api_text += get_api_details(module=pointblank, exported_list=utility_exported)
608
+
609
+ api_text += f"""\n## The Prebuilt Actions family\n\n{prebuilt_actions_desc}\n\n"""
610
+ api_text += get_api_details(module=pointblank, exported_list=prebuilt_actions_exported)
611
+
584
612
  # Modify language syntax in all code cells
585
613
  api_text = api_text.replace("{python}", "python")
586
614