sprocket_bio.grammar
- class sprocket_bio.grammar.Diagnostic
Bases:
objectRepresents a diagnostic to display to the user.
- static error(message)
Creates a new diagnostic error with the given message.
- static note(message)
Creates a new diagnostic node with the given message.
- static warning(message)
Creates a new diagnostic warning with the given message.
- with_fix(fix)
Sets the fix message for the diagnostic.
- with_help(help)
Sets the help message for the diagnostic.
This is different from the
fixmessage, as it only serves to provide more context to the issue, rather than a solution.
- with_highlight(span)
Adds a highlight to the diagnostic.
This is equivalent to adding a label with an empty message.
The span for the highlight is expected to be for the same file as the diagnostic.
- with_label(message, span)
Adds a label to the diagnostic.
The first label added is considered the primary label.
The span for the label is expected to be for the same file as the diagnostic.
- with_rule(rule)
Sets the rule for the diagnostic.
- with_severity(severity)
Sets the severity of the diagnostic.
- fix
The optional fix suggestion for the diagnostic.
- help
The optional help message.
- labels
The labels for the diagnostic.
The first label in the collection is considered the primary label.
- message
The diagnostic message.
- rule
The optional rule associated with the diagnostic.
- severity
The default severity of the diagnostic.
- class sprocket_bio.grammar.Label(message, span)
Bases:
objectRepresents a label that annotates the source code.
- message
The optional message of the label (may be empty).
- span
The span of the label.
- class sprocket_bio.grammar.Severity
Bases:
objectRepresents the severity of a diagnostic.
- ERROR = Severity.ERROR
- NOTE = Severity.NOTE
- WARNING = Severity.WARNING
- class sprocket_bio.grammar.Span(start, len)
Bases:
objectRepresents a span of source.
- contains(offset)
Determines if the span contains the given offset.
- intersect(other)
Calculates an intersection of two spans, if one exists.
If spans are adjacent, a zero-length span is returned.
Returns
Noneif the two spans are disjoint.Examples
>>> Span(0, 10).intersect(Span(5, 10)) Span(5..10)
- is_empty()
Determines if the span is empty.
- len()
Gets the length of the span.
- end
The end of the span.
- start
The start of the span.
- class sprocket_bio.grammar.SupportedVersion
Bases:
objectRepresents a supported WDL version.
The
Defaultimplementation of this type returns the most recent fully-supported ratified version of WDL.- class V1(_0)
Bases:
SupportedVersionThe document version is 1.x.
- has_same_major_version(other)
Returns
trueif the other version has the same major version as this one.>>> from sprocket_bio.grammar.version import SupportedVersion, V1 >>> SupportedVersion.V1(V1.ZERO).has_same_major_version(SupportedVersion.V1(V1.TWO)) True
- class sprocket_bio.grammar.SyntaxKind
Bases:
objectRepresents the kind of syntax element (node or token) in a WDL concrete syntax tree (CST).
Nodes have at least one token child and represent a syntactic construct.
Tokens are terminal and represent any span of the source.
This enumeration is a union of all supported WDL tokens and nodes.
- describe()
Describes the syntax kind.
Errors
This method will throw
ValueErrorif theSyntaxKindis symbolic (whenSyntaxKind.is_symbolic()returns true).
- is_keyword()
Returns whether the
SyntaxKindis a keyword.NOTE: This does not include types, see
SyntaxKind.is_type().
- is_operator()
Returns whether the
SyntaxKindis an operator.
- is_symbolic()
Returns whether the token is a symbolic
SyntaxKind.Generally speaking, symbolic
SyntaxKinds have special meanings during parsing—they are not real elements of the grammar but rather an implementation detail.
- is_trivia()
Returns whether the
SyntaxKindis trivia.
- is_type()
Returns whether the
SyntaxKindis a predefined type keyword.
- ABANDONED = SyntaxKind.ABANDONED
- ACCESS_EXPR_NODE = SyntaxKind.ACCESS_EXPR_NODE
- ADDITION_EXPR_NODE = SyntaxKind.ADDITION_EXPR_NODE
- AFTER_KEYWORD = SyntaxKind.AFTER_KEYWORD
- ALIAS_KEYWORD = SyntaxKind.ALIAS_KEYWORD
- ARRAY_TYPE_KEYWORD = SyntaxKind.ARRAY_TYPE_KEYWORD
- ARRAY_TYPE_NODE = SyntaxKind.ARRAY_TYPE_NODE
- ASSIGNMENT = SyntaxKind.ASSIGNMENT
- ASTERISK = SyntaxKind.ASTERISK
- AS_KEYWORD = SyntaxKind.AS_KEYWORD
- BOOLEAN_TYPE_KEYWORD = SyntaxKind.BOOLEAN_TYPE_KEYWORD
- BOUND_DECL_NODE = SyntaxKind.BOUND_DECL_NODE
- CALL_AFTER_NODE = SyntaxKind.CALL_AFTER_NODE
- CALL_ALIAS_NODE = SyntaxKind.CALL_ALIAS_NODE
- CALL_EXPR_NODE = SyntaxKind.CALL_EXPR_NODE
- CALL_INPUT_ITEM_NODE = SyntaxKind.CALL_INPUT_ITEM_NODE
- CALL_KEYWORD = SyntaxKind.CALL_KEYWORD
- CALL_STATEMENT_NODE = SyntaxKind.CALL_STATEMENT_NODE
- CALL_TARGET_NODE = SyntaxKind.CALL_TARGET_NODE
- CLOSE_BRACE = SyntaxKind.CLOSE_BRACE
- CLOSE_BRACKET = SyntaxKind.CLOSE_BRACKET
- CLOSE_HEREDOC = SyntaxKind.CLOSE_HEREDOC
- CLOSE_PAREN = SyntaxKind.CLOSE_PAREN
- COLON = SyntaxKind.COLON
- COMMA = SyntaxKind.COMMA
- COMMAND_KEYWORD = SyntaxKind.COMMAND_KEYWORD
- COMMAND_SECTION_NODE = SyntaxKind.COMMAND_SECTION_NODE
- COMMENT = SyntaxKind.COMMENT
- CONDITIONAL_STATEMENT_CLAUSE_NODE = SyntaxKind.CONDITIONAL_STATEMENT_CLAUSE_NODE
- CONDITIONAL_STATEMENT_NODE = SyntaxKind.CONDITIONAL_STATEMENT_NODE
- DIRECTORY_TYPE_KEYWORD = SyntaxKind.DIRECTORY_TYPE_KEYWORD
- DIVISION_EXPR_NODE = SyntaxKind.DIVISION_EXPR_NODE
- DOT = SyntaxKind.DOT
- DOUBLE_QUOTE = SyntaxKind.DOUBLE_QUOTE
- ELSE_KEYWORD = SyntaxKind.ELSE_KEYWORD
- ENUM_CHOICE_NODE = SyntaxKind.ENUM_CHOICE_NODE
- ENUM_DEFINITION_NODE = SyntaxKind.ENUM_DEFINITION_NODE
- ENUM_KEYWORD = SyntaxKind.ENUM_KEYWORD
- ENUM_TYPE_PARAMETER_NODE = SyntaxKind.ENUM_TYPE_PARAMETER_NODE
- ENV_KEYWORD = SyntaxKind.ENV_KEYWORD
- EQUAL = SyntaxKind.EQUAL
- EQUALITY_EXPR_NODE = SyntaxKind.EQUALITY_EXPR_NODE
- EXCLAMATION = SyntaxKind.EXCLAMATION
- EXPONENTIATION = SyntaxKind.EXPONENTIATION
- EXPONENTIATION_EXPR_NODE = SyntaxKind.EXPONENTIATION_EXPR_NODE
- FALSE_KEYWORD = SyntaxKind.FALSE_KEYWORD
- FILE_TYPE_KEYWORD = SyntaxKind.FILE_TYPE_KEYWORD
- FLOAT = SyntaxKind.FLOAT
- FLOAT_TYPE_KEYWORD = SyntaxKind.FLOAT_TYPE_KEYWORD
- FROM_KEYWORD = SyntaxKind.FROM_KEYWORD
- GREATER = SyntaxKind.GREATER
- GREATER_EQUAL = SyntaxKind.GREATER_EQUAL
- GREATER_EQUAL_EXPR_NODE = SyntaxKind.GREATER_EQUAL_EXPR_NODE
- GREATER_EXPR_NODE = SyntaxKind.GREATER_EXPR_NODE
- HINTS_KEYWORD = SyntaxKind.HINTS_KEYWORD
- IDENT = SyntaxKind.IDENT
- IF_EXPR_NODE = SyntaxKind.IF_EXPR_NODE
- IF_KEYWORD = SyntaxKind.IF_KEYWORD
- IMPORT_ALIAS_NODE = SyntaxKind.IMPORT_ALIAS_NODE
- IMPORT_KEYWORD = SyntaxKind.IMPORT_KEYWORD
- IMPORT_MEMBERS_NODE = SyntaxKind.IMPORT_MEMBERS_NODE
- IMPORT_MEMBER_NODE = SyntaxKind.IMPORT_MEMBER_NODE
- IMPORT_STATEMENT_NODE = SyntaxKind.IMPORT_STATEMENT_NODE
- INDEX_EXPR_NODE = SyntaxKind.INDEX_EXPR_NODE
- INEQUALITY_EXPR_NODE = SyntaxKind.INEQUALITY_EXPR_NODE
- INPUT_KEYWORD = SyntaxKind.INPUT_KEYWORD
- INPUT_SECTION_NODE = SyntaxKind.INPUT_SECTION_NODE
- INTEGER = SyntaxKind.INTEGER
- INT_TYPE_KEYWORD = SyntaxKind.INT_TYPE_KEYWORD
- IN_KEYWORD = SyntaxKind.IN_KEYWORD
- LESS = SyntaxKind.LESS
- LESS_EQUAL = SyntaxKind.LESS_EQUAL
- LESS_EQUAL_EXPR_NODE = SyntaxKind.LESS_EQUAL_EXPR_NODE
- LESS_EXPR_NODE = SyntaxKind.LESS_EXPR_NODE
- LITERAL_ARRAY_NODE = SyntaxKind.LITERAL_ARRAY_NODE
- LITERAL_BOOLEAN_NODE = SyntaxKind.LITERAL_BOOLEAN_NODE
- LITERAL_COMMAND_TEXT = SyntaxKind.LITERAL_COMMAND_TEXT
- LITERAL_FLOAT_NODE = SyntaxKind.LITERAL_FLOAT_NODE
- LITERAL_HINTS_ITEM_NODE = SyntaxKind.LITERAL_HINTS_ITEM_NODE
- LITERAL_HINTS_NODE = SyntaxKind.LITERAL_HINTS_NODE
- LITERAL_INPUT_ITEM_NODE = SyntaxKind.LITERAL_INPUT_ITEM_NODE
- LITERAL_INPUT_NODE = SyntaxKind.LITERAL_INPUT_NODE
- LITERAL_INTEGER_NODE = SyntaxKind.LITERAL_INTEGER_NODE
- LITERAL_MAP_ITEM_NODE = SyntaxKind.LITERAL_MAP_ITEM_NODE
- LITERAL_MAP_NODE = SyntaxKind.LITERAL_MAP_NODE
- LITERAL_NONE_NODE = SyntaxKind.LITERAL_NONE_NODE
- LITERAL_NULL_NODE = SyntaxKind.LITERAL_NULL_NODE
- LITERAL_OBJECT_ITEM_NODE = SyntaxKind.LITERAL_OBJECT_ITEM_NODE
- LITERAL_OBJECT_NODE = SyntaxKind.LITERAL_OBJECT_NODE
- LITERAL_OUTPUT_ITEM_NODE = SyntaxKind.LITERAL_OUTPUT_ITEM_NODE
- LITERAL_OUTPUT_NODE = SyntaxKind.LITERAL_OUTPUT_NODE
- LITERAL_PAIR_NODE = SyntaxKind.LITERAL_PAIR_NODE
- LITERAL_STRING_NODE = SyntaxKind.LITERAL_STRING_NODE
- LITERAL_STRING_TEXT = SyntaxKind.LITERAL_STRING_TEXT
- LITERAL_STRUCT_ITEM_NODE = SyntaxKind.LITERAL_STRUCT_ITEM_NODE
- LITERAL_STRUCT_NODE = SyntaxKind.LITERAL_STRUCT_NODE
- LOGICAL_AND = SyntaxKind.LOGICAL_AND
- LOGICAL_AND_EXPR_NODE = SyntaxKind.LOGICAL_AND_EXPR_NODE
- LOGICAL_NOT_EXPR_NODE = SyntaxKind.LOGICAL_NOT_EXPR_NODE
- LOGICAL_OR = SyntaxKind.LOGICAL_OR
- LOGICAL_OR_EXPR_NODE = SyntaxKind.LOGICAL_OR_EXPR_NODE
- MAP_TYPE_KEYWORD = SyntaxKind.MAP_TYPE_KEYWORD
- MAP_TYPE_NODE = SyntaxKind.MAP_TYPE_NODE
- MAX = SyntaxKind.MAX
- METADATA_ARRAY_NODE = SyntaxKind.METADATA_ARRAY_NODE
- METADATA_OBJECT_ITEM_NODE = SyntaxKind.METADATA_OBJECT_ITEM_NODE
- METADATA_OBJECT_NODE = SyntaxKind.METADATA_OBJECT_NODE
- METADATA_SECTION_NODE = SyntaxKind.METADATA_SECTION_NODE
- META_KEYWORD = SyntaxKind.META_KEYWORD
- MINUS = SyntaxKind.MINUS
- MODULO_EXPR_NODE = SyntaxKind.MODULO_EXPR_NODE
- MULTIPLICATION_EXPR_NODE = SyntaxKind.MULTIPLICATION_EXPR_NODE
- NAME_REF_EXPR_NODE = SyntaxKind.NAME_REF_EXPR_NODE
- NEGATION_EXPR_NODE = SyntaxKind.NEGATION_EXPR_NODE
- NONE_KEYWORD = SyntaxKind.NONE_KEYWORD
- NOT_EQUAL = SyntaxKind.NOT_EQUAL
- NULL_KEYWORD = SyntaxKind.NULL_KEYWORD
- OBJECT_KEYWORD = SyntaxKind.OBJECT_KEYWORD
- OBJECT_TYPE_KEYWORD = SyntaxKind.OBJECT_TYPE_KEYWORD
- OBJECT_TYPE_NODE = SyntaxKind.OBJECT_TYPE_NODE
- OPEN_BRACE = SyntaxKind.OPEN_BRACE
- OPEN_BRACKET = SyntaxKind.OPEN_BRACKET
- OPEN_HEREDOC = SyntaxKind.OPEN_HEREDOC
- OPEN_PAREN = SyntaxKind.OPEN_PAREN
- OUTPUT_KEYWORD = SyntaxKind.OUTPUT_KEYWORD
- OUTPUT_SECTION_NODE = SyntaxKind.OUTPUT_SECTION_NODE
- PAIR_TYPE_KEYWORD = SyntaxKind.PAIR_TYPE_KEYWORD
- PAIR_TYPE_NODE = SyntaxKind.PAIR_TYPE_NODE
- PARAMETER_METADATA_SECTION_NODE = SyntaxKind.PARAMETER_METADATA_SECTION_NODE
- PARAMETER_META_KEYWORD = SyntaxKind.PARAMETER_META_KEYWORD
- PARENTHESIZED_EXPR_NODE = SyntaxKind.PARENTHESIZED_EXPR_NODE
- PERCENT = SyntaxKind.PERCENT
- PLACEHOLDER_DEFAULT_OPTION_NODE = SyntaxKind.PLACEHOLDER_DEFAULT_OPTION_NODE
- PLACEHOLDER_NODE = SyntaxKind.PLACEHOLDER_NODE
- PLACEHOLDER_OPEN = SyntaxKind.PLACEHOLDER_OPEN
- PLACEHOLDER_SEP_OPTION_NODE = SyntaxKind.PLACEHOLDER_SEP_OPTION_NODE
- PLACEHOLDER_TRUE_FALSE_OPTION_NODE = SyntaxKind.PLACEHOLDER_TRUE_FALSE_OPTION_NODE
- PLUS = SyntaxKind.PLUS
- PRIMITIVE_TYPE_NODE = SyntaxKind.PRIMITIVE_TYPE_NODE
- QUESTION_MARK = SyntaxKind.QUESTION_MARK
- REQUIREMENTS_ITEM_NODE = SyntaxKind.REQUIREMENTS_ITEM_NODE
- REQUIREMENTS_KEYWORD = SyntaxKind.REQUIREMENTS_KEYWORD
- REQUIREMENTS_SECTION_NODE = SyntaxKind.REQUIREMENTS_SECTION_NODE
- ROOT_NODE = SyntaxKind.ROOT_NODE
- RUNTIME_ITEM_NODE = SyntaxKind.RUNTIME_ITEM_NODE
- RUNTIME_KEYWORD = SyntaxKind.RUNTIME_KEYWORD
- RUNTIME_SECTION_NODE = SyntaxKind.RUNTIME_SECTION_NODE
- SCATTER_KEYWORD = SyntaxKind.SCATTER_KEYWORD
- SCATTER_STATEMENT_NODE = SyntaxKind.SCATTER_STATEMENT_NODE
- SINGLE_QUOTE = SyntaxKind.SINGLE_QUOTE
- SLASH = SyntaxKind.SLASH
- STRING_TYPE_KEYWORD = SyntaxKind.STRING_TYPE_KEYWORD
- STRUCT_DEFINITION_NODE = SyntaxKind.STRUCT_DEFINITION_NODE
- STRUCT_KEYWORD = SyntaxKind.STRUCT_KEYWORD
- SUBTRACTION_EXPR_NODE = SyntaxKind.SUBTRACTION_EXPR_NODE
- SYMBOLIC_MODULE_PATH_NODE = SyntaxKind.SYMBOLIC_MODULE_PATH_NODE
- TASK_DEFINITION_NODE = SyntaxKind.TASK_DEFINITION_NODE
- TASK_HINTS_ITEM_NODE = SyntaxKind.TASK_HINTS_ITEM_NODE
- TASK_HINTS_SECTION_NODE = SyntaxKind.TASK_HINTS_SECTION_NODE
- TASK_KEYWORD = SyntaxKind.TASK_KEYWORD
- THEN_KEYWORD = SyntaxKind.THEN_KEYWORD
- TRUE_KEYWORD = SyntaxKind.TRUE_KEYWORD
- TYPE_REF_NODE = SyntaxKind.TYPE_REF_NODE
- UNBOUND_DECL_NODE = SyntaxKind.UNBOUND_DECL_NODE
- UNKNOWN = SyntaxKind.UNKNOWN
- UNPARSED = SyntaxKind.UNPARSED
- VERSION = SyntaxKind.VERSION
- VERSION_KEYWORD = SyntaxKind.VERSION_KEYWORD
- VERSION_STATEMENT_NODE = SyntaxKind.VERSION_STATEMENT_NODE
- WHITESPACE = SyntaxKind.WHITESPACE
- WORKFLOW_DEFINITION_NODE = SyntaxKind.WORKFLOW_DEFINITION_NODE
- WORKFLOW_HINTS_ARRAY_NODE = SyntaxKind.WORKFLOW_HINTS_ARRAY_NODE
- WORKFLOW_HINTS_ITEM_NODE = SyntaxKind.WORKFLOW_HINTS_ITEM_NODE
- WORKFLOW_HINTS_OBJECT_ITEM_NODE = SyntaxKind.WORKFLOW_HINTS_OBJECT_ITEM_NODE
- WORKFLOW_HINTS_OBJECT_NODE = SyntaxKind.WORKFLOW_HINTS_OBJECT_NODE
- WORKFLOW_HINTS_SECTION_NODE = SyntaxKind.WORKFLOW_HINTS_SECTION_NODE
- WORKFLOW_KEYWORD = SyntaxKind.WORKFLOW_KEYWORD