Модуль: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 |
План разработки
[править код]План работ:
Пока пусто.
|