HedSchema¶
- class HedSchema[source]
A HED schema suitable for processing.
Methods
Constructor for the HedSchema class. |
|
Returns if it's legal to save this schema. |
|
|
Check for HED3 compliance of this schema. |
Call to finish loading. |
|
|
Find the schema entry for a given source tag. |
|
Get a dict of dataframes representing this file |
|
Return the schema to a mediawiki string. |
|
Return the schema to an XML string. |
The HED version string including namespace and library name if any of this schema. |
|
returns the attributes that should be saved. |
|
A list of HED version strings including namespace and library name if any of this schema. |
|
Return a dict of all allowed tag attributes. |
|
|
Return the schema entry for this tag, if one exists. |
|
Return tag entries with the given attribute. |
Returns the first duplicate tag/unit/etc. |
|
|
Save as dataframes to a folder of files. |
|
Save as mediawiki to a file. |
|
Save as XML to a file. |
|
Return HedSchema object for this namespace. |
|
Set library namespace associated for this schema. |
Attributes
Return the attributes schema section. |
|
The name of this library schema if one exists. |
|
Returns if this schema was loaded from a merged file |
|
User provided name for this schema, defaults to filename or version if no name provided. |
|
Return the properties schema section. |
|
Returns if this is an 8.3.0 or greater schema. |
|
Returns the schema namespace prefix |
|
Return the tag schema section. |
|
Return the unit classes schema section. |
|
Return the modifiers classes schema section |
|
Return the unit schema section. |
|
Return a list of all prefixes this schema will accept |
|
Return the value classes schema section. |
|
The complete schema version, including prefix and library name(if applicable) |
|
The HED version of this schema. |
|
The version of the base schema this is extended from, if it exists. |
- HedSchema.__init__()[source]¶
Constructor for the HedSchema class.
A HedSchema can be used for validation, checking tag attributes, parsing tags, etc.
- HedSchema.can_save()[source]¶
Returns if it’s legal to save this schema.
You cannot save schemas loaded as merged from multiple library schemas.
- Returns:
True if this can be saved
- Return type:
bool
- HedSchema.check_compliance(check_for_warnings=True, name=None, error_handler=None)[source]¶
Check for HED3 compliance of this schema.
- Parameters:
check_for_warnings (bool) – If True, checks for formatting issues like invalid characters, capitalization.
name (str) – If present, use as the filename for context, rather than using the actual filename. Useful for temp filenames when supporting web services.
error_handler (ErrorHandler or None) – Used to report errors. Uses a default one if none passed in.
- Returns:
A list of all warnings and errors found in the file. Each issue is a dictionary.
- Return type:
list
- HedSchema.find_tag_entry(tag, schema_namespace='')[source]¶
Find the schema entry for a given source tag.
- Parameters:
tag (str, HedTag) – Any form of tag to look up. Can have an extension, value, etc.
schema_namespace (str) – The schema namespace of the tag, if any.
- Returns:
The located tag entry for this tag. str: The remainder of the tag that isn’t part of the base tag. list: A list of errors while converting.
- Return type:
HedTagEntry
Notes
Works left to right (which is mostly relevant for errors).
- HedSchema.get_as_dataframes(save_merged=False)[source]¶
Get a dict of dataframes representing this file
- save_merged: bool
If True, this will save the schema as a merged schema if it is a “withStandard” schema. If it is not a “withStandard” schema, this setting has no effect.
- Returns:
a dict of dataframes you can load as a schema
- Return type:
dataframes(dict)
- HedSchema.get_as_mediawiki_string(save_merged=False)[source]¶
Return the schema to a mediawiki string.
- Parameters:
save_merged (bool) – If True, this will save the schema as a merged schema if it is a “withStandard” schema. If it is not a “withStandard” schema, this setting has no effect.
- Returns:
The schema as a string in mediawiki format.
- Return type:
str
- HedSchema.get_as_xml_string(save_merged=True)[source]¶
Return the schema to an XML string.
- Parameters:
save_merged (bool) –
True (If) –
schema. (this will save the schema as a merged schema if it is a "withStandard") –
schema (If it is not a "withStandard") –
effect. (this setting has no) –
- Returns:
Return the schema as an XML string.
- Return type:
str
- HedSchema.get_formatted_version()[source]¶
The HED version string including namespace and library name if any of this schema.
- Returns:
A json formatted string of the complete version of this schema including library name and namespace.
- Return type:
str
- HedSchema.get_save_header_attributes(save_merged=False)[source]¶
returns the attributes that should be saved.
- HedSchema.get_schema_versions()[source]¶
A list of HED version strings including namespace and library name if any of this schema.
- Returns:
The complete version of this schema including library name and namespace.
- Return type:
list
- HedSchema.get_tag_attribute_names_old()[source]¶
Return a dict of all allowed tag attributes.
- Returns:
A dictionary whose keys are attribute names and values are HedSchemaEntry object.
- Return type:
dict
- HedSchema.get_tag_entry(name, key_class=HedSectionKey.Tags, schema_namespace='')[source]¶
Return the schema entry for this tag, if one exists.
- Parameters:
name (str) – Any form of basic tag(or other section entry) to look up. This will not handle extensions or similar. If this is a tag, it can have a schema namespace, but it’s not required
key_class (HedSectionKey or str) – The type of entry to return.
schema_namespace (str) – Only used on Tags. If incorrect, will return None.
- Returns:
The schema entry for the given tag.
- Return type:
HedSchemaEntry
- HedSchema.get_tags_with_attribute(attribute, key_class=HedSectionKey.Tags)[source]¶
Return tag entries with the given attribute.
- Parameters:
attribute (str) – A tag attribute. Eg HedKey.ExtensionAllowed
key_class (HedSectionKey) – The HedSectionKey for the section to retrieve from.
- Returns:
A list of all tags with this attribute.
- Return type:
list
Notes
The result is cached so will be fast after first call.
- HedSchema.has_duplicates()[source]¶
Returns the first duplicate tag/unit/etc. if any section has a duplicate name
- HedSchema.save_as_dataframes(base_filename, save_merged=False)[source]¶
Save as dataframes to a folder of files.
If base_filename has a .tsv suffix, save directly to the indicated location. If base_filename is a directory(does NOT have a .tsv suffix), save the contents into a directory named that. The subfiles are named the same. e.g. HED8.3.0/HED8.3.0_Tag.tsv
- base_filename: str
save filename. A suffix will be added to most, e.g. _Tag
- save_merged: bool
If True, this will save the schema as a merged schema if it is a “withStandard” schema. If it is not a “withStandard” schema, this setting has no effect.
- Raises:
OSError –
File cannot be saved for some reason.
- HedSchema.save_as_mediawiki(filename, save_merged=False)[source]¶
Save as mediawiki to a file.
- filename: str
save location
- save_merged: bool
If True, this will save the schema as a merged schema if it is a “withStandard” schema. If it is not a “withStandard” schema, this setting has no effect.
- Raises:
OSError –
File cannot be saved for some reason.
- HedSchema.save_as_xml(filename, save_merged=True)[source]¶
Save as XML to a file.
- filename: str
save location
- save_merged: bool
If true, this will save the schema as a merged schema if it is a “withStandard” schema. If it is not a “withStandard” schema, this setting has no effect.
- Raises:
OSError –
File cannot be saved for some reason
- HedSchema.schema_for_namespace(namespace)[source]¶
Return HedSchema object for this namespace.
- Parameters:
namespace (str) – The schema library name namespace.
- Returns:
The HED schema object for this schema.
- Return type:
HedSchema
- HedSchema.set_schema_prefix(schema_namespace)[source]¶
Set library namespace associated for this schema.
- Parameters:
schema_namespace (str) – Should be empty, or end with a colon.(Colon will be automated added if missing).
- Raises:
The prefix is invalid
- HedSchema.attributes¶
Return the attributes schema section.
- Returns:
The attributes section.
- Return type:
HedSchemaSection
- HedSchema.library¶
The name of this library schema if one exists.
- Returns:
Library name if any.
- Return type:
str
- HedSchema.merged¶
Returns if this schema was loaded from a merged file
- Returns:
True if file was loaded from a merged file
- Return type:
bool
- HedSchema.name¶
User provided name for this schema, defaults to filename or version if no name provided.
- HedSchema.properties¶
Return the properties schema section.
- Returns:
The properties section.
- Return type:
HedSchemaSection
- HedSchema.schema_83_props¶
Returns if this is an 8.3.0 or greater schema.
- Returns:
True if standard or partnered schema is 8.3.0 or greater.
- Return type:
is_83_schema(bool)
- HedSchema.schema_namespace¶
Returns the schema namespace prefix
- HedSchema.tags¶
Return the tag schema section.
- Returns:
The tag section.
- Return type:
HedSchemaTagSection
- HedSchema.unit_classes¶
Return the unit classes schema section.
- Returns:
The unit classes section.
- Return type:
HedSchemaUnitClassSection
- HedSchema.unit_modifiers¶
Return the modifiers classes schema section
- Returns:
The unit modifiers section.
- Return type:
HedSchemaSection
- HedSchema.units¶
Return the unit schema section.
- Returns:
The unit section.
- Return type:
HedSchemaSection
- HedSchema.valid_prefixes¶
Return a list of all prefixes this schema will accept
- Returns:
A list of valid tag prefixes for this schema.
- Return type:
list
Notes
The return value is always length 1 if using a HedSchema.
- HedSchema.value_classes¶
Return the value classes schema section.
- Returns:
The value classes section.
- Return type:
HedSchemaSection
- HedSchema.version¶
The complete schema version, including prefix and library name(if applicable)
- HedSchema.version_number¶
The HED version of this schema.
- Returns:
The version of this schema.
- Return type:
str
- HedSchema.with_standard¶
The version of the base schema this is extended from, if it exists.
- Returns:
HED version or “”
- Return type:
str