From 308dc88e11e648695199bd2bbe3c785a8eaa5c92 Mon Sep 17 00:00:00 2001 From: Ira Iosub Date: Tue, 9 Jun 2026 18:49:41 +0100 Subject: [PATCH 01/17] edge case style fixes --- scripts/fix_protocol_style.py | 42 +++++++++++++++++- scripts/validate_protocol_style.py | 63 ++++++++++++++++++++++++--- tests/test_fix_protocol_style.py | 31 +++++++++++++ tests/test_validate_protocol_style.py | 46 +++++++++++++++++++ 4 files changed, 173 insertions(+), 9 deletions(-) diff --git a/scripts/fix_protocol_style.py b/scripts/fix_protocol_style.py index fd4beb8..2ef298f 100644 --- a/scripts/fix_protocol_style.py +++ b/scripts/fix_protocol_style.py @@ -22,8 +22,7 @@ rf"\b(?P{NUMBER_RE})(?P\s*)(?PµL|mL|ml|ML|L|l|µg|mg|g|kg|ng|mM|µM|nM|M|μL|μM|μg)\b" ) TIME_RE = re.compile( - rf"\b(?P{NUMBER_RE})(?P\s*)(?Pseconds?|second|minutes?|minute|hours?|hour|secs?|sec|mins?|min|hrs?|hr|s|h)\b", - re.IGNORECASE, + rf"\b(?P{NUMBER_RE})(?P\s*)(?P(?i:seconds?|minutes?|hours?|secs?|mins?|hrs?)|s|h)\b", ) CHEMICAL_FORMULA_RE = re.compile(r"\b(?P(?:[A-Z][a-z]?\d*){2,})\b") UNICODE_SUBSCRIPT_RE = re.compile(r"\b(?P[A-Za-z₀₁₂₃₄₅₆₇₈₉]+)\b") @@ -70,6 +69,9 @@ "hours": "hour", } UNICODE_SUBSCRIPT_MAP = str.maketrans("₀₁₂₃₄₅₆₇₈₉", "0123456789") +LITERAL_CHEMICAL_FORMULAS = { + "ddH2O": "ddH2O", +} NOTE_LABEL_RE = re.compile( r"^(?P\s*)(?P