class _KEYxLAYER(): LAYER_KEY = 'all' CONTENT_KEY = 'content' _START = _escape('/') _LAYER = key + _named_capturing(_NONSPACES_NONGREEDY, name=CONTENT_KEY) _END = _INCHI_SUBLAYER_END PATTERN = _START + _named_capturing(_LAYER, name=LAYER_KEY) + _END
class FORMULA(): """ _ """ LAYER_KEY = 'all' CONTENT_KEY = 'content' _START = _escape('/') _LAYER = (_not_followed_by(_LOWERCASE_LETTER) + _named_capturing(_NONSPACES_NONGREEDY, name=CONTENT_KEY)) _END = _INCHI_SUBLAYER_END PATTERN = _START + _named_capturing(_LAYER, name=LAYER_KEY) + _END
class PREFIX(): """ _ """ LAYER_KEY = 'all' CONTENT_KEY = 'content' _START = _STRING_START _LAYER = (_escape('InChI=') + _named_capturing(_NONSPACES_NONGREEDY, name=CONTENT_KEY)) _END = _INCHI_SUBLAYER_END PATTERN = _START + _named_capturing(_LAYER, name=LAYER_KEY) + _END
class PARSE(): """ InChIKey parser """ _HASH1 = _UPPERCASE_LETTER * 14 _HASH2 = _UPPERCASE_LETTER * 8 _SVP = _UPPERCASE_LETTER * 2 + _escape('-') + _UPPERCASE_LETTER HASH1_KEY = 'hash1' HASH2_KEY = 'hash2' SVP_KEY = 'svp' PATTERN = ( _STRING_START + _named_capturing(_HASH1, name=HASH1_KEY) + _escape('-') + _named_capturing(_HASH2, name=HASH2_KEY) + _named_capturing(_SVP, name=SVP_KEY) + _STRING_END)
class TERM(): """ _ """ KEY_KEY = 'key' VAL_KEY = 'val' PLUS_VAL = _STEREO_PLUS_VAL MINUS_VAL = _STEREO_MINUS_VAL UNKNOWN_VALS = (_STEREO_UNKNOWN_VAL, _STEREO_UNDEFINED_VAL) VALS = (MINUS_VAL, PLUS_VAL) + UNKNOWN_VALS _KEY = _UNSIGNED_INTEGER _VAL = _one_of_these(list(map(_escape, VALS))) PATTERN = (_named_capturing(_KEY, name=KEY_KEY) + _named_capturing(_VAL, name=VAL_KEY))
class NUMBERING(): """ _ """ LAYER_KEY = 'all' CONTENT_KEY = 'content' _START = _escape('/') _LAYER = (_escape('N:') + _named_capturing(_NONSPACES_NONGREEDY, name=CONTENT_KEY)) _END = _INCHI_SUBLAYER_END PATTERN = _START + _named_capturing(_LAYER, name=LAYER_KEY) + _END class NUMBER(): """ _ """ PATTERN = _UNSIGNED_INTEGER