feat: adding support for enums

- handling fronend upates
- adding serialization for DataService classes
- adapting notification emission
This commit is contained in:
Mose Müller
2023-08-02 12:06:20 +02:00
parent f30cd15d3f
commit e48e33c948
3 changed files with 21 additions and 1 deletions

View File

@ -1,6 +1,7 @@
import asyncio
import inspect
from collections.abc import Callable
from enum import Enum
from itertools import chain
from typing import Any
@ -517,6 +518,15 @@ class DataService(rpyc.Service):
"readonly": prop.fset is None,
"doc": inspect.getdoc(prop),
}
elif isinstance(value, Enum):
result[key] = {
"type": "Enum",
"value": value.name,
"enum": {
name: member.value
for name, member in value.__class__.__members__.items()
},
}
else:
result[key] = {
"type": type(value).__name__,