valar 1.3.22__py3-none-any.whl → 1.3.23__py3-none-any.whl

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/dao/orm_dao.py CHANGED
@@ -1,5 +1,6 @@
1
1
  import datetime
2
2
  import json
3
+ from urllib.parse import quote
3
4
 
4
5
  from django.core.paginator import Paginator
5
6
  from django.db.models.options import Options
@@ -317,6 +318,7 @@ def __get_custom_props__(entity, code='default'):
317
318
  def __set_simple_values__(fields, values):
318
319
  date_props_mapping = {}
319
320
  json_props = []
321
+ file_props = []
320
322
  for field in fields:
321
323
  if isinstance(field, OrmField):
322
324
  prop = field.prop
@@ -328,12 +330,16 @@ def __set_simple_values__(fields, values):
328
330
  date_props_mapping[prop] = __data_props_formatting__[domain]
329
331
  elif domain == 'JSONField':
330
332
  json_props.append(prop)
333
+ elif domain == 'FileField':
334
+ file_props.append(prop)
331
335
  for row in values:
332
336
  for prop, formating in date_props_mapping.items():
333
337
  if row.get(prop):
334
338
  row[prop] = row[prop].strftime(formating)
335
339
  for prop in json_props:
336
340
  row[prop] = json.loads(row[prop]) if type(row[prop]) is str else row[prop]
341
+ for prop in file_props:
342
+ row[prop] = quote(row[prop], safe=":/")
337
343
 
338
344
  # def fun(field): return type(field).__name__ not in __referred_domains__ and field.name not in __omit_field_props__
339
345
  #
valar/models/core.py CHANGED
@@ -1,4 +1,5 @@
1
1
  import json
2
+ from urllib.parse import quote
2
3
 
3
4
  from django.apps import AppConfig
4
5
  from django.db import models
@@ -48,7 +49,7 @@ class VModel(models.Model):
48
49
  elif domain in [TimeField]:
49
50
  value = value.strftime('%H:%M:%S')
50
51
  elif domain in [FileField]:
51
- value = value.name
52
+ value = quote(value.name, safe=":/")
52
53
  elif domain in [BigAutoField]:
53
54
  value = value
54
55
  data[prop] = value
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: valar
3
- Version: 1.3.22
3
+ Version: 1.3.23
4
4
  Summary: valar for morghulis
5
5
  Home-page: https://gitee.com/GRIFFIN120/valar_dev
6
6
  Author: LYP
@@ -46,7 +46,7 @@ pip install valar
46
46
  - asgi.py
47
47
  - urls.py
48
48
 
49
- ## 2.1 settings.py
49
+ ## 2.1 settings.py and ___init__.py
50
50
 
51
51
  ```python
52
52
  from pathlib import Path
@@ -62,8 +62,16 @@ SECRET_KEY = 'django-insecure-of@tfouoq^_f$l!yki#m=6j7)@&kjri$1_$!mca-=%7=+@f@5^
62
62
 
63
63
  DATABASES = {
64
64
  'default': {
65
- 'ENGINE': 'django.db.backends.sqlite3',
66
- 'NAME': BASE_DIR / 'db.sqlite3',
65
+ 'ENGINE': 'django.db.backends.mysql', # 使用 MySQL
66
+ 'NAME': 'vm_ets', # 数据库名
67
+ 'USER': 'root', # 用户名
68
+ 'PASSWORD': password, # 密码
69
+ 'HOST': 'localhost', # 数据库地址,本机用127.0.0.1
70
+ 'PORT': '3306', # MySQL端口,默认3306
71
+ 'OPTIONS': {
72
+ 'connect_timeout': 5, # 默认10秒,可以缩短
73
+ 'charset': 'utf8mb4',
74
+ }
67
75
  }
68
76
  }
69
77
 
@@ -106,44 +114,58 @@ DATA_UPLOAD_MAX_MEMORY_SIZE = 1024 * 1024 * 100
106
114
  """ Valar Options """
107
115
 
108
116
  HANDLER_MAPPING = "%s.urls.channel_mapping" % BASE_APP
109
- MONGO_URI = 'mongodb://username:password@host:27017'
110
- MINIO_URL = "s3://username:password@host:9000"
111
- MINIO_ROOT = "https://host:9001"
117
+ MONGO_URI = f'mongodb://root:{password}@{host}:27017/'
118
+ MINIO_URL = f"s3://admin:{password}@{host}:9001"
119
+ MINIO_ROOT = f"http://{host}:9001"
112
120
 
113
121
  """ Email Options """
122
+
114
123
  EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
115
- EMAIL_HOST = 'xxx.xx.xx.xx'
116
- EMAIL_PORT = 465
117
- EMAIL_DOMAIN = 'http://xx.xx.xx'
118
- EMAIL_HOST_USER = "xxx@xx.xx.xx"
119
- EMAIL_HOST_PASSWORD = '*******'
120
- EMAIL_USE_TLS = False
121
- EMAIL_USE_SSL = True
124
+ EMAIL_HOST = 'smtp.126.com'
125
+ EMAIL_PORT = 25
126
+ EMAIL_HOST_USER = "xxxx@126.com"
127
+ EMAIL_HOST_PASSWORD = 'CGiKQh5FyQyupQYA'
128
+ ```
129
+
130
+ ```python
131
+ import pymysql
132
+
133
+ pymysql.install_as_MySQLdb()
134
+
122
135
  ```
123
136
 
124
137
  ## 2.2 asgi.py
125
138
 
