@@ -10,13 +10,19 @@ function vec_to_mat(vec::AbstractVector)
1010 n = isqrt (length (vec))
1111 return reshape (vec, n, n)
1212end
13- vec_to_mat (x :: Missing ) = return missing
13+ vec_to_mat (:: Missing ) = missing
1414
1515const GenericCurve = Tuple{Vector{Float64},Vector{Float64}}
1616@schema " lighthouse.evaluation" Evaluation
1717@version EvaluationV1 begin
1818 class_labels:: Union{Missing,Vector{String}}
19- confusion_matrix:: Union{Missing,Array{Int64}} = vec_to_mat (confusion_matrix)
19+ # XXX why do we spell out the different array types?
20+ # For Arrow, we need to be able to serialize as a vector
21+ # but we also want to be able to store a matrix directly.
22+ # Then why not just use Array{Int64}? Because that's an
23+ # abstract type, which creates serialization issues in
24+ # unions with Missing.
25+ confusion_matrix:: Union{Missing,Array{Int64,1},Array{Int64,2}} = vec_to_mat (confusion_matrix)
2026 discrimination_calibration_curve:: Union{Missing,GenericCurve}
2127 discrimination_calibration_score:: Union{Missing,Float64}
2228 multiclass_IRA_kappas:: Union{Missing,Float64}
4753"""
4854 @version EvaluationV1 begin
4955 class_labels::Union{Missing,Vector{String}}
50- confusion_matrix::Union{Missing,Array{Int64}} = vec_to_mat(confusion_matrix)
56+ confusion_matrix::Union{Missing,Array{Int64,1},Array{Int64,2 }} = vec_to_mat(confusion_matrix)
5157 discrimination_calibration_curve::Union{Missing,GenericCurve}
5258 discrimination_calibration_score::Union{Missing,Float64}
5359 multiclass_IRA_kappas::Union{Missing,Float64}
@@ -269,7 +275,7 @@ LabelMetricsV1
269275
270276@schema " lighthouse.hardened-metrics" HardenedMetrics
271277@version HardenedMetricsV1 > ClassV1 begin
272- confusion_matrix:: Union{Missing,Array{Int64}} = vec_to_mat (confusion_matrix)
278+ confusion_matrix:: Union{Missing,Array{Int64,1},Array{Int64,2 }} = vec_to_mat (confusion_matrix)
273279 discrimination_calibration_curve:: Union{Missing,Curve} = lift (Curve,
274280 discrimination_calibration_curve)
275281 discrimination_calibration_score:: Union{Missing,Float64}
278284
279285"""
280286 @version HardenedMetricsV1 > ClassV1 begin
281- confusion_matrix::Union{Missing,Array{Int64}} = vec_to_mat(confusion_matrix)
287+ confusion_matrix::Union{Missing,Array{Int64,1},Array{Int64,2 }} = vec_to_mat(confusion_matrix)
282288 discrimination_calibration_curve::Union{Missing,Curve} = lift(Curve,
283289 discrimination_calibration_curve)
284290 discrimination_calibration_score::Union{Missing,Float64}
0 commit comments