Evalml: рдбреЗрдЯрд╛ рдЬрд╛рдВрдЪ: JSON рдХреЗ рдЕрдиреБрдХреВрд▓ рд╕рдВрджреЗрд╢ fmt, рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдПрдирдо рдФрд░ рдкреНрд░рднрд╛рд╡рд┐рдд рдХреЙрд▓рдо рдирд╛рдо рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 12 рдирд╡ре░ 2020  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: alteryx/evalml

рдЗрд╕рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдпрд╣ рдкрд╣рдЪрд╛рдирдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдХреМрди рд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рддреНрд░реБрдЯрд┐ рдпрд╛ рдЪреЗрддрд╛рд╡рдиреА рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЗрд╕реЗ @angela97lin рдХреЗ рд╕рд╛рде рдЯреНрд╡реАрдХ

{
  "message": "Warning: too many null values present in column 'foobar'",
  "code": "TOO_MANY_NULLS",
  "data_check_name": "HighlyNullDataCheck",
  "level": "warning",
  "details": {
    "columns": ["foobar"]
  }
}

рдЬрд╣рд╛рдВ "рд╡рд┐рд╡рд░рдг" рдХреБрдВрдЬреА рдХреЛрдИ рднреА рдЬрд╛рдирдХрд╛рд░реА рд░рдЦ рд╕рдХрддреА рд╣реИ рдЬрд┐рд╕реЗ рдбреЗрдЯрд╛ рдЪреЗрдХ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдФрд░ рдЕрдЧрд░ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ рддреЛ рдЗрд╕реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбреЗрдЯрд╛ рдЬрд╛рдБрдЪреЛрдВ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрди рд╕реНрддрдВрднреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдЬреЛ рдЬрд╛рдБрдЪ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣реЗ: рдЕрддреНрдпрдзрд┐рдХ рдЕрд╢рдХреНрдд, рдЖрдИрдбреА рдФрд░ рд▓рдХреНрд╖реНрдп рд░рд┐рд╕рд╛рд╡ред рдмреЛрдирд╕ рдЕрдЧрд░ рд╣рдо рдЕрдиреНрдп рдбреЗрдЯрд╛ рдЪреЗрдХ рднреА рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ :)

рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ @BoopBoopBeepBoop рдиреЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рд╣реИ! тЬи @Cmancuso FYI рдХрд░реЗрдВ

рд╕рднреА 9 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдереЛрдбрд╝рд╛ рд╡рд┐рд╕реНрддрд╛рд░: рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд╕реНрд╡рд░реВрдкрдг рдФрд░ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ EvalML рд╕рдВрджреЗрд╢ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЧреИрд░-рд╕реНрд╡рд░реВрдкрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬреЛ рдЕрднреА рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдХреБрдЫ рдЗрд╕ рддрд░рд╣:

{
  "message": "Warning: too many null values present in column 'foobar'",
  "check": "NullCheck",
  "code": "TOO_MANY_NULLS",
  "detail": {
    "level": "warning",
    "columns": ["foobar"]
  }
}

рдпрд╣ code рдХреЛ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд╡рд╛рдкрд╕ рдмрд╛рдВрдзрдХрд░, рдкрд░рд┐рдгрд╛рдореЛрдВ рдкрд░ рднрд╛рд╖рд╛ рд╕реНрд╡рддрдВрддреНрд░ рд╕реНрд╡рд░реВрдкрдг рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛ рджреЗрдЧрд╛ред рдФрд░ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рд╕реЗ рдЙрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рд╡рд╛рдкрд╕ рд╕реНрд╡рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИ рдЬреЛ рдПрдХ рд╕рдВрд░рдЪрд┐рдд рдлреИрд╢рди рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЪреЗрдХ рдХреЛ рд╡рд╛рдкрд╕ рдХрд┐рдП рдЧрдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛрдб рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рд╕реЗ рд╣рдореЗрдВ рдРрд╕реЗ рдЪреЗрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреА рдЬрд┐рдирдореЗрдВ рдПрдХрд▓ рдЪреЗрдХ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ/рддреНрд░реБрдЯрд┐рдпреЛрдВ/рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рд╕реЗрдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

@BoopBoopBeepBoop рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рд╡рд╣ рдкреНрд░рд╕реНрддрд╛рд╡ рдкрд╕рдВрдж рд╣реИред

