valar 0.0.8__tar.gz → 0.0.10__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.

Potentially problematic release.


This version of valar might be problematic. Click here for more details.

valar-0.0.10/PKG-INFO ADDED
@@ -0,0 +1,146 @@
1
+ Metadata-Version: 2.2
2
+ Name: valar
3
+ Version: 0.0.10
4
+ Summary: valar for morghulis
5
+ Author: LYP
6
+ Author-email: liuyinpeng@buaa.edu.cn
7
+ Requires-Python: >=3.9
8
+ Description-Content-Type: text/markdown
9
+ License-File: LICENSE
10
+ Requires-Dist: channels==3.0.3
11
+ Dynamic: author
12
+ Dynamic: author-email
13
+ Dynamic: description
14
+ Dynamic: description-content-type
15
+ Dynamic: requires-dist
16
+ Dynamic: requires-python
17
+ Dynamic: summary
18
+
19
+ valar for morghulis
20
+
21
+ # settings
22
+ ```python
23
+ from pathlib import Path
24
+
25
+ """ Compulsory settings """
26
+ DEBUG = True
27
+ BASE_DIR = Path(__file__).resolve().parent.parent
28
+ BASE_APP = str(BASE_DIR.name)
29
+ DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
30
+
31
+ """ Minimized compulsory settings """
32
+
33
+ DATABASES = {
34
+ 'default': {
35
+ 'ENGINE': 'django.db.backends.sqlite3',
36
+ 'NAME': BASE_DIR / 'db.sqlite3',
37
+ }
38
+ }
39
+
40
+ INSTALLED_APPS = [
41
+ 'django.contrib.sessions',
42
+ "corsheaders",
43
+ 'channels',
44
+ 'valar.dao'
45
+ ]
46
+
47
+ MIDDLEWARE = [
48
+ 'django.contrib.sessions.middleware.SessionMiddleware',
49
+ 'corsheaders.middleware.CorsMiddleware',
50
+ 'django.middleware.common.CommonMiddleware',
51
+ 'valar.Middleware'
52
+ ]
53
+
54
+ CHANNEL_LAYERS = {
55
+ "default": {
56
+ "BACKEND": "channels.layers.InMemoryChannelLayer"
57
+ }
58
+ }
59
+
60
+ CORS_ORIGIN_ALLOW_ALL = True
61
+ CORS_ALLOW_CREDENTIALS = True
62
+ ROOT_URLCONF = "%s.urls" % BASE_APP
63
+ ASGI_APPLICATION = "%s.asgi.application" % BASE_APP
64
+ VALAR_CHANNEL_HANDLER_MAPPING = "%s.urls.channel_handler_mapping" % BASE_APP
65
+
66
+ """ Optional settings """
67
+ # ALLOWED_HOSTS = ['*']
68
+ # LANGUAGE_CODE = 'en-us'
69
+ # TIME_ZONE = 'Asia/Shanghai'
70
+ # USE_I18N = True
71
+ # USE_TZ = False
72
+ # SESSION_SAVE_EVERY_REQUEST = True
73
+ # SESSION_COOKIE_AGE = 60 * 60
74
+ # FILE_UPLOAD_MAX_MEMORY_SIZE = 1024 * 1024 * 100
75
+ # DATA_UPLOAD_MAX_MEMORY_SIZE = 1024 * 1024 * 100
76
+ ```
77
+
78
+ # root urls
79
+ ```python
80
+ from django.urls import path
81
+
82
+ from valar.channels import ValarSocketSender
83
+ from valar.channels.views import handel_channel
84
+
85
+ urlpatterns = [
86
+ path('socket/<str:handler>', handel_channel),
87
+ ]
88
+
89
+
90
+ async def test_handler(data, sender: ValarSocketSender):
91
+ # print(data, sender.handler, sender.client, sender.uid)
92
+ await sender.to_users({'user': 15}, 15)
93
+ for i in range(3):
94
+ await sender.to_clients({'h': i},sender.client)
95
+
96
+
97
+ channel_handler_mapping = {
98
+ 'test': test_handler
99
+ }
100
+
101
+ ```
102
+
103
+
104
+ # asgi
105
+ ```python
106
+ from django.core.asgi import get_asgi_application
107
+ from channels.routing import ProtocolTypeRouter, URLRouter
108
+ from django.urls import re_path
109
+
110
+ from valar.channels import ValarConsumer
111
+
112
+ application = ProtocolTypeRouter({
113
+ 'http': get_asgi_application(),
114
+ 'websocket': URLRouter([
115
+ re_path(r'(?P<client>\w+)/$', ValarConsumer.as_asgi()),
116
+ ])
117
+ })
118
+
119
+ ```
120
+
121
+
122
+
123
+ # prepare
124
+ ```sh
125
+ python -m pip install --upgrade pip
126
+ ```
127
+ ```sh
128
+ pip install --upgrade build
129
+ ```
130
+ ```sh
131
+ pip install twine
132
+ ```
133
+
134
+ # publish
135
+ ```sh
136
+ rm -r dist
137
+ ```
138
+ ```sh
139
+ python -m build
140
+ ```
141
+ ```sh
142
+ twine check dist/*
143
+ ```
144
+ ```sh
145
+ twine upload dist/*
146
+ ```
valar-0.0.10/README.md ADDED
@@ -0,0 +1,128 @@
1
+ valar for morghulis
2
+
3
+ # settings
4
+ ```python
5
+ from pathlib import Path
6
+
7
+ """ Compulsory settings """
8
+ DEBUG = True
9
+ BASE_DIR = Path(__file__).resolve().parent.parent
10
+ BASE_APP = str(BASE_DIR.name)
11
+ DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
12
+
13
+ """ Minimized compulsory settings """
14
+
15
+ DATABASES = {
16
+ 'default': {
17
+ 'ENGINE': 'django.db.backends.sqlite3',
18
+ 'NAME': BASE_DIR / 'db.sqlite3',
19
+ }
20
+ }
21
+
22
+ INSTALLED_APPS = [
23
+ 'django.contrib.sessions',
24
+ "corsheaders",
25
+ 'channels',
26
+ 'valar.dao'
27
+ ]
28
+
29
+ MIDDLEWARE = [
30
+ 'django.contrib.sessions.middleware.SessionMiddleware',
31
+ 'corsheaders.middleware.CorsMiddleware',
32
+ 'django.middleware.common.CommonMiddleware',
33
+ 'valar.Middleware'
34
+ ]
35
+
36
+ CHANNEL_LAYERS = {
37
+ "default": {
38
+ "BACKEND": "channels.layers.InMemoryChannelLayer"
39
+ }
40
+ }
41
+
42
+ CORS_ORIGIN_ALLOW_ALL = True
43
+ CORS_ALLOW_CREDENTIALS = True
44
+ ROOT_URLCONF = "%s.urls" % BASE_APP
45
+ ASGI_APPLICATION = "%s.asgi.application" % BASE_APP
46
+ VALAR_CHANNEL_HANDLER_MAPPING = "%s.urls.channel_handler_mapping" % BASE_APP
47
+
48
+ """ Optional settings """
49
+ # ALLOWED_HOSTS = ['*']
50
+ # LANGUAGE_CODE = 'en-us'
51
+ # TIME_ZONE = 'Asia/Shanghai'
52
+ # USE_I18N = True
53
+ # USE_TZ = False
54
+ # SESSION_SAVE_EVERY_REQUEST = True
55
+ # SESSION_COOKIE_AGE = 60 * 60
56
+ # FILE_UPLOAD_MAX_MEMORY_SIZE = 1024 * 1024 * 100
57
+ # DATA_UPLOAD_MAX_MEMORY_SIZE = 1024 * 1024 * 100
58
+ ```
59
+
60
+ # root urls
61
+ ```python
62
+ from django.urls import path
63
+
64
+ from valar.channels import ValarSocketSender
65
+ from valar.channels.views import handel_channel
66
+
67
+ urlpatterns = [
68
+ path('socket/<str:handler>', handel_channel),
69
+ ]
70
+
71
+
72
+ async def test_handler(data, sender: ValarSocketSender):
73
+ # print(data, sender.handler, sender.client, sender.uid)
74
+ await sender.to_users({'user': 15}, 15)
75
+ for i in range(3):
76
+ await sender.to_clients({'h': i},sender.client)
77
+
78
+
79
+ channel_handler_mapping = {
80
+ 'test': test_handler
81
+ }
82
+
83
+ ```
84
+
85
+
86
+ # asgi
87
+ ```python
88
+ from django.core.asgi import get_asgi_application
89
+ from channels.routing import ProtocolTypeRouter, URLRouter
90
+ from django.urls import re_path
91
+
92
+ from valar.channels import ValarConsumer
93
+
94
+ application = ProtocolTypeRouter({
95
+ 'http': get_asgi_application(),
96
+ 'websocket': URLRouter([
97
+ re_path(r'(?P<client>\w+)/$', ValarConsumer.as_asgi()),
98
+ ])
99
+ })
100
+
101
+ ```
102
+
103
+
104
+
105
+ # prepare
106
+ ```sh
107
+ python -m pip install --upgrade pip
108
+ ```
109
+ ```sh
110
+ pip install --upgrade build
111
+ ```
112
+ ```sh
113
+ pip install twine
114
+ ```
115
+
116
+ # publish
117
+ ```sh
118
+ rm -r dist
119
+ ```
120
+ ```sh
121
+ python -m build
122
+ ```
123
+ ```sh
124
+ twine check dist/*
125
+ ```
126
+ ```sh
127
+ twine upload dist/*
128
+ ```
@@ -10,7 +10,7 @@ requires = ['channels==3.0.3']
10
10
 
