lesscode-flask 0.2.22__tar.gz → 0.2.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.
Files changed (71) hide show
  1. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/PKG-INFO +2 -12
  2. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/__init__.py +1 -1
  3. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/limit/consecutive/consecutive_limiter_handler.py +1 -1
  4. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/limit/consecutive/redis_consecutive_limiter.py +4 -4
  5. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/limit/limit_util.py +3 -2
  6. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/limit/req/rate_limiter_handler.py +1 -1
  7. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/limit/req/redis_rate_limiter.py +1 -1
  8. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/limit/req_count/count_limiter_handler.py +1 -1
  9. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/limit/req_count/redis_count_limiter.py +2 -2
  10. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask.egg-info/PKG-INFO +2 -12
  11. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/README.md +0 -0
  12. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/app.py +0 -0
  13. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/db/__init__.py +0 -0
  14. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/db/datasource.py +0 -0
  15. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/db/executor.py +0 -0
  16. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/export_data/__init__.py +0 -0
  17. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/export_data/data_download_handler.py +0 -0
  18. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/log/access_log_handler.py +0 -0
  19. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/model/access_log.py +0 -0
  20. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/model/base_model.py +0 -0
  21. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/model/parameterized_query.py +0 -0
  22. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/model/resource_param_template.py +0 -0
  23. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/model/response_result.py +0 -0
  24. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/model/user.py +0 -0
  25. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/model/user_limit_policy.py +0 -0
  26. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/service/access_log_service.py +0 -0
  27. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/service/base_service.py +0 -0
  28. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/service/resource_param_template_service.py +0 -0
  29. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/setting/__init__.py +0 -0
  30. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/setup/__init__.py +0 -0
  31. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/signals.py +0 -0
  32. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/static/swagger.py +0 -0
  33. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/decorator/__init__.py +0 -0
  34. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/decorator/cache.py +0 -0
  35. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/decorator/sql_injection.py +0 -0
  36. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/decorator/swagger.py +0 -0
  37. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/dify_utils.py +0 -0
  38. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/file/file_exporter.py +0 -0
  39. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/file/file_utils.py +0 -0
  40. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/fs_util.py +0 -0
  41. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/helpers.py +0 -0
  42. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/json/NotSortJSONProvider.py +0 -0
  43. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/limit/__init__.py +0 -0
  44. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/oss/__init__.py +0 -0
  45. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/oss/aliyun_oss.py +0 -0
  46. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/oss/ks3_oss.py +0 -0
  47. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/oss/minio_oss.py +0 -0
  48. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/redis/redis_helper.py +0 -0
  49. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/request/request.py +0 -0
  50. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/swagger/swagger_template.py +0 -0
  51. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/swagger/swagger_util.py +0 -0
  52. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/task/__init__.py +0 -0
  53. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/task/task_helper.py +0 -0
  54. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/utils/thread/thread_utils.py +0 -0
  55. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask/wsgi.py +0 -0
  56. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask.egg-info/SOURCES.txt +0 -0
  57. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask.egg-info/dependency_links.txt +0 -0
  58. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask.egg-info/requires.txt +0 -0
  59. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/lesscode_flask.egg-info/top_level.txt +0 -0
  60. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/redash/query_runner/__init__.py +0 -0
  61. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/redash/query_runner/clickhouse.py +0 -0
  62. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/redash/query_runner/elasticsearch.py +0 -0
  63. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/redash/query_runner/kingbase.py +0 -0
  64. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/redash/query_runner/mysql.py +0 -0
  65. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/redash/query_runner/pg.py +0 -0
  66. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/redash/settings/__init__.py +0 -0
  67. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/redash/settings/helpers.py +0 -0
  68. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/redash/utils/__init__.py +0 -0
  69. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/redash/utils/requests_session.py +0 -0
  70. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/setup.cfg +0 -0
  71. {lesscode_flask-0.2.22 → lesscode_flask-0.2.24}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.1
2
2
  Name: lesscode-flask