рдХреНрдпрд╛ рдЖрдк рдЙрдореНрдореАрдж рдХрд░реЗрдВрдЧреЗ рдХрд┐ "рдХреЛрдб" рдПрдХ рдПрдирдо рд╣реЛрдЧрд╛, рдпрд╛ рдбреЗрдЯрд╛ рдЪреЗрдХ рдХреЗ рдЕрдВрджрд░ рдХрд╣реАрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛрдЧреА?

рдПрдХ рдЯреНрд╡реАрдХ рдЬреЛ рдореИрдВ рд╕реБрдЭрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рд╡рд╣ рд╣реИ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдкрд╛рдЯ рд░рдЦрдирд╛:

{
  "message": "Warning: too many null values present in column 'foobar'",
  "code": "TOO_MANY_NULLS",
  "level": "warning",
  "columns": ["foobar"]
}

рдпрд╣рд╛рдВ рд╣рдо JSON рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЕрд▓рдЧ рд░рдЦрддреЗ рд╣реБрдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝реАрд▓реНрдб рдХреЛ DataCheckWarning / DataCheckError рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рдЙрдЪрд┐рдд рд╣реИ - рдореИрдВрдиреЗ рд╡рд╣рд╛рдВ рдЙрди рддрддреНрд╡реЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдерд╛ рдЬреИрд╕реЗ рдореЗрд░реЗ рд╕рд┐рд░ рдореЗрдВ detail "рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рдирдХреНрд╢рд╛" рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡реЗ рдорд╣рд╛рди рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╢рд╛рдпрдж рд╕рднреА рдЬрд╛рдВрдЪреЛрдВ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рд╣реИрдВ ...

рдХреНрдпрд╛ рдРрд╕реА рдХреЛрдИ рд╕реНрдерд┐рддрд┐ рд╣реЛрдЧреА рдЬрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ "рдкреНрд░рддрд┐-рд╕рдВрджреЗрд╢" рдЖрдзрд╛рд░ рдкрд░ рдореМрдЬреВрдж рд╣реЛ? рдЙрджрд╛рд╣рд░рдг рдореИрдВрдиреЗ рдЗрд╕ рдкрд░ рдкрд╣рд▓реЗ рджреЗрдЦреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдиреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛, рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рдирд┐рдЪрд▓реА/рдКрдкрд░реА рд╕реАрдорд╛рдУрдВ рдХреЛ рд╕реНрд╡рд░реВрдкрд┐рдд рдХрд░рдирд╛, рдпрд╛ рдЗрд╕реА рддрд░рд╣ред рдЖрдорддреМрд░ рдкрд░ рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ detail (рдпрд╛ рдПрдХ рдЕрд▓рдЧ рдирд╛рдо рдЪреБрдиреЗрдВ) рдирдХреНрд╢рд╛ рд╣реЛрдиреЗ рд╕реЗ рд▓рд╛рдн рд╣реЛрддрд╛ рд╣реИ

рдХреНрдпрд╛ рдЖрдк рдЙрдореНрдореАрдж рдХрд░реЗрдВрдЧреЗ рдХрд┐ "рдХреЛрдб" рдПрдХ рдПрдирдо рд╣реЛрдЧрд╛, рдпрд╛ рдбреЗрдЯрд╛ рдЪреЗрдХ рдХреЗ рдЕрдВрджрд░ рдХрд╣реАрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛрдЧреА?

рдореИрдВ рдмрд╕ рдЗрд╕рдХреЗ рд╕реНрдерд┐рд░ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░реВрдВрдЧрд╛ - рдЬрд╣рд╛рдВ рдпрд╣ рд░рд╣рддрд╛ рд╣реИ

рдХреНрдпрд╛ рдЖрдк рдЙрдореНрдореАрдж рдХрд░реЗрдВрдЧреЗ рдХрд┐ "рдХреЛрдб" рдПрдХ рдПрдирдо рд╣реЛрдЧрд╛, рдпрд╛ рдбреЗрдЯрд╛ рдЪреЗрдХ рдХреЗ рдЕрдВрджрд░ рдХрд╣реАрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛрдЧреА?

