dump-things-server/dump_things_service/patches/enumerations.py
2025-10-13 09:59:56 +02:00

35 lines
978 B
Python

""" Monkeypatch for linkml_runtime.utils.enumerations
Patches linkml_runtime.utils.enumerations.EnumDefinitionMeta.__getitem__
and linkml_runtime.utils.enumerations.EnumDefinitionMeta.__contains__
"""
import logging
from importlib import import_module
from jsonasobj2 import JsonObj
logger = logging.getLogger('dump_things_service')
def EnumDefinitionMeta__getitem__(cls, item):
# PATCH >>>>>
if isinstance(item, JsonObj):
return cls.__dict__[item.text]
# PATCH <<<<<
return cls.__dict__[item]
def EnumDefinitionMeta__contains__(cls, item) -> bool:
# PATCH >>>>>
if isinstance(item, JsonObj):
return item.text in cls.__dict__
# PATCH <<<<<
return item in cls.__dict__
logger.info('patching linkml_runtime.utils.enumerations')
mod = import_module('linkml_runtime.utils.enumerations')
mod.EnumDefinitionMeta.__getitem__ = EnumDefinitionMeta__getitem__
mod.EnumDefinitionMeta.__contains__ = EnumDefinitionMeta__contains__