Skip to content

Latest commit

 

History

History
74 lines (48 loc) · 3.19 KB

File metadata and controls

74 lines (48 loc) · 3.19 KB

mapping_extractor

Extracts mappings from KUMA's normalizers and writes them to .xlsx file

Описание

Данный скрипт позволяет из ресурса, экспортированного из KUMA с помощью веб-интерфейса, извлечь все нормализаторы и записать сопоставление полей нормализаторов, а также обогащение в .xlsx файл.

За расшифровку ресурса и приведение его к JSON отвечает kuma_package.py. За это отдельное спасибо Morpheme777. Оригинал этого скрипта можно найти тут.

Требования

python3.6+

  • os
  • json
  • bson

pip install bson

  • codecs
  • Crypto

pip install pycryptodome

  • openpyxl
  • argparse
  • gzip (только для версии скрипта для KUMA 4.2)

Совместимость

Скрипт проверен на ресурсах KUMA 2.1.1.73, KUMA 3.0.3.19 и KUMA 3.2.0.305. Для KUMA 4.2 используйте скрипты из директории 4.2 репозитория.

Описание работы

Скрипт на вход получает зашифрованный файл с ресурсами KUMA, а также пароль от данного файла. Для каждого нормализатора в своей рабочей директории скрипт генерирует файл с именем _<имя нормализатора>.xlsx, который содержит маппинг и обогащение соответствующего нормализатора.

Установка

git clone https://github.com/koalapower/mapping_extractor

Либо просто скачайте файлы mapping_extractor.py и kuma_package.py. Для KUMA версии 4.2 используйте скрипты из директории 4.2.

Использование

usage: mapping_extractor.py [-h] -f F -p P

options:
  -h, --help  show this help message and exit
  -f F        file with resources
  -p P        password for resources

Известные ограничения

Если возникает ошибка:

AttributeError: module 'bson' has no attribute 'BSON'

Необходимо выполнить следующие действия:

pip uninstall bson
pip uninstall pymongo
pip install pymongo

Для некоторых версий Excel при открытии файла .xlsx, сгенерированного данным скриптом может возникать ошибка

image

В этом случае следует нажать на кнопку Yes (Да) и пересохранить файл. Тогда в дальнейшем данная ошибка возникать не будет.

P.S. если знаете, как пофиксить данную проблему - свяжитесь со мной =)