126
139
  ```python
140
+ import os
141
+ from pathlib import Path
142
+
127
143
  from django.core.asgi import get_asgi_application
128
144
  from channels.routing import ProtocolTypeRouter, URLRouter
129
145
  from django.urls import re_path
130
146
 
131
147
  from valar.channels.consumer import ValarConsumer
132
148
 
149
+ os.environ.setdefault('DJANGO_SETTINGS_MODULE', '%s.settings' % Path(__file__).resolve().parent.parent.name)
133
150
  application = ProtocolTypeRouter({
134
151
  'http': get_asgi_application(),
135
152
  'websocket': URLRouter([
136
153
  re_path(r'(?P<client>\w+)/$', ValarConsumer.as_asgi()),
137
154
  ])
138
155
  })
139
-
140
-
141
156
  ```
142
157
 
143
158
  ## 2.3 urls.py
144
159
 
145
- - no need to provide urls for Valar, Valar will auto set urlpatterns for Morghulis (
146
- see https://www.npmjs.com/package/morghulis)
160
+ ```python
161
+ from django.urls import path, include
162
+
163
+ urlpatterns = [
164
+ path('valar/', include('valar.urls')),
165
+ ]
166
+
167
+ ```
168
+
147
169
  - go to section 4 to see how to register channel handlers (a Vue - Django async communication tool) in urls.
148
170
 
149
171
  # 3. migrate
@@ -25,7 +25,7 @@ valar/dao/frame.py,sha256=cz2SWcRgKww0XVNZpCcPD3ACcW6q6piMba2StshT60M,7462
25
25
  valar/dao/meta.py,sha256=jhSz62GCjsyp0BGBzK67SQpolOzmu-5HTQ-o9Zn9kYg,4412
26
26
  valar/dao/mon_dao.py,sha256=OlbbEl8Pl-2ABoYTT9goj2q51mgxmWy9770ZQv3fB_s,3665
27
27
  valar/dao/mon_field.py,sha256=AJp-KS19oRiRHtMidC_1uTv2oCplqO4-bdKNDLMllWU,570
28
- valar/dao/orm_dao.py,sha256=yiIHV6S_LLEoQpS7E_xZXjvC_aDffCLGPj_M4mGtREY,13853
28
+ valar/dao/orm_dao.py,sha256=gYnuYx25wfF2hLR4ALfA9cqQUs4vff1W79ISmKygZ6k,14060
29
29
  valar/dao/orm_field.py,sha256=qADDGPM_EUVxP2VEGfnb2m97gYeSFxXt5fOmY2Df11c,4981
30
30
  valar/dao/query.py,sha256=7MqCdwjdhXWBWjEggHVFQfC0zlZH3TrwuVxKE7E0OKA,1049
31
31
  valar/dao/defaults/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -35,7 +35,7 @@ valar/dao/defaults/view_defaults.py,sha256=v2wEgiaXqEcM4lcjM2uV83cLA5EJZf6qHfLZ7
35
35
  valar/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
36
  valar/models/__init__.py,sha256=GMosgOi_o4kFIyReJg1qFqtbWSob5Mazd5FSGT_zfqI,55
37
37
  valar/models/auth.py,sha256=nxtLgJwBEgvYWXATcN-RN1e5LIzeUzK97jExUSjoIOk,1710
38
- valar/models/core.py,sha256=9lOEGuECtlzepzkDbMIT8gw73RR6nUQ70GShm6NhaT8,3694
38
+ valar/models/core.py,sha256=GkJq_f7w2FwFf25qrIZFZ3kR6RDY3tnZRQH-xnsV3NA,3743
39
39
  valar/models/frame.py,sha256=N13Bok7XNJDLoYDCpCIq8tEUktQVNerrLtk_U0KDJAE,851
40
40
  valar/models/indicator.py,sha256=vytY_CFFziUO44oMNB2SXOxs8PKlZQ6NgAiYp2MjK_I,1384
41
41
  valar/models/meta.py,sha256=VfP6IdnVC_BQnVfKmUXguh_wenQIiuKS6EYkGIWhrV4,4898
@@ -47,8 +47,8 @@ valar/views/handler.py,sha256=lUBVyjDl5CyqDO-UMwqsD1FshTELQaBDFocJ87Shrkw,1361
47
47
  valar/views/meta.py,sha256=LHSkxZ-ni1TgyUNFxvz5Xsom-5sZ_wEiEpa0oL13jLc,4960
48
48
  valar/views/password.py,sha256=YBKiPU3IWn69oJlfpezlO_bFNwwL4d9xyh49-xVv-lc,2118
49
49
  valar/views/rest.py,sha256=OnW2SHz4flZxIkYEUrqpaoiHOdqQZOrOLWmGPGEQ1E4,3282
50
- valar-1.3.22.dist-info/licenses/LICENSE,sha256=2bm9uFabQZ3Ykb_SaSU_uUbAj2-htc6WJQmS_65qD00,1073
51
- valar-1.3.22.dist-info/METADATA,sha256=BuuFpxwTtZWeoupiq4XTh6F4VwQcOBGkegRxqBWITw4,5205
52
- valar-1.3.22.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
53
- valar-1.3.22.dist-info/top_level.txt,sha256=TVi6VcvvYfVYZ_WnUVwT4psI8p6inaP3KfmQEWrrvYg,6
54
- valar-1.3.22.dist-info/RECORD,,
50
+ valar-1.3.23.dist-info/licenses/LICENSE,sha256=2bm9uFabQZ3Ykb_SaSU_uUbAj2-htc6WJQmS_65qD00,1073
51
+ valar-1.3.23.dist-info/METADATA,sha256=w0tP_4jPV9C_dlMxurOjB217fVBjguKPMLijeEwesuA,5691
52
+ valar-1.3.23.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
53
+ valar-1.3.23.dist-info/top_level.txt,sha256=TVi6VcvvYfVYZ_WnUVwT4psI8p6inaP3KfmQEWrrvYg,6
54
+ valar-1.3.23.dist-info/RECORD,,
File without changes