TagValidator¶
- class TagValidator(hed_schema)[source]
Validation for individual HED tags.
Methods
Attributes
- TagValidator.__init__(hed_schema)[source]¶
Constructor for the Tag_Validator class.
- Parameters:
hed_schema (HedSchema) – A HedSchema object.
- Returns:
A Tag_Validator object.
- Return type:
TagValidator
- TagValidator.check_capitalization(original_tag)[source]¶
Report warning if incorrect tag capitalization.
- Parameters:
original_tag (HedTag) – The original tag used to report the warning.
- Returns:
Validation issues. Each issue is a dictionary.
- Return type:
list
- TagValidator.check_count_tag_group_parentheses(hed_string)[source]¶
Report unmatched parentheses.
- Parameters:
hed_string (str) – A hed string.
- Returns:
A list of validation list. Each issue is a dictionary.
- Return type:
list
- TagValidator.check_delimiter_issues_in_hed_string(hed_string)[source]¶
Report missing commas or commas in value tags.
- Parameters:
hed_string (str) – A hed string.
- Returns:
A validation issues list. Each issue is a dictionary.
- Return type:
list
- TagValidator.check_for_invalid_extension_chars(original_tag)[source]¶
Report invalid characters in extension/value.
- Parameters:
original_tag (HedTag) – The original tag that is used to report the error.
- Returns:
Validation issues. Each issue is a dictionary.
- Return type:
list
- TagValidator.check_for_placeholder(original_tag, is_definition=False)[source]¶
Report invalid placeholder characters.
- Parameters:
original_tag (HedTag) – The HedTag to be checked
is_definition (bool) – If True, placeholders are allowed.
- Returns:
Validation issues. Each issue is a dictionary.
- Return type:
list
Notes
Invalid placeholder may appear in the extension/value portion of a tag.
- TagValidator.check_for_required_tags(tags)[source]¶
Report missing required tags.
- Parameters:
tags (list) – HedTags containing the tags.
- Returns:
Validation issues. Each issue is a dictionary.
- Return type:
list
- TagValidator.check_invalid_character_issues(hed_string, allow_placeholders)[source]¶
Report invalid characters.
- Parameters:
hed_string (str) – A hed string.
allow_placeholders – Allow placeholder and curly brace characters
- Returns:
Validation issues. Each issue is a dictionary.
- Return type:
list
Notes
- Invalid tag characters are defined by TagValidator.INVALID_STRING_CHARS or
TagValidator.INVALID_STRING_CHARS_PLACEHOLDERS
- TagValidator.check_multiple_unique_tags_exist(tags)[source]¶
Report if multiple identical unique tags exist
A unique Term can only appear once in a given HedString. Unique terms are terms with the ‘unique’ property in the schema.
- Parameters:
tags (list) – HedTags containing the tags.
- Returns:
Validation issues. Each issue is a dictionary.
- Return type:
list
- TagValidator.check_tag_exists_in_schema(original_tag)[source]¶
Report invalid tag or doesn’t take a value.
- Parameters:
original_tag (HedTag) – The original tag that is used to report the error.
- Returns:
Validation issues. Each issue is a dictionary.
- Return type:
list
- TagValidator.check_tag_formatting(original_tag)[source]¶
Report repeated or erroneous slashes.
- Parameters:
original_tag (HedTag) – The original tag that is used to report the error.
- Returns:
Validation issues. Each issue is a dictionary.
- Return type:
list
- TagValidator.check_tag_invalid_chars(original_tag, allow_placeholders)[source]¶
Report invalid characters in the given tag.
- Parameters:
original_tag (HedTag) – The original tag that is used to report the error.
allow_placeholders (bool) – Allow placeholder characters(#) if True.
- Returns:
Validation issues. Each issue is a dictionary.
- Return type:
list
- TagValidator.check_tag_level_issue(original_tag_list, is_top_level, is_group)[source]¶
Report tags incorrectly positioned in hierarchy.
- Parameters:
original_tag_list (list) – HedTags containing the original tags.
is_top_level (bool) – If True, this group is a “top level tag group”
is_group (bool) – If true group should be contained by parenthesis
- Returns:
Validation issues. Each issue is a dictionary.
- Return type:
list
Notes
Top-level groups can contain definitions, Onset, etc tags.
- TagValidator.check_tag_requires_child(original_tag)[source]¶
Report if tag is a leaf with ‘requiredTag’ attribute.
- Parameters:
original_tag (HedTag) – The original tag that is used to report the error.
- Returns:
Validation issues. Each issue is a dictionary.
- Return type:
list
- TagValidator.check_tag_unit_class_units_are_valid(original_tag, report_as=None, error_code=None)[source]¶
Report incorrect unit class or units.
- Parameters:
original_tag (HedTag) – The original tag that is used to report the error.
report_as (HedTag) – Report errors as coming from this tag, rather than original_tag.
error_code (str) – Override error codes to this
- Returns:
Validation issues. Each issue is a dictionary.
- Return type:
list
- TagValidator.check_tag_value_class_valid(original_tag, report_as=None, error_code=None)[source]¶
Report an invalid value portion.
- Parameters:
original_tag (HedTag) – The original tag that is used to report the error.
report_as (HedTag) – Report errors as coming from this tag, rather than original_tag.
error_code (str) – Override error codes to this
- Returns:
Validation issues.
- Return type:
list
- TagValidator.run_all_tags_validators(tags)[source]¶
Validate the multi-tag properties in a hed string.
- Parameters:
tags (list) – A list containing the HedTags in a HED string.
- Returns:
The validation issues associated with the tags in a HED string. Each issue is a dictionary.
- Return type:
list
Notes
Multi-tag properties include required tags.
- TagValidator.run_hed_string_validators(hed_string_obj, allow_placeholders=False)[source]¶
Basic high level checks of the hed string
- Parameters:
hed_string_obj (HedString) – A HED string.
allow_placeholders – Allow placeholder and curly brace characters
- Returns:
The validation issues associated with a HED string. Each issue is a dictionary.
- Return type:
list
Notes
Used for basic invalid characters or bad delimiters.
- TagValidator.run_individual_tag_validators(original_tag, allow_placeholders=False, is_definition=False)[source]¶
Runs the hed_ops on the individual tags.
- Parameters:
original_tag (HedTag) – A original tag.
allow_placeholders (bool) – Allow value class or extensions to be placeholders rather than a specific value.
is_definition (bool) – This tag is part of a Definition, not a normal line.
- Returns:
The validation issues associated with the tags. Each issue is dictionary.
- Return type:
list
- TagValidator.run_tag_level_validators(original_tag_list, is_top_level, is_group)[source]¶
Run hed_ops at each level in a HED string.
- Parameters:
original_tag_list (list) – A list containing the original HedTags.
is_top_level (bool) – If True, this group is a “top level tag group”.
is_group (bool) – If true, group is contained by parenthesis.
- Returns:
The validation issues associated with each level in a HED string.
- Return type:
list
Notes
This is for the top-level, all groups, and nested groups.
This can contain definitions, Onset, etc tags.
- TagValidator.run_validate_tag_characters(original_tag, allow_placeholders)[source]¶
Basic character validation of tags
- Parameters:
original_tag (HedTag) – A original tag.
allow_placeholders (bool) – Allow value class or extensions to be placeholders rather than a specific value.
- Returns:
The validation issues associated with the characters. Each issue is dictionary.
- Return type:
list
- TagValidator.validate_value_class_type(unit_or_value_portion, valid_types)[source]¶
Report invalid unit or valid class values.
- Parameters:
unit_or_value_portion (str) – The value portion to validate.
valid_types (list) – The names of value class or unit class types (e.g. dateTime or dateTimeClass).
- Returns:
True if this is one of the valid_types validators.
- Return type:
type_valid (bool)
- TagValidator.CAMEL_CASE_EXPRESSION = '([A-Z]+\\s*[a-z-]*)+'¶
- TagValidator.CLOSING_GROUP_CHARACTER = ')'¶
- TagValidator.COMMA = ','¶
- TagValidator.DEFAULT_ALLOWED_PLACEHOLDER_CHARS = '.+-^ _#'¶
- TagValidator.INVALID_STRING_CHARS = '[]{}~'¶
- TagValidator.INVALID_STRING_CHARS_PLACEHOLDERS = '[]~'¶
- TagValidator.OPENING_GROUP_CHARACTER = '('¶
- TagValidator.TAG_ALLOWED_CHARS = '-_/'¶
- TagValidator.pattern_doubleslash = re.compile('([ \\t/]{2,}|^/|/$)')¶