Skip to main content

pyRegRep

Бібліотека Python для парсування та обробки XML документів у форматі RIM (Registry Information Model) / ebXML.

Опис

pyRegRep - це інструмент для роботи з XML документами, що відповідають стандарту Registry Information Model (RIM), який часто використовується в системах eGovernment та обміну даними. Бібліотека дозволяє легко витягувати, аналізувати та серіалізувати дані з RIM/ebXML документів.

Можливості

  • ✅ Парсування RIM/ebXML XML документів
  • ✅ Автоматична обробка просторів імен (namespaces)
  • ✅ Витягування запитів (Query), винятків (Exception) та об'єктів реєстру (RegistryObject)
  • ✅ Обробка різних типів значень (Boolean, String, Collection, International String, Any Value)
  • ✅ Серіалізація даних у зручний Python формат (dict)
  • ✅ Підтримка складних структур даних та вкладених колекцій

Вимоги

  • Python: >= 3.10
  • Залежності:
    • lxml >= 5.2.1 - для роботи з XML

Установка

З PyPI (якщо опубліковано)

pip install pyRegRep

З локального источника

pip install -e .

Або через requirements.txt:

pip install -r requirements.txt

Швидкий старт

Базовий приклад

from pyRegRep4.RIMParsing import Parsing

# Прочитайте XML файл
with open("document.xml", "rb") as f:
    xml_data = f.read()

# Створіть об'єкт парсера
parser = Parsing(xml_data)

# Отримайте дані
print(parser.slots)  # Словник всіх витягнутих даних
print(parser.serialize())  # Серіалізовані та очищені дані

Робота з запитами та винятками

from pyRegRep4.RIMParsing import Parsing

with open("document.xml", "rb") as f:
    parser = Parsing(f.read())

# Отримайте елементи документа
if parser.query is not None:
    print("Знайдено Query елемент")

if parser.exception is not None:
    print("Знайдено Exception елемент")

# Отримайте об'єкти реєстру
print(f"Всього об'єктів реєстру: {len(parser.objects)}")

API Довідник

Клас Parsing

Конструктор

Parsing(doc: bytes)

Параметри:

  • doc (bytes): Бінарні дані XML документа

Атрибути:

  • xml (str): XML як рядок
  • doc (etree._Element): Розібраний XML документ
  • query (etree._Element | None): Елемент Query з документа (якщо є)
  • exception (etree._Element | None): Елемент Exception з документа (якщо є)
  • objects (list): Список всіх RegistryObject елементів
  • slots (dict): Словник всіх витягнутих Slot елементів з типами

Методи

serialize() -> dict

Серіалізує витягнені дані, перетворюючи типи значень:

  • BooleanValueType → bool
  • StringValueType → str
  • CollectionValueType → list
  • InternationalStringValueType → list[dict]
  • AnyValueType → XML Element

Повернення: Словник серіалізованих даних

Приклад використання

from pyRegRep4.RIMParsing import Parsing

# Завантаження XML
with open("EDM_Response.xml", "rb") as f:
    data = f.read()

# Парсування
parser = Parsing(data)

# Отримання структурованих даних
slots = parser.serialize()

# Ітерація по даних
for key, value in slots.items():
    print(f"{key}: {value}")

Структура проекту

pyRegRep/
├── pyRegRep4/
│   ├── __init__.py
│   └── RIMParsing.py       # Основна логіка парсування
├── tests/
│   ├── test_parsing_1.py    # Тести парсування
│   ├── EDM_Ferst_Request.xml
│   ├── EDM_Ferst_Response.xml
│   ├── EDM_Second_Request.xml
│   └── EDM_Second_Response.xml
├── setup.py
├── pyproject.toml
├── requirements.txt
└── README.md

Запуск тестів

cd tests
python Example_1.py

Логування

Бібліотека використовує модуль logging Python. Для включення логування:

import logging

logging.basicConfig(level=logging.DEBUG)

Технічні деталі

Обробка просторів імен

Бібліотека автоматично розпізнає та обробляє всі простори імен (namespaces) у XML документі:

  • Простір імен за замовчуванням позначається як "default"
  • Інші простори імен зберігаються під своїми префіксами

Типи значень RIM

Підтримуються наступні типи значень:

  • BooleanValueType - логічні значення
  • StringValueType - текстові значення
  • IntegerValueType - цілі числа
  • CollectionValueType - колекції значень
  • InternationalStringValueType - багатомовні рядки
  • AnyValueType - будь-які XML елементи

Автор

Ліцензія

MIT License - див. файл LICENSE

Подяки

Проект використовує бібліотеку lxml для роботи з XML.

Посилання


Версія: 6 Останнє оновлення: 2026

Metadata

Release files for pyRegRep 6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyRegRep 6
File Size Uploaded
pyregrep-6.tar.gz 11.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyRegRep 6
File Interpreter ABI Platform
pyregrep-6-py3-none-any.whl Python 3 none any Details

Total release size: 19.2 kB

Release files / pyregrep-6.tar.gz

Download URL pyregrep-6.tar.gz
Size 11.0 kB
Tags Source
SHA-256 checksum
How to use checksums
fa458bcaeb0ea8dacb72c08a7bc894364f7fa884110ccfc3bd1cc54bdc8f25a5
BLAKE2b-256 checksum
How to use checksums
32aa0d3e65b854788803eccfd2b1bef16e61e90eab6111e9be739ba10b2cffba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 9, 2026.

Transparency log

Release files / pyregrep-6-py3-none-any.whl

Download URL pyregrep-6-py3-none-any.whl
Size 8.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1495e9593b774991c75865f3a6d03fc37eeca470b3b9eb7d7c60db36c69ff7c6
BLAKE2b-256 checksum
How to use checksums
4c3d3e2723a2d2d53d08d2bfe8ea20c3eef54a0810d8039d168434597a19c86e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 9, 2026.

Transparency log

Release history Release notifications | RSS feed

16

2 release files

15

2 release files

14

2 release files

13

2 release files

12

2 release files

11

2 release files

10

2 release files

9

2 release files

8

2 release files

7

2 release files

This release

6 This release

2 release files

5

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page