diff --git a/myapp/__init__.py b/myapp/__init__.py index 87185213a..db52a805c 100644 --- a/myapp/__init__.py +++ b/myapp/__init__.py @@ -1,14 +1,12 @@ # 避免多进程同时启动对系统cpu负载过高 -import time,random # time.sleep(random.randint(1,10)) -from flask import g from copy import deepcopy import json import logging from logging.handlers import TimedRotatingFileHandler -from flask import redirect, g, flash, request, session, abort +from flask import g, abort import os -from flask import render_template,redirect +from flask import render_template from flask import Flask, redirect from flask_appbuilder import AppBuilder, IndexView, SQLA from flask_appbuilder.baseviews import expose @@ -19,11 +17,9 @@ from werkzeug.middleware.proxy_fix import ProxyFix import wtforms_json -from myapp import config from myapp.security import MyappSecurityManager from myapp.utils.core import pessimistic_connection_handling, setup_cache from myapp.utils.log import DBEventLogger -import pysnooper wtforms_json.init() # 在这个文件里面只创建app,不要做view层面的事情。 @@ -273,7 +269,7 @@ def check_login(): return if not g.user or not g.user.get_id(): - redirect_url = appbuilder.get_url_for_login # +"?login_url="+request.url + appbuilder.get_url_for_login # +"?login_url="+request.url # return redirect(redirect_url) abort(401) @@ -292,7 +288,7 @@ def myapp_after_request(resp): - except Exception as e: + except Exception: # print(e) resp.set_cookie('myapp_username', 'myapp') # resp.delete_cookie('id') @@ -327,9 +323,6 @@ def page_not_found(e): app.logger.handlers = gunicorn_logger.handlers app.logger.setLevel(gunicorn_logger.level) -# 引入视图 -from myapp import views - # def can_access(menuitem): # print(menuitem.name,menuitem.label) diff --git a/myapp/check_tables.py b/myapp/check_tables.py index 7c34986f2..f698340bd 100755 --- a/myapp/check_tables.py +++ b/myapp/check_tables.py @@ -1,6 +1,5 @@ #!/usr/bin/env python import os -import pysnooper # @pysnooper.snoop() def check_tables(): SQLALCHEMY_DATABASE_URI = os.getenv('MYSQL_SERVICE','') diff --git a/myapp/cli.py b/myapp/cli.py index 95ac7c652..5676d48ea 100755 --- a/myapp/cli.py +++ b/myapp/cli.py @@ -1,24 +1,14 @@ #!/usr/bin/env python from datetime import datetime -import logging -from subprocess import Popen -from sys import stdout - -import click -from colorama import Fore, Style -from flask import g import json from myapp import app, appbuilder, db, security_manager -from myapp.models.model_notebook import Notebook from myapp.models.model_team import Project,Project_User from myapp.models.model_job import Repository,Images,Job_Template,Pipeline,Task from myapp.models.model_dataset import Dataset from myapp.models.model_serving import Service,InferenceService from myapp.models.model_train_model import Training_Model -import csv import uuid conf = app.config -import requests def create_app(script_info=None): return app @@ -27,8 +17,6 @@ def create_app(script_info=None): def make_shell_context(): return dict(app=app, db=db) -import pysnooper - # https://dormousehole.readthedocs.io/en/latest/cli.html @app.cli.command('init') # @pysnooper.snoop() diff --git a/myapp/create_db.py b/myapp/create_db.py index 4982d7f66..87df495c2 100755 --- a/myapp/create_db.py +++ b/myapp/create_db.py @@ -1,6 +1,5 @@ #!/usr/bin/env python import os -import pysnooper # @pysnooper.snoop() def init_db(): SQLALCHEMY_DATABASE_URI = os.getenv('MYSQL_SERVICE','') diff --git a/myapp/forms.py b/myapp/forms.py index 393537443..cfdeb6cc0 100644 --- a/myapp/forms.py +++ b/myapp/forms.py @@ -1,14 +1,12 @@ """Contains the logic to create cohesive forms on the explore view""" -from flask_appbuilder.fieldwidgets import BS3TextFieldWidget from wtforms import Field -from flask_appbuilder.fieldwidgets import BS3TextFieldWidget,BS3PasswordFieldWidget,DatePickerWidget,DateTimePickerWidget,Select2ManyWidget,Select2Widget -from wtforms import widgets +from flask_appbuilder.fieldwidgets import BS3TextFieldWidget from myapp import app conf = app.config -from wtforms.validators import DataRequired, Length, NumberRange, Optional,Regexp,ValidationError +from wtforms.validators import ValidationError # from myapp.models.base import MyappModelBase # model_base=MyappModelBase() # @@ -90,16 +88,9 @@ def filter_not_empty_values(value): -import pysnooper,datetime,time,json +import json from wtforms.widgets.core import HTMLString,html_params - -try: - from html import escape -except ImportError: - from cgi import escape -from wtforms.compat import text_type, iteritems - - +from wtforms.compat import text_type class MyCodeArea(object): def __init__(self, code=''): diff --git a/myapp/jinja_context.py b/myapp/jinja_context.py index 7f0e8d014..9d114fed7 100644 --- a/myapp/jinja_context.py +++ b/myapp/jinja_context.py @@ -4,7 +4,7 @@ import json import random import time -from typing import Any, List, Optional, Tuple +from typing import Any, List, Optional import uuid from dateutil.relativedelta import relativedelta diff --git a/myapp/models/__init__.py b/myapp/models/__init__.py index 5421a5f2f..8b1378917 100644 --- a/myapp/models/__init__.py +++ b/myapp/models/__init__.py @@ -1,4 +1 @@ -from . import log -from . import model_job -from . import user_attributes # noqa diff --git a/myapp/models/base.py b/myapp/models/base.py index cef55025d..56a2e0c87 100644 --- a/myapp/models/base.py +++ b/myapp/models/base.py @@ -1,4 +1,3 @@ -from flask_appbuilder import Model from flask_babel import lazy_gettext as _ import re from myapp.utils import core diff --git a/myapp/models/helpers.py b/myapp/models/helpers.py index f40f84543..6655a3ac6 100644 --- a/myapp/models/helpers.py +++ b/myapp/models/helpers.py @@ -14,7 +14,6 @@ from sqlalchemy.ext.declarative import declared_attr from sqlalchemy.orm.exc import MultipleResultsFound import yaml -import pysnooper from myapp.utils.core import QueryStatus diff --git a/myapp/models/log.py b/myapp/models/log.py index b939a884a..613cefe9a 100755 --- a/myapp/models/log.py +++ b/myapp/models/log.py @@ -3,27 +3,17 @@ from datetime import datetime from flask_appbuilder import Model from sqlalchemy import ( - Boolean, Column, - create_engine, DateTime, ForeignKey, Integer, - MetaData, String, - Table, Text, ) -from sqlalchemy.orm import relationship, sessionmaker, subqueryload -from myapp import ( - app, - appbuilder, - conf, - db -) +from sqlalchemy.orm import relationship from myapp.models.base import MyappModelBase -from myapp import app, db, is_feature_enabled, security_manager +from myapp import app from myapp.security import MyUser diff --git a/myapp/models/model_aihub.py b/myapp/models/model_aihub.py index 22bb32a0d..8cd2b8011 100644 --- a/myapp/models/model_aihub.py +++ b/myapp/models/model_aihub.py @@ -1,27 +1,13 @@ from flask_appbuilder import Model -from sqlalchemy import ( - Boolean, - Column, - create_engine, - DateTime, - ForeignKey, - Integer, - MetaData, - String, - Table, - Text, - Enum, -) +from sqlalchemy import Text -from myapp import app,db +from myapp import app from myapp.models.helpers import ImportMixin -# from myapp.models.base import MyappModel -from sqlalchemy import Column, Integer, String, ForeignKey ,Date,DateTime +from sqlalchemy import Column, Integer, String from flask import Markup from myapp.models.base import MyappModelBase -import datetime metadata = Model.metadata conf = app.config diff --git a/myapp/models/model_dataset.py b/myapp/models/model_dataset.py index fd42ccc0b..5e08557fe 100644 --- a/myapp/models/model_dataset.py +++ b/myapp/models/model_dataset.py @@ -1,30 +1,12 @@ from flask_appbuilder import Model -from sqlalchemy import ( - Boolean, - Column, - create_engine, - DateTime, - ForeignKey, - Integer, - MetaData, - String, - Table, - Text, - Enum, -) - -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 sqlalchemy import Text + +from myapp.models.helpers import AuditMixinNullable +from myapp import app +from sqlalchemy import Column, Integer, String from flask import Markup from myapp.models.base import MyappModelBase -import datetime metadata = Model.metadata conf = app.config diff --git a/myapp/models/model_dimension.py b/myapp/models/model_dimension.py index 4f66a2a21..d0d480bd6 100644 --- a/myapp/models/model_dimension.py +++ b/myapp/models/model_dimension.py @@ -1,32 +1,13 @@ 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 +from sqlalchemy import Text +from sqlalchemy import UniqueConstraint -from flask import escape, g, Markup, request -from .model_team import Project -from myapp import app,db +from flask import g +from myapp import app 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 sqlalchemy import Column, Integer, String from flask import Markup from myapp.models.base import MyappModelBase -import datetime metadata = Model.metadata conf = app.config @@ -60,7 +41,7 @@ def table_html(self): @property def operate_html(self): - url=f''' + url=''' 创建远程表 | 建外表示例 | 清空表记录 '''%(self.id,self.id,self.id) return Markup(url) diff --git a/myapp/models/model_docker.py b/myapp/models/model_docker.py index ef032fb3c..32b0ecba0 100644 --- a/myapp/models/model_docker.py +++ b/myapp/models/model_docker.py @@ -1,29 +1,15 @@ 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, + Text ) -import pysnooper from myapp.models.base import MyappModelBase -from myapp.models.helpers import AuditMixinNullable, ImportMixin -from flask import escape, g, Markup, request -from myapp import app,db -from sqlalchemy import Column, Integer, String, ForeignKey ,Date,DateTime +from myapp.models.helpers import AuditMixinNullable +from myapp import app +from sqlalchemy import Column, Integer, String, ForeignKey from flask import Markup -import datetime metadata = Model.metadata conf = app.config # from myapp.utils.py.py_k8s import K8s diff --git a/myapp/models/model_etl_pipeline.py b/myapp/models/model_etl_pipeline.py index 0fa91b50d..99253ca5b 100644 --- a/myapp/models/model_etl_pipeline.py +++ b/myapp/models/model_etl_pipeline.py @@ -1,32 +1,16 @@ 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 myapp.models.helpers import AuditMixinNullable, ImportMixin - -from myapp import app,db +from sqlalchemy import Text + +from myapp.models.helpers import AuditMixinNullable + +from myapp import app from myapp.models.helpers import ImportMixin -# from myapp.models.base import MyappModel -from sqlalchemy import Column, Integer, String, ForeignKey ,Date,DateTime +from sqlalchemy import Column, Integer, String, ForeignKey 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 diff --git a/myapp/models/model_job.py b/myapp/models/model_job.py index e5023098f..f76a04311 100644 --- a/myapp/models/model_job.py +++ b/myapp/models/model_job.py @@ -1,31 +1,21 @@ from flask_appbuilder import Model -from sqlalchemy import Column, Integer, String, ForeignKey,Float from sqlalchemy.orm import relationship -import datetime,time,json +import json from sqlalchemy import ( Boolean, - Column, - create_engine, - DateTime, - ForeignKey, - Integer, - MetaData, - String, - Table, Text, Enum, ) import numpy import random import copy -import logging -from myapp.models.helpers import AuditMixinNullable, ImportMixin +from myapp.models.helpers import AuditMixinNullable from myapp import app,db from myapp.models.helpers import ImportMixin -from sqlalchemy import Column, Integer, String, ForeignKey ,Date,DateTime +from sqlalchemy import Column, Integer, String, ForeignKey, DateTime from flask_appbuilder.models.decorators import renders from flask import Markup from myapp.models.base import MyappModelBase @@ -33,10 +23,7 @@ metadata = Model.metadata conf = app.config from myapp.utils import core -import re from myapp.utils.py import py_k8s -import pysnooper - class Repository(Model,AuditMixinNullable,MyappModelBase): __tablename__ = 'repository' @@ -225,7 +212,7 @@ def log(self): pipeline_url = "/pipeline_modelview/web/log/%s"%self.id return Markup(f'日志') else: - return Markup(f'日志') + return Markup('日志') @property @@ -556,7 +543,7 @@ def monitoring_html(self): monitoring = json.loads(self.monitoring) monitoring['link']=self.pipeline.project.cluster.get('GRAFANA_HOST','').strip('/')+conf.get('GRAFANA_TASK_PATH')+monitoring.get('pod_name','') return Markup('
' + json.dumps(monitoring,ensure_ascii=False,indent=4) + '
')
- except Exception as e:
+ except Exception:
return Markup(' 暂无
')
@property
@@ -635,9 +622,8 @@ def log(self):
pipeline_url = self.pipeline.project.cluster.get('PIPELINE_URL')+ "runs/details/" +str(self.run_id)
return Markup(f'日志')
else:
- return Markup(f'日志')
+ return Markup('日志')
-import sqlalchemy as sa
class Crd:
# __tablename__ = "crd"
id = Column(Integer, primary_key=True)
@@ -808,7 +794,7 @@ def pipeline_url(self):
except Exception as e:
print(e)
- return Markup(f'未知')
+ return Markup('未知')
@property
def pipeline(self):
@@ -850,7 +836,7 @@ def log(self):
except Exception as e:
print(e)
- return Markup(f'日志')
+ return Markup('日志')
@property
def stop(self):
@@ -871,7 +857,7 @@ def pipeline(self):
return Markup(f'{pipeline.describe}')
except Exception as e:
print(e)
- return Markup(f'未知')
+ return Markup('未知')
@property
def run_instance(self):
@@ -883,7 +869,7 @@ def run_instance(self):
return Markup(f'运行实例')
except Exception as e:
print(e)
- return Markup(f'未知')
+ return Markup('未知')
diff --git a/myapp/models/model_metadata.py b/myapp/models/model_metadata.py
index 5df385049..53002baa9 100644
--- a/myapp/models/model_metadata.py
+++ b/myapp/models/model_metadata.py
@@ -1,31 +1,13 @@
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
+from sqlalchemy import Float
+from sqlalchemy import Text
+from sqlalchemy import BigInteger
-from myapp import app,db
+from myapp import app
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 sqlalchemy import Column, Integer, String, Date
from myapp.models.base import MyappModelBase
-import datetime
metadata = Model.metadata
conf = app.config
diff --git a/myapp/models/model_metadata_metric.py b/myapp/models/model_metadata_metric.py
index 121fabce1..45b7a84ec 100644
--- a/myapp/models/model_metadata_metric.py
+++ b/myapp/models/model_metadata_metric.py
@@ -1,32 +1,15 @@
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
-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 AuditMixinNullable
+from myapp import app
from myapp.models.helpers import ImportMixin
-# from myapp.models.base import MyappModel
-from sqlalchemy import Column, Integer, String, ForeignKey ,Date,DateTime
+from sqlalchemy import Column, Integer, String
from myapp.models.base import MyappModelBase
-import datetime
metadata = Model.metadata
conf = app.config
diff --git a/myapp/models/model_nni.py b/myapp/models/model_nni.py
index f2d5f74d2..9428c5e56 100644
--- a/myapp/models/model_nni.py
+++ b/myapp/models/model_nni.py
@@ -1,32 +1,18 @@
from flask_appbuilder import Model
-from sqlalchemy import Column, Integer, String, ForeignKey,Float
+from sqlalchemy import 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 myapp.utils import core
-import re
from myapp.models.base import MyappModelBase
-from myapp.models.helpers import AuditMixinNullable, ImportMixin
-from flask import escape, g, Markup, request
-from myapp import app,db
-from myapp.models.helpers import ImportMixin
+from myapp.models.helpers import AuditMixinNullable
+from flask import request
+from myapp import app
-from sqlalchemy import Column, Integer, String, ForeignKey ,Date,DateTime
+from sqlalchemy import Column, Integer, String, ForeignKey
from flask_appbuilder.models.decorators import renders
from flask import Markup
-import datetime
metadata = Model.metadata
conf = app.config
diff --git a/myapp/models/model_notebook.py b/myapp/models/model_notebook.py
index a7ff328da..7ff13d0d3 100644
--- a/myapp/models/model_notebook.py
+++ b/myapp/models/model_notebook.py
@@ -1,29 +1,16 @@
from flask_appbuilder import Model
-from sqlalchemy import Column, Integer, String, ForeignKey,Float
from sqlalchemy.orm import relationship
-import datetime,time,json
+import json
from sqlalchemy import (
- Boolean,
- Column,
- create_engine,
- DateTime,
- ForeignKey,
- Integer,
- MetaData,
- String,
- Table,
Text,
Enum,
)
-import pysnooper
from myapp.models.base import MyappModelBase
-from myapp.models.helpers import AuditMixinNullable, ImportMixin
-from flask import escape, g, Markup, request
-from myapp import app,db
-from myapp.models.helpers import ImportMixin
+from myapp.models.helpers import AuditMixinNullable
+from flask import g, request
+from myapp import app
-from sqlalchemy import Column, Integer, String, ForeignKey ,Date,DateTime
-from flask_appbuilder.models.decorators import renders
+from sqlalchemy import Column, Integer, String, ForeignKey
from flask import Markup
import datetime
metadata = Model.metadata
@@ -115,7 +102,7 @@ def status(self):
return url
return status
- except Exception as e:
+ except Exception:
# print(e)
return "unknown"
diff --git a/myapp/models/model_service_pipeline.py b/myapp/models/model_service_pipeline.py
index 26c3ea00b..22bdc0775 100644
--- a/myapp/models/model_service_pipeline.py
+++ b/myapp/models/model_service_pipeline.py
@@ -1,34 +1,22 @@
from flask_appbuilder import Model
-from sqlalchemy import Column, Integer, String, ForeignKey,Float
from sqlalchemy.orm import relationship
-import datetime,time,json
+import json
from sqlalchemy import (
- Boolean,
- Column,
- create_engine,
- DateTime,
- ForeignKey,
- Integer,
- MetaData,
- String,
- Table,
Text,
Enum,
)
import numpy
import random
import copy
-import logging
-from myapp.models.helpers import AuditMixinNullable, ImportMixin
+from myapp.models.helpers import AuditMixinNullable
from myapp import app,db
from myapp.models.helpers import ImportMixin
-from sqlalchemy import Column, Integer, String, ForeignKey ,Date,DateTime
+from sqlalchemy import Column, Integer, String, ForeignKey
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
@@ -87,7 +75,7 @@ def log(self):
service_pipeline_url = "/service_pipeline_modelview/web/log/%s"%self.id
return Markup(f'日志')
else:
- return Markup(f'日志')
+ return Markup('日志')
@property
@@ -98,7 +86,7 @@ def pod(self):
@property
def operate_html(self):
- url=self.project.cluster.get('GRAFANA_HOST','').strip('/')+conf.get('GRAFANA_SERVICE_PATH')+self.name
+ self.project.cluster.get('GRAFANA_HOST','').strip('/')+conf.get('GRAFANA_SERVICE_PATH')+self.name
dom=f'''
部署 |
pod |
diff --git a/myapp/models/model_serving.py b/myapp/models/model_serving.py
index f82630df9..74e1c6c9e 100644
--- a/myapp/models/model_serving.py
+++ b/myapp/models/model_serving.py
@@ -1,32 +1,16 @@
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,
-)
-import pysnooper
+import json
+from sqlalchemy import Text
from myapp.utils import core
-import re
-from myapp.models.helpers import AuditMixinNullable, ImportMixin
-from flask import escape, g, Markup, request
+from myapp.models.helpers import AuditMixinNullable
+from flask import request
from .model_team import Project
-from myapp import app,db
+from myapp import app
from myapp.models.base import MyappModelBase
-from myapp.models.helpers import ImportMixin
-from sqlalchemy import Column, Integer, String, ForeignKey ,Date,DateTime
+from sqlalchemy import Column, Integer, String, ForeignKey
from flask import Markup
import datetime
@@ -230,7 +214,7 @@ def operate_html(self):
if help_url:
dom=f'帮助 | '+dom
else:
- dom = f'帮助 | ' + dom
+ dom = '帮助 | ' + dom
return Markup(dom)
@property
diff --git a/myapp/models/model_team.py b/myapp/models/model_team.py
index e281ecd4c..de3fb6ffe 100644
--- a/myapp/models/model_team.py
+++ b/myapp/models/model_team.py
@@ -1,35 +1,19 @@
from flask_appbuilder import Model
-from sqlalchemy import Column, Integer, String, ForeignKey,Float
-from sqlalchemy.orm import relationship
-import datetime,time,json
+import json
from myapp import app,db
from sqlalchemy import (
- Boolean,
- Column,
- create_engine,
- DateTime,
- ForeignKey,
- Integer,
- MetaData,
- String,
- Table,
Text,
Enum
)
-from myapp.models.helpers import AuditMixinNullable, ImportMixin
+from myapp.models.helpers import AuditMixinNullable
from sqlalchemy.orm import backref, relationship
from myapp.models.base import MyappModelBase
-from myapp.models.helpers import ImportMixin
-from sqlalchemy import Column, Integer, String, ForeignKey ,Date,DateTime
from flask_appbuilder.models.decorators import renders
from flask import Markup
-import datetime
from sqlalchemy import String,Column,Integer,ForeignKey,UniqueConstraint
-from myapp.security import MyUser
metadata = Model.metadata
conf = app.config
-import pysnooper
diff --git a/myapp/models/model_train_model.py b/myapp/models/model_train_model.py
index 3dd846a6d..0e5262ae0 100644
--- a/myapp/models/model_train_model.py
+++ b/myapp/models/model_train_model.py
@@ -1,30 +1,14 @@
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 Text
-from myapp.models.helpers import AuditMixinNullable, ImportMixin
+from myapp.models.helpers import AuditMixinNullable
from .model_team import Project
from .model_job import Pipeline
from myapp import app,db
from myapp.models.base import MyappModelBase
-from myapp.models.helpers import ImportMixin
-from sqlalchemy import Column, Integer, String, ForeignKey ,Date,DateTime
+from sqlalchemy import Column, Integer, String, ForeignKey
from flask import Markup
-import datetime
metadata = Model.metadata
conf = app.config
@@ -59,7 +43,7 @@ def pipeline_url(self):
if pipeline:
return Markup(f'{pipeline.describe}')
- return Markup(f'未知')
+ return Markup('未知')
@property
def project_url(self):
@@ -68,7 +52,7 @@ def project_url(self):
elif self.pipeline and self.pipeline.project:
return Markup(f'{self.pipeline.project.name}({self.pipeline.project.describe})')
else:
- return Markup(f'未知')
+ return Markup('未知')
@property
def deploy(self):
diff --git a/myapp/project.py b/myapp/project.py
index c1daf04a3..7b3487079 100644
--- a/myapp/project.py
+++ b/myapp/project.py
@@ -1,32 +1,8 @@
from werkzeug.security import check_password_hash
-from flask_appbuilder.security.sqla.models import (
- assoc_permissionview_role,
- assoc_user_role,
-)
-
-from flask import g
-
from flask_appbuilder.security.views import AuthDBView
from flask_appbuilder.security.views import expose
-from flask_appbuilder.const import (
- AUTH_DB,
- AUTH_LDAP,
- AUTH_OAUTH,
- AUTH_OID,
- AUTH_REMOTE_USER,
- LOGMSG_ERR_SEC_AUTH_LDAP,
- LOGMSG_ERR_SEC_AUTH_LDAP_TLS,
- LOGMSG_WAR_SEC_LOGIN_FAILED,
- LOGMSG_WAR_SEC_NO_USER,
- LOGMSG_WAR_SEC_NOLDAP_OBJ,
- PERMISSION_PREFIX
-)
-import pysnooper
-import json
-
-
-
+from flask_appbuilder.const import LOGMSG_WAR_SEC_LOGIN_FAILED
# 推送给管理员消息的函数
def push_admin(message):
@@ -39,18 +15,9 @@ def push_message(receivers,message,link=None):
import logging as log
-import datetime
-import logging
-import re
-
-from flask import abort, current_app, flash, g, redirect, request, session, url_for
-from flask_babel import lazy_gettext
+from flask import flash, g, redirect, request, session
from flask_login import login_user, logout_user
-import jwt
-from werkzeug.security import generate_password_hash
-from flask_appbuilder.security.forms import LoginForm_db, LoginForm_oid, ResetPasswordForm, UserInfoEdit
-from flask_appbuilder._compat import as_unicode
-import pysnooper
+from flask_appbuilder.security.forms import LoginForm_db
class MyCustomRemoteUserView():
@@ -76,7 +43,7 @@ def login(self):
return redirect(self.appbuilder.get_url_for_index)
form = LoginForm_db()
- method = request.method
+ request.method
# 如果提交请求。就是认证
if form.validate_on_submit():
username = form.username.data
diff --git a/myapp/security.py b/myapp/security.py
index 76c96bddc..945f67b7b 100644
--- a/myapp/security.py
+++ b/myapp/security.py
@@ -1,54 +1,39 @@
-from flask_login import current_user, LoginManager
+from flask_login import current_user
import logging
-import json
import jwt
from flask_babel import lazy_gettext
-from flask import current_app,redirect, g, flash, request, session, abort, make_response
+from flask import current_app
from flask_appbuilder.security.sqla import models as ab_models
from flask_appbuilder.security.sqla.manager import SecurityManager
-from werkzeug.security import generate_password_hash
from flask_babel import lazy_gettext as _
from flask_appbuilder.security.views import (
PermissionModelView,
PermissionViewModelView,
RoleModelView,
- UserModelView,
- RoleListWidget,
- RoleShowWidget,
-)
-from werkzeug.security import check_password_hash
-from flask_appbuilder.security.sqla.models import (
- assoc_permissionview_role,
- assoc_user_role,
+ UserModelView
)
+from flask_appbuilder.security.sqla.models import assoc_user_role
-from sqlalchemy.orm import backref, relationship
-from flask_appbuilder.security.decorators import has_access, has_access_api, permission_name
+from flask_appbuilder.security.decorators import has_access
from flask_appbuilder.models.sqla.interface import SQLAInterface
from flask_appbuilder.widgets import ListWidget
-from flask_appbuilder.const import LOGMSG_WAR_SEC_LOGIN_FAILED
from sqlalchemy import or_
from flask_appbuilder.security.views import expose
-from flask import redirect, g, flash, request, session, abort
+from flask import g, flash, request
from flask_appbuilder.security.sqla.models import assoc_permissionview_role
-from sqlalchemy import select, Table
+from sqlalchemy import select
from flask_appbuilder.const import (
AUTH_DB,
AUTH_LDAP,
AUTH_OAUTH,
AUTH_OID,
AUTH_REMOTE_USER,
- LOGMSG_ERR_SEC_AUTH_LDAP,
- LOGMSG_ERR_SEC_AUTH_LDAP_TLS,
- LOGMSG_WAR_SEC_LOGIN_FAILED,
- LOGMSG_WAR_SEC_NO_USER,
- LOGMSG_WAR_SEC_NOLDAP_OBJ,
- PERMISSION_PREFIX
+ LOGMSG_WAR_SEC_LOGIN_FAILED
)
@@ -90,7 +75,7 @@ def __init__(self, **kwargs):
# expand user
from flask_appbuilder.security.sqla.models import User,Role
-from sqlalchemy import Column, Integer, ForeignKey, String, Sequence, Table
+from sqlalchemy import Column, String
@@ -115,7 +100,7 @@ def secret(self):
pass
# help(self.changed_on)
# timestamp = int(func.date_format(self.changed_on))
- timestamp = int(self.changed_on.timestamp())
+ int(self.changed_on.timestamp())
payload = {
"iss": self.username
# "iat": timestamp, # Issue period
@@ -217,15 +202,13 @@ def userinfo(self):
appbuilder=self.appbuilder,
)
-from flask_appbuilder.security.views import expose, ModelView, SimpleFormView
-from flask_appbuilder.security.forms import LoginForm_db, LoginForm_oid, ResetPasswordForm, UserInfoEdit
+from flask_appbuilder.security.views import SimpleFormView
from flask_appbuilder._compat import as_unicode
from flask_babel import lazy_gettext
-from flask_wtf.recaptcha import RecaptchaField
-from wtforms import BooleanField, PasswordField, StringField
-from wtforms.validators import DataRequired, Email, EqualTo
+from wtforms import StringField
+from wtforms.validators import DataRequired
-from flask_appbuilder.fieldwidgets import BS3PasswordFieldWidget, BS3TextFieldWidget
+from flask_appbuilder.fieldwidgets import BS3TextFieldWidget
from flask_appbuilder.forms import DynamicForm
@@ -491,11 +474,11 @@ def add_org_user(self,username,first_name,last_name,org,email,roles,password="",
project_user.user_id = user.id
self.get_session.add(project_user)
self.get_session.commit()
- except Exception as e1:
+ except Exception:
self.get_session.rollback()
return user
- except Exception as e:
+ except Exception:
self.get_session.rollback()
return False
@@ -668,7 +651,6 @@ def is_user_defined_permission(self, perm):
# @pysnooper.snoop()
def sync_role_definitions(self):
"""Inits the Myapp application with security roles and such"""
- from myapp import conf
logging.info("Syncing role definition")
diff --git a/myapp/tasks/__init__.py b/myapp/tasks/__init__.py
index ba993339f..e69de29bb 100644
--- a/myapp/tasks/__init__.py
+++ b/myapp/tasks/__init__.py
@@ -1,2 +0,0 @@
-from . import schedules
-from . import async_task
\ No newline at end of file
diff --git a/myapp/tasks/async_task.py b/myapp/tasks/async_task.py
index b44e34883..843e4451a 100644
--- a/myapp/tasks/async_task.py
+++ b/myapp/tasks/async_task.py
@@ -1,52 +1,16 @@
"""Utility functions used across Myapp"""
-import sys,os
-import numpy as np
-from bs4 import BeautifulSoup
-import requests,base64,hashlib
-from collections import namedtuple
-import datetime
-from email.utils import make_msgid, parseaddr
-import logging
-import time,json
-from urllib.error import URLError
-import urllib.request
import pysnooper
-import re
-import croniter
-from dateutil.tz import tzlocal
-import shutil
-import os,sys,io,json,datetime,time
-import subprocess
-from datetime import datetime, timedelta
-import os
-import sys
+from datetime import datetime
import time
-import datetime
from myapp.utils.py.py_k8s import K8s
from myapp.utils.celery import session_scope
from myapp.project import push_message,push_admin
from myapp.tasks.celery_app import celery_app
# Myapp framework imports
-from myapp import app, db, security_manager
-from myapp.models.model_job import (
- Pipeline,
- RunHistory,
- Workflow,
- Tfjob,
- Pytorchjob,
- Xgbjob,
- Task
-)
-from myapp.models.model_notebook import Notebook
+from myapp import app
from myapp.models.model_serving import InferenceService
from myapp.views.view_inferenceserving import InferenceService_ModelView_base
-from myapp.security import (
- MyUser
-)
-from myapp.views.view_pipeline import run_pipeline,dag_to_pipeline
-from sqlalchemy.exc import InvalidRequestError,OperationalError
-from sqlalchemy import or_
from myapp.models.model_docker import Docker
conf = app.config
diff --git a/myapp/tasks/schedules.py b/myapp/tasks/schedules.py
index ae3942976..719cf52a3 100644
--- a/myapp/tasks/schedules.py
+++ b/myapp/tasks/schedules.py
@@ -1,34 +1,20 @@
"""Utility functions used across Myapp"""
-import sys,os
-import numpy as np
-from bs4 import BeautifulSoup
-import requests,base64,hashlib
-from collections import namedtuple
-import datetime
-from email.utils import make_msgid, parseaddr
import logging
-import time,json
-from urllib.error import URLError
-import urllib.request
import pysnooper
import re
import croniter
-from dateutil.tz import tzlocal
-import shutil
-import os,sys,io,json,datetime,time
+import json
import subprocess
import os
-import sys
import time
-import random
import datetime
from myapp.utils.py.py_k8s import K8s
from myapp.utils.celery import session_scope
from myapp.project import push_message,push_admin
from myapp.tasks.celery_app import celery_app
# Myapp framework imports
-from myapp import app, db, security_manager
+from myapp import app
from myapp.models.model_job import (
Pipeline,
RunHistory,
@@ -40,11 +26,7 @@
)
from myapp.models.model_notebook import Notebook
from myapp.models.model_serving import InferenceService
-from myapp.security import (
- MyUser
-)
from myapp.views.view_pipeline import run_pipeline,dag_to_pipeline
-from sqlalchemy.exc import InvalidRequestError,OperationalError
from sqlalchemy import or_
class Pusherror(Exception):
@@ -915,7 +897,7 @@ def check_pipeline_resource():
tasks = dbsession.query(Task).filter(Task.pipeline_id == int(pipeline_id)).all() # 获取model记录
for task in tasks:
try:
- task_resources= json.loads(task.monitoring).get('task',[])
+ json.loads(task.monitoring).get('task',[])
tfjob_resources = json.loads(task.monitoring).get('tfjob',[])
monitoring_workflow[pipeline_id]['task'][task.label]={}
# if task_resources:
@@ -1235,8 +1217,7 @@ def get_gpu_per_node(org):
# get_dir_size('/data/k8s/kubeflow/pipeline/workspace')
@pysnooper.snoop()
def get_deployment_node_selector(name,namespace):
- from kubernetes import client, config, watch
- from kubernetes.client.models import v1_pod, v1_object_meta, v1_pod_spec, v1_deployment, v1_deployment_spec
+ from kubernetes import client
exist_dp = client.AppsV1Api().read_namespaced_deployment(name=name, namespace=namespace)
node_selector = {}
@@ -1252,7 +1233,7 @@ def get_deployment_node_selector(name,namespace):
if match_expression.operator == 'Equal':
node_selector[match_expression.key] = match_expression.values
- except Exception as e:
+ except Exception:
pass
# print(e)
@@ -1268,7 +1249,7 @@ def get_deployment_node_selector(name,namespace):
@celery_app.task(name="task.adjust_service_resource", bind=True)
@pysnooper.snoop(watch_explode=())
def adjust_service_resource(task):
- from kubernetes import client, config, watch
+ from kubernetes import client
cluster_name='tke'
namespace = conf.get('SERVICE_NAMESPACE')
cluster = conf.get('CLUSTERS', {})[cluster_name]
@@ -1285,8 +1266,8 @@ def adjust_service_resource(task):
else:
if inferenceserving.resource_gpu and inferenceserving.resource_gpu!='0' and inferenceserving.priority==1:
# print(hpa)
- target_utilizations = hpa.spec.metrics
- current_utilization = hpa.status.current_metrics
+ hpa.spec.metrics
+ hpa.status.current_metrics
current_replicas = hpa.status.current_replicas
desired_replicas = hpa.status.desired_replicas
if desired_replicas>current_replicas: # 期望扩容
@@ -1306,7 +1287,7 @@ def adjust_service_resource(task):
if current_replicas > service.min_replicas:
# 随意缩放一个pod
if not target_node_selector.get('gpu-type',''):
- api_response = client.AppsV1Api().patch_namespaced_deployment_scale(service.name, namespace,[{'op': 'replace', 'path': '/spec/replicas', 'value': current_replicas-1}])
+ client.AppsV1Api().patch_namespaced_deployment_scale(service.name, namespace,[{'op': 'replace', 'path': '/spec/replicas', 'value': current_replicas-1}])
push_message([service.created_by.username,inferenceserving.created_by.username]+conf.get('ADMIN_USER').split(','),'缩服务%s一卡,扩服务%s一卡'%(service.name,inferenceserving.name))
return
# 缩放指定pod
@@ -1360,7 +1341,7 @@ def update_aihub(task):
with session_scope(nullpool=True) as dbsession:
try:
if len(aihubs)>0:
- allaihubs = dbsession.query(Aihub).delete()
+ dbsession.query(Aihub).delete()
dbsession.commit()
for data in aihubs:
print(data)
diff --git a/myapp/tools/watch_pytorchjob.py b/myapp/tools/watch_pytorchjob.py
index 3e12a23e1..61735ad5f 100644
--- a/myapp/tools/watch_pytorchjob.py
+++ b/myapp/tools/watch_pytorchjob.py
@@ -1,26 +1,19 @@
-import time,datetime,logging,os,sys
-import asyncio
+import time,datetime, os
from kubernetes import client
from kubernetes import watch
-from os import path
import json
-import requests
from myapp.utils.py.py_k8s import check_status_time,K8s
-from sqlalchemy.exc import InvalidRequestError,OperationalError
import pysnooper
-import myapp
-import math
-from myapp import app, db, security_manager
+from myapp import app
from myapp.models.model_job import (
Pytorchjob,
Task
)
from myapp.utils.celery import session_scope
from myapp.project import push_admin,push_message
-from myapp.models.model_job import Pipeline,Workflow
-import pymysql
+from myapp.models.model_job import Pipeline
conf=app.config
from myapp.utils.py.py_prometheus import Prometheus
diff --git a/myapp/tools/watch_service.py b/myapp/tools/watch_service.py
index eb423aa38..e3bdeacb5 100644
--- a/myapp/tools/watch_service.py
+++ b/myapp/tools/watch_service.py
@@ -1,26 +1,11 @@
-import time,logging,os,sys
-import asyncio
+import time, os
from kubernetes import client
from kubernetes import watch
-from os import path
-import json
-import requests
-import math
-from sqlalchemy.exc import InvalidRequestError,OperationalError
-import pysnooper
-import copy
-import myapp
-from myapp.utils.py.py_k8s import check_status_time,K8s
-from myapp.utils.py.py_prometheus import Prometheus
-from myapp.project import push_admin,push_message
-from myapp import app, db, security_manager
-from myapp.models.model_job import (
- Pipeline,
- Workflow,
- Task
-)
+from myapp.utils.py.py_k8s import K8s
+from myapp.project import push_message
+from myapp import app
from myapp.utils.celery import session_scope
conf=app.config
@@ -54,8 +39,8 @@ def listen_service():
# terminated 终止,waiting 等待启动,running 运行中
container_statuse= event['object'].status.container_statuses[0].state
terminated = container_statuse.terminated
- waiting = container_statuse.waiting
- running = container_statuse.running
+ container_statuse.waiting
+ container_statuse.running
service_name=event['object'].metadata.labels.get('app','')
inferenceserving = dbsession.query(InferenceService).filter_by(name=service_name).first() if service_name else None
if service_name and inferenceserving:
diff --git a/myapp/tools/watch_tfjob.py b/myapp/tools/watch_tfjob.py
index d833990fe..e38a79ae8 100644
--- a/myapp/tools/watch_tfjob.py
+++ b/myapp/tools/watch_tfjob.py
@@ -1,26 +1,19 @@
-import time,datetime,logging,os,sys
-import asyncio
+import time,datetime, os
from kubernetes import client
from kubernetes import watch
-from os import path
import json
-import requests
from myapp.utils.py.py_k8s import check_status_time,K8s
-from sqlalchemy.exc import InvalidRequestError,OperationalError
import pysnooper
-import myapp
-import math
-from myapp import app, db, security_manager
+from myapp import app
from myapp.models.model_job import (
Tfjob,
Task
)
from myapp.utils.celery import session_scope
from myapp.project import push_admin,push_message
-from myapp.models.model_job import Pipeline,Workflow
-import pymysql
+from myapp.models.model_job import Pipeline
conf=app.config
from myapp.utils.py.py_prometheus import Prometheus
diff --git a/myapp/tools/watch_workflow.py b/myapp/tools/watch_workflow.py
index 3a72c9baa..5756d488d 100644
--- a/myapp/tools/watch_workflow.py
+++ b/myapp/tools/watch_workflow.py
@@ -1,21 +1,14 @@
-import time,datetime,logging,os,sys
-import asyncio
+import time,datetime, os
from kubernetes import client
from kubernetes import watch
-from os import path
import json
-import requests
import math
-from sqlalchemy.exc import InvalidRequestError,OperationalError
-import pysnooper
-import copy
-import myapp
from myapp.utils.py.py_k8s import check_status_time,K8s
from myapp.utils.py.py_prometheus import Prometheus
-from myapp.project import push_admin,push_message
-from myapp import app, db, security_manager
+from myapp.project import push_message
+from myapp import app
from myapp.models.model_job import (
Pipeline,
Workflow,
diff --git a/myapp/utils/core.py b/myapp/utils/core.py
index 76847dc08..26efe9292 100644
--- a/myapp/utils/core.py
+++ b/myapp/utils/core.py
@@ -13,17 +13,14 @@
import logging
import os
import signal
-import smtplib
-import pysnooper
import copy
import sys
from time import struct_time
import traceback
-from typing import List, NamedTuple, Optional, Tuple
+from typing import List, Optional, Tuple
from urllib.parse import unquote_plus
import uuid
import zlib
-import re
import bleach
import celery
from dateutil.parser import parse
@@ -37,9 +34,7 @@
import numpy
import pandas as pd
import parsedatetime
-from jinja2 import Template
-from jinja2 import contextfilter
-from jinja2 import Environment, BaseLoader, DebugUndefined, StrictUndefined
+from jinja2 import Environment, BaseLoader, DebugUndefined
try:
from pydruid.utils.having import Having
except ImportError:
@@ -53,7 +48,6 @@
from myapp.exceptions import MyappException, MyappTimeoutException
from myapp.utils.dates import datetime_to_epoch, EPOCH
import re
-import random
logging.getLogger("MARKDOWN").setLevel(logging.INFO)
@@ -1465,7 +1459,7 @@ def check_max_cpu(resource,src_resource=None):
raise MyappException('resource cpu input not valid')
try:
resource = "%.1f~%.1f"%(float(resource.split("~")[0]),float(resource.split("~")[1]))
- except Exception as e:
+ except Exception:
raise MyappException('resource cpu input not valid')
if not g.user.is_admin():
min = set_host_max(check_max_cpu(resource.split('~')[0]))
@@ -1613,7 +1607,6 @@ def merge_tfjob_experiment_template(worker_num,node_selector,volume_mount,image,
-import yaml
# @pysnooper.snoop(watch_explode=())
def merge_job_experiment_template(node_selector,volume_mount,image,image_secrets,hostAliases,workingDir,image_pull_policy,resource_memory,resource_cpu,command):
nodeSelector=None
@@ -1743,7 +1736,6 @@ def merge_job_experiment_template(node_selector,volume_mount,image,image_secrets
-import yaml
# @pysnooper.snoop(watch_explode=())
def merge_pytorchjob_experiment_template(worker_num,node_selector,volume_mount,image,image_secrets,hostAliases,workingDir,image_pull_policy,resource_memory,resource_cpu,master_command,worker_command):
nodeSelector=None
@@ -2085,7 +2077,7 @@ def get_down_node_num(task_name):
# @pysnooper.snoop()
def set_downstream_position(task_name):
- task_id = str(tasks[task_name]['id'])
+ str(tasks[task_name]['id'])
downstream_tasks = [x for x in dag_json[task_name]['downstream'] if dag_json[x]['index']==dag_json[task_name]['index']] # 获取相同树的下游节点
downstream_tasks = sorted(downstream_tasks, key=lambda temp: dag_json[temp]['total_down_num'],reverse=True) # 按子孙数目排序
for i in range(len(downstream_tasks)):
@@ -2137,7 +2129,7 @@ def hive_create_sql_demo():
return sql
-import shlex, subprocess
+import subprocess
def run_shell(shell):
cmd = subprocess.Popen(shell, stdin=subprocess.PIPE, stderr=sys.stderr, close_fds=True,
stdout=sys.stdout, universal_newlines=True, shell=True, bufsize=1)
diff --git a/myapp/utils/log.py b/myapp/utils/log.py
index df94879aa..894f46879 100644
--- a/myapp/utils/log.py
+++ b/myapp/utils/log.py
@@ -5,8 +5,6 @@
from flask import current_app, g, request
-import pysnooper
-
# @pysnooper.snoop(depth=2)
class AbstractEventLogger(ABC):
@abstractmethod
diff --git a/myapp/utils/py/py_k8s.py b/myapp/utils/py/py_k8s.py
index 5de3ea9cc..5df7b19f1 100755
--- a/myapp/utils/py/py_k8s.py
+++ b/myapp/utils/py/py_k8s.py
@@ -1,17 +1,11 @@
-import time,datetime,logging,os,sys
+import time,datetime, os
import re
-from kubernetes import client,config,watch
+from kubernetes import client
from kubernetes.client.models import v1_pod,v1_object_meta,v1_pod_spec,v1_deployment,v1_deployment_spec
import yaml
-from os import path
import json
-# from common.config import *
-import pysnooper
import multiprocessing
-import random
-from multiprocessing import Manager
import base64
-import uuid
from kubernetes import config
from kubernetes.client.rest import ApiException
@@ -89,7 +83,7 @@ def get_pods(self,namespace=None,service_name=None,pod_name=None,labels={}):
if match_expression.operator == 'Equal':
node_selector[match_expression.key]=match_expression.values
- except Exception as e:
+ except Exception:
pass
# print(e)
if pod.spec.node_selector:
@@ -212,7 +206,7 @@ def label_node(self,ips, labels):
"labels": labels
}
}
- api_response = self.v1.patch_node(Hostname, body)
+ self.v1.patch_node(Hostname, body)
return all_node_ip
except Exception as e:
@@ -416,7 +410,7 @@ def delete_workflow(self,all_crd_info,namespace,run_id):
# 删除workflow
crd_info = all_crd_info['workflow']
try:
- crd_names = self.delete_crd(
+ self.delete_crd(
group=crd_info['group'], version=crd_info['version'],
plural=crd_info['plural'], namespace=namespace, labels={'run-id': run_id}
)
@@ -428,7 +422,7 @@ def delete_workflow(self,all_crd_info,namespace,run_id):
# 删除tfjob
try:
crd_info = all_crd_info['tfjob']
- crd_names = self.delete_crd(
+ self.delete_crd(
group=crd_info['group'], version=crd_info['version'],plural=crd_info['plural'],
namespace=namespace,labels={'run-id': run_id}
)
@@ -438,7 +432,7 @@ def delete_workflow(self,all_crd_info,namespace,run_id):
# 删除framework
try:
crd_info = all_crd_info['framework']
- crd_names = self.delete_crd(group=crd_info['group'], version=crd_info['version'],
+ self.delete_crd(group=crd_info['group'], version=crd_info['version'],
plural=crd_info['plural'], namespace=namespace,
labels={"run-id": str(run_id)})
except Exception as e:
@@ -447,7 +441,7 @@ def delete_workflow(self,all_crd_info,namespace,run_id):
# 删除pytorchjob
try:
crd_info = all_crd_info['pytorchjob']
- crd_names = self.delete_crd(
+ self.delete_crd(
group=crd_info['group'], version=crd_info['version'], plural=crd_info['plural'],
namespace=namespace, labels={'run-id': run_id}
)
@@ -457,7 +451,7 @@ def delete_workflow(self,all_crd_info,namespace,run_id):
# 删除mpijob
try:
crd_info = all_crd_info['mpijob']
- crd_names = self.delete_crd(
+ self.delete_crd(
group=crd_info['group'], version=crd_info['version'], plural=crd_info['plural'],
namespace=namespace, labels={'run-id': run_id}
)
@@ -467,7 +461,7 @@ def delete_workflow(self,all_crd_info,namespace,run_id):
# 删除vcjob
try:
crd_info = all_crd_info['vcjob']
- crd_names = self.delete_crd(
+ self.delete_crd(
group=crd_info['group'], version=crd_info['version'], plural=crd_info['plural'],
namespace=namespace, labels={'run-id': run_id}
)
@@ -477,7 +471,7 @@ def delete_workflow(self,all_crd_info,namespace,run_id):
# 删除sparkjob
try:
crd_info = all_crd_info['sparkjob']
- crd_names = self.delete_crd(
+ self.delete_crd(
group=crd_info['group'], version=crd_info['version'], plural=crd_info['plural'],
namespace=namespace, labels={'run-id': run_id}
)
@@ -487,7 +481,7 @@ def delete_workflow(self,all_crd_info,namespace,run_id):
# 删除paddlejob
try:
crd_info = all_crd_info['paddlejob']
- crd_names = self.delete_crd(
+ self.delete_crd(
group=crd_info['group'], version=crd_info['version'], plural=crd_info['plural'],
namespace=namespace, labels={'run-id': run_id}
)
@@ -498,7 +492,7 @@ def delete_workflow(self,all_crd_info,namespace,run_id):
# 删除mxjob
try:
crd_info = all_crd_info['mxjob']
- crd_names = self.delete_crd(
+ self.delete_crd(
group=crd_info['group'], version=crd_info['version'], plural=crd_info['plural'],
namespace=namespace, labels={'run-id': run_id}
)
@@ -736,7 +730,7 @@ def make_container(self,name,command,args,volume_mount,working_dir,resource_memo
env_list.append(client.V1EnvVar(name='K8S_POD_NAME', value_from=client.V1EnvVarSource(field_ref=client.V1ObjectFieldSelector(field_path='metadata.name'))))
security_context = client.V1SecurityContext(privileged=privileged) if privileged else None
- gpu_type = os.environ.get("GPU_TYPE", "NVIDIA")
+ os.environ.get("GPU_TYPE", "NVIDIA")
def get_gpu(resource_gpu):
try:
@@ -901,7 +895,7 @@ def create_debug_pod(self,namespace,name,labels,command,args,volume_mount,workin
try:
self.v1.delete_namespaced_pod(name=name, namespace=namespace,grace_period_seconds=0)
# time.sleep(1)
- except Exception as e:
+ except Exception:
pass
# print(e)
pod,pod_spec = self.make_pod(
@@ -1063,7 +1057,7 @@ def create_deployment(self,namespace,name,replicas,labels,command,args,volume_mo
# print(e)
try:
- exist_dp = client.AppsV1Api().read_namespaced_deployment(name=name,namespace=namespace)
+ client.AppsV1Api().read_namespaced_deployment(name=name,namespace=namespace)
client.AppsV1Api().patch_namespaced_deployment(name=name, namespace=namespace, body=dp)
except ApiException as e:
if e.status == 404:
@@ -1139,7 +1133,7 @@ def create_statefulset(self,namespace,name,replicas,labels,command,args,volume_m
# print(dp.to_str())
try:
client.AppsV1Api().delete_namespaced_stateful_set(name, namespace)
- except Exception as e:
+ except Exception:
pass
# print(e)
@@ -1183,7 +1177,7 @@ def create_headless_service(self,namespace,name,username,run_id):
print(service.to_dict())
try:
self.v1.delete_namespaced_service(name, namespace)
- except Exception as e:
+ except Exception:
pass
# print(e)
try:
@@ -1345,7 +1339,7 @@ def get_canary(gateway_service, canarys):
print(crd_json)
- crd = self.create_crd(group=crd_info['group'], version=crd_info['version'], plural=crd_info['plural'],namespace=namespace, body=crd_json)
+ self.create_crd(group=crd_info['group'], version=crd_info['version'], plural=crd_info['plural'],namespace=namespace, body=crd_json)
if len(ports)>1:
crd_json = {
@@ -1379,7 +1373,7 @@ def get_canary(gateway_service, canarys):
]
}
}
- crd = self.create_crd(group=crd_info['group'], version=crd_info['version'], plural=crd_info['plural'],namespace=namespace, body=crd_json)
+ self.create_crd(group=crd_info['group'], version=crd_info['version'], plural=crd_info['plural'],namespace=namespace, body=crd_json)
@@ -1489,7 +1483,6 @@ def create_hpa(self,namespace,name,min_replicas,max_replicas,hpa):
}
)
- my_conditions = []
# my_conditions.append(client.V2beta1HorizontalPodAutoscalerCondition(status="True", type='AbleToScale'))
#
# status = client.V2beta1HorizontalPodAutoscalerStatus(conditions=my_conditions, current_replicas=max_replicas,
@@ -1510,7 +1503,7 @@ def create_hpa(self,namespace,name,min_replicas,max_replicas,hpa):
# )
print(json.dumps(hpa_json,indent=4,ensure_ascii=4))
try:
- ret = client.AutoscalingV2beta1Api().create_namespaced_horizontal_pod_autoscaler(namespace=namespace, body=hpa_json, pretty=True)
+ client.AutoscalingV2beta1Api().create_namespaced_horizontal_pod_autoscaler(namespace=namespace, body=hpa_json, pretty=True)
except ValueError as e:
if str(e) == 'Invalid value for `conditions`, must not be `None`':
print(e)
@@ -1583,7 +1576,7 @@ def get_pod_metrics(self,namespace=None):
# @pysnooper.snoop()
def exec_command(self,name,namespace,command):
try:
- resp = self.v1.read_namespaced_pod(name=name,namespace=namespace)
+ self.v1.read_namespaced_pod(name=name,namespace=namespace)
except ApiException as e:
if e.status != 404:
print("Unknown error: %s" % e)
diff --git a/myapp/utils/py/py_prometheus.py b/myapp/utils/py/py_prometheus.py
index dfaaf150e..0d468b7d2 100755
--- a/myapp/utils/py/py_prometheus.py
+++ b/myapp/utils/py/py_prometheus.py
@@ -1,9 +1,6 @@
-import json,datetime,time
-import logging
-import os
-import io
+import json,datetime
import requests
import pysnooper
diff --git a/myapp/views/__init__.py b/myapp/views/__init__.py
index 46189b89a..e69de29bb 100644
--- a/myapp/views/__init__.py
+++ b/myapp/views/__init__.py
@@ -1,29 +0,0 @@
-from . import base
-from . import home
-from . import route
-from . import view_team
-from . import view_notebook
-from . import view_images
-from . import view_docker
-from . import view_job_template
-from . import view_task
-from . import view_pipeline
-from . import view_runhistory
-from . import view_workflow
-from . import view_nni
-from . import view_serving
-from . import view_train_model
-from . import view_inferenceserving
-from . import view_service_pipeline
-from . import view_link
-from . import view_metadata
-from . import view_metadata_metric
-from . import view_dimension
-from . import view_etl_pipeline
-from . import view_dataset
-from .log import views
-from .log import api as log_api
-
-from . import view_aihub
-
-
diff --git a/myapp/views/base.py b/myapp/views/base.py
index 5b3315c4c..7fdbba862 100644
--- a/myapp/views/base.py
+++ b/myapp/views/base.py
@@ -1,14 +1,11 @@
import datetime
-import os
import functools
import logging
import traceback
from typing import Any, Dict
-import pysnooper
from flask_appbuilder.forms import GeneralModelConverter
-from flask import abort, flash, g, get_flashed_messages, redirect, Response
-from flask_appbuilder import BaseView, ModelView,urltools
+from flask import get_flashed_messages
from flask_appbuilder.actions import action
from flask_appbuilder.forms import DynamicForm
from flask_appbuilder.models.sqla.filters import BaseFilter
@@ -16,45 +13,26 @@
from myapp.forms import MySearchWidget
from flask_babel import get_locale
from flask_babel import gettext as __
-from flask_babel import lazy_gettext as _
from flask_wtf.form import FlaskForm
import simplejson as json
from werkzeug.exceptions import HTTPException
from wtforms.fields.core import Field, UnboundField
-from flask_appbuilder import ModelView, ModelRestApi
-import yaml
-from flask_appbuilder.security.decorators import has_access, has_access_api, permission_name
-from flask_appbuilder.baseviews import BaseCRUDView, BaseFormView, BaseView, expose, expose_api
+from flask_appbuilder import ModelView
+from flask_appbuilder.baseviews import BaseCRUDView, BaseView, expose
from myapp import conf, db, get_feature_flags, security_manager,event_logger
from myapp.exceptions import MyappException, MyappSecurityException
from myapp.translations.utils import get_language_pack
from myapp.utils import core
-from sqlalchemy import or_
from flask_appbuilder.urltools import (
get_filter_args,
get_order_args,
get_page_args,
get_page_size_args,
- Stack,
)
from flask import (
- current_app,
- abort,
- flash,
g,
- Markup,
- make_response,
- redirect,
- render_template,
- request,
- send_from_directory,
Response,
- url_for,
)
-from flask import Flask, jsonify
-
-from apispec import yaml_utils
-from flask import Blueprint, current_app, jsonify, make_response, request
from flask_babel import lazy_gettext as _
import yaml
@@ -361,8 +339,8 @@ def response(code, **kwargs):
_ret_json = jsonify(kwargs)
resp = make_response(_ret_json, code)
flash_json=[]
- for flash in flashes:
- flash_json.append([flash[0],flash[1]])
+ for f in flashes:
+ flash_json.append([f[0], f[1]])
resp.headers["api_flashes"] = json.dumps(flash_json)
resp.headers["Content-Type"] = "application/json; charset=utf-8"
return resp
@@ -739,7 +717,7 @@ def delete(self, pk):
return redirect(url)
# return self.post_delete_redirect()
-from flask_appbuilder.widgets import GroupFormListWidget, ListMasterWidget
+from flask_appbuilder.widgets import GroupFormListWidget
from flask import (
abort,
flash,
@@ -747,7 +725,6 @@ def delete(self, pk):
make_response,
redirect,
request,
- send_file,
session,
url_for,
)
diff --git a/myapp/views/baseApi.py b/myapp/views/baseApi.py
index 0c1075722..3f57677f3 100644
--- a/myapp/views/baseApi.py
+++ b/myapp/views/baseApi.py
@@ -8,15 +8,11 @@
from inspect import isfunction
from sqlalchemy import create_engine
from flask_appbuilder.actions import action
-from apispec import yaml_utils
-from flask_appbuilder.fieldwidgets import BS3TextFieldWidget
-from wtforms import Field
from flask_babel import gettext as __
-from flask_babel import lazy_gettext as _
from flask_appbuilder.actions import ActionItem
-from flask import Blueprint, current_app, jsonify, make_response, request
+from flask import jsonify, request
from flask import flash
-from flask import Flask, current_app, send_from_directory, make_response,send_file
+from flask import current_app, make_response,send_file
from flask.globals import session
from flask_babel import lazy_gettext as _
import jsonschema
@@ -28,13 +24,8 @@
from sqlalchemy.orm.properties import ColumnProperty
from sqlalchemy.orm.relationships import RelationshipProperty
from werkzeug.exceptions import BadRequest
-from flask import render_template,redirect
-import yaml
-from wtforms import widgets
from marshmallow import validate
from wtforms import validators
-from flask_appbuilder.api.convert import Model2SchemaConverter
-from flask_appbuilder.api.schemas import get_info_schema, get_item_schema, get_list_schema
from flask_appbuilder._compat import as_unicode
from flask_appbuilder.const import (
API_ADD_COLUMNS_RES_KEY,
@@ -61,26 +52,20 @@
API_ORDER_DIRECTION_RIS_KEY,
API_PAGE_INDEX_RIS_KEY,
API_PAGE_SIZE_RIS_KEY,
- API_PERMISSIONS_RES_KEY,
API_PERMISSIONS_RIS_KEY,
- API_RESULT_RES_KEY,
API_SELECT_COLUMNS_RIS_KEY,
API_SHOW_COLUMNS_RES_KEY,
API_SHOW_COLUMNS_RIS_KEY,
API_SHOW_TITLE_RES_KEY,
API_SHOW_TITLE_RIS_KEY,
API_URI_RIS_KEY,
- PERMISSION_PREFIX,
)
from flask import (
abort,
- g
)
from flask_appbuilder.exceptions import FABException, InvalidOrderByColumnFABException
-from flask_appbuilder.security.decorators import permission_name, protect,has_access
-from flask_appbuilder.api import BaseModelApi,BaseApi,ModelRestApi
-from sqlalchemy.sql import sqltypes
-from myapp import app, appbuilder,db,event_logger,cache
+from flask_appbuilder.api import ModelRestApi
+from myapp import app, db,cache
conf = app.config
log = logging.getLogger(__name__)
@@ -92,7 +77,6 @@
API_ACTION_RIS_KEY='action'
API_ROUTE_RIS_KEY ='route_base'
-API_PERMISSIONS_RIS_KEY="permissions"
API_USER_PERMISSIONS_RIS_KEY="user_permissions"
API_RELATED_RIS_KEY="related"
API_COLS_WIDTH_RIS_KEY='cols_width'
@@ -241,7 +225,6 @@ def json_response(message,status,result):
-import pysnooper
# @pysnooper.snoop(depth=5)
# 暴露url+视图函数。视图函数会被覆盖,暴露url也会被覆盖
class MyappModelRestApi(ModelRestApi):
@@ -324,8 +307,8 @@ def response(code, **kwargs):
_ret_json = jsonify(kwargs)
resp = make_response(_ret_json, code)
flash_json=[]
- for flash in flashes:
- flash_json.append([flash[0],flash[1]])
+ for f in flashes:
+ flash_json.append([f[0], f[1]])
resp.headers["api_flashes"] = json.dumps(flash_json)
resp.headers["Content-Type"] = "application/json; charset=utf-8"
return resp
@@ -1001,8 +984,6 @@ def api_list(self, **kwargs):
# handle filters
try:
# 参数缩写都在每个filter的arg_name
- from flask_appbuilder.models.sqla.filters import FilterEqualFunction, FilterStartsWith
-
joined_filters = self._handle_filters_args(_args)
except FABException as e:
return self.response_error(400,message=str(e))
@@ -1027,7 +1008,6 @@ def api_list(self, **kwargs):
lst = self.post_list(lst)
# pks = self.datamodel.get_keys(lst)
# import marshmallow.schema
- import marshmallow.marshalling
# for item in lst:
# if self.datamodel.is_relation(item)
# aa =
@@ -1211,7 +1191,7 @@ def single_action(self, name, pk):
pk = self._deserialize_pk_if_composite(pk)
action = self.actions.get(name)
try:
- res = action.func(self.datamodel.get(pk))
+ action.func(self.datamodel.get(pk))
back = {
"status": 0,
"result": {},
@@ -1641,7 +1621,6 @@ def _get_field_info(self, field, filter_rel_field, page=None, page_size=None):
# print(column_type)
# if type(column_type)==
# print(column.__class__.__name__)
- from sqlalchemy.sql.schema import Column
ret['type']=column_type_str
if default:
ret['default'] = default.arg
diff --git a/myapp/views/home.py b/myapp/views/home.py
index cf41d8bcd..b8c68e712 100644
--- a/myapp/views/home.py
+++ b/myapp/views/home.py
@@ -1,31 +1,19 @@
from flask import (
- current_app,
- abort,
flash,
g,
Markup,
- make_response,
redirect,
- render_template,
- request,
- send_from_directory,
Response,
- url_for,
)
from myapp.utils.py.py_k8s import K8s
-import datetime,json
-from flask import Flask, jsonify
-import pysnooper
-from apispec import yaml_utils
-from flask import Blueprint, current_app, jsonify, make_response, request
-from flask_babel import lazy_gettext as _
-from myapp import conf, db, get_feature_flags, security_manager,event_logger
-import yaml
+import datetime
+from flask import jsonify
+from myapp import conf
from myapp.views.base import BaseMyappView
-from flask_appbuilder import ModelView,AppBuilder,expose,BaseView,has_access
-from myapp import app, appbuilder
+from flask_appbuilder import expose
+from myapp import appbuilder
from flask import stream_with_context, request
node_resource_used = {
@@ -870,7 +858,7 @@ def mlops_traffic(self,url):
global_cluster_load[cluster_name]['gpu_req'] += int(nodes[ip]['used_gpu'])
global_cluster_load[cluster_name]['gpu_all'] += int(nodes[ip]['gpu'])
- message = Markup(f'%s
'%core.job_template_args_definition()),
+ description=Markup('json格式,此类task使用时需要填写的参数,示例:%s
'%core.job_template_args_definition()),
widget=MyBS3TextAreaFieldWidget(rows=10), # 传给widget函数的是外层的field对象,以及widget函数的参数
validators=[DataRequired()]
),
diff --git a/myapp/views/view_link.py b/myapp/views/view_link.py
index 4a8f66b0a..da95248ef 100644
--- a/myapp/views/view_link.py
+++ b/myapp/views/view_link.py
@@ -2,7 +2,7 @@
from flask_babel import gettext as __
from flask_babel import lazy_gettext as _
-from myapp import app, appbuilder,db,event_logger
+from myapp import app, appbuilder
conf = app.config
diff --git a/myapp/views/view_metadata.py b/myapp/views/view_metadata.py
index 5def93468..ac9a13f9e 100644
--- a/myapp/views/view_metadata.py
+++ b/myapp/views/view_metadata.py
@@ -1,23 +1,19 @@
-
from flask_appbuilder.models.sqla.interface import SQLAInterface
from flask_babel import gettext as __
from flask_babel import lazy_gettext as _
from flask_appbuilder.actions import action
-import re,os
-from wtforms.validators import DataRequired, Length, NumberRange, Optional,Regexp
-from myapp import app, appbuilder,db,event_logger
+from wtforms.validators import DataRequired, Length, Regexp
+from myapp import app, appbuilder
from myapp.utils import core
-from wtforms import BooleanField, IntegerField,StringField, SelectField,FloatField,DateField,DateTimeField,SelectMultipleField,FormField,FieldList
-from flask_appbuilder.fieldwidgets import BS3TextFieldWidget,BS3PasswordFieldWidget,DatePickerWidget,DateTimePickerWidget,Select2ManyWidget,Select2Widget
-from myapp.forms import MyBS3TextAreaFieldWidget,MySelect2Widget,MyCodeArea,MyLineSeparatedListField,MyJSONField,MyBS3TextFieldWidget,MySelectMultipleField,MySelect2ManyWidget
+from wtforms import StringField, SelectField
+from flask_appbuilder.fieldwidgets import BS3TextFieldWidget, Select2Widget
+from myapp.forms import MyBS3TextAreaFieldWidget,MySelect2Widget,MyCodeArea, MySelectMultipleField
from .baseApi import (
MyappModelRestApi,
- json_response
)
from flask import (
- current_app,
abort,
flash,
g
diff --git a/myapp/views/view_metadata_metric.py b/myapp/views/view_metadata_metric.py
index 6f5519b9e..64b0e0bfc 100644
--- a/myapp/views/view_metadata_metric.py
+++ b/myapp/views/view_metadata_metric.py
@@ -1,22 +1,18 @@
-
from flask_appbuilder.models.sqla.interface import SQLAInterface
from flask_babel import gettext as __
from flask_babel import lazy_gettext as _
-from sqlalchemy import and_, or_, select
+from sqlalchemy import or_
from flask_appbuilder.actions import action
-import re,os
from wtforms.validators import DataRequired
-from myapp import app, appbuilder,db,event_logger
-from myapp.utils import core
-from wtforms import BooleanField, IntegerField,StringField, SelectField,FloatField,DateField,DateTimeField,SelectMultipleField,FormField,FieldList
-from flask_appbuilder.fieldwidgets import BS3TextFieldWidget,BS3PasswordFieldWidget,DatePickerWidget,DateTimePickerWidget,Select2ManyWidget,Select2Widget
-from myapp.forms import MyBS3TextAreaFieldWidget,MySelect2Widget,MyCodeArea,MyLineSeparatedListField,MyJSONField,MyBS3TextFieldWidget,MySelectMultipleField
+from myapp import app, appbuilder
+from wtforms import StringField, SelectField
+from flask_appbuilder.fieldwidgets import BS3TextFieldWidget, Select2Widget
+from myapp.forms import MyBS3TextAreaFieldWidget,MySelect2Widget
from .baseApi import (
MyappModelRestApi
)
from flask import (
- current_app,
abort,
flash,
g
@@ -24,7 +20,6 @@
from .base import (
MyappFilter,
- MyappModelView,
)
from myapp.models.model_metadata_metric import Metadata_metric
conf = app.config
diff --git a/myapp/views/view_nni.py b/myapp/views/view_nni.py
index 2fef84e71..3fecaebbe 100644
--- a/myapp/views/view_nni.py
+++ b/myapp/views/view_nni.py
@@ -1,34 +1,27 @@
-from flask import render_template,redirect
from flask_appbuilder.models.sqla.interface import SQLAInterface
from flask_babel import gettext as __
from flask_babel import lazy_gettext as _
-import uuid
from myapp.models.model_nni import NNI
from myapp.models.model_job import Repository
from flask_appbuilder.actions import action
-from flask_babel import lazy_gettext,gettext
+from flask_babel import lazy_gettext
from flask_appbuilder.forms import GeneralModelConverter
from myapp.utils import core
-from myapp import app, appbuilder,db,event_logger
-import os,sys
-from wtforms.validators import DataRequired, Length, NumberRange, Optional,Regexp
-from sqlalchemy import and_, or_, select
-from myapp.exceptions import MyappException
-from wtforms import BooleanField, IntegerField, SelectField, StringField,FloatField,DateField,DateTimeField,SelectMultipleField,FormField,FieldList
-from flask_appbuilder.fieldwidgets import BS3TextFieldWidget,BS3PasswordFieldWidget,DatePickerWidget,DateTimePickerWidget,Select2ManyWidget,Select2Widget
-from myapp.forms import MyBS3TextAreaFieldWidget,MySelect2Widget,MyCodeArea,MyLineSeparatedListField,MyJSONField,MyBS3TextFieldWidget,MyCommaSeparatedListField,MySelectMultipleField
-from myapp.views.view_team import Project_Filter,Project_Join_Filter
-import re,copy
+from myapp import app, appbuilder,db
+import os
+from wtforms.validators import DataRequired, Length, Regexp
+from sqlalchemy import or_
+from wtforms import IntegerField, SelectField, StringField,FloatField
+from flask_appbuilder.fieldwidgets import BS3TextFieldWidget, Select2ManyWidget,Select2Widget
+from myapp.forms import MyBS3TextAreaFieldWidget, MyCodeArea, MySelectMultipleField
+from myapp.views.view_team import Project_Join_Filter
+import copy
from flask import (
- current_app,
- abort,
flash,
g,
Markup,
- make_response,
redirect,
- render_template,
request
)
from .baseApi import (
@@ -40,8 +33,8 @@
MyappFilter,
MyappModelView,
)
-from flask_appbuilder import CompactCRUDMixin, expose
-import pysnooper,datetime,time,json
+from flask_appbuilder import expose
+import datetime, json
diff --git a/myapp/views/view_notebook.py b/myapp/views/view_notebook.py
index c4d3a6249..dd5900421 100644
--- a/myapp/views/view_notebook.py
+++ b/myapp/views/view_notebook.py
@@ -1,8 +1,6 @@
-from flask import render_template,redirect
from flask_appbuilder.models.sqla.interface import SQLAInterface
from flask_babel import gettext as __
from flask_babel import lazy_gettext as _
-import random
import uuid
from myapp.models.model_notebook import Notebook
@@ -13,25 +11,17 @@
from myapp.utils import core
from myapp import app, appbuilder,db,event_logger
from wtforms.ext.sqlalchemy.fields import QuerySelectField
-import os,sys
-from wtforms.validators import DataRequired, Length, NumberRange, Optional,Regexp
-from wtforms import BooleanField, IntegerField, SelectField, StringField,FloatField,DateField,DateTimeField,SelectMultipleField,FormField,FieldList
-from flask_appbuilder.fieldwidgets import BS3TextFieldWidget,BS3PasswordFieldWidget,DatePickerWidget,DateTimePickerWidget,Select2ManyWidget,Select2Widget
-from myapp.forms import MyBS3TextAreaFieldWidget,MySelect2Widget,MyCodeArea,MyLineSeparatedListField,MyJSONField,MyBS3TextFieldWidget,MyCommaSeparatedListField,MySelectMultipleField
+from wtforms.validators import DataRequired, Length, Regexp
+from wtforms import SelectField, StringField
+from flask_appbuilder.fieldwidgets import BS3TextFieldWidget, Select2Widget
+from myapp.forms import MySelect2Widget, MyBS3TextFieldWidget
from myapp.utils.py import py_k8s
from flask import (
- current_app,
abort,
flash,
g,
- Markup,
- make_response,
redirect,
- render_template,
request,
- send_from_directory,
- Response,
- url_for,
)
from .baseApi import (
MyappModelRestApi
@@ -41,9 +31,9 @@
MyappFilter,
MyappModelView,
)
-from flask_appbuilder import CompactCRUDMixin, expose
-import pysnooper,datetime,time,json
-from myapp.views.view_team import Project_Filter,Project_Join_Filter,filter_join_org_project
+from flask_appbuilder import expose
+import datetime,time,json
+from myapp.views.view_team import Project_Join_Filter,filter_join_org_project
conf = app.config
@@ -464,7 +454,7 @@ def reset(self,notebook_id):
notebook = db.session.query(Notebook).filter_by(id=notebook_id).first()
try:
- notebook_crd = self.reset_notebook(notebook)
+ self.reset_notebook(notebook)
flash('已重置,Running状态后可进入。注意:notebook会定时清理,如要运行长期任务请在pipeline中创建任务流进行。','info')
except Exception as e:
message = '重置失败,稍后重试。%s'%str(e)
diff --git a/myapp/views/view_pipeline.py b/myapp/views/view_pipeline.py
index 628fc83d6..fdebe67c9 100644
--- a/myapp/views/view_pipeline.py
+++ b/myapp/views/view_pipeline.py
@@ -1,26 +1,23 @@
-from flask import render_template,redirect
from flask_appbuilder.models.sqla.interface import SQLAInterface
from flask_babel import gettext as __
from flask_babel import lazy_gettext as _
import uuid
-import re
import urllib.parse
-from kfp import compiler
-from myapp.models.model_job import Repository,Images,Job_Template,Task,Pipeline,Workflow,Tfjob,Xgbjob,RunHistory,Pytorchjob
-from myapp.models.model_team import Project,Project_User
+from myapp.models.model_job import Task,Pipeline,Workflow, RunHistory
+from myapp.models.model_team import Project
from myapp.views.view_team import Project_Join_Filter
from flask_appbuilder.actions import action
-from flask import current_app, flash, jsonify, make_response, redirect, request, url_for
+from flask import jsonify
from flask_appbuilder.forms import GeneralModelConverter
from myapp.utils import core
-from myapp import app, appbuilder,db,event_logger
+from myapp import app, appbuilder,db
from wtforms.ext.sqlalchemy.fields import QuerySelectField
-from jinja2 import Environment, BaseLoader, DebugUndefined, StrictUndefined
-import os,sys
-from wtforms.validators import DataRequired, Length, NumberRange, Optional,Regexp
+from jinja2 import Environment, BaseLoader, DebugUndefined
+import os
+from wtforms.validators import DataRequired, Length, Regexp
from myapp.views.view_task import Task_ModelView,Task_ModelView_Api
-from sqlalchemy import and_, or_, select
+from sqlalchemy import or_
from myapp.exceptions import MyappException
from wtforms import BooleanField, IntegerField,StringField, SelectField
from flask_appbuilder.fieldwidgets import BS3TextFieldWidget,Select2ManyWidget,Select2Widget,BS3TextAreaFieldWidget
@@ -34,11 +31,8 @@
MyappModelRestApi
)
from flask import (
- current_app,
- abort,
flash,
g,
- Markup,
make_response,
redirect,
request
@@ -55,8 +49,8 @@
json_response
)
-from flask_appbuilder import CompactCRUDMixin, expose
-import pysnooper,datetime,time,json
+from flask_appbuilder import expose
+import datetime,time,json
conf = app.config
logging = app.logger
@@ -81,7 +75,7 @@ def apply(self, query, func):
-from sqlalchemy.exc import InvalidRequestError,OperationalError
+from sqlalchemy.exc import InvalidRequestError
# 将dag 转为argo pipeline yaml
# @pysnooper.snoop(watch_explode=())
@@ -1050,9 +1044,6 @@ def web(self,pipeline_id):
db.session.commit()
print(pipeline_id)
url = '/static/appbuilder/vison/index.html?pipeline_id=%s'%pipeline_id # 前后端集成完毕,这里需要修改掉
- data = {
- "url": url
- }
return redirect('/frontend/showOutLink?url=%s'%urllib.parse.quote(url, safe=""))
# 返回模板
# return self.render_template('link.html', data=data)
diff --git a/myapp/views/view_runhistory.py b/myapp/views/view_runhistory.py
index f8ea7aacd..27bf6743a 100644
--- a/myapp/views/view_runhistory.py
+++ b/myapp/views/view_runhistory.py
@@ -1,14 +1,13 @@
-from flask import render_template,redirect
from flask_appbuilder.models.sqla.interface import SQLAInterface
from myapp.models.model_job import RunHistory
-from myapp import app, appbuilder,db,event_logger
+from myapp import app, appbuilder,db
from wtforms import SelectField
from flask_appbuilder.fieldwidgets import Select2Widget
from flask_babel import lazy_gettext as _
-from sqlalchemy import and_, or_, select
+from sqlalchemy import or_
from .baseApi import (
MyappModelRestApi
diff --git a/myapp/views/view_service_pipeline.py b/myapp/views/view_service_pipeline.py
index 543a02439..6daaa8cf7 100644
--- a/myapp/views/view_service_pipeline.py
+++ b/myapp/views/view_service_pipeline.py
@@ -1,31 +1,26 @@
-from flask import render_template,redirect
from flask_appbuilder.models.sqla.interface import SQLAInterface
from flask_babel import lazy_gettext as _
from myapp.models.model_service_pipeline import Service_Pipeline
from myapp.models.model_job import Repository
-from flask import current_app, flash, jsonify
+from flask import jsonify
from flask_appbuilder.forms import GeneralModelConverter
from myapp.utils import core
-from myapp import app, appbuilder,db,event_logger
+from myapp import app, appbuilder,db
from wtforms.ext.sqlalchemy.fields import QuerySelectField
-from wtforms.validators import DataRequired, Length, NumberRange, Optional,Regexp
-from sqlalchemy import and_, or_, select
+from wtforms.validators import DataRequired, Length, Regexp
+from sqlalchemy import or_
from myapp.exceptions import MyappException
-from wtforms import BooleanField, IntegerField,StringField, SelectField
-from myapp.project import push_message,push_admin
-from flask_appbuilder.fieldwidgets import BS3TextFieldWidget,Select2ManyWidget,Select2Widget,BS3TextAreaFieldWidget
+from wtforms import StringField, SelectField
+from flask_appbuilder.fieldwidgets import BS3TextFieldWidget,Select2ManyWidget,Select2Widget
from myapp.forms import MyBS3TextAreaFieldWidget,MySelectMultipleField
-import re,copy
+import copy
from .baseApi import (
MyappModelRestApi
)
from flask import (
- current_app,
- abort,
flash,
g,
- Markup,
make_response,
redirect,
request,
@@ -40,8 +35,8 @@
json_response
)
-from flask_appbuilder import CompactCRUDMixin, expose
-import pysnooper,datetime,time,json
+from flask_appbuilder import expose
+import pysnooper,datetime, json
conf = app.config
logging = app.logger
@@ -318,7 +313,7 @@ def build_http(self,service_pipeline):
def build_mq_consumer(self,service_pipeline):
namespace = conf.get('SERVICE_PIPELINE_NAMESPACE')
name = service_pipeline.name
- command = service_pipeline.command
+ service_pipeline.command
image_secrets = conf.get('HUBSECRET', [])
user_hubsecrets = db.session.query(Repository.hubsecret).filter(Repository.created_by_fk == g.user.id).all()
if user_hubsecrets:
@@ -398,7 +393,7 @@ def run_service_pipeline(self,service_pipeline_id):
# # @event_logger.log_this
@expose("/web/