2022-08-02 16:02:22 +08:00
|
|
|
|
from flask_appbuilder import Model
|
|
|
|
|
from sqlalchemy import Column, Integer, String, ForeignKey,Float
|
|
|
|
|
from sqlalchemy.orm import relationship
|
|
|
|
|
import datetime,time,json
|
|
|
|
|
from sqlalchemy import (
|
|
|
|
|
Boolean,
|
|
|
|
|
Column,
|
|
|
|
|
create_engine,
|
|
|
|
|
DateTime,
|
|
|
|
|
ForeignKey,
|
|
|
|
|
Integer,
|
|
|
|
|
MetaData,
|
|
|
|
|
String,
|
|
|
|
|
Table,
|
|
|
|
|
Text,
|
|
|
|
|
Enum,
|
|
|
|
|
)
|
|
|
|
|
from sqlalchemy import String,Column,Integer,ForeignKey,UniqueConstraint,BigInteger,TIMESTAMP
|
|
|
|
|
import numpy
|
|
|
|
|
import random
|
|
|
|
|
import copy
|
|
|
|
|
import logging
|
|
|
|
|
from myapp.models.helpers import AuditMixinNullable, ImportMixin
|
|
|
|
|
from flask import escape, g, Markup, request
|
|
|
|
|
from .model_team import Project
|
|
|
|
|
from myapp import app,db
|
|
|
|
|
from myapp.models.helpers import ImportMixin
|
|
|
|
|
# from myapp.models.base import MyappModel
|
|
|
|
|
from sqlalchemy import Column, Integer, String, ForeignKey ,Date,DateTime
|
|
|
|
|
from flask_appbuilder.models.decorators import renders
|
|
|
|
|
from flask import Markup
|
|
|
|
|
from myapp.models.base import MyappModelBase
|
|
|
|
|
import datetime
|
|
|
|
|
metadata = Model.metadata
|
|
|
|
|
conf = app.config
|
|
|
|
|
from myapp.utils import core
|
|
|
|
|
import re
|
|
|
|
|
from myapp.utils.py import py_k8s
|
|
|
|
|
import pysnooper
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Dataset(Model,AuditMixinNullable,MyappModelBase):
|
|
|
|
|
__tablename__ = 'dataset'
|
|
|
|
|
id = Column(Integer, primary_key=True)
|
|
|
|
|
name = Column(String(200), nullable=True) #
|
|
|
|
|
label = Column(String(200), nullable=True) #
|
|
|
|
|
describe = Column(String(2000), nullable=True) #
|
|
|
|
|
|
|
|
|
|
source_type = Column(String(200), nullable=True) # 数据集来源,开源,资产,采购
|
|
|
|
|
source = Column(String(200), nullable=True) # 数据集来源,github, 天池
|
|
|
|
|
industry = Column(String(200), nullable=True) # 行业,
|
|
|
|
|
icon = Column(String(2000), nullable=True) # 图标
|
|
|
|
|
field = Column(String(200), nullable=True) # 数据领域,视觉,听觉,文本
|
|
|
|
|
usage = Column(String(200), nullable=True) # 数据用途
|
|
|
|
|
research = Column(String(200), nullable=True) # 研究方向
|
|
|
|
|
|
|
|
|
|
storage_class = Column(String(200), nullable=True, default='') # 存储类型,压缩
|
|
|
|
|
file_type = Column(String(200), nullable=True,default='') # 文件类型,图片 png,音频
|
|
|
|
|
status = Column(String(200), nullable=True, default='') # 文件类型 有待校验,已下线
|
|
|
|
|
|
|
|
|
|
years = Column(String(200), nullable=True) # 年份
|
|
|
|
|
url = Column(String(1000),nullable=True) # 关联url
|
|
|
|
|
path = Column(String(400),nullable=True) # 本地的持久化路径
|
|
|
|
|
download_url = Column(String(1000),nullable=True) # 下载地址
|
|
|
|
|
storage_size = Column(String(200), nullable=True,default='') # 存储大小
|
|
|
|
|
entries_num = Column(String(200), nullable=True, default='') # 记录数目
|
|
|
|
|
duration = Column(String(200), nullable=True, default='') # 时长
|
|
|
|
|
price = Column(String(200), nullable=True, default='0') # 价格
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
owner = Column(String(200),nullable=True) #
|
|
|
|
|
|
|
|
|
|
expand = Column(Text(65536), nullable=True,default='{}')
|
|
|
|
|
|
|
|
|
|
def __repr__(self):
|
|
|
|
|
return self.name
|
|
|
|
|
|
|
|
|
|
@property
|
|
|
|
|
def url_html(self):
|
2022-08-27 21:34:48 +08:00
|
|
|
|
urls= self.url.split('\n')
|
|
|
|
|
|
|
|
|
|
html = ''
|
|
|
|
|
for url in urls:
|
|
|
|
|
if url.strip():
|
|
|
|
|
html+='<a target=_blank href="%s">%s</a><br>'%(url.strip(),url.strip())
|
|
|
|
|
return Markup('<div>%s</div>'%html)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@property
|
|
|
|
|
def icon_html(self):
|
|
|
|
|
img_url = self.icon if self.icon else "/static/assets/images/dataset.png"
|
|
|
|
|
url = '<a target=_blank href="%s"><img height="50px" width="50px" src="%s"></a>' % (img_url,img_url)
|
2022-08-02 16:02:22 +08:00
|
|
|
|
return Markup(url)
|
|
|
|
|
|
|
|
|
|
@property
|
|
|
|
|
def download_url_html(self):
|
2022-08-27 21:34:48 +08:00
|
|
|
|
urls= self.download_url.split('\n')
|
|
|
|
|
html = ''
|
|
|
|
|
for url in urls:
|
|
|
|
|
if url.strip():
|
|
|
|
|
html += '<a target=_blank href="%s">%s</a><br>' % (url.strip(), url.strip())
|
|
|
|
|
return Markup('<div>%s</div>'%html)
|