Это страница документации Модуль:WDBase.

Модуль-библиотека с базовыми функциями для работы с Викиданными. Содержит функции для получения утверждений, фильтрации, получения значений утверждений, приведения утверждений к текстовому виду.

Модуль используется другим, более высокоуровневым модулем-библиотекой Модуль:WDCommon. на модуле WDBase основаны модули Модуль:WDBackend и Модуль:WDFormat.

Функции

править

В функциях используются понятия значения (value) и текстового представления (text). Значение может быть текстом, таблицей с датой или идентификатором элемента Викиданных. Текстовое представление предполагает преобразование значения в текстовый вид, которы уже можно использовать для отображения.

Получаемые из Викиданных данные представлены в специальном сериализованном формате. В этом формате есть понятия утверждения (statement) и снека (snak). Утверждения — это значения для заданного свойства с дополнительными уточняющими данными и источниками. Снеки — часть утверждений, у которых есть только значение. Каждое утверждение может иметь в себе основной снек и квалификаторы. Данные в квалификаторах представлены только лишь снеками.

Работа с элементом Викиданных:

  • statements — получить массив утверждений для указанного свойства.
  • statementsByProperties — получить массив утверждений для указанных свойств, скомбинировав их (учитываются порядковые номера, указанные через квалификаторы).
  • value — получить значение свойства элемента Викиданных (берётся первое утверждение).
  • text — получить текстовое представление свойства элемента Викиданных (берётся первое утверждение).
  • wikilink — получить викиссылку на статью по элементу Викиданных.
  • resolveParent — получить основной элемент Викиданных (издание, на котором основано текущее издание).
  • instanceOf — проверить является ли элемент Викиданных частным случаем одной из указанных сущностей.
  • valueByQualifier — получить значение утверждения, которому соответствует квалификатор с указанным свойством и значением.

Работа с утверждениями:

  • valueByStatement — получить значение из утверждения.
  • textByStatement — привести утверждение к текстовому виду.
  • dataByStatement — получить таблицу с данными в удобном для использования формате из утверждения.
  • statementQualifier — получить снек квалификатора по идентификатору свойства.
  • tryFilterStatementsByLang — попытаться отфильтровать утверждения по языку. Если заданного языка не найдено, возвращает все утверждения. Если передан аргумент forceLang, то не возвращает утверждений, если по указанному языку они не найдены.
  • filterStatementsByUnit — отфильтровать утверждения по QID единицы измерения.

Работа со снеками:

  • valueBySnak — получить значение из снека.
  • dataBySnak — получить таблицу с данными в удобном для использования формате из снека.
  • tryFilterSnaksByLang — попытаться отфильтровать снеки по языку. Если заданного языка не найдено, возвращает все снеки.

Работа с типами:

  • dateFromDatavalue — получить таблицу с распарсенной датой из данных снека.
  • dateToStr — преобразовать таблицу с датой в строку.

Внесение изменений

править

При исправлении ошибки, пожалуйста, сначала добавьте тест, который будет проваливаться из-за обнаруженной ошибки, и только затем вносите исправление. При внесении исправления проверьте, чтобы все тесты проходили. Вносить исправление можно только, если оно не ломает другие тесты.

Добавление нового функционала рекомендуется делать у себя в песочнице, скопировав в неё модуль. В правке копирования необходимо указать тот факт, что делается копирование, и сделать ссылку на оригинальный модуль в виде викитекста. При добавлении нового функционала сначала желательно добавить тест на этот функционал, затем добавить сам функционал, убедившись, что все тесты при этом проходят.

  Все тесты пройдены.

Название Ожидается Фактически
  test_dataByStatement
  test_dateFromDatavalue
  test_filterStatementsByUnit
  test_instanceOf
  test_resolveParent
  test_searchStatementByValue
  test_statements
  test_statementsByProperties
  test_text
  test_tryFilterSnaksByLang
  test_tryFilterStatementsByLang
  test_value
  test_wikilink


План разработки

править