SYSNET Persons Data Model
Project description
sysnet-persons-model
Sdílený datový model Registru osob SYSNET
Čistá Python knihovna — bez FastAPI, bez MongoDB. Slouží jako sdílená datová vrstva importovaná dalšími službami SYSNET.
Instalace
pip install sysnet-persons-model
Rychlý start
from persons_model.individual import IndividualType
from persons_model.person_entity import PersonEntityType
from persons_model.role import RoleType
from persons_model.common import RegistryType, MembershipEnum, MemberType
from persons_model.tag import TagType, TagItemType
# Vytvoření jednotlivce
person = IndividualType(
identifier="550e8400-e29b-41d4-a716-446655440000",
name="Jan Novák",
username="jnovak",
)
# Přidání tagu
person.tags = TagType()
person.tags.add_tag(TagItemType(tag="aktivni", color="#00FF00"))
Moduly
common — Společné typy
| Třída / Enum | Popis |
|---|---|
RegistryEnum |
Identifikační registry (CRZP, EMPTY) |
RegistryType |
Reference na identifikační údaje (uuid, uri, other) |
MembershipEnum |
Typ členství: admin, representative, employee, department, general, other |
MemberType |
Členský záznam |
ContactType |
Kontaktní údaje osoby |
RedundantType |
Redundantní záznam (name, code, location, note) |
DepartmentType |
Útvar organizace (rozšiřuje RedundantType o parent) |
IssuingType |
Údaje pro vydávání dokladů |
individual — Jednotlivci (uživatelé)
| Třída | Popis |
|---|---|
IndividualBaseType |
Základní atributy: jméno, username, DN, heslo, kontakty, adresy, GDPR |
IndividualEntryType |
Zkrácená položka pro seznam |
IndividualType |
Plný záznam osoby (rozšiřuje Base o identifier, pid, registry, tags, document) |
IndividualListType |
Stránkovaný seznam osob |
person_entity — Subjekty
| Třída | Popis |
|---|---|
PersonEntityLinkType |
Odkaz na navázaný subjekt |
PersonEntityEntryType |
Položka subjektu v kontextu |
PersonEntityBaseType |
Základní atributy subjektu |
PersonEntityType |
Plný záznam (fyzická / právnická osoba) |
PersonEntityListType |
Stránkovaný seznam subjektů |
role — Role
| Třída / Enum | Popis |
|---|---|
RoleCategoryEnum |
individual, personal, security, other |
RoleCategoryType |
Boolean příznaky kategorií |
RoleBaseType |
Základ role (code, name, categories, note) |
RoleEntryType |
Položka seznamu rolí (rozšiřuje Base o identifier) |
RoleType |
Plná role s holders, admins, tags, document |
RoleListType |
Stránkovaný seznam rolí |
context — Uživatelský kontext
| Třída | Popis |
|---|---|
ContextRolesType |
Role uživatele/subjektu (admin, holder) |
ContextPersonsType |
Subjekty uživatele (admin, contact, member, representative) |
ContextIndividualType |
Kompletní kontext konkrétního uživatele |
tag — Tagy
| Třída | Popis |
|---|---|
TagItemType |
Jedna značka (tag, color) |
TagType |
Seznam tagů s metodami has_tag, add_tag, remove_tag |
TagListType |
Stránkovaný seznam tagů |
country — Země (ISO 3166-1)
| Třída | Popis |
|---|---|
CountryType |
Stát: kódy n3/a2/a3, název česky a anglicky |
CountryListType |
Stránkovaný seznam zemí |
CountryMapType |
Seznam ve formátu code/value |
config — Konfigurace
| Třída | Popis |
|---|---|
ConfigType |
Minimální konfigurace (cache: Optional[StrictBool]) |
Vývoj
Viz docs/DEVELOPMENT.md pro podrobnou vývojovou příručku.
# Klonování a nastavení prostředí
cd D:\development\git\models\persons
.venv\Scripts\python.exe -m pip install -e .
# Spuštění testů
.venv\Scripts\python.exe -m pytest
# Spuštění testů s pokrytím
.venv\Scripts\python.exe -m pytest --cov=persons_model --cov-report=term-missing
Technický stack
| Vrstva | Technologie | Verze |
|---|---|---|
| Datové modely | Pydantic v2 | ≥ 2.11.4 |
| Utility | sysnet-pyutils | ≥ 1.7.0 |
| Python | CPython | ≥ 3.10 |
| Testy | pytest + pytest-cov | 9.x / 7.x |
Architektura
Viz docs/ARCHITECTURE.md.
Všechny modely dodržují konzistentní vzor:
BaseType— základní atributy bez identifikátoruEntryType— zkrácená položka pro seznamy- plný
Type— rozšiřuje Base oidentifier,pid,registry,tags,document ListType— obálka pro stránkované výsledky (hits,entries)
Verze
Aktuální verze: 1.2.0
Repozitář: https://github.com/SYSNET-CZ/models/tree/main/persons
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sysnet_persons_model-1.2.3.tar.gz.
File metadata
- Download URL: sysnet_persons_model-1.2.3.tar.gz
- Upload date:
- Size: 35.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bdb803f9e1f14419ca7e3c01052cc5cca18db0412990aa32c3ac68234a4d8d77
|
|
| MD5 |
71736d699c7de1b15a941020ed491b41
|
|
| BLAKE2b-256 |
f836a095aeee8099042e417c428933bbc2b29ff622f30d659092024267072880
|
File details
Details for the file sysnet_persons_model-1.2.3-py3-none-any.whl.
File metadata
- Download URL: sysnet_persons_model-1.2.3-py3-none-any.whl
- Upload date:
- Size: 28.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d966921a35a36d93064d1893082079acb8bead28579eee5a43d0906f6c74b966
|
|
| MD5 |
04ff083cbbc43c918a62e30e6760f6cd
|
|
| BLAKE2b-256 |
2c6fb10a8113b6e83bb204cc64aa53eb7458289b5042177b9ee7fe5128dfe76e
|