11
11
  setup(
12
12
  name="valar", # 包名
13
- version="0.0.8", # 版本号
13
+ version="0.0.10", # 版本号
14
14
  author="LYP", # 作者
15
15
  author_email="liuyinpeng@buaa.edu.cn", # 邮箱
16
16
  description="valar for morghulis", # 简短描述
@@ -0,0 +1,21 @@
1
+ from django.http import JsonResponse, HttpRequest
2
+ from django.utils.deprecation import MiddlewareMixin
3
+
4
+ class ValarResponse(JsonResponse):
5
+ def __init__(self, data, message='', code='info'):
6
+ self.message = message
7
+ self.code = code
8
+ super(ValarResponse, self).__init__(data, safe=False)
9
+
10
+
11
+ class Middleware(MiddlewareMixin):
12
+ @staticmethod
13
+ def process_response(request: HttpRequest, response: ValarResponse):
14
+ message, code = response.message, response.code
15
+ user_id = request.session.get('USER_ID')
16
+ headers = response.headers
17
+ headers['valar_message'] = message
18
+ headers['valar_code'] = code
19
+ if user_id:
20
+ headers['user_id'] = user_id
21
+ return response
@@ -43,7 +43,7 @@ class ValarSocketSender:
43
43
  await self.send(GROUP, body)
44
44
 
45
45
  async def register(self):
46
- body = self.__convert_body('register.emit', [self.client], [self.uid])
46
+ body = self.__convert_body('register.emit', None,[self.client], [self.uid])
47
47
  await self.send(GROUP, body)
48
48
 
49
49
 
@@ -65,7 +65,6 @@ class ValarConsumer(AsyncJsonWebsocketConsumer):
65
65
  await self.close(code)
66
66
 
67
67
  async def receive_json(self, data, *args, **kwargs):
68
- print(data)
69
68
  pass
70
69
 
71
70
  async def user_emit(self, event):
@@ -2,10 +2,13 @@ import asyncio
2
2
  import importlib
3
3
  import json
4
4
  from django.core.exceptions import ImproperlyConfigured
5
- from django.http import JsonResponse
6
5
  from django.conf import settings
7
6
 
8
- from src.valar.channels import ValarSocketSender
7
+ from .. import ValarResponse
8
+ from ..channels import ValarSocketSender
9
+
10
+
11
+
9
12
 
10
13
 
11
14
  async def handel_channel(request, handler):
@@ -13,10 +16,12 @@ async def handel_channel(request, handler):
13
16
  uid = request.session.get('UID')
14
17
  data = json.loads(request.body)
15
18
  method = get_valar_channel_handler(handler)
16
- loop = asyncio.get_event_loop()
17
19
  sender = ValarSocketSender(handler, client, uid)
20
+ if uid and client:
21
+ await sender.register()
22
+ loop = asyncio.get_event_loop()
18
23
  loop.create_task(method(data, sender))
19
- return JsonResponse({'status':'OK'}, safe=False)
24
+ return ValarResponse({'status':'OK'}, message='OK', code= 'success')
20
25
 
21
26
 
22
27
 
@@ -0,0 +1,146 @@
1
+ Metadata-Version: 2.2
2
+ Name: valar
3
+ Version: 0.0.10
4
+ Summary: valar for morghulis
5
+ Author: LYP
6
+ Author-email: liuyinpeng@buaa.edu.cn
7
+ Requires-Python: >=3.9
8
+ Description-Content-Type: text/markdown
9
+ License-File: LICENSE
10
+ Requires-Dist: channels==3.0.3
11
+ Dynamic: author
12
+ Dynamic: author-email
13
+ Dynamic: description
14
+ Dynamic: description-content-type
15
+ Dynamic: requires-dist
16
+ Dynamic: requires-python
17
+ Dynamic: summary
18
+
19
+ valar for morghulis
20
+
21
+ # settings
22
+ ```python
23
+ from pathlib import Path
24
+
25
+ """ Compulsory settings """
26
+ DEBUG = True
27
+ BASE_DIR = Path(__file__).resolve().parent.parent
28
+ BASE_APP = str(BASE_DIR.name)
29
+ DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
30
+
31
+ """ Minimized compulsory settings """
32
+
33
+ DATABASES = {
34
+ 'default': {
35
+ 'ENGINE': 'django.db.backends.sqlite3',
36
+ 'NAME': BASE_DIR / 'db.sqlite3',
37
+ }
38
+ }
39
+
40
+ INSTALLED_APPS = [
41
+ 'django.contrib.sessions',
42
+ "corsheaders",
43
+ 'channels',
44
+ 'valar.dao'
45
+ ]
46
+
47
+ MIDDLEWARE = [
48
+ 'django.contrib.sessions.middleware.SessionMiddleware',
49
+ 'corsheaders.middleware.CorsMiddleware',
50
+ 'django.middleware.common.CommonMiddleware',
51
+ 'valar.Middleware'
52
+ ]
53
+
54
+ CHANNEL_LAYERS = {
55
+ "default": {
56
+ "BACKEND": "channels.layers.InMemoryChannelLayer"
57
+ }
58
+ }
59
+
60
+ CORS_ORIGIN_ALLOW_ALL = True
61
+ CORS_ALLOW_CREDENTIALS = True
62
+ ROOT_URLCONF = "%s.urls" % BASE_APP
63
+ ASGI_APPLICATION = "%s.asgi.application" % BASE_APP
64
+ VALAR_CHANNEL_HANDLER_MAPPING = "%s.urls.channel_handler_mapping" % BASE_APP
65
+
66
+ """ Optional settings """
67
+ # ALLOWED_HOSTS = ['*']
68
+ # LANGUAGE_CODE = 'en-us'
69
+ # TIME_ZONE = 'Asia/Shanghai'
70
+ # USE_I18N = True
71
+ # USE_TZ = False
72
+ # SESSION_SAVE_EVERY_REQUEST = True
73
+ # SESSION_COOKIE_AGE = 60 * 60
74
+ # FILE_UPLOAD_MAX_MEMORY_SIZE = 1024 * 1024 * 100
75
+ # DATA_UPLOAD_MAX_MEMORY_SIZE = 1024 * 1024 * 100
76
+ ```
77
+
78
+ # root urls
79
+ ```python
80
+ from django.urls import path
81
+
82
+ from valar.channels import ValarSocketSender
83
+ from valar.channels.views import handel_channel
84
+
85
+ urlpatterns = [
86
+ path('socket/<str:handler>', handel_channel),
87
+ ]
88
+
89
+
90
+ async def test_handler(data, sender: ValarSocketSender):
91
+ # print(data, sender.handler, sender.client, sender.uid)
92
+ await sender.to_users({'user': 15}, 15)
93
+ for i in range(3):
94
+ await sender.to_clients({'h': i},sender.client)
95
+
96
+
97
+ channel_handler_mapping = {
98
+ 'test': test_handler
99
+ }
100
+
101
+ ```
102
+
103
+
104
+ # asgi
105
+ ```python
106
+ from django.core.asgi import get_asgi_application
107
+ from channels.routing import ProtocolTypeRouter, URLRouter
108
+ from django.urls import re_path
109
+
110
+ from valar.channels import ValarConsumer
111
+
112
+ application = ProtocolTypeRouter({
113
+ 'http': get_asgi_application(),
114
+ 'websocket': URLRouter([
115
+ re_path(r'(?P<client>\w+)/$', ValarConsumer.as_asgi()),
116
+ ])
117
+ })
118
+
119
+ ```
120
+
121
+
122
+
123
+ # prepare
124
+ ```sh
125
+ python -m pip install --upgrade pip
126
+ ```
127
+ ```sh
128
+ pip install --upgrade build
129
+ ```
130
+ ```sh
131
+ pip install twine
132
+ ```
133
+
134
+ # publish
135
+ ```sh
136
+ rm -r dist
137
+ ```
138
+ ```sh
139
+ python -m build
140
+ ```
141
+ ```sh
142
+ twine check dist/*
143
+ ```
144
+ ```sh
145
+ twine upload dist/*
146
+ ```
valar-0.0.8/PKG-INFO DELETED
@@ -1,44 +0,0 @@
1
- Metadata-Version: 2.2
2
- Name: valar
3
- Version: 0.0.8
4
- Summary: valar for morghulis
5
- Author: LYP
6
- Author-email: liuyinpeng@buaa.edu.cn
7
- Requires-Python: >=3.9
8
- Description-Content-Type: text/markdown
9
- License-File: LICENSE
10
- Requires-Dist: channels==3.0.3
11
- Dynamic: author
12
- Dynamic: author-email
13
- Dynamic: description
14
- Dynamic: description-content-type
15
- Dynamic: requires-dist
16
- Dynamic: requires-python
17
- Dynamic: summary
18
-
19
- valar for morghulis
20
-
21
- # prepare
22
- ```sh
23
- python -m pip install --upgrade pip
24
- ```
25
- ```sh
26
- pip install --upgrade build
27
- ```
28
- ```sh
29
- pip install twine
30
- ```
31
-
32
- # publish
33
- ```sh
34
- rm -r dist
35
- ```
36
- ```sh
37
- python -m build
38
- ```
39
- ```sh
40
- twine check dist/*
41
- ```
42
- ```sh
43
- twine upload dist/*
44
- ```
valar-0.0.8/README.md DELETED
@@ -1,26 +0,0 @@
1
- valar for morghulis
2
-
3
- # prepare
4
- ```sh
5
- python -m pip install --upgrade pip
6
- ```
7
- ```sh
8
- pip install --upgrade build
9
- ```
10
- ```sh
11
- pip install twine
12
- ```
13
-
14
- # publish
15
- ```sh
16
- rm -r dist
17
- ```
18
- ```sh
19
- python -m build
20
- ```
21
- ```sh
22
- twine check dist/*
23
- ```
24
- ```sh
25
- twine upload dist/*
26
- ```
File without changes
@@ -1,44 +0,0 @@
1
- Metadata-Version: 2.2
2
- Name: valar
3
- Version: 0.0.8
4
- Summary: valar for morghulis
5
- Author: LYP
6
- Author-email: liuyinpeng@buaa.edu.cn
7
- Requires-Python: >=3.9
8
- Description-Content-Type: text/markdown
9
- License-File: LICENSE
10
- Requires-Dist: channels==3.0.3
11
- Dynamic: author
12
- Dynamic: author-email
13
- Dynamic: description
14
- Dynamic: description-content-type
15
- Dynamic: requires-dist
16
- Dynamic: requires-python
17
- Dynamic: summary
18
-
19
- valar for morghulis
20
-
21
- # prepare
22
- ```sh
23
- python -m pip install --upgrade pip
24
- ```
25
- ```sh
26
- pip install --upgrade build
27
- ```
28
- ```sh
29
- pip install twine
30
- ```
31
-
32
- # publish
33
- ```sh
34
- rm -r dist
35
- ```
36
- ```sh
37
- python -m build
38
- ```
39
- ```sh
40
- twine check dist/*
41
- ```
42
- ```sh
43
- twine upload dist/*
44
- ```
File without changes
File without changes
File without changes
File without changes