Raykov-MS d07eedfafb Fix column 99: assemble foreign card address from structured components
The АдрМестаПриемаВыдача block under СведенияКартаИнБанк (code 1009) has no
single АдресСтрока tag, unlike the same-named block under
СведенияВнесениеПолучениеНалДС — column 99 was mapped directly onto that
nonexistent tag and stayed empty. It now assembles the value from the
individual address components (Индекс, КодОКСМ, КодСубъектаПоОКАТО, Район,
Пункт, Улица, Дом, Корп, Оф), the same way column 153 already does for
registration place. Also disabled allow_short_lookup for this column, since
it was previously able to pick up a same-named tag (e.g. Улица) from an
unrelated address elsewhere in the file.

Added regression tests at both the mapping level and a full parse_xml_content
-> build_fixed_row_by_index pipeline level with a synthetic code-1009 XML.
2026-09-18 11:09:31 +03:00
2026-09-17 13:04:35 +03:00
fix
2026-08-11 01:09:07 +03:00
2026-06-04 14:13:30 +03:00
2026-06-04 14:13:30 +03:00
fix
2026-08-11 01:09:07 +03:00
2026-09-17 13:04:35 +03:00
2026-06-04 14:13:30 +03:00
2026-06-22 07:25:27 +03:00
2026-09-17 13:04:35 +03:00

SFM Streamlit

Production-ready Streamlit приложение для обработки ФЭС XML файлов в Excel-отчет и протокол с доступом к файлам через SAMBA (rail_connectors).

Архитектура

main.py
app/
  app_config.py            # константы приложения и user-id
  path_store.py            # JSON-хранилище персональных путей
  path_settings.py         # UI-модалка изменения пути
  samba_access.py          # проверка доступа к SAMBA папке
  auth/
    service.py             # orchestration auth/session
    providers.py
    mock_provider.py
  pipeline/
    config.py              # шаблоны имен/путей пайплайна
    file_manager.py        # scan/move/upload/download в SAMBA
    parser.py              # namespace-aware парсер ФЭС XML
    report.py              # генерация report.xlsx
    protocol.py            # генерация protocol.xlsx
    service.py             # run_batch orchestration
tests/
  unit/
  smoke/

Основной поток

  1. Пользователь вводит SAMBA логин/пароль.
  2. При необходимости меняет персональный input_dir (с pre-check доступа).
  3. Нажимает Запустить обработку xml в excel.
  4. Пайплайн:
    • сканирует входную папку;
    • невалидные имена переносит в Err;
    • валидные XML парсит и формирует строки отчета;
    • создает report.xlsx, protocol.xlsx, process.log;
    • сохраняет артефакты в Out/YYYY/MM_YYYY/YYYYMMDD/run_number/;
    • успешные файлы переносит в Processed.
  5. В UI отображаются счетчики и пути к артефактам.

Переменные окружения

Используются переменные авторизации Raisa (OPENBAO__SETTINGS__*).
SMBA source и дефолтный путь входа задаются в коде (app/app_config.py).

Быстрый старт

python -m venv .venv
.\.venv\Scripts\activate
pip install -r requirements.txt
copy .env.example .env
streamlit run main.py

Тесты и качество

pytest
ruff check .
black --check .
isort --check-only .

Pre-commit

pre-commit install
pre-commit run --all-files

Хуки:

  • black
  • isort
  • ruff
  • ruff-format
Description
No description provided
Readme 12 MiB
Languages
Python 100%