Ecmind_blue_client: Release Notes 0.7.0

Heute freue ich mich, dass wir den ecmind_blue_client in Version 0.7.0 auf PyPi.org veröffentlichen konnten:

Neue Features mit RequestFile

Jobs, welche mit Eingabedateien arbeiten, sind nun wesentlich vielseitiger: Bisher konnten Dateien vom Dateisystem übernommen werden, um sie z. B. bei xml_import in enaio® zu übertragen. Neu können Dateien auch aus Puffern/Streams oder aus Byte-Arrays/Arbeitsspeicher übertragen werden.

from pathlib import Path
from ecmind_blue_client.tcp_pool_client import TcpPoolClient
from ecmind_blue_client import RequestFileFromReader

client = TcpPoolClient("localhost:4000:100", __file__, "root", "optimal")
file = "./Beispiel.pdf"
with open(file, "rb") as reader, Path(file) as path:
    doc_import = client.xml_import(
        object_name="Dokument",
        search_fields=(fields:={
            "Name": path.name,
        }),
        import_fields=fields,
        folder_id=1234,
        files=[RequestFileFromReader(reader, path.stat().st_size, path.suffix[1:])],
    )
assert doc_import, doc_import.error_message

Dieses etwas konstruierte Beispiel zeigt, dass Dateien auch von beliebigen Quellen zu enaio® gestreamt werden können. Konstruiert, da hier wieder direkt aus einer Datei. Die Quelle kann aber auch etwas anderes wie ein Web-Endpunkt sein:

from urllib.request import urlopen
from ecmind_blue_client.tcp_pool_client import TcpPoolClient
from ecmind_blue_client import RequestFileFromReader

client = TcpPoolClient("localhost:4000:100", __file__, "root", "optimal")

url = "https://ecmind.ch/index.html"
with urlopen(url) as web_response:
    # enaio muss leider immer die Zielgrösse kennen
    # dies hier also bitte auch nur als Beispiel verstehen
    web_size = len(web_response.read()) 

with urlopen("url") as web_response:
    doc_import = client.xml_import(
        object_name="Dokument",
        search_fields=(fields:={
            "URL": "url",
        }),
        import_fields=fields,
        folder_id=1234,
        files=[RequestFileFromReader(web_response, web_size, "html")],
    )
assert doc_import, doc_import.error_message

Abkündigung alter enaio®-Anbindungen

Die bisherigen Anbindungen von enaio über SOAP (ecmind_blue_client.soap_client) und über die COM-API (ecmind_blue_client.com_client) haben wir deprecated:

Die SOAP-Schnittstelle von enaio® ist durch OPTIMAL SYSTEMS abgekündigt und deshalb nicht weiterzuverfolgen.

Die COM-API wird von OPTIMAL SYSTEMS weiter unterstützt, wir haben im Alltag aber keine Verwendung oder Rückmeldung zur Verwendung von ecmind_blue_client.com_client. Weiterhin ist diese Schnittstelle nicht netzwerktransparent.

Die Funktionen aus ecmind_blue_client.soap_client und ecmind_blue_client.com_client werden somit nicht mehr getestet oder weiterentwickelt. Wer diese Klassen noch eine Zeit weiterverwenden will, findet die 0.6er-Serie wie gewohnt auf PyPi.org.

1 Like