Linux, Рython 3.7 для совместимости с PyPy3.
pip install .
Диаграммы построены с использованием drawio
pip install -r requirements-docs.txt
python setup.py build_sphinx
Демонстрационные скрипты находятся в проекте wt-tools
. Они основаны на blk_unpacker.py
проекта wt-tools
и реализуют
подобный интерфейс командной строки с форматами strict_blk
, json
, json_2
, json_3
.
blk_unpack_ng.py
с одним процессом.
blk_unpack_ng_mp.py
с числом процессов по количеству ядер.
Результат обхода секции в глубину с сохранением типов. Для форматов json*
потребуется схема для полного
восстановления секции.
Отображение | Мультиотображение |
---|---|
|
|
Подходит для секций, в которых мультизначение состоит из одного значения. Иначе контейнер из словаря превратится в список словарей на уровне мультизначения.
Отображение | Мультиотображение |
---|---|
// single_map-json.json
{
"a": 1,
"b": 2,
"c": 3,
"sub": {
"x": 4.0,
"y": 5.0
}
} |
// multi_map-json.json
[
{
"a": 1
},
{
"a": 2
},
{
"b": 3
},
{
"sub": {
"x": 4.0,
"y": 5.0
}
}
] |
Каждое мультизначение представлено списком значений.
Отображение | Мультиотображение |
---|---|
// single_map-json_2.json
{
"a": [
1
],
"b": [
2
],
"c": [
3
],
"sub": [
{
"x": [
4.0
],
"y": [
5.0
]
}
]
} |
// multi_map-json_2.json
{
"a": [
1,
2
],
"b": [
3
],
"sub": [
{
"x": [
4.0
],
"y": [
5.0
]
}
]
} |
Мультизначение с одним значением представлено одним значением. Мультизначение с несколькими значениями представлено списком значений.
Отображение | Мультиотображение |
---|---|
// single_map-json_3.json
{
"a": 1,
"b": 2,
"c": 3,
"sub": {
"x": 4.0,
"y": 5.0
}
} |
// multi_map-json_3.json
{
"a": [
1,
2
],
"b": 3,
"sub": {
"x": 4.0,
"y": 5.0
}
} |
Инструмент основан на представлении секции как {name: [values]}
.
[(a, x), (b, y), (a, z)] -> {a: [x, z], b: [y]}
Секция запоминает порядок только первого
значения при добавлении (name, value)
пары.
a -> x
a -> z
b -> y
Это может повлечь разрастание разности текстовых файлов, если вы прежде использовали в своих архивах распаковщик,
основанный на представлении секции как [(name, value)]
, способной запоминать порядок всех пар при добавлении.
a -> x
b -> y
a -> z
Настраиваемые директории в pytest.ini
currespath
директория с файламиblk
текущего форматаbbfrespath
директория с файламиblk
формата bbf3cdkpath
директория CDK с текстовыми файламиbuildpath
выходная директория тестов
После настройки одноименные фикстуры для pytest
содержат указанные пути.