lesscode-flask 0.1.62__tar.gz → 0.1.64__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.
Files changed (58) hide show
  1. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/PKG-INFO +1 -1
  2. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/__init__.py +1 -1
  3. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/app.py +2 -1
  4. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/setup/__init__.py +21 -0
  5. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/decorator/cache.py +4 -1
  6. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/task/task_helper.py +22 -6
  7. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask.egg-info/PKG-INFO +1 -1
  8. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/README.md +0 -0
  9. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/db/__init__.py +0 -0
  10. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/db/datasource.py +0 -0
  11. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/db/executor.py +0 -0
  12. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/export_data/__init__.py +0 -0
  13. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/export_data/data_download_handler.py +0 -0
  14. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/log/access_log_handler.py +0 -0
  15. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/model/access_log.py +0 -0
  16. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/model/base_model.py +0 -0
  17. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/model/parameterized_query.py +0 -0
  18. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/model/resource_param_template.py +0 -0
  19. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/model/response_result.py +0 -0
  20. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/model/user.py +0 -0
  21. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/service/access_log_service.py +0 -0
  22. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/service/base_service.py +0 -0
  23. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/service/resource_param_template_service.py +0 -0
  24. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/setting/__init__.py +0 -0
  25. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/signals.py +0 -0
  26. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/static/swagger.py +0 -0
  27. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/__init__.py +0 -0
  28. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/decorator/__init__.py +0 -0
  29. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/decorator/swagger.py +0 -0
  30. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/file/file_exporter.py +0 -0
  31. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/file/file_utils.py +0 -0
  32. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/helpers.py +0 -0
  33. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/json/NotSortJSONProvider.py +0 -0
  34. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/oss/__init__.py +0 -0
  35. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/oss/ks3_oss.py +0 -0
  36. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/redis/redis_helper.py +0 -0
  37. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/request/request.py +0 -0
  38. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/swagger/swagger_template.py +0 -0
  39. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/swagger/swagger_util.py +0 -0
  40. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/task/__init__.py +0 -0
  41. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/thread/thread_utils.py +0 -0
  42. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/wsgi.py +0 -0
  43. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask.egg-info/SOURCES.txt +0 -0
  44. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask.egg-info/dependency_links.txt +0 -0
  45. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask.egg-info/requires.txt +0 -0
  46. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask.egg-info/top_level.txt +0 -0
  47. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/redash/query_runner/__init__.py +0 -0
  48. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/redash/query_runner/clickhouse.py +0 -0
  49. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/redash/query_runner/elasticsearch.py +0 -0
  50. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/redash/query_runner/kingbase.py +0 -0
  51. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/redash/query_runner/mysql.py +0 -0
  52. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/redash/query_runner/pg.py +0 -0
  53. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/redash/settings/__init__.py +0 -0
  54. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/redash/settings/helpers.py +0 -0
  55. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/redash/utils/__init__.py +0 -0
  56. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/redash/utils/requests_session.py +0 -0
  57. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/setup.cfg +0 -0
  58. {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lesscode-flask
3
- Version: 0.1.62
3
+ Version: 0.1.64
4
4
  Summary: lesscode-flask 是基于flask的web开发脚手架项目,该项目初衷为简化开发过程,让研发人员更加关注业务。
5
5
  Home-page: https://lesscode-flask
6
6
  Author: Chao.yy
@@ -1,4 +1,4 @@
1
- __version__ = '0.1.62'
1
+ __version__ = '0.1.64'
2
2
 
3
3
  import functools
4
4
  import logging
@@ -18,7 +18,7 @@ from werkzeug.middleware.proxy_fix import ProxyFix
18
18
  from lesscode_flask.model.response_result import ResponseResult
19
19
  from lesscode_flask.setup import setup_blueprint, setup_logging, setup_query_runner, setup_swagger, setup_sql_alchemy, \
20
20
  setup_redis, setup_login_manager, setup_resource_register, setup_data_download, setup_scheduler, \
21
- setup_common_resource
21
+ setup_common_resource, setup_task
22
22
  from lesscode_flask.signals import app_runed
23
23
  from lesscode_flask.utils.helpers import inject_args, generate_uuid, app_config
24
24
  from lesscode_flask.utils.json.NotSortJSONProvider import NotSortJSONProvider
@@ -151,6 +151,7 @@ class Lesscoder(Flask):
151
151
  setup_resource_register(self)
152
152
  setup_data_download(self)
153
153
  setup_scheduler(self)
154
+ setup_task(self)
154
155
 
155
156
  # setup_static(self)
156
157
 
@@ -430,6 +430,27 @@ def setup_data_download(app):
430
430
  return url
431
431
 
432
432
 
433
+ def setup_task(app):
434
+ task_routes = SQ_Blueprint("后台任务", url_prefix=f'{app.config.get("ROUTE_PREFIX", "")}')
435
+
436
+ @task_routes.post_route(f"运行任务", methods=['POST'])
437
+ def task_run(func_key: str, task_params: dict = None):
438
+ print(request.headers)
439
+ module, qualname = func_key.split(":")
440
+ m = import_module(module)
441
+ func = m
442
+ if "." in qualname:
443
+ tmp = qualname.split(".")
444
+ for t in tmp:
445
+ func = getattr(func, t)
446
+ else:
447
+ func = getattr(m, qualname)
448
+ task_params = task_params or dict()
449
+ func(**task_params)
450
+
451
+ app.register_blueprint(task_routes)
452
+
453
+
433
454
  def setup_scheduler(app):
434
455
  if current_app.config.get("SCHEDULER_ENABLE", False):
435
456
  try:
@@ -12,7 +12,7 @@ from importlib import import_module
12
12
 
13
13
  # 装饰器
14
14
  # from lesscode_utils.json_utils import JSONEncoder
15
- from flask import copy_current_request_context
15
+ from flask import copy_current_request_context, request
16
16
 
17
17
  from lesscode_flask.utils.helpers import app_config
18
18
  from lesscode_flask.utils.redis.redis_helper import RedisHelper
@@ -128,6 +128,9 @@ def format_insert_key(signature, func_name, args, params):
128
128
  if k != "self":
129
129
  _args.append(json.dumps(params[k]))
130
130
  str_insert_key = "&".join([str(x) for x in _args])
131
+ headers = {key: value for key, value in request.headers if key in ["App-Key", "Data-Source-Id"]}
132
+ for h in headers:
133
+ str_insert_key = str_insert_key + "&" + str(headers[h])
131
134
  str_insert_key = app_config.get("ROUTE_PREFIX") + "#" + func_name + "#" + str_insert_key
132
135
  return str_insert_key
133
136
 
@@ -1,5 +1,8 @@
1
1
  import importlib
2
2
 
3
+ from flask import request
4
+ from requests import post
5
+
3
6
  from lesscode_flask.app import current_app
4
7
 
5
8
 
@@ -8,7 +11,7 @@ class TaskHelper:
8
11
  def add_job(func, trigger=None, args=None, kwargs=None, id=None, name=None,
9
12
  misfire_grace_time=None, coalesce=None, max_instances=None,
10
13
  next_run_time=None, jobstore='default', executor='default',
11
- replace_existing=False, **trigger_args):
14
+ replace_existing=False, is_add_ctx=False, **trigger_args):
12
15
  try:
