diff --git a/apiserver/database/projection.py b/apiserver/database/projection.py index b74f238..1e22e71 100644 --- a/apiserver/database/projection.py +++ b/apiserver/database/projection.py @@ -1,7 +1,7 @@ import threading from concurrent.futures import ThreadPoolExecutor from itertools import groupby, chain -from typing import Sequence, Dict, Callable, Tuple, Any, Type +from typing import Sequence, Dict, Callable from apiserver.apierrors import errors from apiserver.database.props import PropsMixin @@ -49,9 +49,6 @@ class ProjectionHelper(object): self._ref_projection = None self._proxy_manager = _ProxyManager() - # Cached dpath paths for each of the result documents - self._cached_results_paths: Dict[int, Sequence[Tuple[Any, Type]]] = {} - self._parse_projection(projection) def _collect_projection_fields(self, doc_cls, projection): diff --git a/apiserver/database/utils.py b/apiserver/database/utils.py index 7b4f92d..7ee28c7 100644 --- a/apiserver/database/utils.py +++ b/apiserver/database/utils.py @@ -1,6 +1,6 @@ import hashlib from inspect import ismethod, getmembers -from typing import Sequence, Tuple, Set, Optional, Callable, Any +from typing import Sequence, Tuple, Set, Optional, Callable, Any, Mapping from uuid import uuid4 from mongoengine import EmbeddedDocumentField, ListField, Document, Q @@ -203,18 +203,22 @@ def _names_set(*names: str) -> Set[str]: return set(names) | set(f"-{name}" for name in names) -system_tag_names = { +_system_tag_names = { "model": _names_set("active", "archived"), "project": _names_set("archived", "public", "default"), "task": _names_set("active", "archived", "development"), "queue": _names_set("default"), } -system_tag_prefixes = {"task": _names_set("annotat")} +_system_tag_prefixes = {"task": _names_set("annotat")} def partition_tags( - entity: str, tags: Sequence[str], system_tags: Optional[Sequence[str]] = () + entity: str, + tags: Sequence[str], + system_tags: Optional[Sequence[str]] = (), + system_tag_names: Mapping = _system_tag_names, + system_tag_prefixes: Mapping = _system_tag_prefixes, ) -> Tuple[Sequence[str], Sequence[str]]: """ Partition the given tags sequence into system and user-defined tags