Skip to content

Query Module

datajoint_file_validator.query.Query dataclass

Bases: ABC

An object representing a query against a snapshot.

Source code in datajoint_file_validator/query.py
13
14
15
16
17
18
19
20
21
22
23
24
@dataclass(frozen=True)
class Query(ABC):
    """An object representing a query against a snapshot."""

    @abstractmethod
    def filter(self, snapshot: Snapshot) -> Snapshot:
        """Filter a Snapshot based on this query. Virtual method."""
        pass

    def __and__(self, other: "Query") -> "Query":
        """Combine two queries with an AND operator."""
        return CompositeQuery([self, other])

filter(snapshot) abstractmethod

Filter a Snapshot based on this query. Virtual method.

Source code in datajoint_file_validator/query.py
17
18
19
20
@abstractmethod
def filter(self, snapshot: Snapshot) -> Snapshot:
    """Filter a Snapshot based on this query. Virtual method."""
    pass

datajoint_file_validator.query.GlobQuery dataclass

Bases: Query

A query that filters based on path. Includes support for glob wildcards.

Source code in datajoint_file_validator/query.py
27
28
29
30
31
32
33
34
35
36
37
38
39
@dataclass(frozen=True)
class GlobQuery(Query):
    """A query that filters based on path. Includes support for glob wildcards."""

    path: str = config.default_query

    def filter(self, snapshot: Snapshot) -> Snapshot:
        """Filter a Snapshot based on this query."""
        return list(self._filter_generator(snapshot))

    def _filter_generator(self, snapshot: Snapshot) -> Generator:
        """Filter a Snapshot based on this query. Returns a generator."""
        return find_matching_files(snapshot, self.path)

filter(snapshot)

Filter a Snapshot based on this query.

Source code in datajoint_file_validator/query.py
33
34
35
def filter(self, snapshot: Snapshot) -> Snapshot:
    """Filter a Snapshot based on this query."""
    return list(self._filter_generator(snapshot))