search_query.pubmed package
Submodules
search_query.pubmed.constants module
Constants for PubMed.
- search_query.pubmed.constants.generic_field_to_syntax_field(generic_field: str) str
Convert a set of generic search fields to a set of syntax strings.
- search_query.pubmed.constants.map_to_standard(syntax_str: str) str
Map a syntax string to a standard syntax string.
- search_query.pubmed.constants.syntax_str_to_generic_field_set(field_value: str) set
Translate a search field
search_query.pubmed.linter module
Pubmed query linter.
- class search_query.pubmed.linter.PubmedQueryListLinter(parser: PubmedListParser, string_parser_class: Type[QueryStringParser], ignore_failing_linter: bool = False)
Bases:
QueryListLinterLinter for PubMed Query Strings
- OPERATOR_NODE_REGEX = re.compile('#?\\d+|AND|OR|NOT')
- last_read_index: Dict[int, int]
- messages: dict
- parser: PubmedListParser
- validate_query_string(processed_lines: set) None
Verify query string integrity.
- validate_tokens() None
Validate list tokens.
- class search_query.pubmed.linter.PubmedQueryStringLinter(query_str: str = '', *, original_str: str | None = None, silent: bool = False, ignore_failing_linter: bool = False)
Bases:
QueryStringLinterLinter for PubMed Query Strings
- INVALID_CHARACTERS = "!#$%+.;<>=?\\^_{}~'’()[]"
- 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.TERM, TokenTypes.PARENTHESIS_OPEN], TokenTypes.PARENTHESIS_CLOSED: [TokenTypes.LOGIC_OPERATOR, TokenTypes.PARENTHESIS_CLOSED], TokenTypes.PARENTHESIS_OPEN: [TokenTypes.TERM, TokenTypes.PARENTHESIS_OPEN], TokenTypes.RANGE_OPERATOR: [TokenTypes.TERM], TokenTypes.TERM: [TokenTypes.FIELD, TokenTypes.LOGIC_OPERATOR, TokenTypes.PARENTHESIS_CLOSED]}
- VALID_fieldS_REGEX: re.Pattern
- YEAR_VALUE_REGEX = re.compile('^"?(?P<year>\\d{4})(?P<month>\\/(0?[1-9]|1[0-2]))?(?P<day>\\/(0?[1-9]|[12]\\d|3[01]))?(\\:(?P<year2>(\\d{4})(?P<month2>\\/(0?[1-9]|1[0-2]))?(?P<day2>\\/(0?[1-9]|[12]\\d|3[01]))?))?"?$', re.VERBOSE)
- check_implicit_fields() None
Check the general search field
- 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_unsupported_pubmed_fields() None
Check for the correct format of fields.
- messages: List[dict]
- syntax_str_to_generic_field_set(field_value: str) set
Translate a search field
search_query.pubmed.parser module
Pubmed query parser.
- class search_query.pubmed.parser.PubmedListParser(query_list: str, *, field_general: str = '', ignore_failing_linter: bool = False)
Bases:
QueryListParserParser for Pubmed (list format) queries.
- linter: PubmedQueryListLinter
- query_dict: dict
- class search_query.pubmed.parser.PubmedParser(query_str: str, *, field_general: str = '', offset: dict | None = None, original_str: str | None = None, silent: bool = False, ignore_failing_linter: bool = False)
Bases:
QueryStringParserParser for Pubmed queries.
- FIELD_REGEX = re.compile('\\[[^\\[]*?]')
- LOGIC_OPERATOR_REGEX = re.compile('(\\||&|\\b(?:AND|OR|NOT|:)\\b)(?!\\s?\\[[^\\[]*?])')
- PARENTHESIS_REGEX = re.compile('[()]')
- PROXIMITY_REGEX = re.compile('^\\[(.+):~(.*)]$')
- QUOTATION_MARK_REGEX = re.compile('"')
- TERM_REGEX = re.compile('[^\\s\\[\\]()|&"]+')
- linter: QueryStringLinter
- pattern = re.compile('\\[[^\\[]*?]|(\\||&|\\b(?:AND|OR|NOT|:)\\b)(?!\\s?\\[[^\\[]*?])|[()]|"|[^\\s\\[\\]()|&"]+', re.IGNORECASE)
- tokenize() None
Tokenize the query_str
- tokens: list
search_query.pubmed.serializer module
Pubmed serializer.
- class search_query.pubmed.serializer.PUBMEDQuerySerializer
Bases:
StringSerializerPubMed query serializer.
search_query.pubmed.translator module
Pubmed query translator.
- class search_query.pubmed.translator.PubmedTranslator
Bases:
QueryTranslatorTranslator for Pubmed queries.
Module contents
Top-level package for PubMed.