search_query.pubmed.linter

Pubmed query linter.

Classes

PubmedQueryListLinter(parser, ...)

Linter for PubMed Query Strings

PubmedQueryStringLinter([query_str])

Linter for PubMed Query Strings

class search_query.pubmed.linter.PubmedQueryListLinter(parser: PubmedListParser, string_parser_class: Type[QueryStringParser])

Bases: QueryListLinter

Linter for PubMed Query Strings

check_invalid_list_reference() None

Check for invalid list reference

check_operator_node_token_sequence() None

Check operator nodes

validate_tokens() None

Validate token list

class search_query.pubmed.linter.PubmedQueryStringLinter(query_str: str = '')

Bases: QueryStringLinter

Linter for PubMed Query Strings

PLATFORM: <PLATFORM.PUBMED: 'pubmed'> = 'pubmed'
PROXIMITY_REGEX = re.compile('^\\[(.+):~(.*)\\]$')
VALID_TOKEN_SEQUENCES: Dict[TokenTypes, List[TokenTypes]] = {TokenTypes.FIELD: [TokenTypes.LOGIC_OPERATOR, TokenTypes.PARENTHESIS_CLOSED, TokenTypes.RANGE_OPERATOR], TokenTypes.LOGIC_OPERATOR: [TokenTypes.SEARCH_TERM, TokenTypes.PARENTHESIS_OPEN], TokenTypes.PARENTHESIS_CLOSED: [TokenTypes.LOGIC_OPERATOR, TokenTypes.PARENTHESIS_CLOSED], TokenTypes.PARENTHESIS_OPEN: [TokenTypes.SEARCH_TERM, TokenTypes.PARENTHESIS_OPEN], TokenTypes.RANGE_OPERATOR: [TokenTypes.SEARCH_TERM], TokenTypes.SEARCH_TERM: [TokenTypes.FIELD, TokenTypes.LOGIC_OPERATOR, TokenTypes.PARENTHESIS_CLOSED]}
check_character_replacement_in_search_term(query: Query) None

Check a search term for invalid characters

check_general_search_field_mismatch() None

Check general search field mismatch

check_invalid_proximity_operator() None

Check search field for invalid proximity operator

check_invalid_syntax() None

Check for invalid syntax in the query string.

check_invalid_token_sequences() None

Check token list for invalid token sequences.

check_invalid_wildcard(query: Query) None

Check search term for invalid wildcard *

check_unsupported_pubmed_search_fields() None

Check for the correct format of fields.

syntax_str_to_generic_search_field_set(field_value: str) set

Translate a search field

validate_platform_query(query: Query) None

Validate the query for the PubMed platform

validate_query_tree(query: Query) None

Validate the query tree

validate_tokens(*, tokens: List[Token], query_str: str, search_field_general: str = '') List[Token]

Validate token list