3
- Version: 0.2.22
3
+ Version: 0.2.24
4
4
  Summary: lesscode-flask 是基于flask的web开发脚手架项目,该项目初衷为简化开发过程,让研发人员更加关注业务。
5
5
  Home-page: https://lesscode-flask
6
6
  Author: Chao.yy
@@ -26,16 +26,6 @@ Requires-Dist: gevent==25.5.1
26
26
  Requires-Dist: openpyxl==3.1.5
27
27
  Requires-Dist: iputil==0.3.1
28
28
  Requires-Dist: phone==0.4.5
29
- Dynamic: author
30
- Dynamic: author-email
31
- Dynamic: classifier
32
- Dynamic: description
33
- Dynamic: description-content-type
34
- Dynamic: home-page
35
- Dynamic: platform
36
- Dynamic: requires-dist
37
- Dynamic: requires-python
38
- Dynamic: summary
39
29
 
40
30
  # lesscode-flask
41
31
 
@@ -1,4 +1,4 @@
1
- __version__ = '0.2.22'
1
+ __version__ = '0.2.24'
2
2
 
3
3
  import functools
4
4
  import logging
@@ -37,7 +37,7 @@ class ConsecutiveAccessLimitHandler:
37
37
  phone_no = current_user.phone_no if current_user.phone_no is not None else "-"
38
38
  content.append({"tag": "text","text": f"手机号:{phone_no}\n"})
39
39
  content.append({"tag": "text","text": f"用户IP:{request.remote_addr}\n"})
40
- content.append({"tag": "text","text": f"资源地址:{request.url_rule.rule}\n"})
40
+ content.append({"tag": "text","text": f"资源地址:{request.path}\n"})
41
41
  token = request.headers.get("Authorization", "").replace("Bearer ", "")
42
42
  if token:
43
43
  FS_OAM_SERVICE_URL = current_app.config.get("FS_OAM_SERVICE_URL")
@@ -18,11 +18,11 @@ class RedisConsecutiveAccessLimiter:
18
18
  检查是否允许请求(限制用户连续访问同一路径)
19
19
  :return: (allowed, current_count)
