lesscode-py 0.3.22__tar.gz → 0.3.24__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.
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/PKG-INFO +1 -1
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/sqlalchemy/sqlalchemy_helper.py +13 -12
- lesscode-py-0.3.24/lesscode/utils/json.py +17 -0
- lesscode-py-0.3.24/lesscode/version.py +8 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/web/base_handler.py +22 -12
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/web/business_exception.py +0 -4
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/web/response_result.py +2 -4
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/web/router_mapping.py +2 -6
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/web/status_code.py +0 -6
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode_py.egg-info/PKG-INFO +1 -1
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/setup.py +2 -3
- lesscode-py-0.3.22/lesscode/utils/json.py +0 -25
- lesscode-py-0.3.22/lesscode/version.py +0 -11
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/README.md +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/bin/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/bin/lesscode.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/base_connection_pool.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/base_sql_helper.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/condition_wrapper.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/connection_info.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/db_function.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/ds_helper.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/elasticsearch/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/elasticsearch/elasticsearch_helper.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/elasticsearch/elasticsearch_pool.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/es/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/es/es_helper.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/es/es_pool.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/es/es_request.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/init_connection_pool.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/mongodb/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/mongodb/mongodb_helper.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/mongodb/mongodb_pool.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/mysql/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/mysql/mysql_helper.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/mysql/mysql_pool.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/mysql_sqlalchemy/SqlAlchemy.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/mysql_sqlalchemy/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/mysql_sqlalchemy/mysql_sqlalchemy_pool.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/nebula/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/nebula/nebula_helper.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/nebula/nebula_pool.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/neo4j/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/neo4j/neo4j_helper.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/neo4j/neo4j_pool.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/page.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/postgresql/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/postgresql/postgresql_helper.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/postgresql/postgresql_pool.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/redis/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/redis/redis_helper.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/redis/redis_pool.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/redis_cluster/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/redis_cluster/redis_cluster_helper.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/redis_cluster/redis_cluster_pool.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/relational_db_helper.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/sqlalchemy/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/sqlalchemy/sqlalchemy_pool.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/extend_handlers/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/extend_handlers/doc/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/extend_handlers/doc/swagger_interface_doc_handler.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/extend_handlers/not_found_handler.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/mq/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/mq/kafka/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/mq/kafka/kafka_helper.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/mq/rabbitmq/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/mq/rabbitmq/rabbitmq_helper.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/task/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/task/task_helper.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/CacheUtil.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/EsUtil.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/JsonUtil.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/MongodbUtil.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/ThreadUtil.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/business.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/chart/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/chart/common2chart.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/chart/es2chart.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/chart/mongo2chart.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/chart/mysql2chart.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/chart/neo4j2chart.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/common.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/doc/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/doc/interface_doc_handler.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/encryption.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/encryption_algorithm/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/encryption_algorithm/aes.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/encryption_algorithm/base64.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/encryption_algorithm/des.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/encryption_algorithm/hmac.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/encryption_algorithm/md5.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/encryption_algorithm/rsa.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/encryption_algorithm/sha1.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/encryption_algorithm/sha256.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/encryption_algorithm/smx.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/es_log/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/es_log/record_log.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/oss/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/oss/ks3_oss.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/request.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/thread_task.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/upms_util.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/utils/wrapper.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/web/__init__.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/web/native_handler.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/web/web_server.py +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode_py.egg-info/SOURCES.txt +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode_py.egg-info/dependency_links.txt +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode_py.egg-info/top_level.txt +0 -0
- {lesscode-py-0.3.22 → lesscode-py-0.3.24}/setup.cfg +0 -0
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import importlib
|
|
2
|
-
from
|
|
2
|
+
from contextlib import contextmanager
|
|
3
3
|
|
|
4
|
-
from sqlalchemy.orm import declarative_base
|
|
5
4
|
from tornado.options import options
|
|
6
5
|
|
|
7
6
|
sqlalchemy_orm = None
|
|
8
|
-
sqlalchemy_util_compat = None
|
|
9
7
|
try:
|
|
10
8
|
sqlalchemy_orm = importlib.import_module("sqlalchemy.orm")
|
|
11
|
-
sqlalchemy_util_compat = importlib.import_module("sqlalchemy.util.compat")
|
|
12
9
|
except ImportError as e:
|
|
13
10
|
raise Exception(f"sqlalchemy is not exist,run:pip install sqlalchemy==1.4.36")
|
|
14
11
|
|
|
@@ -24,7 +21,7 @@ class SqlAlchemyHelper:
|
|
|
24
21
|
else:
|
|
25
22
|
self.pool = pool
|
|
26
23
|
|
|
27
|
-
@
|
|
24
|
+
@contextmanager
|
|
28
25
|
def make_session(self, **kwargs):
|
|
29
26
|
db_session = sqlalchemy_orm.scoped_session(sqlalchemy_orm.sessionmaker(bind=self.pool, **kwargs))
|
|
30
27
|
session = db_session()
|
|
@@ -70,28 +67,31 @@ def sqlalchemy_paging(Query, limit_number, offset_number):
|
|
|
70
67
|
def covert_relationship_property(attr, attr_value):
|
|
71
68
|
if attr.__class__.__name__ == 'ColumnProperty':
|
|
72
69
|
return attr_value
|
|
73
|
-
elif attr.__class__.__name__
|
|
70
|
+
elif attr.__class__.__name__ in ['RelationshipProperty', 'Relationship']:
|
|
74
71
|
attrs = []
|
|
75
72
|
for ar, ar_value in attr.mapper.attrs.items():
|
|
76
73
|
if ar_value.__class__.__name__ == 'ColumnProperty' and ar not in attrs:
|
|
77
74
|
attrs.append(ar)
|
|
78
|
-
if attr_value.__class__.__name__ == 'InstrumentedList':
|
|
75
|
+
if attr_value.__class__.__name__ == 'InstrumentedList' or isinstance(attr_value, list):
|
|
79
76
|
new_data = []
|
|
80
77
|
for item in attr_value:
|
|
81
78
|
info = dict()
|
|
82
79
|
for ar in attrs:
|
|
83
80
|
new_attr_value = getattr(item, ar)
|
|
84
|
-
if
|
|
81
|
+
if new_attr_value.__class__.__name__ not in ['RelationshipProperty', 'InstrumentedList']:
|
|
85
82
|
info[ar] = new_attr_value
|
|
86
83
|
else:
|
|
87
84
|
info = covert_relationship_property(ar, new_attr_value)
|
|
88
|
-
|
|
85
|
+
if info:
|
|
86
|
+
new_data.append(info)
|
|
89
87
|
return new_data
|
|
90
88
|
else:
|
|
91
89
|
new_data = dict()
|
|
92
90
|
for column, value in attr.entity.attrs.items():
|
|
93
|
-
if
|
|
94
|
-
|
|
91
|
+
if value.__class__.__name__ not in ['RelationshipProperty', 'InstrumentedList']:
|
|
92
|
+
val = getattr(attr_value, column)
|
|
93
|
+
if val.__class__.__name__ not in ['RelationshipProperty', 'InstrumentedList']:
|
|
94
|
+
new_data[column] = val
|
|
95
95
|
return new_data
|
|
96
96
|
else:
|
|
97
97
|
return attr_value
|
|
@@ -107,7 +107,8 @@ def query_set_to_dict(obj):
|
|
|
107
107
|
attr_value = getattr(obj, column)
|
|
108
108
|
value = covert_relationship_property(attr, attr_value)
|
|
109
109
|
if not value.__class__.__name__ == 'RelationshipProperty':
|
|
110
|
-
|
|
110
|
+
if value:
|
|
111
|
+
obj_dict[column] = value
|
|
111
112
|
|
|
112
113
|
return obj_dict
|
|
113
114
|
elif hasattr(obj, "keys"):
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import json
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class JSONEncoder(json.JSONEncoder):
|
|
5
|
+
def default(self, o):
|
|
6
|
+
object_class_name = o.__class__.__name__
|
|
7
|
+
if object_class_name == "ObjectId":
|
|
8
|
+
return str(o)
|
|
9
|
+
elif object_class_name == "datetime":
|
|
10
|
+
return str(o)
|
|
11
|
+
elif object_class_name == "bytes":
|
|
12
|
+
return str(o, encoding="utf-8")
|
|
13
|
+
elif object_class_name == "set":
|
|
14
|
+
return list(o)
|
|
15
|
+
elif object_class_name == "Decimal":
|
|
16
|
+
return str(o)
|
|
17
|
+
return json.JSONEncoder.default(self, o)
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
|
-
# author:chao.yy
|
|
3
|
-
# email:yuyc@ishangqi.com
|
|
4
|
-
# date:2021/11/4 4:39 下午
|
|
5
|
-
# Copyright (C) 2021 The lesscode Team
|
|
6
2
|
|
|
3
|
+
import importlib
|
|
7
4
|
import inspect
|
|
8
5
|
import json
|
|
9
6
|
import logging
|
|
@@ -11,12 +8,11 @@ import time
|
|
|
11
8
|
import traceback
|
|
12
9
|
import types
|
|
13
10
|
import uuid
|
|
11
|
+
from contextlib import contextmanager
|
|
14
12
|
from datetime import datetime
|
|
15
|
-
from decimal import Decimal
|
|
16
13
|
from typing import Optional, Awaitable, Any
|
|
17
14
|
from urllib.parse import unquote
|
|
18
15
|
|
|
19
|
-
from bson import ObjectId
|
|
20
16
|
from tornado import httputil
|
|
21
17
|
from tornado.escape import utf8
|
|
22
18
|
from tornado.ioloop import IOLoop
|
|
@@ -25,10 +21,10 @@ from tornado.web import RequestHandler, Application
|
|
|
25
21
|
|
|
26
22
|
from lesscode.task.task_helper import TaskHelper
|
|
27
23
|
from lesscode.utils.es_log.record_log import es_record_log
|
|
28
|
-
from lesscode.web.status_code import StatusCode
|
|
29
24
|
from lesscode.web.business_exception import BusinessException
|
|
30
25
|
from lesscode.web.response_result import ResponseResult
|
|
31
26
|
from lesscode.web.router_mapping import RouterMapping
|
|
27
|
+
from lesscode.web.status_code import StatusCode
|
|
32
28
|
|
|
33
29
|
|
|
34
30
|
class BaseHandler(RequestHandler):
|
|
@@ -97,6 +93,19 @@ class BaseHandler(RequestHandler):
|
|
|
97
93
|
if data is not None:
|
|
98
94
|
self.write(json.dumps(ResponseResult(data=data), ensure_ascii=False, cls=JSONEncoder))
|
|
99
95
|
|
|
96
|
+
@contextmanager
|
|
97
|
+
def make_session(self, pool, **kwargs):
|
|
98
|
+
pool, _ = options.database[pool]
|
|
99
|
+
try:
|
|
100
|
+
sqlalchemy_orm = importlib.import_module("sqlalchemy.orm")
|
|
101
|
+
except ImportError as e:
|
|
102
|
+
raise Exception(f"sqlalchemy is not exist,run:pip install sqlalchemy==1.4.36")
|
|
103
|
+
db_session = sqlalchemy_orm.scoped_session(sqlalchemy_orm.sessionmaker(bind=pool, **kwargs))
|
|
104
|
+
session = db_session()
|
|
105
|
+
yield session
|
|
106
|
+
session.commit()
|
|
107
|
+
session.close()
|
|
108
|
+
|
|
100
109
|
async def get(self):
|
|
101
110
|
"""
|
|
102
111
|
重写父类get请求处理方法,直接调用post方法统一处理
|
|
@@ -360,15 +369,16 @@ class BaseHandler(RequestHandler):
|
|
|
360
369
|
|
|
361
370
|
class JSONEncoder(json.JSONEncoder):
|
|
362
371
|
def default(self, o):
|
|
363
|
-
|
|
372
|
+
object_class_name = o.__class__.__name__
|
|
373
|
+
if object_class_name == "ObjectId":
|
|
364
374
|
return str(o)
|
|
365
|
-
elif
|
|
375
|
+
elif object_class_name == "datetime":
|
|
366
376
|
return str(o)
|
|
367
|
-
elif
|
|
377
|
+
elif object_class_name == "bytes":
|
|
368
378
|
return str(o, encoding="utf-8")
|
|
369
|
-
elif
|
|
379
|
+
elif object_class_name == "set":
|
|
370
380
|
return list(o)
|
|
371
|
-
elif
|
|
381
|
+
elif object_class_name == "Decimal":
|
|
372
382
|
return str(o)
|
|
373
383
|
return json.JSONEncoder.default(self, o)
|
|
374
384
|
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
|
-
|
|
3
|
-
# email:yuyc@ishangqi.com
|
|
4
|
-
# date:2021/11/10 3:57 下午
|
|
5
|
-
# Copyright (C) 2021 The lesscode Team
|
|
2
|
+
|
|
6
3
|
|
|
7
4
|
from datetime import datetime
|
|
8
5
|
|
|
@@ -13,6 +10,7 @@ class ResponseResult(dict):
|
|
|
13
10
|
"""
|
|
14
11
|
ResponseResult 类用于统一包装数据返回格式
|
|
15
12
|
"""
|
|
13
|
+
|
|
16
14
|
def __init__(self, status_code=StatusCode.SUCCESS, data=""):
|
|
17
15
|
super(ResponseResult, self).__init__()
|
|
18
16
|
# 业务请求状态编码
|
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
|
-
|
|
3
|
-
# email:yuyc@ishangqi.com
|
|
4
|
-
# date:2021/11/4 11:00 上午
|
|
5
|
-
# Copyright (C) 2021 The lesscode Team
|
|
2
|
+
|
|
6
3
|
import logging
|
|
7
4
|
import threading
|
|
8
5
|
|
|
9
6
|
import tornado.options
|
|
7
|
+
from tornado.options import define
|
|
10
8
|
from tornado.web import RequestHandler
|
|
11
9
|
|
|
12
|
-
from lesscode.db.redis.redis_helper import RedisHelper
|
|
13
10
|
from lesscode.utils.doc.interface_doc_handler import parser_swagger
|
|
14
11
|
from lesscode.utils.upms_util import upms_register
|
|
15
12
|
from lesscode.web.business_exception import BusinessException
|
|
16
13
|
from lesscode.web.status_code import StatusCode
|
|
17
|
-
from tornado.options import define
|
|
18
14
|
|
|
19
15
|
define("route_prefix", default="", type=str, help="路由前缀")
|
|
20
16
|
tornado.options.options.route_prefix = ""
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
|
-
|
|
3
|
-
# email:yuyc@ishangqi.com
|
|
4
|
-
# date:2021/11/18 4:41 下午
|
|
2
|
+
|
|
5
3
|
import shutil
|
|
6
4
|
|
|
7
5
|
import setuptools
|
|
8
6
|
from setuptools.command.install_scripts import install_scripts
|
|
7
|
+
|
|
9
8
|
from lesscode.version import __version__
|
|
10
9
|
|
|
11
10
|
with open("README.md", "r") as fh:
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import datetime
|
|
2
|
-
import importlib
|
|
3
|
-
import json
|
|
4
|
-
from decimal import Decimal
|
|
5
|
-
|
|
6
|
-
try:
|
|
7
|
-
bson = importlib.import_module("bson")
|
|
8
|
-
|
|
9
|
-
except ImportError as e:
|
|
10
|
-
raise Exception(f"pymongo is not exist,run:pip install pymongo==3.13.0")
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
class JSONEncoder(json.JSONEncoder):
|
|
14
|
-
def default(self, o):
|
|
15
|
-
if isinstance(o, bson.ObjectId):
|
|
16
|
-
return str(o)
|
|
17
|
-
elif isinstance(o, datetime.datetime):
|
|
18
|
-
return str(o)
|
|
19
|
-
elif isinstance(o, bytes):
|
|
20
|
-
return str(o, encoding="utf-8")
|
|
21
|
-
elif isinstance(o, set):
|
|
22
|
-
return list(o)
|
|
23
|
-
elif isinstance(o, Decimal):
|
|
24
|
-
return str(o)
|
|
25
|
-
return json.JSONEncoder.default(self, o)
|
|
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
|
{lesscode-py-0.3.22 → lesscode-py-0.3.24}/lesscode/db/mysql_sqlalchemy/mysql_sqlalchemy_pool.py
RENAMED
|
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
|