mwgencode 1.4.4__tar.gz → 1.4.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mwgencode-1.4.4/mwgencode.egg-info → mwgencode-1.4.6}/PKG-INFO +2 -3
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gen_code.py +2 -2
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/gen_bo_models_code.py +5 -0
- mwgencode-1.4.6/gencode/gencode/template/flask_models.pys +17 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/upgrade.py +42 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/manage.py +2 -2
- {mwgencode-1.4.4 → mwgencode-1.4.6/mwgencode.egg-info}/PKG-INFO +2 -3
- {mwgencode-1.4.4 → mwgencode-1.4.6}/setup.py +1 -1
- mwgencode-1.4.4/gencode/gencode/template/flask_models.pys +0 -107
- {mwgencode-1.4.4 → mwgencode-1.4.6}/CHANGES.txt +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/LICENSE.txt +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/MANIFEST.in +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/README.rst +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/__init__.py +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/dd_models.py +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/ext.py +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/__init__.py +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/export_class2swgclass.py +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/gen_state_code.py +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/gen_swagger_code.py +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/gen_tests_code.py +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/sample/__init__.py +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/sample/babel.cfg +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/sample/config-sample.ini +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/sample/config.ini +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/sample/create_new_table_run.pys +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/sample/dockerignore.dock +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/sample/file_utils.pys +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/sample/gencode.xmi +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/sample/gitignore.git +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/sample/migrate_run.bat +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/sample/migrate_run.pys +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/sample/requirements.txt +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/sample/run.sh +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/sample/seeds/__init__.py +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/sample/seeds/models_rm.pys +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/sample/seeds/seed_dev_data.pys +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/sample/seeds/seed_init.pys +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/sample/seeds/seed_rm.pys +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/sample/seeds/seed_run.pys +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/sample/seeds/seed_utils.pys +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/sample/test__init__.pys +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/sample/test_run.pys +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/sample/utils.pys +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/Dockerfile.tmp +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/README.md +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/__init__.py +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/__init__.pys +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/config.pys +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/default.conf +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/docker-compose-dev.yaml +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/docker-compose.yaml +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/drone.tmp +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/flask_models_base.pys +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/gen_code_flask.yaml +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/gen_code_run.pys +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/k8s-tmp.yml +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/run.pys +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/sample.mdj +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/setup.tmp +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/supervisord.conf +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/swagger_file.yaml +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/swg_class.tmp +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/swg_ctrl_code.pys +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/swg_package_mng.tmp +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/test_test_base.tmp +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/tests/__init__.py +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/tests/__init__.pys +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/tests/init_test_data.pys +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/tests/run.pys +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/tests/test_base.pys +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/tests/test_classmng.pys +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/uwsgi.ini +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/gencode/template/uwsgi_run.pys +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/importmdj/__init__.py +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/importmdj/import_dd_classes.py +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/importmdj/import_swagger2_class.py +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/importmdj/import_uml_models.py +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/importxmi/__init__.py +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/importxmi/import_classes.py +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/importxmi/import_sequences.py +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/importxmi/import_states.py +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/importxmi/import_swagger.py +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/swg2_class_models.py +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/uml_class_models.py +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/gencode/utils.py +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/help.md +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/mwgencode.egg-info/SOURCES.txt +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/mwgencode.egg-info/dependency_links.txt +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/mwgencode.egg-info/entry_points.txt +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/mwgencode.egg-info/requires.txt +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/mwgencode.egg-info/top_level.txt +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/pyproject.toml +0 -0
- {mwgencode-1.4.4 → mwgencode-1.4.6}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: mwgencode
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.6
|
|
4
4
|
Summary: 根据starUML文档产生flask专案的代码
|
|
5
5
|
Home-page: https://bitbucket.org/maxwin-inc/gencode/src/
|
|
6
6
|
Author: cxhjet
|
|
@@ -46,7 +46,6 @@ Dynamic: author-email
|
|
|
46
46
|
Dynamic: classifier
|
|
47
47
|
Dynamic: description
|
|
48
48
|
Dynamic: home-page
|
|
49
|
-
Dynamic: license-file
|
|
50
49
|
Dynamic: requires-dist
|
|
51
50
|
Dynamic: summary
|
|
52
51
|
|
|
@@ -337,7 +337,7 @@ class GenProject_Flask(GenProject_base):
|
|
|
337
337
|
exist_ok=False
|
|
338
338
|
)
|
|
339
339
|
try:
|
|
340
|
-
|
|
341
|
-
|
|
340
|
+
upgrade.Upgrade_manage('.',gen.swager).upgrade()
|
|
341
|
+
|
|
342
342
|
except Exception as e:
|
|
343
343
|
print('升级 k8s 失败,error:',str(e))
|
|
@@ -628,6 +628,11 @@ class BoCodeGenerator_flask(BoCodeGenerator_base):
|
|
|
628
628
|
if code.startswith('# create '):
|
|
629
629
|
continue
|
|
630
630
|
codes.append(code.rstrip())
|
|
631
|
+
else:
|
|
632
|
+
temp_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'template','flask_models.pys')
|
|
633
|
+
with codecs.open(temp_path, "r", "utf-8") as file:
|
|
634
|
+
for code in file.readlines():
|
|
635
|
+
codes.append(code.rstrip())
|
|
631
636
|
return codes
|
|
632
637
|
|
|
633
638
|
def _gen_model_py_code(self,outfile):
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from .models_base import *
|
|
2
|
+
from flask_babel import gettext as _
|
|
3
|
+
|
|
4
|
+
db_custom_error = {
|
|
5
|
+
# 'uq_member_typeandemail': _('The email is duplicated. Please re-enter it.'),
|
|
6
|
+
}
|
|
7
|
+
def get_err_msg(message:str) -> str:
|
|
8
|
+
"""
|
|
9
|
+
根据关键字获取自定义错误信息。
|
|
10
|
+
Args:
|
|
11
|
+
message (str): 原始错误信息。
|
|
12
|
+
Returns:
|
|
13
|
+
str: 返回错误信息,如果原始信息包含关键字则返回自定义信息,否则返回原始信息。
|
|
14
|
+
"""
|
|
15
|
+
return next((custom_msg for key_word, custom_msg in db_custom_error.items() if key_word in message), message)
|
|
16
|
+
|
|
17
|
+
|
|
@@ -16,6 +16,15 @@ def write_gen_info(f):
|
|
|
16
16
|
f.write('# create time :%s'%datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')+'\n')
|
|
17
17
|
f.write('#' * 40+'\n')
|
|
18
18
|
|
|
19
|
+
class Upgrade_manage:
|
|
20
|
+
def __init__(self,dir,swagger):
|
|
21
|
+
self.upgrade_k8s = Upgrade_k8s(dir,swagger)
|
|
22
|
+
self.upgrade_models = Upgrade_models(dir,swagger)
|
|
23
|
+
|
|
24
|
+
def upgrade(self):
|
|
25
|
+
self.upgrade_k8s.merge_config()
|
|
26
|
+
self.upgrade_models.merge_code()
|
|
27
|
+
|
|
19
28
|
class Upgrade_base:
|
|
20
29
|
def __init__(self,dir,swagger):
|
|
21
30
|
self.root_path =dir
|
|
@@ -109,5 +118,38 @@ class Upgrade_k8s(Upgrade_base):
|
|
|
109
118
|
self.merge_run()
|
|
110
119
|
self.merge_config()
|
|
111
120
|
|
|
121
|
+
class Upgrade_models(Upgrade_base):
|
|
122
|
+
def merge_models_err_msg(self):
|
|
123
|
+
filename = os.path.join(os.path.realpath(self.root_path),'app','models.py')
|
|
124
|
+
scodes = self.load_file(filename)
|
|
125
|
+
code_ins = '''
|
|
126
|
+
# 支持自定义错误信息
|
|
127
|
+
db_custom_error = {
|
|
128
|
+
# 'uq_member_typeandemail': _('The email is duplicated. Please re-enter it.'),
|
|
129
|
+
}
|
|
130
|
+
def get_err_msg(message:str) -> str:
|
|
131
|
+
"""
|
|
132
|
+
根据关键字获取自定义错误信息。
|
|
133
|
+
Args:
|
|
134
|
+
message (str): 原始错误信息。
|
|
135
|
+
Returns:
|
|
136
|
+
str: 返回错误信息,如果原始信息包含关键字则返回自定义信息,否则返回原始信息。
|
|
137
|
+
"""
|
|
138
|
+
return next((custom_msg for key_word, custom_msg in db_custom_error.items() if key_word in message), message)
|
|
139
|
+
'''
|
|
112
140
|
|
|
141
|
+
try:
|
|
142
|
+
scodes.index('db_custom_error = {')
|
|
143
|
+
# 如果有定义类, 则把代码插入到类的前面一行,否则,追加在代码最后一行
|
|
144
|
+
try:
|
|
145
|
+
code_ins_indx = scodes.index('class ')
|
|
146
|
+
except Exception as e:
|
|
147
|
+
code_ins_indx = len(scodes) + 2
|
|
148
|
+
scodes.insert(code_ins_indx, code_ins)
|
|
149
|
+
self.saveUTF8File(filename, scodes, exist_ok=True)
|
|
150
|
+
except Exception as e:
|
|
151
|
+
return
|
|
152
|
+
|
|
113
153
|
|
|
154
|
+
def merge_code(self):
|
|
155
|
+
self.merge_models_err_msg()
|
|
@@ -186,9 +186,9 @@ if __name__ == '__main__':
|
|
|
186
186
|
if len(sys.argv) == 1:
|
|
187
187
|
# 调试时使用的默认参数
|
|
188
188
|
# sys.argv.extend(['init', '-p', 'testproject', '-t', 'flask','-c'])
|
|
189
|
-
|
|
189
|
+
sys.argv.extend(['-r','./testproject','build'])
|
|
190
190
|
# sys.argv.extend(['-r','./testproject','exp','-c','order'])
|
|
191
|
-
sys.argv.extend(['-r','./testproject','add','-p','ordermng','-o','delete_orders','-t','delete'])
|
|
191
|
+
# sys.argv.extend(['-r','./testproject','add','-p','ordermng','-o','delete_orders','-t','delete'])
|
|
192
192
|
# sys.argv.extend(['upgrade','-d','./testproject'])
|
|
193
193
|
main()
|
|
194
194
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: mwgencode
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.6
|
|
4
4
|
Summary: 根据starUML文档产生flask专案的代码
|
|
5
5
|
Home-page: https://bitbucket.org/maxwin-inc/gencode/src/
|
|
6
6
|
Author: cxhjet
|
|
@@ -46,7 +46,6 @@ Dynamic: author-email
|
|
|
46
46
|
Dynamic: classifier
|
|
47
47
|
Dynamic: description
|
|
48
48
|
Dynamic: home-page
|
|
49
|
-
Dynamic: license-file
|
|
50
49
|
Dynamic: requires-dist
|
|
51
50
|
Dynamic: summary
|
|
52
51
|
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
from sqlalchemy import Table,Column, Integer, String, ForeignKey, Boolean,\
|
|
2
|
-
DateTime,Time,Date,Float
|
|
3
|
-
from sqlalchemy.orm import relationship,aliased
|
|
4
|
-
from sqlalchemy import or_
|
|
5
|
-
from .ext import Base as Model
|
|
6
|
-
import json
|
|
7
|
-
from enum import Enum
|
|
8
|
-
|
|
9
|
-
class SqlType(Enum):
|
|
10
|
-
mysql = 0 #'mysql+mysqldb'
|
|
11
|
-
mssql = 1 #'mssql+pymssql'
|
|
12
|
-
sqlite = 2 #'sqlite:'
|
|
13
|
-
def getSqlType():
|
|
14
|
-
sql_uri = current_app.config['SQLALCHEMY_DATABASE_URI']
|
|
15
|
-
if sql_uri.startswith('mysql+mysqldb'):
|
|
16
|
-
return SqlType.mysql.value
|
|
17
|
-
elif sql_uri.startswith('mssql+pymssql'):
|
|
18
|
-
return SqlType.mssql.value
|
|
19
|
-
elif sql_uri.startswith('sqlite:'):
|
|
20
|
-
return SqlType.sqlite.value
|
|
21
|
-
else:
|
|
22
|
-
assert False,'不能识别的SQL驱动,%s'%sql_uri
|
|
23
|
-
def new_id():
|
|
24
|
-
if getSqlType() == SqlType.sqlite.value:
|
|
25
|
-
import uuid
|
|
26
|
-
return str(uuid.uuid1())
|
|
27
|
-
else:
|
|
28
|
-
connection = db.engine.raw_connection()
|
|
29
|
-
try:
|
|
30
|
-
cursor = connection.cursor()
|
|
31
|
-
if getSqlType()==SqlType.mysql.value:
|
|
32
|
-
cursor.callproc("sp_getobjectids_new", [1])
|
|
33
|
-
elif getSqlType()==SqlType.mssql.value:
|
|
34
|
-
# 不知为何cursor.callproc 在 mssql中取不到资料??
|
|
35
|
-
cursor.execute("exec pro_gettableid 1")
|
|
36
|
-
newid = cursor.fetchone()[0]
|
|
37
|
-
cursor.close()
|
|
38
|
-
connection.commit()
|
|
39
|
-
finally:
|
|
40
|
-
connection.close()
|
|
41
|
-
return str(newid)
|
|
42
|
-
|
|
43
|
-
{% for enum in enumerations %}
|
|
44
|
-
class {{enum.name}}(Enum):
|
|
45
|
-
{% for k,v in enum.columns.items() %}
|
|
46
|
-
{{k}} ={{v}}
|
|
47
|
-
{% endfor %}
|
|
48
|
-
{% endfor %}
|
|
49
|
-
|
|
50
|
-
{% for _,table in metatables.items() %}
|
|
51
|
-
{{ table.class_name }} = Table('{{table.table_name}}', Model.metadata,
|
|
52
|
-
Column('{{table['columns'][0].dbname}}',{{table['columns'][0].type}}, ForeignKey('{{table['columns'][0].reftable}}.{{table['columns'][0].refid}}')),
|
|
53
|
-
Column('{{table['columns'][1].dbname}}',{{table['columns'][1].type}}, ForeignKey('{{table['columns'][1].reftable}}.{{table['columns'][1].refid}}'))
|
|
54
|
-
)
|
|
55
|
-
{% endfor %}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
{% for _,table in tables.items() %}
|
|
59
|
-
class {{ table.class_name }}({% if table.parent_name %}{{table.parent_name}}{% else %}Model{% endif %}):
|
|
60
|
-
{% if table.doc %}
|
|
61
|
-
"""
|
|
62
|
-
{{table.doc}}
|
|
63
|
-
"""
|
|
64
|
-
{% endif %}
|
|
65
|
-
{% if table.table_name %}
|
|
66
|
-
__tablename__ = '{{table.table_name}}'
|
|
67
|
-
{% endif %}
|
|
68
|
-
{% if table.discriminator_column %}
|
|
69
|
-
{{table.discriminator_column.name}} = Column({{table.discriminator_column.dbname}}{{table.discriminator_column.type}})
|
|
70
|
-
{% endif %}
|
|
71
|
-
{% if table.mapper_args %}
|
|
72
|
-
__mapper_args__ = {{table.mapper_args}}
|
|
73
|
-
{% endif %}
|
|
74
|
-
{% for uc in table.unique_constraints %}
|
|
75
|
-
{{ uc }}
|
|
76
|
-
{% endfor %}
|
|
77
|
-
{% for fld in table.columns %}
|
|
78
|
-
{% if fld.doc %}
|
|
79
|
-
# {{fld.doc}}
|
|
80
|
-
{% endif %}
|
|
81
|
-
{{fld.name}} = Column({{fld.dbname}}{{fld.type}}{{fld.default}}{{fld.unique}}{{fld.nullable}}{{fld.primary_key}})
|
|
82
|
-
{% endfor %}
|
|
83
|
-
{% for fld in table.fkeyids %}
|
|
84
|
-
{{fld.name}} = Column({{fld.dbname}}{{fld.type}},ForeignKey("{{fld.reftable}}.{{fld.refid}}"){{fld.default}}{{fld.unique}}{{fld.nullable}}{{fld.primary_key}})
|
|
85
|
-
{% endfor %}
|
|
86
|
-
{% for rs in table.relationsips %}
|
|
87
|
-
{{rs.name}} = relationship("{{rs.relationship_cls}}"{{rs.back_populates}}{{rs.uselist}}{{rs.foreign_keys}}{{rs.secondary}}{{rs.lazy}}{{rs.cascade}}{{rs.remote_side}}{{rs.primaryjoin}}{{rs.order_by}})
|
|
88
|
-
{% endfor %}
|
|
89
|
-
|
|
90
|
-
{% for func in table.funcs %}
|
|
91
|
-
{%if func.isstatic%}
|
|
92
|
-
@staticmethod
|
|
93
|
-
{% endif %}
|
|
94
|
-
def {{func.name}}({{func.self_param}}{{func.params}}):
|
|
95
|
-
{{func.codes}}
|
|
96
|
-
{% endfor %}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
def __repr__(self):
|
|
100
|
-
return json.dumps(self.to_json())
|
|
101
|
-
|
|
102
|
-
def to_json(self):
|
|
103
|
-
return {key: getattr(self, key) for key in self.__table__.columns.keys()
|
|
104
|
-
if hasattr(self,key)
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
{% endfor %}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|