Модуль:WDBase/doc

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Это страница документации Модуль: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


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

[править код]