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.4.tar.gz (36.2 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.4-py3-none-any.whl (28.9 kB view details)

Uploaded Python 3

File details

Details for the file sysnet_persons_model-1.2.4.tar.gz.

File metadata

  • Download URL: sysnet_persons_model-1.2.4.tar.gz
  • Upload date:
  • Size: 36.2 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.4.tar.gz
Algorithm Hash digest
SHA256 7c8cd059671bcf1875f150f91d7f3107cb18eafb3124ed42ea0523e7ca82ab86
MD5 642775dad9c2e09315129b2a58199d20
BLAKE2b-256 99e4d9dc894276b760e9e3a030619c08c20fb08fac0cfdfc2ffb459d75f733c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for sysnet_persons_model-1.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 3cd06b19b9fe187e53c8802e9a8c8431dd5d062056f7bfc99ca4dcd89c9f0625
MD5 a813520ce2707d21a6b43885177eed3a
BLAKE2b-256 2debf722072973fdc25f034fbfa871b473999cf628c166e16795ad4c0bd03c51

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