129 lines
3.5 KiB
Python
129 lines
3.5 KiB
Python
from dataclasses import dataclass
|
|
from typing import Optional
|
|
|
|
from modules.shared.DataClassDatabase import DataClassDatabase
|
|
|
|
|
|
@dataclass
|
|
class Creator(DataClassDatabase):
|
|
username: Optional[str] = None
|
|
modelCount: Optional[int] = None
|
|
link: Optional[str] = None
|
|
image: Optional[str] = None
|
|
|
|
def __post_init__(self):
|
|
super().__post_init__()
|
|
self._forwarding = {}
|
|
self._key_field = 'username'
|
|
self._table_name = 'creators'
|
|
self._standalone_entity = True
|
|
|
|
@dataclass
|
|
class Tag(DataClassDatabase):
|
|
name: Optional[str] = None
|
|
link: Optional[str] = None
|
|
|
|
def __post_init__(self):
|
|
super().__post_init__()
|
|
self._forwarding = {}
|
|
self._key_field = 'name'
|
|
self._table_name = 'tags'
|
|
self._standalone_entity = True
|
|
|
|
|
|
# @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'
|
|
#
|
|
|