sysnet-pyutils 1.1.1__py3-none-any.whl → 1.1.3__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.
@@ -6,6 +6,7 @@ from uuid import UUID
6
6
  from pydantic import BaseModel, Field, EmailStr
7
7
 
8
8
  from sysnet_pyutils.utils import local_now
9
+ from utils import is_valid_unid, is_valid_pid, is_valid_uuid
9
10
 
10
11
 
11
12
  class ApiError(Exception):
@@ -236,20 +237,30 @@ class LocationType(BaseModel):
236
237
  wgs: Optional[GeoPointType] = Field(default=None, description='WGS84')
237
238
  jtsk: Optional[GeoPointJtskType] = Field(default=None, description='JTSK')
238
239
 
239
-
240
- class PersonBaseType(BaseModel):
241
- # Osoba z Registru osob
242
- unid: Optional[str] = Field(default=None, description='Domino universal ID', examples=['3005277CB984B7FFC12587890060E2BF'])
243
- pid: Optional[str] = Field(default=None, description='Unique identifier', examples=['MBOA7HNBDJTR'])
244
- uuid: Optional[UUID] = Field(default=None, description='Unique identifier')
240
+ class PersonCoreType(BaseModel):
245
241
  ico: Optional[str] = Field(default=None, description='IČO osoby')
246
242
  name: Optional[str] = Field(default=None, description='Název osoby', examples=['B.A.R. Reptofilia'])
247
243
  email: Optional[EmailStr] = Field(default=None, description='Email osoby')
248
244
  address: Optional[str] = Field(default=None, description='Adresa osoby', examples=['Ulice Závodu Míru 2\n87423 Otrokovice'])
249
245
  country: Optional[CodeValueType] = Field(default=None, description='Země adresy osoby')
246
+
247
+ class PersonBaseType(PersonCoreType):
248
+ # Osoba z Registru osob
249
+ identifier: Optional[str] = Field(default=None, description='Hlavní jednoznačný identifikátor')
250
+ unid: Optional[str] = Field(default=None, description='Domino universal ID', examples=['3005277CB984B7FFC12587890060E2BF'])
251
+ pid: Optional[str] = Field(default=None, description='Unique identifier', examples=['MBOA7HNBDJTR'])
252
+ uuid: Optional[UUID] = Field(default=None, description='Unique identifier (UUID)')
250
253
  main_person: Optional[LinkedType] = Field(default=None, description='Odkaz na hlavní osobu do registru')
251
254
  linked_persons: Optional[list[LinkedType]] = Field(default=None, description='Odkaz na další osoby do registru')
252
255
 
256
+ def make_identifier(self) -> Optional[str]:
257
+ if is_valid_unid(self.unid):
258
+ self.identifier = self.unid
259
+ if is_valid_pid(self.pid):
260
+ self.identifier = self.pid
261
+ if is_valid_uuid(self.uuid):
262
+ self.identifier = str(self.uuid)
263
+ return self.identifier
253
264
 
254
265
  class WorkflowType(BaseModel):
255
266
  # Položka životního cyklu
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sysnet-pyutils
3
- Version: 1.1.1
3
+ Version: 1.1.3
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
@@ -332,12 +332,18 @@ Kontrola validity emailové adresy
332
332
  Datový slovník je vytvořen pomocí pydantic a je plně kompatibilní s FastAPI.
333
333
  Obsahuje základní datové typy, které se používají ve všech aplikacích SYSNET.
334
334
 
335
+ --------------------------------------------------------------------------------------------------------------------------------
336
+
337
+ ### verze 1.1.3
338
+
339
+ Třída **PersonBaseType** rozšířena o atribut **identifier** (hlavní identifikátor) a metodu **make_identifier()**,
340
+ která naplní atribut **identifier** z unid, pid nebo uuid.
335
341
 
336
342
 
337
343
  ## Systémové proměnné
338
344
 
339
345
  * **TZ**: Časová zóna. Implicitně 'Europe/Prague'
340
- * **DEBUG**: Debug mode. Implictně `True`
346
+ * **DEBUG**: Debug mode. Implicitně `True`
341
347
  * **LOG_FORMAT**: Formát logování. Implicitně `'%(asctime)s - %(levelname)s in %(module)s: %(message)s'`
342
348
  * **LOG_DATE_FORMAT**: Formát data pro logování. Implicitně `'%d.%m.%Y %H:%M:%S'`
343
349
  * **PID_PREFIX**: PID prefix. Implicitně `'SNT'`
@@ -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=jqvPoKa6jKXfPLubNSSJZpSpIUG5Sw8A_zwDRlEp8VQ,14706
13
- sysnet_pyutils-1.1.1.dist-info/LICENSE,sha256=bx5iLIKjgAdYQ7sISn7DsfHRKkoCUm1154sJJKhgqnU,35184
14
- sysnet_pyutils-1.1.1.dist-info/METADATA,sha256=lj6VZ1NHlDcVLQSoOBr11_XSOVULaF3DTA4IotTnHeY,14744
15
- sysnet_pyutils-1.1.1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
16
- sysnet_pyutils-1.1.1.dist-info/top_level.txt,sha256=ZKTltQWbLlWBXw4oovo1w7ui-JQ1WoyECqMSWdBj6XE,15
17
- sysnet_pyutils-1.1.1.dist-info/RECORD,,
12
+ sysnet_pyutils/models/general.py,sha256=pj8JJwjqJvakmWYYhQJ2DgF9JcnBIBAeDiuExq-Bb5Q,15228
13
+ sysnet_pyutils-1.1.3.dist-info/LICENSE,sha256=bx5iLIKjgAdYQ7sISn7DsfHRKkoCUm1154sJJKhgqnU,35184
14
+ sysnet_pyutils-1.1.3.dist-info/METADATA,sha256=RJLnd-qB1Vu9_1sFYo6xZ8OTO13cWOVZiq_T9c5Dz74,15083
15
+ sysnet_pyutils-1.1.3.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
16
+ sysnet_pyutils-1.1.3.dist-info/top_level.txt,sha256=ZKTltQWbLlWBXw4oovo1w7ui-JQ1WoyECqMSWdBj6XE,15
17
+ sysnet_pyutils-1.1.3.dist-info/RECORD,,