Skip to content

Commit dff9a99

Browse files
gustavocidornelaswhoseoyster
authored andcommitted
Closes OPEN-3851 Add character limit validation to column / feature names
1 parent 7e07017 commit dff9a99

File tree

1 file changed

+17
-8
lines changed

1 file changed

+17
-8
lines changed

openlayer/schemas.py

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,15 @@
1818
error="`language` of the dataset is not in the ISO 639-1 (alpha-2 code) format.",
1919
)
2020

21+
# -------------------------- Column name validations ------------------------- #
22+
COLUMN_NAME_VALIDATION_LIST = [
23+
ma.validate.Length(
24+
min=1,
25+
max=60,
26+
),
27+
COLUMN_NAME_REGEX,
28+
]
29+
2130
# ---------------------------------- Schemas --------------------------------- #
2231
class BaselineModelSchema(ma.Schema):
2332
"""Schema for baseline models."""
@@ -42,13 +51,13 @@ class DatasetSchema(ma.Schema):
4251
"""Schema for datasets."""
4352

4453
categoricalFeatureNames = ma.fields.List(
45-
ma.fields.Str(validate=COLUMN_NAME_REGEX),
54+
ma.fields.Str(validate=COLUMN_NAME_VALIDATION_LIST),
4655
allow_none=True,
4756
load_default=[],
4857
)
4958
classNames = ma.fields.List(ma.fields.Str(), required=True)
5059
columnNames = ma.fields.List(
51-
ma.fields.Str(validate=COLUMN_NAME_REGEX),
60+
ma.fields.Str(validate=COLUMN_NAME_VALIDATION_LIST),
5261
required=True,
5362
)
5463
label = ma.fields.Str(
@@ -61,11 +70,11 @@ class DatasetSchema(ma.Schema):
6170
required=True,
6271
)
6372
featureNames = ma.fields.List(
64-
ma.fields.Str(validate=COLUMN_NAME_REGEX),
73+
ma.fields.Str(validate=COLUMN_NAME_VALIDATION_LIST),
6574
load_default=[],
6675
)
6776
labelColumnName = ma.fields.Str(
68-
validate=COLUMN_NAME_REGEX,
77+
validate=COLUMN_NAME_VALIDATION_LIST,
6978
required=True,
7079
)
7180
language = ma.fields.Str(
@@ -74,13 +83,13 @@ class DatasetSchema(ma.Schema):
7483
)
7584
metadata = ma.fields.Dict(allow_none=True, load_default={})
7685
predictionsColumnName = ma.fields.Str(
77-
validate=COLUMN_NAME_REGEX,
86+
validate=COLUMN_NAME_VALIDATION_LIST,
7887
allow_none=True,
7988
load_default=None,
8089
)
8190
sep = ma.fields.Str(load_default=",")
8291
textColumnName = ma.fields.Str(
83-
validate=COLUMN_NAME_REGEX,
92+
validate=COLUMN_NAME_VALIDATION_LIST,
8493
allow_none=True,
8594
)
8695

@@ -97,7 +106,7 @@ class ModelSchema(ma.Schema):
97106
"""Schema for models with artifacts (i.e., model_package)."""
98107

99108
categoricalFeatureNames = ma.fields.List(
100-
ma.fields.Str(validate=COLUMN_NAME_REGEX),
109+
ma.fields.Str(validate=COLUMN_NAME_VALIDATION_LIST),
101110
load_default=[],
102111
)
103112
classNames = ma.fields.List(
@@ -112,7 +121,7 @@ class ModelSchema(ma.Schema):
112121
),
113122
)
114123
featureNames = ma.fields.List(
115-
ma.fields.Str(validate=COLUMN_NAME_REGEX),
124+
ma.fields.Str(validate=COLUMN_NAME_VALIDATION_LIST),
116125
allow_none=True,
117126
load_default=[],
118127
)

0 commit comments

Comments
 (0)