Database dataclass is now working
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
from dataclasses import dataclass
|
||||
from typing import Optional
|
||||
|
||||
from .datamodel_base import ForwardingBase
|
||||
from modules.shared.DataClassDatabase import DataClassDatabase
|
||||
|
||||
|
||||
@dataclass
|
||||
class Creator(ForwardingBase):
|
||||
class Creator(DataClassDatabase):
|
||||
username: Optional[str] = None
|
||||
modelCount: Optional[int] = None
|
||||
link: Optional[str] = None
|
||||
@@ -14,9 +15,11 @@ class Creator(ForwardingBase):
|
||||
super().__post_init__()
|
||||
self._forwarding = {}
|
||||
self._key_field = 'username'
|
||||
self._table_name = 'creators'
|
||||
self._standalone_entity = True
|
||||
|
||||
@dataclass
|
||||
class Tag(ForwardingBase):
|
||||
class Tag(DataClassDatabase):
|
||||
name: Optional[str] = None
|
||||
link: Optional[str] = None
|
||||
|
||||
@@ -24,99 +27,102 @@ class Tag(ForwardingBase):
|
||||
super().__post_init__()
|
||||
self._forwarding = {}
|
||||
self._key_field = 'name'
|
||||
|
||||
@dataclass
|
||||
class ModelVersionStats(ForwardingBase):
|
||||
downloadCount: Optional[int] = None
|
||||
ratingCount: Optional[int] = None
|
||||
rating: Optional[int] = None
|
||||
thumbsUpCount: Optional[int] = None
|
||||
thumbsDownCount: Optional[int] = None
|
||||
|
||||
def __post_init__(self):
|
||||
super().__post_init__()
|
||||
self._forwarding = {}
|
||||
self._table_name = 'tags'
|
||||
self._standalone_entity = True
|
||||
|
||||
|
||||
|
||||
@dataclass
|
||||
class ModelVersion(ForwardingBase):
|
||||
id: Optional[int] = None
|
||||
index: Optional[int] = None
|
||||
name: Optional[str] = None
|
||||
baseModel: Optional[str] = None
|
||||
baseModelType: Optional[str] = None
|
||||
publishedAt: Optional[str] = None
|
||||
availability: Optional[str] = None
|
||||
nsfwLevel: Optional[int] = None
|
||||
description: Optional[str] = None
|
||||
trainedWords: Optional[list[str]] = None
|
||||
stats: Optional[ModelVersionStats] = None
|
||||
supportsGeneration: Optional[bool] = None
|
||||
downloadUrl: Optional[str] = None
|
||||
# FILES
|
||||
# IMAGES
|
||||
|
||||
|
||||
def __post_init__(self):
|
||||
super().__post_init__()
|
||||
self._forwarding = {
|
||||
'stats': ModelVersionStats,
|
||||
}
|
||||
self._key_field = 'id'
|
||||
|
||||
|
||||
|
||||
|
||||
@dataclass
|
||||
class ModelStats(ForwardingBase):
|
||||
downloadCount: Optional[int] = None
|
||||
favoriteCount: Optional[int] = None
|
||||
thumbsUpCount: Optional[int] = None
|
||||
thumbsDownCount: Optional[int] = None
|
||||
commentCount: Optional[int] = None
|
||||
ratingCount: Optional[int] = None
|
||||
rating: Optional[int] = None
|
||||
|
||||
def __post_init__(self):
|
||||
super().__post_init__()
|
||||
self._forwarding = {}
|
||||
|
||||
|
||||
|
||||
|
||||
@dataclass
|
||||
class Model(ForwardingBase):
|
||||
id: Optional[int] = None
|
||||
name: Optional[str] = None
|
||||
description: Optional[str] = None
|
||||
allowNoCredit: Optional[bool] = None
|
||||
allowCommercialUse: Optional[list] = None
|
||||
allowDerivatives: Optional[bool] = None
|
||||
allowDifferentLicense: Optional[bool] = None
|
||||
type: Optional[str] = None
|
||||
minor: Optional[bool] = None
|
||||
sfwOnly: Optional[bool] = None
|
||||
poi: Optional[bool] = None
|
||||
nsfw: Optional[bool] = None
|
||||
nsfwLevel: Optional[int] = None
|
||||
availability: Optional[str] = None
|
||||
cosmetic: Optional[str] = None
|
||||
supportsGeneration: Optional[bool] = None
|
||||
stats: Optional[ModelStats] = None
|
||||
creator: Optional[Creator] = None
|
||||
tags: Optional[list[Tag]] = None
|
||||
modelVersions: Optional[list[ModelVersion]] = None
|
||||
|
||||
|
||||
def __post_init__(self):
|
||||
super().__post_init__()
|
||||
self._forwarding = {
|
||||
'stats': ModelStats,
|
||||
'creator': Creator,
|
||||
'tags': Tag,
|
||||
'modelVersions': ModelVersion,
|
||||
}
|
||||
self._key_field = 'id'
|
||||
|
||||
# @dataclass
|
||||
# class ModelVersionStats(ForwardingBase):
|
||||
# downloadCount: Optional[int] = None
|
||||
# ratingCount: Optional[int] = None
|
||||
# rating: Optional[int] = None
|
||||
# thumbsUpCount: Optional[int] = None
|
||||
# thumbsDownCount: Optional[int] = None
|
||||
#
|
||||
# def __post_init__(self):
|
||||
# super().__post_init__()
|
||||
# self._forwarding = {}
|
||||
#
|
||||
#
|
||||
#
|
||||
# @dataclass
|
||||
# class ModelVersion(ForwardingBase):
|
||||
# id: Optional[int] = None
|
||||
# index: Optional[int] = None
|
||||
# name: Optional[str] = None
|
||||
# baseModel: Optional[str] = None
|
||||
# baseModelType: Optional[str] = None
|
||||
# publishedAt: Optional[str] = None
|
||||
# availability: Optional[str] = None
|
||||
# nsfwLevel: Optional[int] = None
|
||||
# description: Optional[str] = None
|
||||
# trainedWords: Optional[list[str]] = None
|
||||
# stats: Optional[ModelVersionStats] = None
|
||||
# supportsGeneration: Optional[bool] = None
|
||||
# downloadUrl: Optional[str] = None
|
||||
# # FILES
|
||||
# # IMAGES
|
||||
#
|
||||
#
|
||||
# def __post_init__(self):
|
||||
# super().__post_init__()
|
||||
# self._forwarding = {
|
||||
# 'stats': ModelVersionStats,
|
||||
# }
|
||||
# self._key_field = 'id'
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
# @dataclass
|
||||
# class ModelStats(ForwardingBase):
|
||||
# downloadCount: Optional[int] = None
|
||||
# favoriteCount: Optional[int] = None
|
||||
# thumbsUpCount: Optional[int] = None
|
||||
# thumbsDownCount: Optional[int] = None
|
||||
# commentCount: Optional[int] = None
|
||||
# ratingCount: Optional[int] = None
|
||||
# rating: Optional[int] = None
|
||||
#
|
||||
# def __post_init__(self):
|
||||
# super().__post_init__()
|
||||
# self._forwarding = {}
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
# @dataclass
|
||||
# class Model(ForwardingBase):
|
||||
# id: Optional[int] = None
|
||||
# name: Optional[str] = None
|
||||
# description: Optional[str] = None
|
||||
# allowNoCredit: Optional[bool] = None
|
||||
# allowCommercialUse: Optional[list] = None
|
||||
# allowDerivatives: Optional[bool] = None
|
||||
# allowDifferentLicense: Optional[bool] = None
|
||||
# type: Optional[str] = None
|
||||
# minor: Optional[bool] = None
|
||||
# sfwOnly: Optional[bool] = None
|
||||
# poi: Optional[bool] = None
|
||||
# nsfw: Optional[bool] = None
|
||||
# nsfwLevel: Optional[int] = None
|
||||
# availability: Optional[str] = None
|
||||
# cosmetic: Optional[str] = None
|
||||
# supportsGeneration: Optional[bool] = None
|
||||
# stats: Optional[ModelStats] = None
|
||||
# creator: Optional[Creator] = None
|
||||
# tags: Optional[list[Tag]] = None
|
||||
# modelVersions: Optional[list[ModelVersion]] = None
|
||||
#
|
||||
#
|
||||
# def __post_init__(self):
|
||||
# super().__post_init__()
|
||||
# self._forwarding = {
|
||||
# 'stats': ModelStats,
|
||||
# 'creator': Creator,
|
||||
# 'tags': Tag,
|
||||
# 'modelVersions': ModelVersion,
|
||||
# }
|
||||
# self._key_field = 'id'
|
||||
#
|
||||
|
||||
|
||||
Reference in New Issue
Block a user