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 (včetně scope)
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.7.tar.gz (35.5 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.7-py3-none-any.whl (29.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sysnet_persons_model-1.2.7.tar.gz
  • Upload date:
  • Size: 35.5 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.7.tar.gz
Algorithm Hash digest
SHA256 b18a188f41a42f0c3a65a1614a1ef6b3881ab68c1af7366df7708dbe89f3c648
MD5 4e3e39f6791c1b76cdb5c754b1134500
BLAKE2b-256 8296d55160e4e5a29f3cdaf88940590956db2732049a9c5a07bd6bad0e5f2827

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for sysnet_persons_model-1.2.7-py3-none-any.whl
Algorithm Hash digest
SHA256 76d791e7faad8e87a95deaba797cc7327404d51434a93f20a1b9f1aec52656ba
MD5 05f0207fb0c0604cb7c7ddfaffdc008c
BLAKE2b-256 795933cd2b11c39c2dcea32b8ed833e671215efdc8d90d33ef596014e5a6ec09

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