IPPC Data Model
Project description
Dokumentace projektu IPPC Data Model
Přehled projektu
Datový model IPPC je Python knihovna obsahující kompletní datový model pro systém Integrovaného povolení a kontroly znečišťování (IPPC – Integrated Pollution Prevention and Control). Projekt je vyvinut společností SYSNET s.r.o.
Základní informace
- Název: ippc-model
- Verze: 1.0.2
- Licence: GNU Affero General Public License v3
- Python verze: ≥ 3.10
- Vývojové prostředí: PyCharm
- Homepage: https://github.com/SYSNET-CZ/models/tree/main/ippc
Závislosti
Projekt využívá následující hlavní závislosti:
- Pydantic (~2.11.7) - pro datovou validaci a typování
- sysnet-pyutils (≥1.3.10) - interní utility knihovna SYSNET
Architektura projektu
Struktura adresářů
ippc/
├── ippc_model/ # Hlavní balíček s datovými modely
│ ├── ippc_activity.py # Model pro činnosti/kategorie IPPC
│ ├── ippc_common.py # Sdílené typy a pomocné funkce
│ ├── ippc_container.py # Model pro kontejnery dokumentů
│ ├── ippc_document.py # Model pro dokumenty IPPC
│ ├── ippc_equipment.py # Model pro zařízení
│ ├── ippc_expert.py # Model pro odborně způsobilé osoby
│ └── __init__.py
├── .venv/ # Virtuální prostředí Python
├── dist/ # Distribuční balíčky
├── pyproject.toml # Konfigurace projektu
├── requirements.txt # Python závislosti
├── LICENSE # GNU AGPL v3
├── README.md # Základní informace
└── upload.cmd # Skript pro nahrání balíčku
Datové modely
1. ippc_common.py – Sdílené typy
Tento modul obsahuje společné enumy, typy a pomocné funkce používané napříč celým projektem.
Klíčové enumy:
IppcDocCodeEnum - Typy dokumentů IPPC:
REQUEST- Žádost o integrované povoleníSUMMARIZE- Stručné shrnutíSTATEMENT- VyjádřeníDECISION- RozhodnutíAPPEAL- OdvoláníCHANGE- Změna integrovaného povoleníEXCEPTIONS- VýjimkyREPORT_CONDITIONS- Zpráva o plnění podmínekREPORT_REVIEW- Zpráva o přezkumuREPORT_CHECK- Zpráva o kontrole- a další...
IppcStatusEnum - Stavy řízení:
STATUS_0- NeautorizovánoSTATUS_1- PublikovánoSTATUS_6- RozhodnutoSTATUS_9- Řízení zastavenoSTATUS_B- OdvoláníSTATUS_D- IP zrušenoSTATUS_Z- Provoz ukončen- a další...
IppcContainerEnum - Typy kontejnerů:
PROCEEDING- ŘízeníDOCUMENTATION- DokumentaceOTHER- Jiný
ActivityStatusEnum - Stavy činností:
AC_NEW- nováAC_ACTIVE- aktivníAC_EXCLUDED- vyřazená
EquipmentStatusEnum - Stavy zařízení:
EQ_NEW- novéEQ_AUTHORIZED- autorizovánoEQ_ACTIVE- aktivníEQ_MERGED- sloučenéEQ_CLOSED- Provoz ukončenEQ_EXCLUDED- Vyňato z režimu
Klíčové typy:
PermittingType - Informace o povolovacím řízení:
- Datumy zahájení, ukončení, právní moci
- Informace o autorizaci, BAT, EIA
- Stav povolení
InspectionType - Informace o kontrole:
- Termíny kontroly
- Typ přezkumu (plánovaná/neplánovaná)
- Kontrolní orgán
- Předmět kontroly
ReportType – Informace o zprávách:
- Datum podání
- Kontrolované období
- Stav plnění podmínek
ValidationType - Informace o validaci:
- Datum doručení MŽP
- Číslo jednací
- Archivační údaje
ChangeOperator – Změna provozovatele:
- Datum změny a účinnosti
- Původní a nový provozovatel
MergeEquipment – Sloučení zařízení:
- Datumy sloučení
- Zdrojové a cílové zařízení
2. ippc_activity.py – Činnosti
Model pro kategorie zařízení podle Přílohy č. 1 zákona č. 76/2002 Sb.
ActivityType – Hlavní model činnosti:
category- Kategorie zařízenícode- Číslo kategorievalue_cz- Popis českyvalue_en- Popis pro reporting EKhidden- Skrytí v pohledechstatus- Stav činnostimetadata- Metadatahistory- Historie změn
ActivityListType – Seznam činností s počtem záznamů
ActivityViewItemType - Agregovaný pohled s počty:
- Počet integrovaných povolení
- Počet zařízení
- Počet OZO (odborně způsobilých osob)
3. ippc_equipment.py – Zařízení
Model pro zařízení podléhající režimu IPPC.
EquipmentType - Hlavní model zařízení:
title- Úplný název zařízeníname- Stručný názevoperator- Aktuální provozovatellocation- Umístění (LocationType s GPS souřadnicemi)activity_main- Hlavní činnostactivity_other- Ostatní činnostiinternational- Mezinárodní mechanismusoffice_check- Kontrolní orgánwaste_water_disposal- Vypouštění odpadních vodstatus- Stav zařízeníauthorized- Stav autorizacemerged- Informace o sloučeníequipment_merged- Odkaz na sloučené zařízeníoperator_history- Historie provozovatelůmetadata- Metadatahistory- Historie životního cyklu
EquipmentOtherInfo - Další relevantní informace:
- E-PRTR registrace
- Propojení s IRZ
- ČHMÚ zdroje znečišťování
- Spalovny
- Reporting LCP
- ISOH
EquipmentReporting - Data pro reporting do EK:
- INSPIRE ID
- BAT Conclusion Value
- Baseline Report
- Geometrické údaje
- Kompetentní autority
- Údaje o povolení
EquipmentMigration – Migrovaná data z původního systému
4. ippc_container.py - Kontejnery
Model pro kontejnery seskupující dokumenty jednoho řízení.
ContainerType – Hlavní model kontejneru:
name- Název kontejnerucontent_type- Typ obsahu (řízení/dokumentace/jiný)equipment- Propojené zařízeníoperator- Provozovatelactivity_main- Hlavní činnostactivity_other- Ostatní činnostistatus- Aktuální stav řízenístatus_saved- Předchozí stavlocked- Zámek kontejneruhas_attachments- Přítomnost přílohinternational- Mezinárodní mechanismuspermitting- Povolovací řízení (včetně seznamu dokumentů)inspection- Seznam kontrolreport- Zprávy o plněnívalidation- Validační informaceoperator_change- Historie změn provozovateleequipment_merge- Historie sloučení zařízeníexpert- Odborně způsobilá osobaworkflow- Workflow řízeníhistory- Historie kontejnerumetadata- Metadata
ContainerTypeLight - Odlehčená verze pro seznamy
ContainerListType – Seznam kontejnerů s počtem záznamů
5. ippc_document.py – Dokumenty
Model pro dokumenty v rámci řízení IPPC.
DocumentType - Hlavní model dokumentu:
doc_code- Kód typu dokumentuadditional_type- Typ dodatečné informacetitle- Úplný název dokumentusubject- Stručný názevversion_ozo- Verze OZOannotation- Anotace (RTF)content- Plný obsah (RTF)operator- Aktuální provozovatelequipment- Aktuální zařízeníactivity_main- Hlavní činnostactivity_other- Ostatní činnostipermitting- Povolovací řízeníinspection- Informace o kontrolereport- Zpráva o plněnívalidation- Validační informaceoperator_change- Změna provozovateleequipment_merge- Sloučení zařízeníexpert- OZOadditional- Další propojené dokumentyhas_attachments- Přílohylinked_list- Propojené dokumentymetadata- Metadatahistory- Historie
DocumentEntryType – Lehčí verze pro seznamy
DocumentListType – Seznam dokumentů s počtem záznamů
6. ippc_expert.py – Odborně způsobilé osoby
Model pro odborně způsobilé osoby (OZO).
ExpertType - Hlavní model OZO:
- Základní osobní údaje (z PersonCoreType):
title_before- Titul před jménemfirst_name- Křestní jménolast_name- Příjmenítitle_after- Titul za jménem
email- Seznam emailůactivity- Činnostidate_validity- Platnost zápisucontact- Kontaktní údaje (UserType)annotation- Anotace (RTF)migration- Migrovaná datametadata- Metadatahistory- Historie
ExpertListType – Seznam OZO s počtem záznamů
Pomocné funkce
Modul ippc_common.py obsahuje pomocné funkce:
get_dict_value_regional()- Získání regionálních hodnot ze slovníkuget_dict_value_uuid()- Získání UUID ze slovníku s validacíget_dict_value_rtf()- Získání RTF obsahu jako JSON
Workflow a přechody stavů
Projekt definuje workflow řízení pomocí:
PROCEEDING_TRANSITION - Definice přechodů mezi stavy:
- Mapování typu dokumentu na workflow uzel
- Cílový stav řízení
- Název uzlu pro UI
IppcWorkflowType - Model pro workflow:
status_from- Předchozí stavstatus_to- Následný stav- Plus standardní položky workflow (datum, uživatel, komentář)
Metadata a historie
Všechny hlavní entity obsahují:
MetadataType - Standardní metadata:
- UUID dokumentu
- Datumy vytvoření/modifikace
- Vytvořil/Upravil
- Verze
- Tagy
LogItemType - Položka historie:
- Časové razítko
- Uživatel
- Akce
- Popis změny
TimeLimitedType – Časově omezené záznamy:
- Platnost od/do
- Hodnota/objekt
Integrace se sysnet-pyutils
Projekt využívá typy z knihovny sysnet-pyutils:
LinkedType- Propojení entit (UUID + name)LocationType- Lokace s adresou a GPSGeoPointType- GPS souřadniceCodeValueType- Kód + hodnotaRegionalValueType- Regionální hodnotyWorkflowType- Workflow informaceUserType- Uživatelské údajePersonCoreType- Základní osobní údajeListTypeBase- Základní seznam
Seznamy a kategorizace
Projekt definuje několik konstantních seznamů:
DOC_CREATES_CONTAINER- Dokumenty vytvářející kontejnerCONTAINER_TITLES- Názvy kontejnerů podle typu dokumentuDOC_PROCEEDING- Dokumenty řízeníDOC_DOCUMENTATION- Dokumenty dokumentace
Použití
Projekt je distribuován jako Python balíček a může být nainstalován pomocí pip:
pip install ippc-model
Pro vývoj:
# Klonování repository
git clone https://github.com/SYSNET-CZ/models.git
cd models/ippc
# Vytvoření virtuálního prostředí
python -m venv .venv
source .venv/bin/activate # Linux/Mac
.venv\Scripts\activate # Windows
# Instalace závislostí
pip install -r requirements.txt
Pokrytí funkcionality
Datový model pokrývá celý životní cyklus IPPC řízení:
- Žádost o povolení – REQUEST
- Povolovací řízení – včetně shrnutí, vyjádření, rozhodnutí
- Změny povolení – CHANGE, MINORCHANGE
- Výjimky - EXCEPTIONS
- Kontroly – plánované i neplánované
- Zprávy o plnění – REPORT_CONDITIONS, REPORT_REVIEW
- Odvolání - APPEAL, APPEAL_RESULT
- Ukončení - TERMINATED, CLOSED, CANCELED
- Sloučení – MERGED
- Změny provozovatele – XCHG_COMPANY
Reporting pro Evropskou komisi
Model obsahuje speciální struktury pro reporting do EK:
- INSPIRE identifikátory
- BAT (Best Available Techniques) údaje
- Geometrická data
- Kompetentní autority
- Stav povolení
Závěr
Projekt IPPC Data Model představuje komplexní datový model pro správu integrovaných povolení dle české a evropské legislativy. Využívá moderní Python nástroje (Pydantic) pro typovou bezpečnost a validaci dat. Model je dostatečně flexibilní pro pokrytí všech aspektů IPPC řízení včetně reportingu do evropského systému.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ippc_model-1.0.2.tar.gz.
File metadata
- Download URL: ippc_model-1.0.2.tar.gz
- Upload date:
- Size: 30.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9989126d4efff3f08c2a6a8b7344f1f3b6076289f325cdad57f8baa2b67afe8
|
|
| MD5 |
ccf472601119afe32543cf2dfd0562ba
|
|
| BLAKE2b-256 |
4fce92177c8afd45ad3aa448152b5222be1e5b69d74b44904047cb842e7ea1bf
|
File details
Details for the file ippc_model-1.0.2-py3-none-any.whl.
File metadata
- Download URL: ippc_model-1.0.2-py3-none-any.whl
- Upload date:
- Size: 28.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae20c2e6773081114ffc057f4467b8aae2caf1e87e3c263b9f2b8aadc523081f
|
|
| MD5 |
fb5fcc566875c1f8c396c4f672cf7220
|
|
| BLAKE2b-256 |
802a6f08685c630c66fe8231f6b2b37397402ce4a5b9a023d1d2ca03aaea1669
|