initial commit

This commit is contained in:
2022-11-13 10:07:08 +00:00
parent 2fb9fe3c0d
commit d132ee7563
8 changed files with 453 additions and 0 deletions

22
streamlabsio/models.py Normal file
View File

@@ -0,0 +1,22 @@
import re
from dataclasses import dataclass
def to_snake_case(s):
return re.sub(r"(?<!^)(?=[A-Z])", "_", s).lower()
def as_dataclass(identifier, data):
def attrs():
return list(to_snake_case(k) for k in data.keys())
return dataclass(
type(
f"{identifier.capitalize()}Dataclass",
(),
{
"attrs": attrs,
**{to_snake_case(k): v for k, v in data.items()},
},
)
)