valar 1.3.4__tar.gz → 1.3.6__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.

Files changed (59) hide show
  1. {valar-1.3.4/src/valar.egg-info → valar-1.3.6}/PKG-INFO +2 -1
  2. {valar-1.3.4 → valar-1.3.6}/setup.py +6 -2
  3. {valar-1.3.4 → valar-1.3.6}/src/valar/channels/sender.py +5 -2
  4. {valar-1.3.4 → valar-1.3.6}/src/valar/dao/defaults/field_keys_default.py +1 -1
  5. {valar-1.3.4 → valar-1.3.6}/src/valar/dao/meta.py +2 -1
  6. {valar-1.3.4 → valar-1.3.6}/src/valar/dao/orm_dao.py +1 -0
  7. {valar-1.3.4 → valar-1.3.6}/src/valar/models/auth.py +1 -1
  8. {valar-1.3.4 → valar-1.3.6}/src/valar/views/auth.py +1 -1
  9. valar-1.3.6/src/valar/views/handler.py +53 -0
  10. {valar-1.3.4 → valar-1.3.6}/src/valar/views/rest.py +3 -0
  11. {valar-1.3.4 → valar-1.3.6/src/valar.egg-info}/PKG-INFO +2 -1
  12. {valar-1.3.4 → valar-1.3.6}/src/valar.egg-info/requires.txt +1 -0
  13. valar-1.3.4/src/valar/views/handler.py +0 -46
  14. {valar-1.3.4 → valar-1.3.6}/LICENSE +0 -0
  15. {valar-1.3.4 → valar-1.3.6}/README.md +0 -0
  16. {valar-1.3.4 → valar-1.3.6}/setup.cfg +0 -0
  17. {valar-1.3.4 → valar-1.3.6}/src/valar/__init__.py +0 -0
  18. {valar-1.3.4 → valar-1.3.6}/src/valar/apps.py +0 -0
  19. {valar-1.3.4 → valar-1.3.6}/src/valar/auth/Authentication.py +0 -0
  20. {valar-1.3.4 → valar-1.3.6}/src/valar/auth/Middleware.py +0 -0
  21. {valar-1.3.4 → valar-1.3.6}/src/valar/auth/__init__.py +0 -0
  22. {valar-1.3.4 → valar-1.3.6}/src/valar/channels/__init__.py +0 -0
  23. {valar-1.3.4 → valar-1.3.6}/src/valar/channels/consumer.py +0 -0
  24. {valar-1.3.4 → valar-1.3.6}/src/valar/channels/counter.py +0 -0
  25. {valar-1.3.4 → valar-1.3.6}/src/valar/channels/executer.py +0 -0
  26. {valar-1.3.4 → valar-1.3.6}/src/valar/channels/mapping.py +0 -0
  27. {valar-1.3.4 → valar-1.3.6}/src/valar/channels/views.py +0 -0
  28. {valar-1.3.4 → valar-1.3.6}/src/valar/classes/__init__.py +0 -0
  29. {valar-1.3.4 → valar-1.3.6}/src/valar/classes/app_mixins/__init__.py +0 -0
  30. {valar-1.3.4 → valar-1.3.6}/src/valar/classes/app_mixins/auto_migration_mixin.py +0 -0
  31. {valar-1.3.4 → valar-1.3.6}/src/valar/classes/app_mixins/auto_urlpatterns_mixin.py +0 -0
  32. {valar-1.3.4 → valar-1.3.6}/src/valar/classes/singleton_meta.py +0 -0
  33. {valar-1.3.4 → valar-1.3.6}/src/valar/classes/valar_minio.py +0 -0
  34. {valar-1.3.4 → valar-1.3.6}/src/valar/classes/valar_response.py +0 -0
  35. {valar-1.3.4 → valar-1.3.6}/src/valar/dao/__init__.py +0 -0
  36. {valar-1.3.4 → valar-1.3.6}/src/valar/dao/abstract.py +0 -0
  37. {valar-1.3.4 → valar-1.3.6}/src/valar/dao/defaults/__init__.py +0 -0
  38. {valar-1.3.4 → valar-1.3.6}/src/valar/dao/defaults/field_values_default.py +0 -0
  39. {valar-1.3.4 → valar-1.3.6}/src/valar/dao/defaults/view_defaults.py +0 -0
  40. {valar-1.3.4 → valar-1.3.6}/src/valar/dao/engine.py +0 -0
  41. {valar-1.3.4 → valar-1.3.6}/src/valar/dao/frame.py +0 -0
  42. {valar-1.3.4 → valar-1.3.6}/src/valar/dao/mon_dao.py +0 -0
  43. {valar-1.3.4 → valar-1.3.6}/src/valar/dao/mon_field.py +0 -0
  44. {valar-1.3.4 → valar-1.3.6}/src/valar/dao/orm_field.py +0 -0
  45. {valar-1.3.4 → valar-1.3.6}/src/valar/dao/query.py +0 -0
  46. {valar-1.3.4 → valar-1.3.6}/src/valar/migrations/__init__.py +0 -0
  47. {valar-1.3.4 → valar-1.3.6}/src/valar/models/__init__.py +0 -0
  48. {valar-1.3.4 → valar-1.3.6}/src/valar/models/core.py +0 -0
  49. {valar-1.3.4 → valar-1.3.6}/src/valar/models/frame.py +0 -0
  50. {valar-1.3.4 → valar-1.3.6}/src/valar/models/meta.py +0 -0
  51. {valar-1.3.4 → valar-1.3.6}/src/valar/models/test.py +0 -0
  52. {valar-1.3.4 → valar-1.3.6}/src/valar/urls.py +0 -0
  53. {valar-1.3.4 → valar-1.3.6}/src/valar/views/__init__.py +0 -0
  54. {valar-1.3.4 → valar-1.3.6}/src/valar/views/file.py +0 -0
  55. {valar-1.3.4 → valar-1.3.6}/src/valar/views/meta.py +0 -0
  56. {valar-1.3.4 → valar-1.3.6}/src/valar/views/password.py +0 -0
  57. {valar-1.3.4 → valar-1.3.6}/src/valar.egg-info/SOURCES.txt +0 -0
  58. {valar-1.3.4 → valar-1.3.6}/src/valar.egg-info/dependency_links.txt +0 -0
  59. {valar-1.3.4 → valar-1.3.6}/src/valar.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: valar
3
- Version: 1.3.4
3
+ Version: 1.3.6
4
4
  Summary: valar for morghulis
5
5
  Home-page: https://gitee.com/GRIFFIN120/valar_dev
6
6
  Author: LYP
@@ -17,6 +17,7 @@ Requires-Dist: openpyxl==3.1.5
17
17
  Requires-Dist: deepmerge~=2.0
18
18
  Requires-Dist: minio==7.2.2
19
19
  Requires-Dist: PyJWT~=2.10.1
20
+ Requires-Dist: PyMySQL~=1.1.2
20
21
  Dynamic: author
21
22
  Dynamic: author-email
22
23
  Dynamic: description
@@ -3,6 +3,8 @@ from setuptools import setup, find_packages
3
3
  with open("README.md", "r", encoding="utf-8") as f:
4
4
  long_description = f.read()
5
5
 
6
+ version = "1.3.6"
7
+
6
8
  requires = [
7
9
  'channels==3.0.3',
8
10
  'pymongo~=4.11.2',
@@ -12,11 +14,13 @@ requires = [
12
14
  'openpyxl==3.1.5',
13
15
  'deepmerge~=2.0',
14
16
  'minio==7.2.2',
15
- 'PyJWT~=2.10.1'
17
+ 'PyJWT~=2.10.1',
18
+ 'PyMySQL~=1.1.2'
16
19
  ]
20
+
17
21
  setup(
18
22
  name="valar", # 包名
19
- version="1.3.4", # 版本号
23
+ version=version, # 版本号
20
24
  author="LYP", # 作者
21
25
  author_email="liuyinpeng@buaa.edu.cn", # 邮箱
22
26
  description="valar for morghulis", # 简短描述
@@ -39,7 +39,7 @@ class Sender:
39
39
 
40
40
  def __init__(self, request: HttpRequest):
41
41
  self.client = request.headers.get('CLIENT')
42
- self.uid = request.session.get('UID')
42
+ # self.uid = request.session.get('UID')
43
43
  self.group_send = async_to_sync(get_channel_layer().group_send)
44
44
 
45
45
 
@@ -54,7 +54,7 @@ class ValarChannelSender(Sender):
54
54
  self.__thread__ = None
55
55
  self.__lock__ = threading.Lock()
56
56
  self.__interval__ = interval
57
- if self.__channel__.auth and not self.uid:
57
+ if self.__channel__.auth:
58
58
  payload, _ = validate(request)
59
59
  if payload is None:
60
60
  raise Exception('Unauthorized!')
@@ -88,6 +88,9 @@ class ValarChannelSender(Sender):
88
88
  def done(self, payload):
89
89
  self.__emit__('done', payload)
90
90
 
91
+ def error(self, payload):
92
+ self.__emit__('error', payload)
93
+
91
94
  def __emit__(self, status='proceed', data=None):
92
95
  scope = 'broadcast' if self.__channel__.broadcast else 'client'
93
96
  body = {
@@ -46,7 +46,7 @@ meta_field_key_defaults = {
46
46
  'ref': ('pick', ['id', 'name', 'm2o', 'm2m', 'o2o_id']),
47
47
  },
48
48
  'valar.Account': {
49
- 'auth': ('pick', ['user_id', 'username', 'email', 'is_active', 'is_admin', 'roles']),
49
+ 'auth': ('pick', ['user_id', 'username', 'email', 'password', 'is_active', 'is_admin', 'roles']),
50
50
  },
51
51
  'valar.Role': {
52
52
  'auth': ('pick', ['name', 'duty', 'menu', 'account']),
@@ -45,7 +45,8 @@ class ValarMeta:
45
45
  if view.metafield_set.count() == 0:
46
46
  _fields = self.__initial_fields__()
47
47
  for _field in _fields:
48
- if _field['prop'] not in ['sort', 'create_time', 'modify_time', 'saved']:
48
+ if (_field['prop'] not in ['id', 'sort', 'create_time', 'modify_time', 'saved', 'disabled']
49
+ and _field['domain'] not in ['ManyToManyRel', 'OneToOneRel', 'ManyToOneRel']):
49
50
  _field.update({'view_id': view.id, "saved": True})
50
51
  field_dao.save_one(_field)
51
52
 
@@ -77,6 +77,7 @@ class OrmDao(AbstractDao):
77
77
  return self.manager.filter(id=oid).first() if oid is not None else None
78
78
 
79
79
  def find(self, conditions=None, orders=None, size=0, page=1):
80
+
80
81
  includes, excludes, orders = Query(conditions, orders).orm()
81
82
  query_set = self.manager.filter(includes).exclude(excludes).order_by(*orders)
82
83
  total = query_set.count()
@@ -13,7 +13,7 @@ class Role(VModel):
13
13
  class Account(VModel):
14
14
  """账户核心信息"""
15
15
  username = models.CharField(max_length=255, null=True, unique=True, verbose_name='账号')
16
- password = models.CharField(max_length=255, verbose_name='密码')
16
+ password = models.CharField(max_length=255, null=True, verbose_name='密码')
17
17
  email = models.CharField(max_length=255, null=True, unique=True, verbose_name='邮箱')
18
18
  """权限"""
19
19
  is_admin = models.BooleanField(default=False, verbose_name='超级管理员')
@@ -41,7 +41,7 @@ def sign_in(request):
41
41
  })
42
42
  return ValarResponse(jwt.encode({
43
43
  "user_id": account.id,
44
- "exp": datetime.datetime.utcnow() + datetime.timedelta(minutes=30)
44
+ "exp": datetime.datetime.utcnow() + datetime.timedelta(hours=2)
45
45
  }, settings.SECRET_KEY, algorithm="HS256"))
46
46
 
47
47
 
@@ -0,0 +1,53 @@
1
+ import traceback
2
+
3
+ from ..channels.counter import Counter
4
+ from ..channels.sender import ValarChannelSender
5
+ from ..dao import Dao
6
+ from ..dao.engine import ValarEngine
7
+
8
+ import time
9
+
10
+
11
+ def valar_test_handler(sender: ValarChannelSender):
12
+ data = sender.data
13
+ length = data.get('length', 100)
14
+ counter = Counter(length)
15
+ for i in range(length):
16
+ time.sleep(0.1)
17
+ tick = counter.tick()
18
+ tick.update({'name': 'test1'})
19
+ sender.load(tick)
20
+
21
+
22
+ def batch_handler(sender: ValarChannelSender):
23
+ data = sender.data
24
+ entity, db, method = data.get("entity"), data.get("db"), data.get("method")
25
+ dao = Dao(entity, db)
26
+ body = {"method": method}
27
+
28
+ try:
29
+ if method == 'save_many':
30
+ array = data.get("array", [])
31
+ counter = Counter(array)
32
+ keys = []
33
+ for item in array:
34
+ item.update({'saved': True})
35
+ bean = dao.save_one(item)
36
+ keys.append(bean.id)
37
+ payload = counter.tick()
38
+ sender.load(payload)
39
+ body.update({'keys': keys})
40
+ sender.done(body)
41
+ elif method == 'delete_many':
42
+ conditions = data.get("conditions", [])
43
+ paths = dao.delete(conditions)
44
+ counter = Counter(len(paths))
45
+ minio = ValarEngine().get_minio_bucket(entity)
46
+ for path in paths:
47
+ minio.remove(path)
48
+ payload = counter.tick()
49
+ sender.load(payload)
50
+ sender.done(body)
51
+ except Exception as e:
52
+ traceback.print_exc()
53
+ sender.error(str(e))
@@ -71,6 +71,9 @@ def search(request, db, entity):
71
71
  size = body.get('size')
72
72
  page = body.get('page')
73
73
  root = body.get('root')
74
+
75
+ print(root, 'root', entity)
76
+
74
77
  code = body.get('code', 'default')
75
78
  conditions = body.get('conditions')
76
79
  dao = Dao(entity, db)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: valar
3
- Version: 1.3.4
3
+ Version: 1.3.6
4
4
  Summary: valar for morghulis
5
5
  Home-page: https://gitee.com/GRIFFIN120/valar_dev
6
6
  Author: LYP
@@ -17,6 +17,7 @@ Requires-Dist: openpyxl==3.1.5
17
17
  Requires-Dist: deepmerge~=2.0
18
18
  Requires-Dist: minio==7.2.2
19
19
  Requires-Dist: PyJWT~=2.10.1
20
+ Requires-Dist: PyMySQL~=1.1.2
20
21
  Dynamic: author
21
22
  Dynamic: author-email
22
23
  Dynamic: description
@@ -7,3 +7,4 @@ openpyxl==3.1.5
7
7
  deepmerge~=2.0
8
8
  minio==7.2.2
9
9
  PyJWT~=2.10.1
10
+ PyMySQL~=1.1.2
@@ -1,46 +0,0 @@
1
- from ..channels.counter import Counter
2
- from ..channels.sender import ValarChannelSender
3
- from ..dao import Dao
4
- from ..dao.engine import ValarEngine
5
-
6
- import time
7
-
8
-
9
- def valar_test_handler(sender: ValarChannelSender):
10
- data = sender.data
11
- length = data.get('length', 100)
12
- counter = Counter(length)
13
- for i in range(length):
14
- time.sleep(0.1)
15
- tick = counter.tick()
16
- tick.update({'name': 'test1'})
17
- sender.load(tick)
18
-
19
-
20
- def batch_handler(sender: ValarChannelSender):
21
- data = sender.data
22
- entity, db, method = data.get("entity"), data.get("db"), data.get("method")
23
- dao = Dao(entity, db)
24
- body = {"method": method}
25
- if method == 'save_many':
26
- array = data.get("array", [])
27
- counter = Counter(array)
28
- keys = []
29
- for item in array:
30
- item.update({'saved': True})
31
- bean = dao.save_one(item)
32
- keys.append(bean.id)
33
- payload = counter.tick()
34
- sender.load(payload)
35
- body.update({'keys': keys})
36
- sender.done(body)
37
- elif method == 'delete_many':
38
- conditions = data.get("conditions", [])
39
- paths = dao.delete(conditions)
40
- counter = Counter(len(paths))
41
- minio = ValarEngine().get_minio_bucket(entity)
42
- for path in paths:
43
- minio.remove(path)
44
- payload = counter.tick()
45
- sender.load(payload)
46
- sender.done(body)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes