python3-datovka

python3-datovka

Pythonic ctypes wrapper for libdatovka (Czech ISDS Data Boxes)

generic
Instalace
apt install python3-datovka
Popis

This library provides a small, high-level Python API on top of libdatovka, the C client library for the Czech ISDS (Informační systém datových schránek) Data Box system. It loads libdatovka.so via ctypes at runtime, with no compiled extension.

Covers session login and logout, listing received and sent messages, fetching a full message with its attachments, and marking a message as read.

🌐 Domovská stránka📋 Detail balíčku

datovka

python3-libdatovka logo

A Pythonic ctypes wrapper around libdatovka, the C client library for the Czech ISDS ("Datové schránky" / Data Box) system.

No compiled extension, no SWIG — this loads libdatovka.so at runtime and exposes a small, high-level surface covering what a typical integration needs: login, list messages, fetch a message with its attachments, mark as read, send a new message, and look up a recipient's data box ID.

from datovka import DatovkaClient, OutgoingDocument

with DatovkaClient(url, username, password) as client:
    for envelope in client.list_received_messages(limit=10):
        print(envelope.message_id, envelope.subject, envelope.sender_name)

    message = client.get_received_message(envelope.message_id)
    for doc in message.documents:
        print(doc.filename, doc.mime_type, len(doc.data), "bytes")

    # Sending a new message needs exactly one is_main=True document.
    with open("smlouva.pdf", "rb") as f:
        pdf_bytes = f.read()
    client.send_message(
        "5drr7us",
        "Smlouva k podpisu",
        [OutgoingDocument("smlouva.pdf", "application/pdf", pdf_bytes, is_main=True)],
    )

    # Live search is rate-limited; prefer an offline directory (e.g. the
    # seznamds package) for routine lookups and use this as a fallback.
    for box in client.find_box_live("Firma s.r.o."):
        print(box["box_id"], box["name"])

Requirements

Scope

This wraps a practical subset of libdatovka's ~166 isds_* functions, not the full API: session lifecycle (login/logout/ping), listing received and sent messages, fetching a full message with attachments, marking a message as read, sending a new message with attachments (send_message), and recipient lookup via the live fulltext search (find_box_live). The C structs it decodes (isds_envelope, isds_message, isds_document, isds_list, isds_fulltext_result) are modelled field-for-field to match libdatovka/isds.h; extending coverage to more isds_* calls means adding a prototype in datovka/_capi.py and a thin method in datovka/client.py.

License

LGPL-3.0-or-later, matching libdatovka.

Balíček „python3-datovka“ nebyl nalezen

Tento balíček zatím možná není v naší databázi zaindexován. Zkuste to prosím později, nebo zkontrolujte přímo repozitář balíčků.

Procházet repozitář