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.
@@ -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 AclLevelEnum(Enum):
46
- READ = 'R'
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.2
1
+ Metadata-Version: 2.4
2
2
  Name: sysnet-pyutils
3
- Version: 1.1.5
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: Slovník {API Key: name}
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 do slovníku
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: Obecný objekt
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: hodnota date v lokální časové zóně
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: Tříznakový prefix identifikátoru
143
- * return: 12místný alfanumerický identifikátor
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: počet dní
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: znaková hodnota např. 'BDB'
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: znaková hodnota např. 'BDB'
275
- * return: celočíselná hodnota např. 1458
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=Rv4xBU19lp02fEKDVowFJSDNNZszKg8YaF4z1RO-kGg,15297
13
- sysnet_pyutils-1.1.5.dist-info/LICENSE,sha256=bx5iLIKjgAdYQ7sISn7DsfHRKkoCUm1154sJJKhgqnU,35184
14
- sysnet_pyutils-1.1.5.dist-info/METADATA,sha256=Z1P9jatiq9NSbYnLfoigaK5FOktfg4LRhKfm9gTeKAg,15083
15
- sysnet_pyutils-1.1.5.dist-info/WHEEL,sha256=nn6H5-ilmfVryoAQl3ZQ2l8SH5imPWFpm1A5FgEuFV4,91
16
- sysnet_pyutils-1.1.5.dist-info/top_level.txt,sha256=ZKTltQWbLlWBXw4oovo1w7ui-JQ1WoyECqMSWdBj6XE,15
17
- sysnet_pyutils-1.1.5.dist-info/RECORD,,
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,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.1)
2
+ Generator: setuptools (78.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5