sysnet-pyutils 1.2.6__tar.gz → 1.3.1__tar.gz

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.
Files changed (24) hide show
  1. {sysnet_pyutils-1.2.6/sysnet_pyutils.egg-info → sysnet_pyutils-1.3.1}/PKG-INFO +17 -6
  2. {sysnet_pyutils-1.2.6 → sysnet_pyutils-1.3.1}/README.md +16 -5
  3. {sysnet_pyutils-1.2.6 → sysnet_pyutils-1.3.1}/pyproject.toml +1 -1
  4. sysnet_pyutils-1.3.1/sysnet_pyutils/constants.py +21 -0
  5. {sysnet_pyutils-1.2.6 → sysnet_pyutils-1.3.1}/sysnet_pyutils/utils.py +65 -0
  6. {sysnet_pyutils-1.2.6 → sysnet_pyutils-1.3.1/sysnet_pyutils.egg-info}/PKG-INFO +17 -6
  7. {sysnet_pyutils-1.2.6 → sysnet_pyutils-1.3.1}/sysnet_pyutils.egg-info/SOURCES.txt +1 -0
  8. {sysnet_pyutils-1.2.6 → sysnet_pyutils-1.3.1}/LICENSE +0 -0
  9. {sysnet_pyutils-1.2.6 → sysnet_pyutils-1.3.1}/requirements.txt +0 -0
  10. {sysnet_pyutils-1.2.6 → sysnet_pyutils-1.3.1}/setup.cfg +0 -0
  11. {sysnet_pyutils-1.2.6 → sysnet_pyutils-1.3.1}/sysnet_pyutils/__init__.py +0 -0
  12. {sysnet_pyutils-1.2.6 → sysnet_pyutils-1.3.1}/sysnet_pyutils/barcode.py +0 -0
  13. {sysnet_pyutils-1.2.6 → sysnet_pyutils-1.3.1}/sysnet_pyutils/data_utils.py +0 -0
  14. {sysnet_pyutils-1.2.6 → sysnet_pyutils-1.3.1}/sysnet_pyutils/domino.py +0 -0
  15. {sysnet_pyutils-1.2.6 → sysnet_pyutils-1.3.1}/sysnet_pyutils/geo.py +0 -0
  16. {sysnet_pyutils-1.2.6 → sysnet_pyutils-1.3.1}/sysnet_pyutils/ident.py +0 -0
  17. {sysnet_pyutils-1.2.6 → sysnet_pyutils-1.3.1}/sysnet_pyutils/log.py +0 -0
  18. {sysnet_pyutils-1.2.6 → sysnet_pyutils-1.3.1}/sysnet_pyutils/models/__init__.py +0 -0
  19. {sysnet_pyutils-1.2.6 → sysnet_pyutils-1.3.1}/sysnet_pyutils/models/general.py +0 -0
  20. {sysnet_pyutils-1.2.6 → sysnet_pyutils-1.3.1}/sysnet_pyutils/ses.py +0 -0
  21. {sysnet_pyutils-1.2.6 → sysnet_pyutils-1.3.1}/sysnet_pyutils/tools.py +0 -0
  22. {sysnet_pyutils-1.2.6 → sysnet_pyutils-1.3.1}/sysnet_pyutils.egg-info/dependency_links.txt +0 -0
  23. {sysnet_pyutils-1.2.6 → sysnet_pyutils-1.3.1}/sysnet_pyutils.egg-info/requires.txt +0 -0
  24. {sysnet_pyutils-1.2.6 → sysnet_pyutils-1.3.1}/sysnet_pyutils.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sysnet-pyutils
3
- Version: 1.2.6
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: dict of cron
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: 'ano' or 'ne'
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: PID
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: XML dictionary
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: datetime.datetime
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
+
@@ -55,12 +55,12 @@ Konvertuje hex string na int
55
55
  #### cron_to_dict(cron):
56
56
  Konvertuje cron text do slovníku
57
57
  * param cron: cron text (například '35 21 * * *')
58
- * return: dict of cron
58
+ * return: dict of cron
59
59
  --------------------------------------------------------
60
60
  #### cs_bool(value=None):
61
61
  Vrátí českou textovou hodnotu 'ano'/'ne' pokud je bool(value) True/False
62
62
  * param value: Obecný objekt
63
- * return: 'ano' or 'ne'
63
+ * return: 'ano' or 'ne'
64
64
  --------------------------------------------------------
65
65
  #### date_to_datetime(date_value):
66
66
  Konvertuje date na datetime v lokální časové zóně
@@ -160,7 +160,7 @@ Opraví PID
160
160
  ----------------------------------------------------------------
161
161
  #### pid_next():
162
162
  Vygeneruje korektní PID
163
- * return: PID
163
+ * return: PID
164
164
  ----------------------------------------------------------------
165
165
  #### remove_empty(source_list):
166
166
  Odstraní prázdné položky ze seznamu
@@ -230,7 +230,7 @@ Rekurzivně převede klíče ve slovníku z VelbloudíNotace do hadí_notace
230
230
  Parsuje XML string do XML dictionary
231
231
  podle pravidel viz https://github.com/martinblech/xmltodict
232
232
  * param xml_text: XML text
233
- * return: XML dictionary
233
+ * return: XML dictionary
234
234
  --------------------------------------------------------------------------------------------------------------------------------
235
235
  #### dict_to_xml(xml_dict):
236
236
  Parsuje XML dict do XML textu podle
@@ -253,7 +253,7 @@ Konvertuje písmennou hodnotu na celočíselnou
253
253
 
254
254
  #### local_now():
255
255
  Vrací aktuální časovou značku v lokální časové zóně.
256
- * return: datetime.datetime
256
+ * return: datetime.datetime
257
257
 
258
258
  #### is_valid_unid(unid):
259
259
  Kontrola validity HCL Notes UNIID
@@ -339,3 +339,14 @@ Typ osoby (zdroj CRŽP):
339
339
  - businessNaturalPerson: tuzemská fyzická osoba podnikající
340
340
  - naturalPerson: tuzemská fyzická osoba nepodnikající
341
341
  - foreignNaturalPerson: zahraniční fyzická osoba podnikající
342
+
343
+
344
+ ### Verze 1.3.0
345
+
346
+ Přidána třida **Context**, která se používá při ověřování API-KEY
347
+
348
+ ### Verze 1.3.1
349
+
350
+ Přidán modul s konstantami **constants.py**. Zatím obsahuje několik konstant pro parametry používané
351
+ v konfiguračních souborech yaml.
352
+
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "sysnet-pyutils"
7
- version = "1.2.6"
7
+ version = "1.3.1"
8
8
  authors = [
9
9
  { name="Data Developer", email="info@sysnet.cz" },
10
10
  ]
@@ -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'
@@ -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.2.6
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: dict of cron
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: 'ano' or 'ne'
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: PID
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: XML dictionary
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: datetime.datetime
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
+
@@ -4,6 +4,7 @@ pyproject.toml
4
4
  requirements.txt
5
5
  sysnet_pyutils/__init__.py
6
6
  sysnet_pyutils/barcode.py
7
+ sysnet_pyutils/constants.py
7
8
  sysnet_pyutils/data_utils.py
8
9
  sysnet_pyutils/domino.py
9
10
  sysnet_pyutils/geo.py
File without changes
File without changes