Skip to content

Commit 264ffde

Browse files
authored
rig id validator (#985)
* rig id validator * linters * updates fip behavior example * simplifies validator logic * more descriptive error message * fix validator return * allows alphanumeric room# * updates error message * pattern constraint * removes re dependency
1 parent 51bd96b commit 264ffde

File tree

6 files changed

+322
-8
lines changed

6 files changed

+322
-8
lines changed

examples/fip_behavior_rig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"describedBy": "https://raw.githubusercontent.com/AllenNeuralDynamics/aind-data-schema/main/src/aind_data_schema/core/rig.py",
33
"schema_version": "0.5.3",
4-
"rig_id": "447_FIP_Behavior_20000101",
4+
"rig_id": "447_FIP-Behavior_20000101",
55
"modification_date": "2000-01-01",
66
"mouse_platform": {
77
"device_type": "Tube",

examples/fip_behavior_rig.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
OUTPUT_PATH = "examples/"
1212

1313
r = r.Rig(
14-
rig_id="447_FIP_Behavior_20000101",
14+
rig_id="447_FIP-Behavior_20000101",
1515
modification_date=date(2000, 1, 1),
1616
modalities=[Modality.BEHAVIOR, Modality.FIB],
1717
cameras=[

src/aind_data_schema/core/rig.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
RIG_DAQ_DEVICES = Annotated[
4444
Union[HarpDevice, NeuropixelsBasestation, OpenEphysAcquisitionBoard, DAQDevice], Field(discriminator="device_type")
4545
]
46+
RIG_ID_PATTERN = r"^[a-zA-Z0-9]+_[a-zA-Z0-9-]+_\d{8}$"
4647

4748

4849
class Rig(AindCoreModel):
@@ -55,6 +56,7 @@ class Rig(AindCoreModel):
5556
...,
5657
description="Unique rig identifier, name convention: <room>-<apparatus name>-<date modified YYYYMMDD>",
5758
title="Rig ID",
59+
pattern=RIG_ID_PATTERN,
5860
)
5961
modification_date: date = Field(..., title="Date of modification")
6062
mouse_platform: MOUSE_PLATFORMS

src/aind_data_schema/utils/examples_generator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
"""script for re-generating all examples"""
22

3+
import logging
34
import os
45
import runpy
56
from glob import glob
67
from pathlib import Path
7-
import logging
88

99
CURRENT_DIR = Path(os.path.dirname(os.path.realpath(__file__)))
1010
ROOT_DIR = CURRENT_DIR.parents[2]

0 commit comments

Comments
 (0)