Skip to main content

SYSNET Persons Data Model

Project description

sysnet-persons-model

Sdílený datový model Registru osob SYSNET

Python Pydantic PyPI

Č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:

  1. BaseType — základní atributy bez identifikátoru
  2. EntryType — zkrácená položka pro seznamy
  3. plný Type — rozšiřuje Base o identifier, pid, registry, tags, document
  4. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sysnet_persons_model-1.2.3.tar.gz (35.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sysnet_persons_model-1.2.3-py3-none-any.whl (28.9 kB view details)

Uploaded Python 3

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

Hashes for sysnet_persons_model-1.2.3.tar.gz
Algorithm Hash digest
SHA256 bdb803f9e1f14419ca7e3c01052cc5cca18db0412990aa32c3ac68234a4d8d77
MD5 71736d699c7de1b15a941020ed491b41
BLAKE2b-256 f836a095aeee8099042e417c428933bbc2b29ff622f30d659092024267072880

See more details on using hashes here.

File details

Details for the file sysnet_persons_model-1.2.3-py3-none-any.whl.

File metadata

File hashes

Hashes for sysnet_persons_model-1.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d966921a35a36d93064d1893082079acb8bead28579eee5a43d0906f6c74b966
MD5 04ff083cbbc43c918a62e30e6760f6cd
BLAKE2b-256 2c6fb10a8113b6e83bb204cc64aa53eb7458289b5042177b9ee7fe5128dfe76e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page