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.6.tar.gz (35.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.6-py3-none-any.whl (29.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sysnet_persons_model-1.2.6.tar.gz
  • Upload date:
  • Size: 35.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.6.tar.gz
Algorithm Hash digest
SHA256 2b754b20ff5f341e89536c233bc0f9e3b3d94bda3dc88c73acfda5cc7923538c
MD5 dd7dfd6b39e7f06796f4adee7aef1ab8
BLAKE2b-256 e45b4220ae40b11742b4791af12881d5695fc55fdcc3ebe5b700723d82c40350

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for sysnet_persons_model-1.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 e316ec760e933c6fc8cf42d7200280418c305224f45e6c92f8d6061d9c039588
MD5 693fcb2a1fd0ecaab1100aea62f02bcc
BLAKE2b-256 2ac7ed6d3f5cacffa8ecd42166cf14f9a25b6d1aef69011bfb897187e4f5c171

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