sysnet-pyutils 1.2.6__py3-none-any.whl → 1.3.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- sysnet_pyutils/constants.py +21 -0
- sysnet_pyutils/utils.py +65 -0
- {sysnet_pyutils-1.2.6.dist-info → sysnet_pyutils-1.3.1.dist-info}/METADATA +17 -6
- {sysnet_pyutils-1.2.6.dist-info → sysnet_pyutils-1.3.1.dist-info}/RECORD +7 -6
- {sysnet_pyutils-1.2.6.dist-info → sysnet_pyutils-1.3.1.dist-info}/WHEEL +1 -1
- {sysnet_pyutils-1.2.6.dist-info → sysnet_pyutils-1.3.1.dist-info}/licenses/LICENSE +0 -0
- {sysnet_pyutils-1.2.6.dist-info → sysnet_pyutils-1.3.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,21 @@
|
|
1
|
+
# Konfigurační klíčové slova
|
2
|
+
|
3
|
+
CONFIG_API_KEYS = 'api_keys' # API klíče
|
4
|
+
CONFIG_WSDL = 'wsdl' # WSDL parametr
|
5
|
+
CONFIG_PASSWD = 'paswd' # Používá se pro ověřování totožnosti jméno/heslo
|
6
|
+
CONFIG_ROOT_PATH = 'root_path' # Kořenová složka. Používá se třeba ve FastAPI
|
7
|
+
|
8
|
+
CONFIG_DOCUMENTS = 'documents'
|
9
|
+
CONFIG_FORM = 'form'
|
10
|
+
CONFIG_TYPE = 'type'
|
11
|
+
CONFIG_DDS = 'dds'
|
12
|
+
|
13
|
+
CONFIG_MONGO = 'mongo'
|
14
|
+
CONFIG_HOST = 'host'
|
15
|
+
CONFIG_PORT = 'port'
|
16
|
+
CONFIG_DATABASE = 'database'
|
17
|
+
|
18
|
+
CONFIG_USERNAME = 'user'
|
19
|
+
CONFIG_PASSWORD = 'password'
|
20
|
+
CONFIG_REPID = 'repid'
|
21
|
+
CONFIG_URL = 'url'
|
sysnet_pyutils/utils.py
CHANGED
@@ -16,6 +16,7 @@ import pytz
|
|
16
16
|
import xmltodict
|
17
17
|
import yaml
|
18
18
|
|
19
|
+
from constants import CONFIG_PASSWD
|
19
20
|
from sysnet_pyutils.ident import generate_pid, check_pid, correct_pid, generate_id12, PID_PREFIX
|
20
21
|
|
21
22
|
TZ = os.getenv('TZ', 'Europe/Prague')
|
@@ -918,3 +919,67 @@ def parse_ldap_name(ldap_name: str) -> Tuple[Union[str, None], Union[str, None]]
|
|
918
919
|
cn = item.split('=')[-1]
|
919
920
|
break
|
920
921
|
return cn, ldap_name
|
922
|
+
|
923
|
+
|
924
|
+
class Context(LoggedObject, metaclass=Singleton):
|
925
|
+
def __init__(
|
926
|
+
self,
|
927
|
+
config=None,
|
928
|
+
api_key=None,
|
929
|
+
user_name=None,
|
930
|
+
agenda=None,
|
931
|
+
cert_file=None,
|
932
|
+
cert_pass=None):
|
933
|
+
super().__init__(object_name='CONTEXT')
|
934
|
+
self.config = config
|
935
|
+
if self.config is None:
|
936
|
+
self.log.error(f"{self.name} FAILED - Missing config")
|
937
|
+
self.api_key = api_key
|
938
|
+
self.user_name = user_name
|
939
|
+
self.agenda = agenda
|
940
|
+
self.authenticated = False
|
941
|
+
self.cert_file = cert_file
|
942
|
+
self.cert_pass = cert_pass
|
943
|
+
self.log.info(f"{self.name} Created")
|
944
|
+
|
945
|
+
def clear(self):
|
946
|
+
self.api_key = None
|
947
|
+
self.user_name = None
|
948
|
+
self.agenda = None
|
949
|
+
self.authenticated = False
|
950
|
+
self.cert_file = None
|
951
|
+
self.cert_pass = None
|
952
|
+
self.log.info(f"{self.name} Cleared")
|
953
|
+
|
954
|
+
def check_api_key(self, api_key):
|
955
|
+
self.clear()
|
956
|
+
if api_key in [None, '']:
|
957
|
+
return False
|
958
|
+
for agenda in self.config.keys():
|
959
|
+
if 'api_keys' not in self.config[agenda]:
|
960
|
+
continue
|
961
|
+
for ak in self.config[agenda]['api_keys']:
|
962
|
+
if api_key in ak.keys():
|
963
|
+
self.api_key = api_key
|
964
|
+
self.agenda = agenda
|
965
|
+
self.user_name = ak[api_key]
|
966
|
+
self.authenticated = True
|
967
|
+
self.log.info(f"{self.name} - User '{self.user_name}' logged in")
|
968
|
+
break
|
969
|
+
if self.authenticated:
|
970
|
+
break
|
971
|
+
return self.authenticated
|
972
|
+
|
973
|
+
def check_user(self, username, password):
|
974
|
+
self.clear()
|
975
|
+
for agenda in self.config.keys():
|
976
|
+
if CONFIG_PASSWD not in self.config[agenda]:
|
977
|
+
continue
|
978
|
+
if username in self.config[agenda][CONFIG_PASSWD]:
|
979
|
+
if self.config[agenda][CONFIG_PASSWD][username] == password:
|
980
|
+
self.api_key = None
|
981
|
+
self.agenda = agenda
|
982
|
+
self.user_name = username
|
983
|
+
self.authenticated = True
|
984
|
+
break
|
985
|
+
return self.authenticated
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: sysnet-pyutils
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.3.1
|
4
4
|
Summary: Python Utilities
|
5
5
|
Author-email: Data Developer <info@sysnet.cz>
|
6
6
|
Project-URL: Homepage, https://github.com/SYSNET-CZ/pyutils
|
@@ -81,12 +81,12 @@ Konvertuje hex string na int
|
|
81
81
|
#### cron_to_dict(cron):
|
82
82
|
Konvertuje cron text do slovníku
|
83
83
|
* param cron: cron text (například '35 21 * * *')
|
84
|
-
* return:
|
84
|
+
* return: dict of cron
|
85
85
|
--------------------------------------------------------
|
86
86
|
#### cs_bool(value=None):
|
87
87
|
Vrátí českou textovou hodnotu 'ano'/'ne' pokud je bool(value) True/False
|
88
88
|
* param value: Obecný objekt
|
89
|
-
* return:
|
89
|
+
* return: 'ano' or 'ne'
|
90
90
|
--------------------------------------------------------
|
91
91
|
#### date_to_datetime(date_value):
|
92
92
|
Konvertuje date na datetime v lokální časové zóně
|
@@ -186,7 +186,7 @@ Opraví PID
|
|
186
186
|
----------------------------------------------------------------
|
187
187
|
#### pid_next():
|
188
188
|
Vygeneruje korektní PID
|
189
|
-
* return:
|
189
|
+
* return: PID
|
190
190
|
----------------------------------------------------------------
|
191
191
|
#### remove_empty(source_list):
|
192
192
|
Odstraní prázdné položky ze seznamu
|
@@ -256,7 +256,7 @@ Rekurzivně převede klíče ve slovníku z VelbloudíNotace do hadí_notace
|
|
256
256
|
Parsuje XML string do XML dictionary
|
257
257
|
podle pravidel viz https://github.com/martinblech/xmltodict
|
258
258
|
* param xml_text: XML text
|
259
|
-
* return:
|
259
|
+
* return: XML dictionary
|
260
260
|
--------------------------------------------------------------------------------------------------------------------------------
|
261
261
|
#### dict_to_xml(xml_dict):
|
262
262
|
Parsuje XML dict do XML textu podle
|
@@ -279,7 +279,7 @@ Konvertuje písmennou hodnotu na celočíselnou
|
|
279
279
|
|
280
280
|
#### local_now():
|
281
281
|
Vrací aktuální časovou značku v lokální časové zóně.
|
282
|
-
* return:
|
282
|
+
* return: datetime.datetime
|
283
283
|
|
284
284
|
#### is_valid_unid(unid):
|
285
285
|
Kontrola validity HCL Notes UNIID
|
@@ -365,3 +365,14 @@ Typ osoby (zdroj CRŽP):
|
|
365
365
|
- businessNaturalPerson: tuzemská fyzická osoba podnikající
|
366
366
|
- naturalPerson: tuzemská fyzická osoba nepodnikající
|
367
367
|
- foreignNaturalPerson: zahraniční fyzická osoba podnikající
|
368
|
+
|
369
|
+
|
370
|
+
### Verze 1.3.0
|
371
|
+
|
372
|
+
Přidána třida **Context**, která se používá při ověřování API-KEY
|
373
|
+
|
374
|
+
### Verze 1.3.1
|
375
|
+
|
376
|
+
Přidán modul s konstantami **constants.py**. Zatím obsahuje několik konstant pro parametry používané
|
377
|
+
v konfiguračních souborech yaml.
|
378
|
+
|
@@ -1,5 +1,6 @@
|
|
1
1
|
sysnet_pyutils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
2
|
sysnet_pyutils/barcode.py,sha256=5dM1ISvVVP966JQxGiZBUYJoPx_jgzWEpEQ2uIOxTd4,2622
|
3
|
+
sysnet_pyutils/constants.py,sha256=-58sU5gaIbRwP_WBJdRcdWFRb9saVRy8GG7nAYk5acI,591
|
3
4
|
sysnet_pyutils/data_utils.py,sha256=1OV89carnQCQgB7wahTEsfg-jR6bQcsz0-NKiiSlk00,11283
|
4
5
|
sysnet_pyutils/domino.py,sha256=dGmg9d1PMPOyA_ysXBHVu_zabKGCJEuno3Yw3DexExQ,2671
|
5
6
|
sysnet_pyutils/geo.py,sha256=smAkRfobvKqjr3_UIjU5huDbnkb3_edD_xmv4R0r5Q0,2938
|
@@ -7,11 +8,11 @@ sysnet_pyutils/ident.py,sha256=OkGne8xLEFd2zNdIm7HTPJ_K-fIN9rz7tOR-H0PWDRE,2845
|
|
7
8
|
sysnet_pyutils/log.py,sha256=SFuCPvFTg31LFvnyG24hCTe73FonfS0_FaAHRBhEvlw,2165
|
8
9
|
sysnet_pyutils/ses.py,sha256=WJzs0y2QnF4XGDGjls_W0p0v6DJ4fZ4_97m3XbzpaFw,2713
|
9
10
|
sysnet_pyutils/tools.py,sha256=ZioHvUIufrhuJyZLdPnuMUD8Li5LTljSMSCxqRnKIi4,377
|
10
|
-
sysnet_pyutils/utils.py,sha256=
|
11
|
+
sysnet_pyutils/utils.py,sha256=MyIJquTVtBjBa4IFU3n3nrfVJ5-FQLY5SEXGPNHKx6A,25761
|
11
12
|
sysnet_pyutils/models/__init__.py,sha256=oozOr_DKhenkM9BDaPOmtbLXhP5vtMUCjBPEjZDW4GQ,167
|
12
13
|
sysnet_pyutils/models/general.py,sha256=6AE5RfLmvW4oq7V6Iqpbq7l-Lsqt2Kkh7yLaXu58fRc,23386
|
13
|
-
sysnet_pyutils-1.
|
14
|
-
sysnet_pyutils-1.
|
15
|
-
sysnet_pyutils-1.
|
16
|
-
sysnet_pyutils-1.
|
17
|
-
sysnet_pyutils-1.
|
14
|
+
sysnet_pyutils-1.3.1.dist-info/licenses/LICENSE,sha256=bx5iLIKjgAdYQ7sISn7DsfHRKkoCUm1154sJJKhgqnU,35184
|
15
|
+
sysnet_pyutils-1.3.1.dist-info/METADATA,sha256=rFsgPzLsqNu6m2zkLnfDdg5zkiAize54EsOjnmbUG-o,16004
|
16
|
+
sysnet_pyutils-1.3.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
17
|
+
sysnet_pyutils-1.3.1.dist-info/top_level.txt,sha256=ZKTltQWbLlWBXw4oovo1w7ui-JQ1WoyECqMSWdBj6XE,15
|
18
|
+
sysnet_pyutils-1.3.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|