sysnet-pyutils 1.1.5__py3-none-any.whl → 1.2.0__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/models/general.py +20 -11
- {sysnet_pyutils-1.1.5.dist-info → sysnet_pyutils-1.2.0.dist-info}/METADATA +19 -13
- {sysnet_pyutils-1.1.5.dist-info → sysnet_pyutils-1.2.0.dist-info}/RECORD +6 -6
- {sysnet_pyutils-1.1.5.dist-info → sysnet_pyutils-1.2.0.dist-info}/WHEEL +1 -1
- {sysnet_pyutils-1.1.5.dist-info → sysnet_pyutils-1.2.0.dist-info/licenses}/LICENSE +0 -0
- {sysnet_pyutils-1.1.5.dist-info → sysnet_pyutils-1.2.0.dist-info}/top_level.txt +0 -0
sysnet_pyutils/models/general.py
CHANGED
@@ -3,7 +3,6 @@ from __future__ import annotations
|
|
3
3
|
from datetime import datetime
|
4
4
|
from enum import Enum
|
5
5
|
from typing import Optional, List, Tuple, Any
|
6
|
-
from uuid import UUID
|
7
6
|
|
8
7
|
from pydantic import BaseModel, Field, EmailStr
|
9
8
|
|
@@ -42,16 +41,20 @@ class UserType(BaseModel):
|
|
42
41
|
name_full: Optional[str] = Field(default=None, description='Úplné jméno uživatele', examples=['MUDr. Jiří Novák, PhD.'])
|
43
42
|
|
44
43
|
|
45
|
-
class
|
46
|
-
|
47
|
-
WRITE = 'W'
|
48
|
-
MANAGE = 'M'
|
44
|
+
class BaseEnum(Enum):
|
45
|
+
pass
|
49
46
|
|
50
47
|
@classmethod
|
51
48
|
def has_value(cls, value):
|
52
49
|
return value in cls._value2member_map_
|
53
50
|
|
54
51
|
|
52
|
+
class AclLevelEnum(BaseEnum):
|
53
|
+
READ = 'R'
|
54
|
+
WRITE = 'W'
|
55
|
+
MANAGE = 'M'
|
56
|
+
|
57
|
+
|
55
58
|
class CodeValueType(BaseModel):
|
56
59
|
# kód/hodnota
|
57
60
|
code: Optional[str] = Field(default=None, description='Kód položky', examples=['CZ'])
|
@@ -90,7 +93,8 @@ class ContainerHistoryItemType(BaseModel):
|
|
90
93
|
# položka historie zařazení do kontejnerů
|
91
94
|
timestamp: datetime = Field(default=local_now(), description='Časová značka logu')
|
92
95
|
originator: Optional[str] = Field(default='SYSTEM', description='Zdroj logu', examples=['<NAME>'])
|
93
|
-
container: Optional[UUID] = Field(default=None, description='Identifikátor kontejneru')
|
96
|
+
# container: Optional[UUID] = Field(default=None, description='Identifikátor kontejneru')
|
97
|
+
container: Optional[str] = Field(default=None, description='Identifikátor kontejneru')
|
94
98
|
message: Optional[str] = Field(default=None, description='Zpráva logu', examples=['Autorizováno'])
|
95
99
|
|
96
100
|
|
@@ -113,7 +117,8 @@ class MetadataTypeEntry(BaseModel):
|
|
113
117
|
id_no: Optional[str] = Field(default=None, description='Číslo dokumentu', examples=['23CZ123456'])
|
114
118
|
unid: Optional[str] = Field(default=None, description='Domino universal ID', examples=['3005277CB984B7FFC12587890060E2BF'])
|
115
119
|
pid: Optional[str] = Field(default=None, description='Unique identifier', examples=['MBOA7HNBDJTR'])
|
116
|
-
uuid: Optional[UUID] = Field(default=None, description='Unique identifier')
|
120
|
+
# uuid: Optional[UUID] = Field(default=None, description='Unique identifier')
|
121
|
+
uuid: Optional[str] = Field(default=None, description='Unique identifier')
|
117
122
|
form: Optional[str] = Field(default=None, description='Formulář', examples=['certificate'])
|
118
123
|
authorized: Optional[bool] = Field(default=False, description='Dokument byl autorizován')
|
119
124
|
archived: Optional[bool] = Field(default=False, description='Dokument byl archivován')
|
@@ -163,13 +168,15 @@ class MetadataType(MetadataTypeBase):
|
|
163
168
|
)
|
164
169
|
unid: Optional[str] = Field(default=None, description='Domino universal ID', examples=['3005277CB984B7FFC12587890060E2BF'])
|
165
170
|
pid: Optional[str] = Field(default=None, description='Unique identifier', examples=['MBOA7HNBDJTR'])
|
166
|
-
uuid: Optional[UUID] = Field(default=None, description='Unique identifier')
|
171
|
+
# uuid: Optional[UUID] = Field(default=None, description='Unique identifier')
|
172
|
+
uuid: Optional[str] = Field(default=None, description='Unique identifier')
|
167
173
|
form: Optional[str] = Field(default=None, description='Formulář', examples=['certificate'])
|
168
174
|
authorized: Optional[bool] = Field(default=False, description='Dokument byl autorizován')
|
169
175
|
archived: Optional[bool] = Field(default=False, description='Dokument byl archivován')
|
170
176
|
deleted: Optional[bool] = Field(default=False, description='Dokument byl odstraněn')
|
171
177
|
has_attachments: Optional[bool] = Field(default=False, description='Dokument má/nemá přílohy')
|
172
|
-
container: Optional[UUID] = Field(default=None, description='Identifikátor kontejneru, do kterého je dokument zařazen.')
|
178
|
+
# container: Optional[UUID] = Field(default=None, description='Identifikátor kontejneru, do kterého je dokument zařazen.')
|
179
|
+
container: Optional[str] = Field(default=None, description='Identifikátor kontejneru, do kterého je dokument zařazen.')
|
173
180
|
container_history: Optional[List[Optional[ContainerHistoryItemType]]] = Field(default=None, description='Historie kontejnerů')
|
174
181
|
|
175
182
|
|
@@ -187,7 +194,8 @@ class LinkedType(BaseModel):
|
|
187
194
|
id: Optional[str] = Field(default=None, description='Hlavní identifikátor', examples=['0c282c62-1918-4fbe-ad2c-e49a021f4801'])
|
188
195
|
unid: Optional[str] = Field(default=None, description='Domino universal ID', examples=['3005277CB984B7FFC12587890060E2BF'])
|
189
196
|
pid: Optional[str] = Field(default=None, description='PID (dvanáctimístný identifikátor', examples=['MBOA7HNBDJTR'])
|
190
|
-
uuid: Optional[UUID] = Field(default=None, description='Jednoznačný identifikátor', examples=['0c282c62-1918-4fbe-ad2c-e49a021f4801'])
|
197
|
+
# uuid: Optional[UUID] = Field(default=None, description='Jednoznačný identifikátor', examples=['0c282c62-1918-4fbe-ad2c-e49a021f4801'])
|
198
|
+
uuid: Optional[str] = Field(default=None, description='Jednoznačný identifikátor', examples=['0c282c62-1918-4fbe-ad2c-e49a021f4801'])
|
191
199
|
|
192
200
|
|
193
201
|
class GeoPointJtskType(BaseModel):
|
@@ -250,7 +258,8 @@ class PersonBaseType(PersonCoreType):
|
|
250
258
|
identifier: Optional[str] = Field(default=None, description='Hlavní jednoznačný identifikátor')
|
251
259
|
unid: Optional[str] = Field(default=None, description='Domino universal ID', examples=['3005277CB984B7FFC12587890060E2BF'])
|
252
260
|
pid: Optional[str] = Field(default=None, description='Unique identifier', examples=['MBOA7HNBDJTR'])
|
253
|
-
uuid: Optional[UUID] = Field(default=None, description='Unique identifier (UUID)')
|
261
|
+
# uuid: Optional[UUID] = Field(default=None, description='Unique identifier (UUID)')
|
262
|
+
uuid: Optional[str] = Field(default=None, description='Unique identifier (UUID)')
|
254
263
|
main_person: Optional[LinkedType] = Field(default=None, description='Odkaz na hlavní osobu do registru')
|
255
264
|
linked_persons: Optional[List[Optional[LinkedType]]] = Field(default=None, description='Odkaz na další osoby do registru')
|
256
265
|
|
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: sysnet-pyutils
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.2.0
|
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
|
@@ -21,7 +21,8 @@ Requires-Dist: xmltodict>=0.13.0
|
|
21
21
|
Requires-Dist: boto3>=1.34.34
|
22
22
|
Requires-Dist: botocore>=1.34.34
|
23
23
|
Requires-Dist: pymongo>=4.7.2
|
24
|
-
Requires-Dist: pydantic>=2.10.6
|
24
|
+
Requires-Dist: pydantic[email]>=2.10.6
|
25
|
+
Dynamic: license-file
|
25
26
|
|
26
27
|
# sysnet-pyutils
|
27
28
|
|
@@ -64,7 +65,7 @@ Vygeneruje API klíč
|
|
64
65
|
Vygeneruje slovník API key {API Key: name}
|
65
66
|
* param name: Název API klíče
|
66
67
|
* param length: Délka API klíče
|
67
|
-
* return:
|
68
|
+
* return: Slovník {API Key: name}
|
68
69
|
----------------------------------------------------------------
|
69
70
|
#### api_keys_init(agenda='main', amount=4):
|
70
71
|
Vygeneruje klíče pro API
|
@@ -78,19 +79,19 @@ Konvertuje hex string na int
|
|
78
79
|
* return: int
|
79
80
|
--------------------------------------------------------
|
80
81
|
#### cron_to_dict(cron):
|
81
|
-
Konvertuje cron text do
|
82
|
+
Konvertuje cron text do slovníku
|
82
83
|
* param cron: cron text (například '35 21 * * *')
|
83
84
|
* return: dict of cron
|
84
85
|
--------------------------------------------------------
|
85
86
|
#### cs_bool(value=None):
|
86
87
|
Vrátí českou textovou hodnotu 'ano'/'ne' pokud je bool(value) True/False
|
87
|
-
* param value:
|
88
|
+
* param value: Obecný objekt
|
88
89
|
* return: 'ano' or 'ne'
|
89
90
|
--------------------------------------------------------
|
90
91
|
#### date_to_datetime(date_value):
|
91
92
|
Konvertuje date na datetime v lokální časové zóně
|
92
93
|
* param date_value: hodnota
|
93
|
-
* return:
|
94
|
+
* return: hodnota date v lokální časové zóně
|
94
95
|
--------------------------------------------------------
|
95
96
|
#### decode_b64_string(b64_data: str, encoding='utf-8'):
|
96
97
|
Dekóduje base64 data na string
|
@@ -139,13 +140,13 @@ Vytvoří sha383 checksum ze zdrojového textu
|
|
139
140
|
----------------------------------------------------------------
|
140
141
|
#### id12_next(three_char_prefix=None):
|
141
142
|
Vygeneruje korektní 12místný alfanumerický identifikátor s pevným prefixem
|
142
|
-
* param three_char_prefix:
|
143
|
-
* return:
|
143
|
+
* param three_char_prefix: Tříznakový prefix identifikátoru
|
144
|
+
* return: 12místný alfanumerický identifikátor
|
144
145
|
----------------------------------------------------------------
|
145
146
|
#### increment_date(date_str=None, days=1):
|
146
147
|
Inkrementuje datum v textovém formátu ISO o daný počet dní
|
147
148
|
* param date_str: ISO datum v textovém formátu ISO
|
148
|
-
* param days:
|
149
|
+
* param days: počet dní
|
149
150
|
* return: ISO datum v textovém formátu ISO
|
150
151
|
----------------------------------------------------------------
|
151
152
|
#### is_base64(body):
|
@@ -267,12 +268,12 @@ pravidel viz https://github.com/martinblech/xmltodict
|
|
267
268
|
#### order_to_cites(order: int):
|
268
269
|
Konvertuje celočíselnou hodnotu na písmennou
|
269
270
|
* param order: celočíselná hodnota např. 1458
|
270
|
-
* return:
|
271
|
+
* return: znaková hodnota např. 'BDB'
|
271
272
|
--------------------------------------------------------------------------------------------------------------------------------
|
272
273
|
#### cites_to_order(cites: str):
|
273
274
|
Konvertuje písmennou hodnotu na celočíselnou
|
274
|
-
* param cites:
|
275
|
-
* return:
|
275
|
+
* param cites: znaková hodnota např. 'BDB'
|
276
|
+
* return: celočíselná hodnota např. 1458
|
276
277
|
--------------------------------------------------------------------------------------------------------------------------------
|
277
278
|
### verze 1.0.5
|
278
279
|
|
@@ -347,3 +348,8 @@ která naplní atribut **identifier** z unid, pid nebo uuid.
|
|
347
348
|
* **LOG_FORMAT**: Formát logování. Implicitně `'%(asctime)s - %(levelname)s in %(module)s: %(message)s'`
|
348
349
|
* **LOG_DATE_FORMAT**: Formát data pro logování. Implicitně `'%d.%m.%Y %H:%M:%S'`
|
349
350
|
* **PID_PREFIX**: PID prefix. Implicitně `'SNT'`
|
351
|
+
|
352
|
+
### verze 1.2.0
|
353
|
+
|
354
|
+
1. Místo typu `UUID` se v modelu používá pouze `str`. Je tomu tak kvůli ukládání do **MongoDb**.
|
355
|
+
2. Doplněn abstraktní typ `BaseEnum`, který obsahuje metodu `has_value`.
|
@@ -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=Y95MyEuZlSlTVsQ2rOArdkTN7xqcGsCA7RA6VoBHSSk,23257
|
11
11
|
sysnet_pyutils/models/__init__.py,sha256=oozOr_DKhenkM9BDaPOmtbLXhP5vtMUCjBPEjZDW4GQ,167
|
12
|
-
sysnet_pyutils/models/general.py,sha256=
|
13
|
-
sysnet_pyutils-1.
|
14
|
-
sysnet_pyutils-1.
|
15
|
-
sysnet_pyutils-1.
|
16
|
-
sysnet_pyutils-1.
|
17
|
-
sysnet_pyutils-1.
|
12
|
+
sysnet_pyutils/models/general.py,sha256=cvAO-_RxZVv_It2rLRFiFEJCYEwApggqIG9KMKDDKhc,15928
|
13
|
+
sysnet_pyutils-1.2.0.dist-info/licenses/LICENSE,sha256=bx5iLIKjgAdYQ7sISn7DsfHRKkoCUm1154sJJKhgqnU,35184
|
14
|
+
sysnet_pyutils-1.2.0.dist-info/METADATA,sha256=36GuWVJDlPDCjXLah-tppvSTg_RSeb4VBreVDwq1yp0,15284
|
15
|
+
sysnet_pyutils-1.2.0.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
16
|
+
sysnet_pyutils-1.2.0.dist-info/top_level.txt,sha256=ZKTltQWbLlWBXw4oovo1w7ui-JQ1WoyECqMSWdBj6XE,15
|
17
|
+
sysnet_pyutils-1.2.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|