рдореИрдВ рдмрд╕ рдЗрд╕рдХреЗ рд╕реНрдерд┐рд░ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░реВрдВрдЧрд╛ - рдЬрд╣рд╛рдВ рдпрд╣ рд░рд╣рддрд╛ рд╣реИ

рдЕрдЧрд░ рдпрд╣ рд╡рд╣реА рд╣реИ рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдПрдХ рдПрдирдо рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдо рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рддрд╛рд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рдЪреЗрдХ рдиреМрдХрд░реА рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВ, рдФрд░ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ EvalML рдХреЗ рдЕрдиреБрд░реВрдк рдПрдХ рдПрдирдо рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╡рд╣рд╛рдВ рд▓реАрд╡рд░реЗрдЬ рдХрд░реЗред

рдЗрд╕рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдФрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ @BoopBoopBeepBoop рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд░рд╣рд╛ рдерд╛, рдпрд╣ рдЬрд╛рдирдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХреА рдЧрдИ рдереАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдИрдбреА рдХреЙрд▓рдо рдЪреЗрдХ рдореЗрдВ, EvalML рдЗрд╕ рдмрд╛рдд рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреЙрд▓рдо рдирд╛рдо рдореЗрдВ "id" рд╣реИ рдпрд╛ рдорд╛рди N% рдЕрджреНрд╡рд┐рддреАрдп рд╣реИрдВред рд╣рдо рдкреВрд░реНрд╡ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЧреНрд░реИрдиреНрдпреБрд▓реИрд░рд┐рдЯреА рдХрд╛ рдпрд╣ рд╕реНрддрд░ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рддреЛ рдЕрдзрд┐рдХ рджрд╛рдиреЗрджрд╛рд░ рдПрдирдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╡рд┐рд╡рд░рдг рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рдорд╛рди рдХреБрдЫ рдореЗрдВред

рдмрд╕ @dsherry @freddyaboulton рдХреЗ рд╕рд╛рде рдЪрд░реНрдЪрд╛ рдХреА: рдореИрдВрдиреЗ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдбреЗрдЯрд╛ рдЪреЗрдХ рдПрдкреАрдЖрдИ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП https://github.com/alteryx/evalml/pull/1444 рд▓рдЧрд╛рдпрд╛ рдерд╛ред рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдореИрдВ рдЕрдкрдиреЗ рдкреАрдЖрд░ рдХреЛ DataCheckResults рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдХрд░реВрдВрдЧрд╛ рдЬрд╣рд╛рдВ errors рдФрд░ warnings рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде to_json рд╡рд┐рдзрд┐ рднреА рдЬреЛрдбрд╝реЗрдВ рдЙрд╕ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЬреЛ JSON рд╕реНрд╡рд░реВрдкрд┐рдд рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ @BoopBoopBeepBoop рдиреЗ рдпрд╣рд╛рдБ рд╕реБрдЭрд╛рдпрд╛ рд╣реИ, рдиреНрдпреВрдирддрдо рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде - рдЕрднреА рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рд╕рдВрджреЗрд╢ рдФрд░ рд╕реНрддрд░ред

JSON рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдФрд░ рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝рдиреЗ (рдЬреИрд╕реЗ "рдХреЛрдб") рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЦреБрд▓реА рд░рд╣реЗрдЧреАред

рдзрдиреНрдпрд╡рд╛рдж @ рдПрдВрдЬреЗрд▓рд╛97рд▓рд┐рди !

рддреЛ рдпрд╣рд╛рдБ рдирд╡реАрдирддрдо рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ:

  • DataCheck.validate рдФрд░ DataChecks.validate рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ рддрд╛рдХрд┐ рджреЛрдиреЛрдВ рдирд┐рдореНрди рдкреНрд░рд╛рд░реВрдк рд▓реМрдЯрд╛ рд╕рдХреЗрдВ:
{'errors': [...], 'warnings': [...]}

рдЬрд╣рд╛рдВ рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдкреНрд░рд╛рд░реВрдк рдХреА рд╣реИ

{
  "message": "Warning: too many null values present in column 'foobar'",
  "code": "TOO_MANY_NULLS",
  "level": "warning",
  "columns": ["foobar"]
}
  • рдЙрдкрд░реЛрдХреНрдд code рдлрд╝реАрд▓реНрдб рдХреЛ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП DataCheckMessageCode рдПрдирдо рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВред
  • DataCheckMessage , DataCheckError рдФрд░ DataCheckWarning рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдЙрдкрд░реЛрдХреНрдд рддрд╛рдирд╛рд╢рд╛рд╣реА рдкреНрд░рд╛рд░реВрдк рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣рдЯрд╛ рджреЗрдВ

