Source code for allensdk.brain_observatory.vbn_2022.utils.schemas
import argschema
import re
from marshmallow import post_load
[docs]class ProbeToSkip(argschema.ArgSchema):
session = argschema.fields.Int(
required=True,
description=("The ecephys_session_id associated with "
"the bad probe"))
probe = argschema.fields.Str(
required=True,
description=("The name of the bad probe, e.g. 'probeA'"))
[docs] @post_load
def validate_probe_names(self, data, **kwargs):
pattern = re.compile('probe[A-Z]')
match = pattern.match(data['probe'])
if match is None or len(data['probe']) != 6:
raise ValueError(
f"{data['probe']} is not a valid probe name; "
"must be like 'probe[A-Z]'")
return data