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