sysnet-pyutils 1.2.5__py3-none-any.whl → 1.2.6__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/data_utils.py +51 -0
- sysnet_pyutils/models/general.py +15 -1
- {sysnet_pyutils-1.2.5.dist-info → sysnet_pyutils-1.2.6.dist-info}/METADATA +1 -1
- {sysnet_pyutils-1.2.5.dist-info → sysnet_pyutils-1.2.6.dist-info}/RECORD +7 -7
- {sysnet_pyutils-1.2.5.dist-info → sysnet_pyutils-1.2.6.dist-info}/WHEEL +0 -0
- {sysnet_pyutils-1.2.5.dist-info → sysnet_pyutils-1.2.6.dist-info}/licenses/LICENSE +0 -0
- {sysnet_pyutils-1.2.5.dist-info → sysnet_pyutils-1.2.6.dist-info}/top_level.txt +0 -0
sysnet_pyutils/data_utils.py
CHANGED
@@ -5,6 +5,8 @@ import pytz
|
|
5
5
|
|
6
6
|
from sysnet_pyutils.utils import is_valid_email, TZ
|
7
7
|
|
8
|
+
PAGE_SIZE = 10
|
9
|
+
|
8
10
|
def get_dict_value(data: dict, item_name: str) -> Union[Any, None]:
|
9
11
|
"""
|
10
12
|
Extrahuje hodnotu ze slovníku. Používá se pro load dat JSON do objektů
|
@@ -320,3 +322,52 @@ def dict_convert_date_to_str(data: dict):
|
|
320
322
|
dict_convert_date_to_str(item)
|
321
323
|
else:
|
322
324
|
pass
|
325
|
+
|
326
|
+
|
327
|
+
def paging_to_mongo(start=0, page_size=PAGE_SIZE, page=0):
|
328
|
+
if start is None:
|
329
|
+
start = 0
|
330
|
+
if page_size is None:
|
331
|
+
page_size = PAGE_SIZE
|
332
|
+
if page is None:
|
333
|
+
page = 0
|
334
|
+
page += start // page_size
|
335
|
+
start = start % page_size
|
336
|
+
# pokud pocatecni dokument nesouhlasí se začátkem stránky, zkrátí se stránka
|
337
|
+
skip = start + page * page_size
|
338
|
+
limit = page_size
|
339
|
+
if start != 0:
|
340
|
+
limit = page_size - start
|
341
|
+
out = {
|
342
|
+
'start': start,
|
343
|
+
'page_size': page_size,
|
344
|
+
'page': page,
|
345
|
+
'skip': skip,
|
346
|
+
'limit': limit}
|
347
|
+
return out
|
348
|
+
|
349
|
+
|
350
|
+
def recursive_update(out_object, original, updated):
|
351
|
+
"""
|
352
|
+
Rekurzivní aktualizace slovníků
|
353
|
+
|
354
|
+
:param out_object: Datový objekt k aktualizaci
|
355
|
+
:param original: Uložený slovník
|
356
|
+
:param updated: Aktualizace (dodaná metodou PUT)
|
357
|
+
:return: Aktualizovaný původní slovník
|
358
|
+
"""
|
359
|
+
out = original
|
360
|
+
for k, v in updated.items():
|
361
|
+
if k not in out:
|
362
|
+
# Ignoruj položky, které nejsou v originále
|
363
|
+
continue
|
364
|
+
if (v is None) and (isinstance(out.get(k), dict) or isinstance(out.get(k), list)):
|
365
|
+
# Pokud je místo slovníku nebo seznamu None, přeskočit
|
366
|
+
continue
|
367
|
+
if isinstance(v, dict) and isinstance(out.get(k), dict):
|
368
|
+
# Pokud je aktualizován slovník, rekurze
|
369
|
+
recursive_update(getattr(out_object, k), out[k], v)
|
370
|
+
else:
|
371
|
+
out[k] = v
|
372
|
+
setattr(out_object, k, v)
|
373
|
+
return out
|
sysnet_pyutils/models/general.py
CHANGED
@@ -6,7 +6,7 @@ from datetime import datetime
|
|
6
6
|
from enum import Enum
|
7
7
|
from typing import Optional, List, Tuple, Any, ClassVar, Dict
|
8
8
|
|
9
|
-
from pydantic import BaseModel, Field, EmailStr, StrictStr
|
9
|
+
from pydantic import BaseModel, Field, EmailStr, StrictStr, StrictBool
|
10
10
|
from typing_extensions import Self
|
11
11
|
|
12
12
|
from sysnet_pyutils.utils import local_now, is_valid_unid, is_valid_pid, is_valid_uuid
|
@@ -150,6 +150,20 @@ class AclType(BaseModel):
|
|
150
150
|
)
|
151
151
|
|
152
152
|
|
153
|
+
class MetadataEssentialType(BaseModel):
|
154
|
+
"""
|
155
|
+
Hlavní metadata
|
156
|
+
""" # noqa: E501
|
157
|
+
identifier: Optional[StrictStr] = Field(default=None, description="identifikátor uuid")
|
158
|
+
date_created: Optional[datetime] = Field(default=None, description="Datum a čas")
|
159
|
+
date_modified: Optional[datetime] = Field(default=None, description="Datum a čas")
|
160
|
+
date_deleted: Optional[datetime] = Field(default=None, description="Datum a čas")
|
161
|
+
deleted: Optional[StrictBool] = Field(default=False, description="Dokument byl odstraněn")
|
162
|
+
valid: Optional[StrictBool] = Field(default=True, description="Dokument je platný/neplatný")
|
163
|
+
duplicates: Optional[StrictStr] = Field(default=None, description="Dokument je duplicitní k jinému dokumentu s daným identifikátorem")
|
164
|
+
|
165
|
+
|
166
|
+
|
153
167
|
class MetadataTypeEntry(BaseModel):
|
154
168
|
title: Optional[str] = Field(default=None, description='Název dokumentu')
|
155
169
|
id_no: Optional[str] = Field(default=None, description='Číslo dokumentu', examples=['23CZ123456'])
|
@@ -1,6 +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/data_utils.py,sha256=
|
3
|
+
sysnet_pyutils/data_utils.py,sha256=1OV89carnQCQgB7wahTEsfg-jR6bQcsz0-NKiiSlk00,11283
|
4
4
|
sysnet_pyutils/domino.py,sha256=dGmg9d1PMPOyA_ysXBHVu_zabKGCJEuno3Yw3DexExQ,2671
|
5
5
|
sysnet_pyutils/geo.py,sha256=smAkRfobvKqjr3_UIjU5huDbnkb3_edD_xmv4R0r5Q0,2938
|
6
6
|
sysnet_pyutils/ident.py,sha256=OkGne8xLEFd2zNdIm7HTPJ_K-fIN9rz7tOR-H0PWDRE,2845
|
@@ -9,9 +9,9 @@ sysnet_pyutils/ses.py,sha256=WJzs0y2QnF4XGDGjls_W0p0v6DJ4fZ4_97m3XbzpaFw,2713
|
|
9
9
|
sysnet_pyutils/tools.py,sha256=ZioHvUIufrhuJyZLdPnuMUD8Li5LTljSMSCxqRnKIi4,377
|
10
10
|
sysnet_pyutils/utils.py,sha256=4dOqlP8JhKaIzWlbYw4PLckBf1SigBJK-MzK1EWTgYk,23523
|
11
11
|
sysnet_pyutils/models/__init__.py,sha256=oozOr_DKhenkM9BDaPOmtbLXhP5vtMUCjBPEjZDW4GQ,167
|
12
|
-
sysnet_pyutils/models/general.py,sha256=
|
13
|
-
sysnet_pyutils-1.2.
|
14
|
-
sysnet_pyutils-1.2.
|
15
|
-
sysnet_pyutils-1.2.
|
16
|
-
sysnet_pyutils-1.2.
|
17
|
-
sysnet_pyutils-1.2.
|
12
|
+
sysnet_pyutils/models/general.py,sha256=6AE5RfLmvW4oq7V6Iqpbq7l-Lsqt2Kkh7yLaXu58fRc,23386
|
13
|
+
sysnet_pyutils-1.2.6.dist-info/licenses/LICENSE,sha256=bx5iLIKjgAdYQ7sISn7DsfHRKkoCUm1154sJJKhgqnU,35184
|
14
|
+
sysnet_pyutils-1.2.6.dist-info/METADATA,sha256=O82RV1UCz3ql195OhtV35UdWlHLDYKXm2bzriw10el0,15747
|
15
|
+
sysnet_pyutils-1.2.6.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
|
16
|
+
sysnet_pyutils-1.2.6.dist-info/top_level.txt,sha256=ZKTltQWbLlWBXw4oovo1w7ui-JQ1WoyECqMSWdBj6XE,15
|
17
|
+
sysnet_pyutils-1.2.6.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|