Ukázka práce s dalšími typy formátů

Nejprve naimportujeme knihovny a potřebné moduly. Pro účely notebooku je třeba přidat cestu k modulu pywsdp do PATH.

[1]:
import os
import sys
library_path = os.path.abspath(os.path.join("../../"))
sys.path.append(library_path)

from pywsdp.modules import CtiOS
from pywsdp.modules.CtiOS import OutputFormat

Příhlásíme se k modulu CtiOS. Pro tento účel využijeme testovací přístupové údaje do DP.

[2]:
creds_test = ["WSTEST", "WSHESLO"]
ctios = CtiOS(creds_test, trial=True)
ctiOS        - INFO     - Logovaci zpravy ulozeny v adresari: /tmp/ctiOS

Načteme identifikátory z JSON souboru.

[3]:
json_path_ctios = os.path.abspath(
    os.path.join(library_path, "tests", "data", "input", "ctios_template.json")
)
parametry_ctiOS_json = ctios.nacti_identifikatory_z_json_souboru(json_path_ctios)

Pošleme požadavek na službu ctiOS.

[5]:
slovnik, slovnik_chybnych = ctios.posli_pozadavek(parametry_ctiOS_json)
ctiOS        - INFO     -
ctiOS        - INFO     - Požadovaná akce byla úspěšně provedena.
ctiOS        - INFO     - POSIDENT m+o3Qoxrit4ZwyJIPjx3X788EOgtJieiZYw/eqwxTPERjsqLramxBhGoAaAnooYAliQoVBYy7Q7fN2cVAxsAoUoPFaReqsfYWOZJjMBj/6 NEPLATNY IDENTIFIKATOR
ctiOS        - INFO     - POSIDENT mSH6sS5yv6vA2jEOtyHeXaXIJpC2m0Ai56aKzsVmEphUNyjFQYgC8MOLnu3+3Zugm8JQW2AJqEJYcSiqXdPbnb/03PKgyNkYWaS876wv0t NEPLATNY IDENTIFIKATOR
ctiOS        - INFO     - POSIDENT xairWnG248pu7itR19AIT87mDFI8yY0K0ms7v/iDY679wQ4EN5bMhMPSTXxgWDxMWZ0IoV/ihjGkNMXeqXHrMZsEbHBTzD9RUIOXw5M1hmE= USPESNE STAZEN
ctiOS        - INFO     - POSIDENT 4m3Yuf1esDMzbgNGYW7kvzjlaZALZ3v3D7cXmxgCcFp0RerVtxqo8yb87oI0FBCtp49AycQ5NNI3vl+b+SEa+8SfmGU4sqBPH2pX/76wyBI= USPESNE STAZEN
ctiOS        - INFO     - POSIDENT BBgBQ2wok0L43hEZUEeieq8FrrQsT1SHIrpQBRwgLw2uTvTsXvGloIYnr+7J2z6t/hadCsyhcbxgrf47ByzpbY5TjyiUPxyXhlS73MKArjs= USPESNE STAZEN
ctiOS        - INFO     - POSIDENT ltTJU+/1imoqO4saz1ta1r88QGUxEkjRTfHUiC9Y9yfDKSM4c8soK/vz7bGd1JNwQPUiFayJQdLN0gPkusnnoNLo47RqbEoQxfg+eEuvTaQ= USPESNE STAZEN
ctiOS        - INFO     - POSIDENT OlVCtLEjQ+aNPyQNdT0JZOkkxvwl8t9DllRl/HiNx7G3QFyZnvKA4e2LBTSX+YuK41/rSMvAnm63ZeWPyZQCX77GuP1GZwwf2hVkKzVY/94= USPESNE STAZEN
ctiOS        - INFO     - POSIDENT KdSYyo8J1zUPVqxHUtY+tYA2w7krH9U+59hCYU8TXGZ06e74GGekPinyLtiSz+gO7ZmpWetCSaxvu1nXa6+t7w92wpqfa5jPpkfv5HF9MMA= USPESNE STAZEN
ctiOS        - INFO     - POSIDENT 5wQRil9Nd5KIrn5KWTf8+sksZslnMqy2tveDvYPIsd1cd9qHYs1V9d9uZVwBEVe5Sknvonhh+FDiaYEJa+RdHM3VtvGsIqsc2Hm3mX0xYfs= USPESNE STAZEN
ctiOS        - INFO     - POSIDENT UKcYWvUUTpNi8flxUzlm+Ss5iq0JV3CiStJSAMOk6xHFQncZraFeO9yj8OGraKiDJ8eLB0FegdXYuyYWsEXiv2H9ws95ezlKNTqR6ze7aOnR3a7NWzWJfe+R5VHfU13+ USPESNE STAZEN
ctiOS        - INFO     - Celkovy pocet dotazovanych identifikatoru na vstupu: 10
ctiOS        - INFO     - Pocet odstranenych duplicitnich identifikatoru: 0
ctiOS        - INFO     - Pocet pozadavku, do kterych byl dotaz rozdelen (pocet dotazu na server): 1
ctiOS        - INFO     - Realny uspesne zpracovanych identifikatoru: 8
ctiOS        - INFO     - Pocet neplatnych identifikatoru: 2
ctiOS        - INFO     - Pocet expirovanych identifikatoru: 0
ctiOS        - INFO     - Pocet identifikatoru k neexistujicim OS: 0

Z logu zjistíme, že 2 identifikátory nebyly kvůli chybě NEPLATNY IDENTIFIKATOR zpracovány.

Určíme si výstupní adresář. Pokud neexistuje, knihovna si ho sama při zápisu vytvoří.

[6]:
vystupni_adresar = os.path.abspath(
    os.path.join(library_path, "tests", "data", "output")
)

Úspěšně zpracované identifikátory vypíšeme do souboru Csv. Pokud některé identifikátory byly označeny jako chybné, výstup bude doplněn o JSON soubor se seznamem těchto identifikátorů a chyb, ke kterým došlo.

[7]:
vystup = ctios.uloz_vystup(
    slovnik, vystupni_adresar, OutputFormat.Csv
)
ctiOS        - INFO     - Vystup byl ulozen zde: /home/linduska/pywsdp/tests/data/output/ctios_21_12_56_10_01_2023.csv

Modul dále umožňuje uložení úspešně zpracovaných identifikátorů do JSON souboru.

[9]:
vystup = ctios.uloz_vystup(
    slovnik, vystupni_adresar, OutputFormat.Json
)
ctiOS        - INFO     - Vystup byl ulozen zde: /home/linduska/pywsdp/tests/data/output/ctios_21_16_05_10_01_2023.json

Pokud chceme vypsat, které identifikátory nebyly kvůli chybě zpracovány a k jaké chybě došlo, můžeme si uložit výstup neúspěšně zpracovaných identifikátorů do json souboru.

[10]:
vystup_chybnych = ctios.uloz_vystup_chybnych(
    slovnik_chybnych, vystupni_adresar
)
ctiOS        - INFO     - Zaznam o nezpracovanych identifikatorech byl ulozen zde: /home/linduska/pywsdp/tests/data/output/ctios_errors_21_16_08_10_01_2023.json
[ ]: