lesscode-flask 0.1.46__tar.gz → 0.1.49__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.46 → lesscode_flask-0.1.49}/PKG-INFO +1 -1
  2. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/__init__.py +1 -1
  3. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/model/user.py +3 -0
  4. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/setup/__init__.py +1 -1
  5. lesscode_flask-0.1.49/lesscode_flask/utils/task/__init__.py +0 -0
  6. lesscode_flask-0.1.49/lesscode_flask/utils/task/task_helper.py +142 -0
  7. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask.egg-info/PKG-INFO +1 -1
  8. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask.egg-info/SOURCES.txt +2 -0
  9. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/README.md +0 -0
  10. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/app.py +0 -0
  11. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/db/__init__.py +0 -0
  12. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/db/datasource.py +0 -0
  13. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/db/executor.py +0 -0
  14. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/export_data/__init__.py +0 -0
  15. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/export_data/data_download_handler.py +0 -0
  16. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/log/access_log_handler.py +0 -0
  17. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/model/access_log.py +0 -0
  18. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/model/base_model.py +0 -0
  19. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/model/parameterized_query.py +0 -0
  20. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/model/resource_param_template.py +0 -0
  21. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/model/response_result.py +0 -0
  22. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/service/access_log_service.py +0 -0
  23. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/service/base_service.py +0 -0
  24. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/service/resource_param_template_service.py +0 -0
  25. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/setting/__init__.py +0 -0
  26. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/signals.py +0 -0
  27. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/static/swagger.py +0 -0
  28. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/utils/__init__.py +0 -0
  29. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/utils/decorator/__init__.py +0 -0
  30. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/utils/decorator/cache.py +0 -0
  31. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/utils/decorator/swagger.py +0 -0
  32. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/utils/file/file_exporter.py +0 -0
  33. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/utils/file/file_utils.py +0 -0
  34. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/utils/helpers.py +0 -0
  35. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/utils/json/NotSortJSONProvider.py +0 -0
  36. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/utils/oss/__init__.py +0 -0
  37. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/utils/oss/ks3_oss.py +0 -0
  38. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/utils/redis/redis_helper.py +0 -0
  39. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/utils/request/request.py +0 -0
  40. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/utils/swagger/swagger_template.py +0 -0
  41. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/utils/swagger/swagger_util.py +0 -0
  42. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/utils/thread/thread_utils.py +0 -0
  43. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask/wsgi.py +0 -0
  44. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask.egg-info/dependency_links.txt +0 -0
  45. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask.egg-info/requires.txt +0 -0
  46. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/lesscode_flask.egg-info/top_level.txt +0 -0
  47. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/redash/query_runner/__init__.py +0 -0
  48. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/redash/query_runner/clickhouse.py +0 -0
  49. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/redash/query_runner/elasticsearch.py +0 -0
  50. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/redash/query_runner/kingbase.py +0 -0
  51. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/redash/query_runner/mysql.py +0 -0
  52. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/redash/query_runner/pg.py +0 -0
  53. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/redash/settings/__init__.py +0 -0
  54. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/redash/settings/helpers.py +0 -0
  55. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/redash/utils/__init__.py +0 -0
  56. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/redash/utils/requests_session.py +0 -0
  57. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/setup.cfg +0 -0
  58. {lesscode-flask-0.1.46 → lesscode_flask-0.1.49}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lesscode-flask
3
- Version: 0.1.46
3
+ Version: 0.1.49
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.46'
1
+ __version__ = '0.1.49'
2
2
 
3
3
  import functools
4
4
  import logging
@@ -222,6 +222,9 @@ class User(flask_login.UserMixin, PermissionsCheckMixin):
222
222
  permissions_url = []
223
223
  for key, value in app_dict.items():
224
224
  permissions_url.append(key)
225
+ # 3.15 添加,如果value是字符串就转成dict
226
+ if isinstance(value, str):
227
+ value = json.loads(value)
225
228
  permissions.append(value.get("symbol", ""))
226
229
  user.permissions_url = permissions_url
227
230
  user.permissions = permissions
@@ -398,7 +398,7 @@ def setup_resource_register(app):
398
398
  # """
399
399
  # return send_from_directory('static', filename)
400
400
 
401
-
401
+ t
402
402
  def setup_data_download(app):
403
403
  @app.route(f"{current_app.config.get('ROUTE_PREFIX')}/download/data_download", methods=['POST'])
404
404
  def data_download(download_key, data_len, params=None, column_list=None, page_size=10, file_name=""):
@@ -0,0 +1,142 @@
1
+ import importlib
2
+
3
+ from lesscode_flask.app import current_app
4
+
5
+
6
+ class TaskHelper:
7
+ @staticmethod
8
+ def add_job(func, trigger=None, args=None, kwargs=None, id=None, name=None,
9
+ misfire_grace_time=None, coalesce=None, max_instances=None,
10
+ next_run_time=None, jobstore='default', executor='default',
11
+ replace_existing=False, **trigger_args):
12
+ try:
13
+ util = importlib.import_module("apscheduler.util")
14
+ except ImportError:
15
+ raise Exception(f"flask_apscheduler is not exist,run:pip install flask_apscheduler==1.13.1")
16
+ if misfire_grace_time is None:
17
+ misfire_grace_time = util.undefined
18
+ if coalesce is None:
19
+ coalesce = util.undefined
20
+ if max_instances is None:
21
+ max_instances = util.undefined
22
+ if next_run_time is None:
23
+ next_run_time = util.undefined
24
+ 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)
30
+ return job
31
+
32
+ @staticmethod
33
+ def scheduled_job(trigger, args=None, kwargs=None, id=None, name=None,
34
+ misfire_grace_time=None, coalesce=None, max_instances=None,
35
+ next_run_time=None, jobstore='default', executor='default',
36
+ **trigger_args):
37
+ try:
38
+ util = importlib.import_module("apscheduler.util")
39
+ except ImportError:
40
+ raise Exception(f"flask_apscheduler is not exist,run:pip install flask_apscheduler==1.13.1")
41
+ if misfire_grace_time is None:
42
+ misfire_grace_time = util.undefined
43
+ if coalesce is None:
44
+ coalesce = util.undefined
45
+ if max_instances is None:
46
+ max_instances = util.undefined
47
+ if next_run_time is None:
48
+ next_run_time = util.undefined
49
+ scheduler = getattr(current_app, 'apscheduler')
50
+ inner = scheduler.scheduled_job(trigger, args=args, kwargs=kwargs, id=id, name=name,
51
+ misfire_grace_time=misfire_grace_time, coalesce=coalesce,
52
+ max_instances=max_instances,
53
+ next_run_time=next_run_time, jobstore=jobstore, executor=executor,
54
+ **trigger_args)
55
+ return inner
56
+
57
+ @staticmethod
58
+ def modify_job(job_id, jobstore=None, **changes):
59
+ scheduler = getattr(current_app, 'apscheduler')
60
+ job = scheduler.modify_job(job_id, jobstore=jobstore, **changes)
61
+ return job
62
+
63
+ @staticmethod
64
+ def reschedule_job(job_id, jobstore=None, trigger=None, **trigger_args):
65
+ scheduler = getattr(current_app, 'apscheduler')
66
+ job = scheduler.reschedule_job(job_id, jobstore=jobstore, trigger=trigger, **trigger_args)
67
+ return job
68
+
69
+ @staticmethod
70
+ def pause_job(job_id, jobstore=None):
71
+ scheduler = getattr(current_app, 'apscheduler')
72
+ job = scheduler.pause_job(job_id, jobstore=jobstore)
73
+ return job
74
+
75
+ @staticmethod
76
+ def resume_job(job_id, jobstore=None):
77
+ scheduler = getattr(current_app, 'apscheduler')
78
+ job = scheduler.resume_job(job_id, jobstore=jobstore)
79
+ return job
80
+
81
+ @staticmethod
82
+ def get_jobs(jobstore=None, pending=None):
83
+ scheduler = getattr(current_app, 'apscheduler')
84
+ jobs = scheduler.get_jobs(jobstore=jobstore, pending=pending)
85
+ return jobs
86
+
87
+ @staticmethod
88
+ def get_job(job_id, jobstore=None):
89
+ scheduler = getattr(current_app, 'apscheduler')
90
+ job = scheduler.get_job(job_id, jobstore=jobstore)
91
+ return job
92
+
93
+ @staticmethod
94
+ def remove_job(job_id, jobstore=None):
95
+ scheduler = getattr(current_app, 'apscheduler')
96
+ scheduler.remove_job(job_id, jobstore=jobstore)
97
+
98
+ @staticmethod
99
+ def remove_all_jobs(jobstore=None):
100
+ scheduler = getattr(current_app, 'apscheduler')
101
+ scheduler.remove_all_jobs(jobstore=jobstore)
102
+
103
+ @staticmethod
104
+ def print_jobs(jobstore=None, out=None):
105
+ scheduler = getattr(current_app, 'apscheduler')
106
+ scheduler.print_jobs(jobstore=jobstore, out=out)
107
+
108
+ @staticmethod
109
+ def add_executor(executor, alias='default', **executor_opts):
110
+ scheduler = getattr(current_app, 'apscheduler')
111
+ scheduler.add_executor(executor, alias=alias, **executor_opts)
112
+
113
+ @staticmethod
114
+ def remove_executor(alias, shutdown=True):
115
+ scheduler = getattr(current_app, 'apscheduler')
116
+ scheduler.remove_executor(alias=alias, shutdown=shutdown)
117
+
118
+ @staticmethod
119
+ def add_jobstore(jobstore, alias='default', **jobstore_opts):
120
+ scheduler = getattr(current_app, 'apscheduler')
121
+ scheduler.add_jobstore(jobstore, alias=alias, **jobstore_opts)
122
+
123
+ @staticmethod
124
+ def remove_jobstore(alias, shutdown=True):
125
+ scheduler = getattr(current_app, 'apscheduler')
126
+ scheduler.remove_jobstore(alias=alias, shutdown=shutdown)
127
+
128
+ @staticmethod
129
+ def add_listener(callback, mask=None):
130
+ try:
131
+ events = importlib.import_module("apscheduler.events")
132
+ except ImportError as e:
133
+ raise Exception(f"flask_apscheduler is not exist,run:pip install flask_apscheduler==1.13.1")
134
+ if mask is None:
135
+ mask = events.EVENT_ALL
136
+ scheduler = getattr(current_app, 'apscheduler')
137
+ scheduler.add_listener(callback, mask=mask)
138
+
139
+ @staticmethod
140
+ def remove_listener(callback):
141
+ scheduler = getattr(current_app, 'apscheduler')
142
+ scheduler.remove_listener(callback)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lesscode-flask
3
- Version: 0.1.46
3
+ Version: 0.1.49
4
4
  Summary: lesscode-flask 是基于flask的web开发脚手架项目,该项目初衷为简化开发过程,让研发人员更加关注业务。
5
5
  Home-page: https://lesscode-flask
6
6
  Author: Chao.yy
@@ -41,6 +41,8 @@ lesscode_flask/utils/redis/redis_helper.py
41
41
  lesscode_flask/utils/request/request.py
42
42
  lesscode_flask/utils/swagger/swagger_template.py
43
43
  lesscode_flask/utils/swagger/swagger_util.py
44
+ lesscode_flask/utils/task/__init__.py
45
+ lesscode_flask/utils/task/task_helper.py
44
46
  lesscode_flask/utils/thread/thread_utils.py
45
47
  redash/query_runner/__init__.py
46
48
  redash/query_runner/clickhouse.py