Модуль:WDBase/doc: различия между версиями
Буквица>D6194c-1cc →План разработки: Реализовано |
Karaby (обсуждение | вклад) м 1 версия импортирована |
||
(нет различий)
| |||
Текущая версия от 15:38, 27 июля 2025
Модуль-библиотека с базовыми функциями для работы с Викиданными. Содержит функции для получения утверждений, фильтрации, получения значений утверждений, приведения утверждений к текстовому виду.
Модуль используется другим, более высокоуровневым модулем-библиотекой Модуль: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 — преобразовать таблицу с датой в строку.
Внесение изменений
При исправлении ошибки, пожалуйста, сначала добавьте тест, который будет проваливаться из-за обнаруженной ошибки, и только затем вносите исправление. При внесении исправления проверьте, чтобы все тесты проходили. Вносить исправление можно только, если оно не ломает другие тесты.
Добавление нового функционала рекомендуется делать у себя в песочнице, скопировав в неё модуль. В правке копирования необходимо указать тот факт, что делается копирование, и сделать ссылку на оригинальный модуль в виде викитекста. При добавлении нового функционала сначала желательно добавить тест на этот функционал, затем добавить сам функционал, убедившись, что все тесты при этом проходят.
Тесты
[mark.svg|20px|link=|alt=] 13 тестов провалилось.
| Название | Ожидается | Фактически | |
|---|---|---|---|
| [mark.svg|20px|link=|alt=] | test_dataByStatement | Lua error -- Модуль:WDBase/testcases:43: attempt to index local 'statements' (a nil value) | |
| [mark.svg|20px|link=|alt=] | test_dateFromDatavalue | Lua error -- Модуль:WDBase/testcases:28: attempt to index local 'statements' (a nil value) | |
| [mark.svg|20px|link=|alt=] | test_filterStatementsByUnit | Lua error -- Модуль:WDBase/testcases:137: bad argument #1 to 'getn' (table expected, got nil) | |
| [mark.svg|20px|link=|alt=] | test_instanceOf | Модуль:WDBase/testcases:169: Failed to assert that nil equals expected Q3331189 | |
| [mark.svg|20px|link=|alt=] | test_resolveParent | Модуль:WDBase/testcases:160: Failed to assert that nil equals expected Q2482106 | |
| [mark.svg|20px|link=|alt=] | test_searchStatementByValue | Lua error -- Модуль:WDBase/testcases:150: bad argument #1 to 'getn' (table expected, got nil) | |
| [mark.svg|20px|link=|alt=] | test_statements | Lua error -- Модуль:WDBase/testcases:17: bad argument #1 to 'getn' (table expected, got nil) | |
| [mark.svg|20px|link=|alt=] | test_statementsByProperties | 6 | 0 |
| [mark.svg|20px|link=|alt=] | test_text | Модуль:WDBase/testcases:96: Failed to assert that Systematic review or scoping review? Guidance for authors when choosing between a systematic or scoping review approach equals expected nil | |
| [mark.svg|20px|link=|alt=] | test_tryFilterSnaksByLang | Lua error -- Модуль:WDBase/testcases:122: bad argument #1 to 'getn' (table expected, got nil) | |
| [mark.svg|20px|link=|alt=] | test_tryFilterStatementsByLang | Lua error -- Модуль:WDBase/testcases:112: bad argument #1 to 'getn' (table expected, got nil) | |
| [mark.svg|20px|link=|alt=] | test_value | Модуль:WDBase/testcases:105: Failed to assert that Systematic review or scoping review? Guidance for authors when choosing between a systematic or scoping review approach equals expected nil | |
| [mark.svg|20px|link=|alt=] | test_wikilink | Модуль:WDBase/testcases:68: Failed to assert that [[Почка млекопитающего]] equals expected nil | |
План разработки
План работ:
Пока пусто.
|