# Ecmind\_blue\_client: Release Notes 0.7.0

**URL:** <https://ecm.community/t/ecmind-blue-client-release-notes-0-7-0/566>\
**Category:** Python/ecmind\_blue\_client\
**Tags:** release, coding\
**Created:** [31. Mai 2024 um 07:43 UTC](https://ecm.community/t/ecmind-blue-client-release-notes-0-7-0/566 "2024-05-31T07:43:29Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![rk](https://ecm.community/user_avatar/ecm.community/rk/32/679_2.png) [@rk](https://ecm.community/u/rk)\
**Post date:** [31. Mai 2024 um 07:43 UTC](https://ecm.community/t/ecmind-blue-client-release-notes-0-7-0/566/1 "2024-05-31T07:43:29Z")

</div>

Heute freue ich mich, dass wir den `ecmind_blue_client` in Version 0.7.0 auf [PyPi.org](http://PyPi.org) veröffentlichen konnten:

> **[Client Challenge](https://pypi.org/project/ecmind-blue-client/0.7.0/)**

### 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.

```python
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:

```python
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](http://PyPi.org).