20
20
  """
21
- consecutive_limit_count = getattr(user_limit_policy, 'consecutive_limit_count', 20)
22
- consecutive_limit_enable = getattr(user_limit_policy, 'consecutive_limit_enable', 0)
23
- limit_white_list = getattr(user_limit_policy, 'white_list', [])
21
+ consecutive_limit_count = user_limit_policy.consecutive_limit_count
22
+ consecutive_limit_enable = user_limit_policy.consecutive_limit_enable
23
+ limit_white_list = user_limit_policy.white_list
24
24
 
25
- request_url = request.url_rule.rule if request.url_rule else ""
25
+ request_url = request.path
26
26
 
27
27
  # 未启用连续访问限制 或者 在白名单中 直接返回允许
28
28
  if consecutive_limit_enable == 0 or request_url in limit_white_list:
@@ -12,7 +12,7 @@ def limit_key_encode() -> str:
12
12
  limit_key = None
13
13
  # 白名单
14
14
  limit_white_list = app_config.get("LIMIT_WHITE_LIST", [])
15
- request_url = request.url_rule.rule
15
+ request_url = request.path
16
16
  if request_url in limit_white_list:
17
17
  # 白名单访问 直接返回None
18
18
  return None
@@ -95,7 +95,8 @@ def get_user_limit_policy():
95
95
  # 如果没有策略就构建默认策略
96
96
  REDIS_RATE_LIMIT_ENABLE = app_config.get("RATE_LIMIT_ENABLE", False)
97
97
  REDIS_COUNT_LIMIT_ENABLE = app_config.get("COUNT_LIMIT_ENABLE", False)
98
+ CONSECUTIVE_ACCESS_LIMIT_ENABLE = app_config.get("CONSECUTIVE_ACCESS_LIMIT_ENABLE", False)
98
99
  LIMIT_WHITE_LIST = app_config.get("LIMIT_WHITE_LIST", False)
99
- return UserLimitPolicy(rate_limit_enable=int(REDIS_RATE_LIMIT_ENABLE),
100
+ return UserLimitPolicy(rate_limit_enable=int(REDIS_RATE_LIMIT_ENABLE),consecutive_limit_enable=int(CONSECUTIVE_ACCESS_LIMIT_ENABLE),
100
101
  count_limit_enable=int(REDIS_COUNT_LIMIT_ENABLE),white_list=LIMIT_WHITE_LIST)
101
102
 
@@ -39,7 +39,7 @@ class RateLimitHandler:
39
39
  phone_no = current_user.phone_no if current_user.phone_no is not None else "-"
40
40
  content.append({"tag": "text","text": f"手机号:{phone_no}\n"})
41
41
  content.append({"tag": "text","text": f"用户IP:{request.remote_addr}\n"})
42
- content.append({"tag": "text","text": f"资源地址:{request.url_rule.rule}\n"})
42
+ content.append({"tag": "text","text": f"资源地址:{request.path}\n"})
43
43
  token = request.headers.get("Authorization", "").replace("Bearer ", "")
44
44
  if token:
45
45
  FS_OAM_SERVICE_URL = current_app.config.get("FS_OAM_SERVICE_URL")
@@ -30,7 +30,7 @@ class RedisRateLimiter:
30
30
  time_window: int = user_limit_policy.rate_limit_window_sec
31
31
  rate_limit_enable = user_limit_policy.rate_limit_enable
32
32
  limit_white_list = user_limit_policy.white_list
33
- request_url = request.url_rule.rule
33
+ request_url = request.path
34
34
  # 未启用限流 或者 在白名单中 直接返回允许
35
35
  if rate_limit_enable == 0 or request_url in limit_white_list:
36
36
  # 白名单访问 直接返回None
@@ -41,7 +41,7 @@ class CountLimitHandler:
41
41
  phone_no = current_user.phone_no if current_user.phone_no is not None else "-"
42
42
  content.append({"tag": "text","text": f"手机号:{phone_no}\n"})
43
43
  content.append({"tag": "text","text": f"用户IP:{request.remote_addr}\n"})
44
- content.append({"tag": "text","text": f"资源地址:{request.url_rule.rule}\n"})
44
+ content.append({"tag": "text","text": f"资源地址:{request.path}\n"})
45
45
  token = request.headers.get("Authorization", "").replace("Bearer ", "")
46
46
  if token:
47
47
  FS_OAM_SERVICE_URL = current_app.config.get("FS_OAM_SERVICE_URL")
@@ -24,11 +24,11 @@ class RedisCountLimiter:
24
24
  count_limit_enable = user_limit_policy.count_limit_enable
25
25
  limit_white_list = user_limit_policy.white_list
26
26
  cost = 1 # 每次消耗一次数
27
- request_url = request.url_rule.rule
27
+ request_url = request.path
28
28
  # 未启用限流 或者 在白名单中 直接返回允许
29
29
  if count_limit_enable == 0 or request_url in limit_white_list:
30
30
  # 白名单访问 直接返回None
31
- return True, 0, 0
31
+ return True, 0
32
32
  # 限流键
33
33
  key = f"limit_count:{limit_key(request_url)}"
34
34
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.1
2
2
  Name: lesscode-flask
3
- Version: 0.2.22
3
+ Version: 0.2.24
4
4
  Summary: lesscode-flask 是基于flask的web开发脚手架项目,该项目初衷为简化开发过程,让研发人员更加关注业务。
5
5
  Home-page: https://lesscode-flask
6
6
  Author: Chao.yy
@@ -26,16 +26,6 @@ Requires-Dist: gevent==25.5.1
26
26
  Requires-Dist: openpyxl==3.1.5
27
27
  Requires-Dist: iputil==0.3.1
28
28
  Requires-Dist: phone==0.4.5
29
- Dynamic: author
30
- Dynamic: author-email
31
- Dynamic: classifier
32
- Dynamic: description
33
- Dynamic: description-content-type
34
- Dynamic: home-page
35
- Dynamic: platform
36
- Dynamic: requires-dist
37
- Dynamic: requires-python
38
- Dynamic: summary
39
29
 
40
30
  # lesscode-flask
41
31