#!/usr/bin/env python3
+# © Copyright 2021-2022, Scott Gasch
+
"""This is a module concerned with the creation of and searching of a
corpus of documents. The corpus is held in memory for fast
-searching."""
+searching.
-from __future__ import annotations
+"""
+from __future__ import annotations
import enum
import sys
from collections import defaultdict
... )
>>> c.query('author:Scott and important')
{1}
+ >>> c.query('*')
+ {1, 2, 3}
"""
def __init__(self) -> None:
def invert_docid_set(self, original: Set[str]) -> Set[str]:
"""Invert a set of docids."""
- return set([docid for docid in self.documents_by_docid.keys() if docid not in original])
+ return {docid for docid in self.documents_by_docid if docid not in original}
def get_doc(self, docid: str) -> Optional[Document]:
"""Given a docid, retrieve the previously added Document."""
tag1 and key:*
"""
+ if query == '*':
+ return set(self.documents_by_docid.keys())
try:
root = self._parse_query(query)
except ParseError as e: