Skip to content

Latest commit

 

History

History
76 lines (55 loc) · 5.68 KB

CONTRIBUTING.md

File metadata and controls

76 lines (55 loc) · 5.68 KB

Установка

Windows

Добавить установку для Windows..

Ubuntu

Установить Python

sudo apt-get install -y python3.12
sudo apt-get install -y python3.12-venv
sudo apt-get install python3.12-tk
sudo apt-get install python3.12-dev

Скачать исходный код с github

git clone https://github.com/Ev2geny/Sberbank2Excel.git 

создать и активировать виртуальную среду

python3.12 -m venv .venv
source .venv/bin/activate

Установить пакеты

pip3 install -r requirements.txt

Запустить GUI

python core/sberbankPDF2ExcelGUI.py

Внесение модификаций

Добавление новых форматов выписки

Sberbank2Excel имеет модульную конструкцию, где для каждого типа выписки имеется отдельный модуль.

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

Шаг 1. Создать новый модуль типа extractor_XXXX.py

Модуль типа extractor_XXXX.py должен содержать класс, который наследует от абстрактного класса Extractor и должен содержать имплементацию всех абстрактных методов этого класса.

Проще всего скопировать один из существующих экстракторов (например extractor_SBER_CREDIT_2110.py, который специально для этого содержит большое число комментариев) и изменить код так, чтобы он соответствовал бы новому типу выписки.

Для облегчения разработки модули экстракторов содержат код для самотестирования, который работает, когда модуль запускается в качестве основной программы

if __name__ == '__main__':

Шаги по создания нового модуля экстрактора:

Шаг 1.1 Скопировать extractor_SBER_CREDIT_2110.py под новым именем.

Шаг 1.2 В только что созданном модуле переименовать class SBER_CREDIT_2107(Extractor) (к примеру class SOME_NEW_FORMAT(Extractor))

Шаг 1.3 Внести новое имя класса в самом низу модуля в строку, которая запускает автотестирование

extractors_generic.debug_extractor(SBER_CREDIT_2107, test_text_file_name=sys.argv[1])

Шаг 1.4 Внести необходимые изменения в методы класса SOME_NEW_FORMAT, используя информацию из комментариев. Методы можно переписывать по одному, последовательно проверяя их запуская модуль из командной строки в качестве основной программы. При запуске модуля в качестве аргумента надо указать файл предварительно созданного промежуточного текстового варианта выписки (промежуточный текстовый вариант выписку будет создан автоматически при попытке сконвертировать неизвестный формат).

py extractor_XXXXXX.py bank_extract_converted_to_txt.txt

Это будет запускать функцию extractors_generic.debug_extractor, которая сама расскажет, что она делает. В конечном итоге функция extractors_generic.debug_extractor должна отрабатывать без ошибок.

Шаг 2. Зарегистрировать модуль экстрактора

После того как новый модуль экстрактора полностью протестирован изолированно, его надо зарегистрировать в модуле extractors.py, используя в качестве образца уже зарегистрированные экстракторы

Теперь можно приступать к тестированию, пытаясь сконвертируя выписку обычным способом.

Шаг 3. Документация

Если в планах сделать github pull request, то необходимо так же приложить анонимизированный графический образец новой выписки (см. примеры)

Пример полного набора изменений для добавления одного формата выписки можно посмотреть в этом коммите