TagValidator

class TagValidator(hed_schema)[source]

Validation for individual HED tags.

Methods

hed.validator.tag_validator.TagValidator.__init__(...)

Constructor for the Tag_Validator class.

hed.validator.tag_validator.TagValidator.check_capitalization(...)

Report warning if incorrect tag capitalization.

hed.validator.tag_validator.TagValidator.check_count_tag_group_parentheses(...)

Report unmatched parentheses.

hed.validator.tag_validator.TagValidator.check_delimiter_issues_in_hed_string(...)

Report missing commas or commas in value tags.

hed.validator.tag_validator.TagValidator.check_for_invalid_extension_chars(...)

Report invalid characters in extension/value.

hed.validator.tag_validator.TagValidator.check_for_placeholder(...)

Report invalid placeholder characters.

hed.validator.tag_validator.TagValidator.check_for_required_tags(tags)

Report missing required tags.

hed.validator.tag_validator.TagValidator.check_invalid_character_issues(...)

Report invalid characters.

hed.validator.tag_validator.TagValidator.check_multiple_unique_tags_exist(tags)

Report if multiple identical unique tags exist

hed.validator.tag_validator.TagValidator.check_tag_exists_in_schema(...)

Report invalid tag or doesn't take a value.

hed.validator.tag_validator.TagValidator.check_tag_formatting(...)

Report repeated or erroneous slashes.

hed.validator.tag_validator.TagValidator.check_tag_invalid_chars(...)

Report invalid characters in the given tag.

hed.validator.tag_validator.TagValidator.check_tag_level_issue(...)

Report tags incorrectly positioned in hierarchy.

hed.validator.tag_validator.TagValidator.check_tag_requires_child(...)

Report if tag is a leaf with 'requiredTag' attribute.

hed.validator.tag_validator.TagValidator.check_tag_unit_class_units_are_valid(...)

Report incorrect unit class or units.

hed.validator.tag_validator.TagValidator.check_tag_value_class_valid(...)

Report an invalid value portion.

hed.validator.tag_validator.TagValidator.run_all_tags_validators(tags)

Validate the multi-tag properties in a hed string.

hed.validator.tag_validator.TagValidator.run_hed_string_validators(...)

Basic high level checks of the hed string

hed.validator.tag_validator.TagValidator.run_individual_tag_validators(...)

Runs the hed_ops on the individual tags.

hed.validator.tag_validator.TagValidator.run_tag_level_validators(...)

Run hed_ops at each level in a HED string.

hed.validator.tag_validator.TagValidator.run_validate_tag_characters(...)

Basic character validation of tags

hed.validator.tag_validator.TagValidator.validate_value_class_type(...)

Report invalid unit or valid class values.

Attributes

hed.validator.tag_validator.TagValidator.CAMEL_CASE_EXPRESSION

hed.validator.tag_validator.TagValidator.CLOSING_GROUP_CHARACTER

hed.validator.tag_validator.TagValidator.COMMA

hed.validator.tag_validator.TagValidator.DEFAULT_ALLOWED_PLACEHOLDER_CHARS

hed.validator.tag_validator.TagValidator.INVALID_STRING_CHARS

hed.validator.tag_validator.TagValidator.INVALID_STRING_CHARS_PLACEHOLDERS

hed.validator.tag_validator.TagValidator.OPENING_GROUP_CHARACTER

hed.validator.tag_validator.TagValidator.TAG_ALLOWED_CHARS

hed.validator.tag_validator.TagValidator.pattern_doubleslash

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,}|^/|/$)')