def get_label(self, lang: types.LanguageCode = types.LanguageCode("en")) -> str: """Get label (primary name for this entity) in a specific language. See: https://www.wikidata.org/wiki/Help:Label Parameters ---------- lang Find the label in this language. """ if isinstance(self._entity_dict["labels"], dict) and lang in self._entity_dict["labels"]: return self._entity_dict["labels"][lang]["value"] else: return ""
def get_aliases(self, lang: types.LanguageCode = types.LanguageCode("en")) -> List[str]: """Get alternative names for this entity in a specific language. See: https://www.wikidata.org/wiki/Help:Aliases Parameters ---------- lang Find aliases in this language. """ if isinstance(self._entity_dict["aliases"], dict) and lang in self._entity_dict["aliases"]: return [el["value"] for el in self._entity_dict["aliases"][lang]] else: return []
def get_lemma(self, lang: types.LanguageCode = types.LanguageCode("en")) -> str: """Get lemma (primary name for this lexeme) in a specific language. See: https://www.mediawiki.org/wiki/Extension:WikibaseLexeme/Data_Model#Lemma Parameters ---------- lang Find the lemma in this language. """ if isinstance(self._entity_dict["lemmas"], dict) and lang in self._entity_dict["lemmas"]: return self._entity_dict["lemmas"][lang]["value"] else: return ""
def get_gloss(self, lang: types.LanguageCode = types.LanguageCode("en")) -> str: """Get gloss of this sense in a given language. See: https://www.mediawiki.org/wiki/Extension:WikibaseLexeme/Data_Model#Gloss Parameters ---------- lang Find the gloss in this language. """ if isinstance(self._sense_dict["glosses"], dict) and lang in self._sense_dict["glosses"]: return self._sense_dict["glosses"][lang]["value"] else: return ""
def get_description(self, lang: types.LanguageCode = types.LanguageCode("en")) -> str: """Get a brief description of this entity in a specific language. See: https://www.wikidata.org/wiki/Help:Description Parameters ---------- lang Find the description in this language. """ if ( isinstance(self._entity_dict["descriptions"], dict) and lang in self._entity_dict["descriptions"] ): return self._entity_dict["descriptions"][lang]["value"] else: return ""
def get_representation(self, lang: types.LanguageCode = types.LanguageCode("en")) -> str: """Get representation of this form in a given language. See: https://www.mediawiki.org/wiki/Extension:WikibaseLexeme/Data_Model#Representation Parameters ---------- lang Find the representation in this language. """ if ( isinstance(self._form_dict["representations"], dict) and lang in self._form_dict["representations"] ): return self._form_dict["representations"][lang]["value"] else: return ""
import json import os import unittest import pytest from qwikidata import types from qwikidata.datavalue import WikibaseEntityId from qwikidata.entity import WikidataItem, WikidataLexeme, WikidataProperty PATH_HERE = os.path.dirname(os.path.realpath(__file__)) PATH_TO_TEST_DATA = os.path.join(PATH_HERE, "data") EN = types.LanguageCode("en") DE = types.LanguageCode("de") NO = types.LanguageCode("not a language") def _load_item_dict(item_id: types.ItemId) -> types.ItemDict: """Return an item dictionary.""" fpath = os.path.join(PATH_TO_TEST_DATA, f"wd_{item_id}.json") with open(fpath, "r") as fp: item_dict = json.load(fp) return item_dict def _load_property_dict(property_id: types.PropertyId) -> types.PropertyDict: """Return n property dictionary.""" fpath = os.path.join(PATH_TO_TEST_DATA, f"wd_{property_id}.json") with open(fpath, "r") as fp: property_dict = json.load(fp) return property_dict