# This source code is part of the Biotite package and is distributed
# under the 3-Clause BSD License. Please see 'LICENSE.rst' for further
# information.

from typing import List, Union, Optional
from abc import abstractmethod


class Query():
    def __init__(self) -> None: ...
    @abstractmethod
    def __str__(self) -> str: ...
    def __or__(self, operand: Union[Query, str]) -> CompositeQuery: ...
    def __and__(self, operand: Union[Query, str]) -> CompositeQuery: ...
    def __xor__(self, operand: Union[Query, str]) -> CompositeQuery: ...


class CompositeQuery(Query):
    def __init__(
        self, operator: str, query1: Query, query2: Query
    ) -> None: ...
    def __str__(self) -> str: ...


class SimpleQuery(Query):
    def __init__(self, term: str, field: Optional[str] = None) -> None: ...
    def __str__(self) -> str: ...


def search(query: Query, db_name: str, number: int = 20) -> List[str]: ...
b22597714dc7f95ccfa6ab955ced577412c26dfd
<mask token>


class Query:
    <mask token>

    @abstractmethod
    def __str__(self) ->str:
        ...
    <mask token>

    def __and__(self, operand: Union[Query, str]) ->CompositeQuery:
        ...
    <mask token>


class CompositeQuery(Query):

    def __init__(self, operator: str, query1: Query, query2: Query) ->None:
        ...

    def __str__(self) ->str:
        ...


class SimpleQuery(Query):

    def __init__(self, term: str, field: Optional[str]=None) ->None:
        ...

    def __str__(self) ->str:
        ...


<mask token>

<mask token>


class Query:
    <mask token>

    @abstractmethod
    def __str__(self) ->str:
        ...

    def __or__(self, operand: Union[Query, str]) ->CompositeQuery:
        ...

    def __and__(self, operand: Union[Query, str]) ->CompositeQuery:
        ...
    <mask token>


class CompositeQuery(Query):

    def __init__(self, operator: str, query1: Query, query2: Query) ->None:
        ...

    def __str__(self) ->str:
        ...


class SimpleQuery(Query):

    def __init__(self, term: str, field: Optional[str]=None) ->None:
        ...

    def __str__(self) ->str:
        ...


<mask token>

<mask token>


class Query:

    def __init__(self) ->None:
        ...

    @abstractmethod
    def __str__(self) ->str:
        ...

    def __or__(self, operand: Union[Query, str]) ->CompositeQuery:
        ...

    def __and__(self, operand: Union[Query, str]) ->CompositeQuery:
        ...

    def __xor__(self, operand: Union[Query, str]) ->CompositeQuery:
        ...


class CompositeQuery(Query):

    def __init__(self, operator: str, query1: Query, query2: Query) ->None:
        ...

    def __str__(self) ->str:
        ...


class SimpleQuery(Query):

    def __init__(self, term: str, field: Optional[str]=None) ->None:
        ...

    def __str__(self) ->str:
        ...


<mask token>

<mask token>


class Query:

    def __init__(self) ->None:
        ...

    @abstractmethod
    def __str__(self) ->str:
        ...

    def __or__(self, operand: Union[Query, str]) ->CompositeQuery:
        ...

    def __and__(self, operand: Union[Query, str]) ->CompositeQuery:
        ...

    def __xor__(self, operand: Union[Query, str]) ->CompositeQuery:
        ...


class CompositeQuery(Query):

    def __init__(self, operator: str, query1: Query, query2: Query) ->None:
        ...

    def __str__(self) ->str:
        ...


class SimpleQuery(Query):

    def __init__(self, term: str, field: Optional[str]=None) ->None:
        ...

    def __str__(self) ->str:
        ...


def search(query: Query, db_name: str, number: int=20) ->List[str]:
    ...

# This source code is part of the Biotite package and is distributed
# under the 3-Clause BSD License. Please see 'LICENSE.rst' for further
# information.

from typing import List, Union, Optional
from abc import abstractmethod


class Query():
    def __init__(self) -> None: ...
    @abstractmethod
    def __str__(self) -> str: ...
    def __or__(self, operand: Union[Query, str]) -> CompositeQuery: ...
    def __and__(self, operand: Union[Query, str]) -> CompositeQuery: ...
    def __xor__(self, operand: Union[Query, str]) -> CompositeQuery: ...


class CompositeQuery(Query):
    def __init__(
        self, operator: str, query1: Query, query2: Query
    ) -> None: ...
    def __str__(self) -> str: ...


class SimpleQuery(Query):
    def __init__(self, term: str, field: Optional[str] = None) -> None: ...
    def __str__(self) -> str: ...


def search(query: Query, db_name: str, number: int = 20) -> List[str]: ...