bk-resource 0.4.12__tar.gz → 0.4.13b0__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 (61) hide show
  1. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/PKG-INFO +2 -2
  2. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/utils/request.py +32 -0
  3. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/viewsets.py +13 -0
  4. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource.egg-info/PKG-INFO +2 -2
  5. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/readme.md +1 -1
  6. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/setup.py +1 -1
  7. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/LICENSE.txt +0 -0
  8. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/MANIFEST.in +0 -0
  9. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/__init__.py +0 -0
  10. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/apps.py +0 -0
  11. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/base.py +0 -0
  12. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/conf/__init__.py +0 -0
  13. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/conf/app_template/__init__.py-tpl +0 -0
  14. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/conf/app_template/admin.py-tpl +0 -0
  15. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/conf/app_template/apps.py-tpl +0 -0
  16. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/conf/app_template/migrations/__init__.py-tpl +0 -0
  17. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/conf/app_template/models.py-tpl +0 -0
  18. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/conf/app_template/resources.py-tpl +0 -0
  19. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/conf/app_template/serializers.py-tpl +0 -0
  20. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/conf/app_template/urls.py-tpl +0 -0
  21. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/conf/app_template/views.py-tpl +0 -0
  22. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/contrib/__init__.py +0 -0
  23. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/contrib/api.py +0 -0
  24. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/contrib/bk_api.py +0 -0
  25. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/contrib/cache.py +0 -0
  26. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/contrib/model.py +0 -0
  27. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/exceptions.py +0 -0
  28. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/locale/en/LC_MESSAGES/django.mo +0 -0
  29. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/locale/en/LC_MESSAGES/django.po +0 -0
  30. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/locale/zh_CN/LC_MESSAGES/django.mo +0 -0
  31. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/locale/zh_CN/LC_MESSAGES/django.po +0 -0
  32. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/management/__init__.py +0 -0
  33. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/management/commands/__init__.py +0 -0
  34. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/management/commands/generate_resource_stub_file.py +0 -0
  35. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/management/commands/start_resource.py +0 -0
  36. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/management/exceptions.py +0 -0
  37. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/management/finder.py +0 -0
  38. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/management/root.py +0 -0
  39. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/management/stub_file_generator.py +0 -0
  40. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/routers.py +0 -0
  41. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/serializers.py +0 -0
  42. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/settings.py +0 -0
  43. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/tasks.py +0 -0
  44. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/tools.py +0 -0
  45. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/utils/__init__.py +0 -0
  46. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/utils/cache.py +0 -0
  47. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/utils/common_utils.py +0 -0
  48. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/utils/factory.py +0 -0
  49. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/utils/generators.py +0 -0
  50. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/utils/inspectors.py +0 -0
  51. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/utils/local.py +0 -0
  52. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/utils/logger.py +0 -0
  53. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/utils/request_log.py +0 -0
  54. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/utils/text.py +0 -0
  55. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/utils/thread_backend.py +0 -0
  56. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource/utils/time_tools.py +0 -0
  57. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource.egg-info/SOURCES.txt +0 -0
  58. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource.egg-info/dependency_links.txt +0 -0
  59. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource.egg-info/requires.txt +0 -0
  60. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/bk_resource.egg-info/top_level.txt +0 -0
  61. {bk_resource-0.4.12 → bk_resource-0.4.13b0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: bk_resource
3
- Version: 0.4.12
3
+ Version: 0.4.13b0
4
4
  Summary: Bk Resource
5
5
  Home-page: https://bk.tencent.com
6
6
  Author: blueking
@@ -19,7 +19,7 @@ Requires-Dist: celery>=4.4.0
19
19
  ![logo.png](assests/logo.png)
20
20
 
21
21
  [![License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat)](https://github.com/TencentBlueKing/bk-resource/blob/main/LICENSE.txt)
22
- [![Release Version](https://img.shields.io/badge/release-0.4.12-brightgreen.svg)](https://github.com/TencentBlueKing/bk-resource/releases)
22
+ [![Release Version](https://img.shields.io/badge/release-0.4.13b0-brightgreen.svg)](https://github.com/TencentBlueKing/bk-resource/releases)
23
23
  [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/TencentBlueKing/bk-resource/pulls)
24
24
  [![codecov](https://codecov.io/gh/TencentBlueKing/bk-resource/branch/main/graph/badge.svg)](https://codecov.io/gh/TencentBlueKing/bk-resource)
25
25
  [![Unittest Py3](https://github.com/TencentBlueKing/bk-resource/actions/workflows/unittest.yml/badge.svg)](https://github.com/TencentBlueKing/bk-resource/actions/workflows/unittest.yml)
@@ -15,8 +15,11 @@ specific language governing permissions and limitations under the License.
15
15
  We undertake not to change the open source license (MIT license) applicable
16
16
  to the current version of the project delivered to anyone in the future.
17
17
  """
18
+ from typing import Optional, Type
18
19
 
20
+ from django.http import HttpRequest
19
21
  from django.test import RequestFactory
22
+ from django.urls import Resolver404, resolve
20
23
 
21
24
  from bk_resource.utils.local import local
22
25
 
@@ -44,3 +47,32 @@ def set_local_username(username):
44
47
 
45
48
  def get_mock_request(**kwargs):
46
49
  return RequestFactory().request(**kwargs)
50
+
51
+
52
+ def get_resource_by_request(request: HttpRequest = None) -> Optional[Type["bk_resource.Resource"]]:
53
+ """根据 request 对象获取具体的 Resource 类"""
54
+
55
+ from blueapps.utils.request_provider import get_local_request
56
+
57
+ request = request or get_local_request()
58
+ if not request:
59
+ return None
60
+
61
+ try:
62
+ match = resolve(request.path_info)
63
+ except Resolver404:
64
+ try:
65
+ match = resolve(f"{request.path_info}/")
66
+ except Resolver404:
67
+ return None
68
+
69
+ try:
70
+ from bk_resource.viewsets import RESOURCE_MAPPING
71
+
72
+ view_set_path = f"{match.func.cls.__module__}.{match.func.cls.__name__}"
73
+ resource_clz = RESOURCE_MAPPING.get(
74
+ (request.method, f"{view_set_path}.{match.func.actions.get(request.method.lower())}")
75
+ )
76
+ return resource_clz
77
+ except Exception: # pylint: disable=broad-except
78
+ return None
@@ -35,6 +35,9 @@ from bk_resource.base import Resource
35
35
  from bk_resource.settings import bk_resource_settings
36
36
 
37
37
 
38
+ RESOURCE_MAPPING = {}
39
+
40
+
38
41
  class ResourceRoute(object):
39
42
  """
40
43
  Resource的视图配置,应用于viewsets
@@ -124,6 +127,7 @@ class ResourceViewSet(viewsets.GenericViewSet):
124
127
 
125
128
  @classmethod
126
129
  def generate_endpoint(cls):
130
+
127
131
  for resource_route in cls.resource_routes:
128
132
  # 生成方法模版
129
133
  function = cls._generate_function_template(resource_route)
@@ -202,6 +206,9 @@ class ResourceViewSet(viewsets.GenericViewSet):
202
206
  setattr(cls, cls.EMPTY_ENDPOINT_METHODS[resource_route.method], function)
203
207
  else:
204
208
  raise AssertionError(gettext("不支持的请求方法: %s,请确认resource_routes配置是否正确!") % resource_route.method)
209
+
210
+ resource_action = cls.EMPTY_ENDPOINT_METHODS[resource_route.method]
211
+
205
212
  else:
206
213
  function = method_decorator(cache_control(max_age=0, private=True))(function)
207
214
  function.__name__ = resource_route.endpoint
@@ -217,6 +224,12 @@ class ResourceViewSet(viewsets.GenericViewSet):
217
224
  function = decorator_function(function)
218
225
  setattr(cls, resource_route.endpoint, function)
219
226
 
227
+ resource_action = resource_route.endpoint
228
+
229
+ RESOURCE_MAPPING[
230
+ (resource_route.method, f"{cls.__module__}.{cls.__name__}.{resource_action}")
231
+ ] = resource_route.resource_class
232
+
220
233
  @classmethod
221
234
  def _generate_function_template(cls, resource_route: ResourceRoute):
222
235
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: bk_resource
3
- Version: 0.4.12
3
+ Version: 0.4.13b0
4
4
  Summary: Bk Resource
5
5
  Home-page: https://bk.tencent.com
6
6
  Author: blueking
@@ -19,7 +19,7 @@ Requires-Dist: celery>=4.4.0
19
19
  ![logo.png](assests/logo.png)
20
20
 
21
21
  [![License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat)](https://github.com/TencentBlueKing/bk-resource/blob/main/LICENSE.txt)
22
- [![Release Version](https://img.shields.io/badge/release-0.4.12-brightgreen.svg)](https://github.com/TencentBlueKing/bk-resource/releases)
22
+ [![Release Version](https://img.shields.io/badge/release-0.4.13b0-brightgreen.svg)](https://github.com/TencentBlueKing/bk-resource/releases)
23
23
  [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/TencentBlueKing/bk-resource/pulls)
24
24
  [![codecov](https://codecov.io/gh/TencentBlueKing/bk-resource/branch/main/graph/badge.svg)](https://codecov.io/gh/TencentBlueKing/bk-resource)
25
25
  [![Unittest Py3](https://github.com/TencentBlueKing/bk-resource/actions/workflows/unittest.yml/badge.svg)](https://github.com/TencentBlueKing/bk-resource/actions/workflows/unittest.yml)
@@ -1,7 +1,7 @@
1
1
  ![logo.png](assests/logo.png)
2
2
 
3
3
  [![License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat)](https://github.com/TencentBlueKing/bk-resource/blob/main/LICENSE.txt)
4
- [![Release Version](https://img.shields.io/badge/release-0.4.12-brightgreen.svg)](https://github.com/TencentBlueKing/bk-resource/releases)
4
+ [![Release Version](https://img.shields.io/badge/release-0.4.13b0-brightgreen.svg)](https://github.com/TencentBlueKing/bk-resource/releases)
5
5
  [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/TencentBlueKing/bk-resource/pulls)
6
6
  [![codecov](https://codecov.io/gh/TencentBlueKing/bk-resource/branch/main/graph/badge.svg)](https://codecov.io/gh/TencentBlueKing/bk-resource)
7
7
  [![Unittest Py3](https://github.com/TencentBlueKing/bk-resource/actions/workflows/unittest.yml/badge.svg)](https://github.com/TencentBlueKing/bk-resource/actions/workflows/unittest.yml)
@@ -23,7 +23,7 @@ with open("readme.md") as f:
23
23
 
24
24
  setup(
25
25
  name="bk_resource",
26
- version="0.4.12",
26
+ version="0.4.13b0",
27
27
  author="blueking",
28
28
  url="https://bk.tencent.com",
29
29
  author_email="blueking@tencent.com",
File without changes
File without changes
File without changes