From 6783474c7ad402d5afe6efbbe30cbb91a99d352c Mon Sep 17 00:00:00 2001
From: Johannes Nussbaum <johannes.nussbaum@dasch.swiss>
Date: Mon, 12 Aug 2024 16:36:09 +0200
Subject: [PATCH] runtime_checkable

---
 dsp_permissions_scripts/doap/doap_model.py | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/dsp_permissions_scripts/doap/doap_model.py b/dsp_permissions_scripts/doap/doap_model.py
index fa189e3c..6b3870ee 100644
--- a/dsp_permissions_scripts/doap/doap_model.py
+++ b/dsp_permissions_scripts/doap/doap_model.py
@@ -2,8 +2,10 @@
 
 from typing import Protocol
 from typing import Self
+from typing import runtime_checkable
 
 from pydantic import BaseModel
+from pydantic import ConfigDict
 from pydantic import model_validator
 
 from dsp_permissions_scripts.models.group import Group
@@ -13,11 +15,14 @@
 class Doap(BaseModel):
     """Model representing a DOAP, containing the target, the scope and the IRI of the DOAP."""
 
+    model_config = ConfigDict(arbitrary_types_allowed=True)
+
     target: DoapTarget
     scope: PermissionScope
     doap_iri: str
 
 
+@runtime_checkable
 class DoapTarget(Protocol):
     """
     A DOAP can be defined for either a Group, or for a ResourceClass, or for a Property,