Source code for bigdata_client.models.languages
from typing import Literal, Optional
from pydantic import BaseModel, ConfigDict, Field
from bigdata_client.models.advanced_search_query import Language as LanguageQuery
from bigdata_client.models.advanced_search_query import QueryComponent
from bigdata_client.models.search import Expression
[docs]
class Language(BaseModel):
model_config = ConfigDict(populate_by_name=True)
id: str = Field(validation_alias="key")
name: str
volume: Optional[int] = None
description: Optional[str] = None
query_type: Literal["language"] = Field(
default="language", validation_alias="queryType"
)
# QueryComponent methods
@property
def _query_proxy(self):
return LanguageQuery(self.id)
[docs]
def to_expression(self) -> Expression:
return self._query_proxy.to_expression()
def __or__(self, other: QueryComponent) -> QueryComponent:
return self._query_proxy | other
def __and__(self, other: QueryComponent) -> QueryComponent:
return self._query_proxy & other
def __invert__(self) -> QueryComponent:
return ~self._query_proxy
[docs]
def make_copy(self) -> QueryComponent:
return self._query_proxy.make_copy()