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ů
ScopeType Definice rozsahu působnosti (Global, Regional, Local)

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.5.tar.gz (36.3 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.5-py3-none-any.whl (29.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sysnet_persons_model-1.2.5.tar.gz
  • Upload date:
  • Size: 36.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for sysnet_persons_model-1.2.5.tar.gz
Algorithm Hash digest
SHA256 160c21162330feef001ceda10ad2541cf304a862d6243444b3dfc50ce4de06ba
MD5 4930bb4f45d828772034ea1e52fe2ba8
BLAKE2b-256 c415a02ebf8cc043ab3773d7b8824d6bc75c871d189aa41cb5dc77ead9533612

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for sysnet_persons_model-1.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 b384f63ff39840ad7b4d84d294279bb4921df19041d45adef578d812c68f5aa5
MD5 a3aab8a2f4dcc510580fda2508c3302f
BLAKE2b-256 393b07514f6878c8664b0e9b69e40263fb44cc28006fa1ef2d30001ed495511d

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