13
16
  util = importlib.import_module("apscheduler.util")
14
17
  except ImportError:
@@ -22,11 +25,24 @@ class TaskHelper:
22
25
  if next_run_time is None:
23
26
  next_run_time = util.undefined
24
27
  scheduler = getattr(current_app, 'apscheduler')
25
- job = scheduler.add_job(func=func, trigger=trigger, args=args, kwargs=kwargs, id=id, name=name,
26
- misfire_grace_time=misfire_grace_time, coalesce=coalesce,
27
- max_instances=max_instances,
28
- next_run_time=next_run_time, jobstore=jobstore, executor=executor,
29
- replace_existing=replace_existing, **trigger_args)
28
+ if is_add_ctx:
29
+ _func = post
30
+ _kwargs = {
31
+ "url": f"http://127.0.0.1:{current_app.config.get('PORT')}{current_app.config.get('ROUTE_PREFIX')}/task_run",
32
+ "json": {"func_key": f"{func.__module__}:{func.__qualname__}",
33
+ "task_params": kwargs, },
34
+ "headers": dict(request.headers)}
35
+ job = scheduler.add_job(func=_func, trigger=trigger, args=args, kwargs=_kwargs, id=id, name=name,
36
+ misfire_grace_time=misfire_grace_time, coalesce=coalesce,
37
+ max_instances=max_instances,
38
+ next_run_time=next_run_time, jobstore=jobstore, executor=executor,
39
+ replace_existing=replace_existing, **trigger_args)
40
+ else:
41
+ job = scheduler.add_job(func=func, trigger=trigger, args=args, kwargs=kwargs, id=id, name=name,
42
+ misfire_grace_time=misfire_grace_time, coalesce=coalesce,
43
+ max_instances=max_instances,
44
+ next_run_time=next_run_time, jobstore=jobstore, executor=executor,
45
+ replace_existing=replace_existing, **trigger_args)
30
46
  return job
31
47
 
32
48
  @staticmethod
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lesscode-flask
3
- Version: 0.1.62
3
+ Version: 0.1.64
4
4
  Summary: lesscode-flask 是基于flask的web开发脚手架项目,该项目初衷为简化开发过程,让研发人员更加关注业务。
5
5
  Home-page: https://lesscode-flask
6
6
  Author: Chao.yy