рдЗрд╕реЗ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреЛрдИ рдЖрдкрддреНрддрд┐/рдЯрд┐рдкреНрдкрдгреА? @tyler3991 @Cmancuso @BoopBoopBeepBoop @angela97lin @freddyaboulton

( @angela97lin @freddyaboulton рдореИрдВрдиреЗ рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ DataCheckResults рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдЯрд╛рдЗрдк рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдФрд░ рдлрд┐рд░ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рд╣рдореЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд░реНрдЧ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдКрдкрд░ рд╕реЗ JSON-ified dict рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд╕рдордХрдХреНрд╖, рд▓реЗрдХрд┐рди рдирд╣реАрдВ рдХрдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рд░рд▓ рд╣реИред рд╕рднреА рдкрд░рд┐рдгрд╛рдо рд╡рд░реНрдЧ рдЬреЛ рдХрд░ рд░рд╣рд╛ рд╣реЛрдЧрд╛, рд╡рд╣реА рдЬрд╛рдирдХрд╛рд░реА рд░рдЦ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рдореЗрдВ рдЕрдиреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдирд╣реАрдВ рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реИред рдПрд▓рдПрдордХреЗ рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред)

рдЗрд╕ RE PR #1444 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ @angela97lin рд╕реЗ рдмрд╛рдд рдХреАред рдЙрдкрд░реЛрдХреНрдд рдпреЛрдЬрдирд╛ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рд╡рд╣ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП DataCheckMessage рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рд░рдЦрдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрди рд╕рдХрддреА рд╣реИ / рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдорд╛рдиреНрдп рд╕рдВрджреЗрд╢ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдХрдард┐рди рдмрдирд╛ рд╕рдХрддреА рд╣реИред рд▓реЗрдХрд┐рди validate рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдПрдХ JSON- рд╕рдХреНрд╖рдо рддрд╛рдирд╛рд╢рд╛рд╣реА рд▓реМрдЯрд╛рдПрдЧрд╛ред

( @angela97lin рдЕрдЧрд░ рдпрд╣ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЕрднреА рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдмрд╛рдд рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рд╕реБрдзрд╛рд░реЗрдВ!)

рдЗрд╕реЗ @angela97lin рдХреЗ рд╕рд╛рде рдЯреНрд╡реАрдХ

{
  "message": "Warning: too many null values present in column 'foobar'",
  "code": "TOO_MANY_NULLS",
  "data_check_name": "HighlyNullDataCheck",
  "level": "warning",
  "details": {
    "columns": ["foobar"]
  }
}

рдЬрд╣рд╛рдВ "рд╡рд┐рд╡рд░рдг" рдХреБрдВрдЬреА рдХреЛрдИ рднреА рдЬрд╛рдирдХрд╛рд░реА рд░рдЦ рд╕рдХрддреА рд╣реИ рдЬрд┐рд╕реЗ рдбреЗрдЯрд╛ рдЪреЗрдХ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдФрд░ рдЕрдЧрд░ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ рддреЛ рдЗрд╕реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбреЗрдЯрд╛ рдЬрд╛рдБрдЪреЛрдВ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрди рд╕реНрддрдВрднреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдЬреЛ рдЬрд╛рдБрдЪ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣реЗ: рдЕрддреНрдпрдзрд┐рдХ рдЕрд╢рдХреНрдд, рдЖрдИрдбреА рдФрд░ рд▓рдХреНрд╖реНрдп рд░рд┐рд╕рд╛рд╡ред рдмреЛрдирд╕ рдЕрдЧрд░ рд╣рдо рдЕрдиреНрдп рдбреЗрдЯрд╛ рдЪреЗрдХ рднреА рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ :)

рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ @BoopBoopBeepBoop рдиреЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рд╣реИ! тЬи @Cmancuso FYI рдХрд░реЗрдВ

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

freddyaboulton picture freddyaboulton  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

freddyaboulton picture freddyaboulton  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

angela97lin picture angela97lin  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

npapan69 picture npapan69  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bchen1116 picture bchen1116  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