valar 1.1.3__py3-none-any.whl → 1.2.0__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.

Files changed (41) hide show
  1. valar/apps.py +8 -10
  2. valar/channels/consumer.py +10 -12
  3. valar/channels/executer.py +7 -6
  4. valar/channels/sender.py +95 -43
  5. valar/channels/views.py +2 -3
  6. valar/classes/app_mixins/auto_migration_mixin.py +8 -0
  7. valar/classes/{auto_urlpatterns_mixin.py → app_mixins/auto_urlpatterns_mixin.py} +3 -3
  8. valar/classes/valar_minio.py +80 -0
  9. valar/classes/valar_response.py +2 -1
  10. valar/dao/__init__.py +45 -0
  11. valar/dao/abstract.py +106 -0
  12. valar/dao/defaults/__init__.py +0 -0
  13. valar/dao/defaults/field_keys_default.py +48 -0
  14. valar/dao/defaults/field_values_default.py +135 -0
  15. valar/dao/defaults/view_defaults.py +26 -0
  16. valar/dao/engine.py +80 -0
  17. valar/dao/frame.py +189 -0
  18. valar/dao/meta.py +128 -0
  19. valar/dao/mon_dao.py +113 -0
  20. valar/dao/mon_field.py +23 -0
  21. valar/dao/orm_dao.py +304 -0
  22. valar/dao/orm_field.py +142 -0
  23. valar/dao/query.py +36 -0
  24. valar/migrations/0001_initial.py +149 -0
  25. valar/models/core.py +16 -10
  26. valar/models/frame.py +4 -7
  27. valar/models/meta.py +19 -16
  28. valar/urls.py +22 -0
  29. valar/views/file.py +49 -0
  30. valar/views/handler.py +33 -0
  31. valar/views/meta.py +150 -0
  32. valar/views/rest.py +90 -0
  33. {valar-1.1.3.dist-info → valar-1.2.0.dist-info}/METADATA +50 -57
  34. valar-1.2.0.dist-info/RECORD +47 -0
  35. valar/classes/auto_migration_mixin.py +0 -7
  36. valar-1.1.3.dist-info/RECORD +0 -27
  37. /valar/{classes → channels}/counter.py +0 -0
  38. /valar/{frame → classes/app_mixins}/__init__.py +0 -0
  39. {valar-1.1.3.dist-info → valar-1.2.0.dist-info}/WHEEL +0 -0
  40. {valar-1.1.3.dist-info → valar-1.2.0.dist-info}/licenses/LICENSE +0 -0
  41. {valar-1.1.3.dist-info → valar-1.2.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: valar
3
- Version: 1.1.3
3
+ Version: 1.2.0
4
4
  Summary: valar for morghulis
5
5
  Home-page: https://gitee.com/GRIFFIN120/valar_dev
6
6
  Author: LYP
@@ -36,16 +36,28 @@ pip install valar
36
36
  # 1. settings
37
37
 
38
38
  ```python
39
-
39
+ from django.core.management.utils import get_random_secret_key
40
40
  from pathlib import Path
41
41
 
42
- """ Compulsory settings """
42
+ """ Compulsory settings """
43
+
43
44
  DEBUG = True
44
45
  BASE_DIR = Path(__file__).resolve().parent.parent
45
46
  BASE_APP = str(BASE_DIR.name)
46
47
  DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
47
- SECRET_KEY = 'django-insecure-of@tfouoq^_f$l!yki#m=6j7)@&kjri$1_$!mca-=%7=+@f@5^'
48
- """ Minimized compulsory settings """
48
+ SECRET_KEY = get_random_secret_key()
49
+
50
+
51
+
52
+ """ Valar Options """
53
+
54
+ HANDLER_MAPPING = "%s.urls.channel_mapping" % BASE_APP
55
+ MONGO_URI = 'mongodb://root:19870120@121.41.111.175:27017/'
56
+ MINIO_URL = "s3://admin:password@120.27.8.186:9000"
57
+
58
+
59
+
60
+ """ Minimized compulsory settings """
49
61
 
50
62
  DATABASES = {
51
63
  'default': {
@@ -53,55 +65,38 @@ DATABASES = {
53
65
  'NAME': BASE_DIR / 'db.sqlite3',
54
66
  }
55
67
  }
56
-
57
68
  INSTALLED_APPS = [
58
69
  'django.contrib.sessions',
59
70
  "corsheaders",
60
71
  'channels',
61
- 'src.valar.data',
72
+ 'valar',
62
73
  ]
63
-
64
74
  MIDDLEWARE = [
65
75
  'django.contrib.sessions.middleware.SessionMiddleware',
66
76
  'corsheaders.middleware.CorsMiddleware',
67
77
  'django.middleware.common.CommonMiddleware',
68
78
  ]
69
-
70
79
  CHANNEL_LAYERS = {
71
80
  "default": {
72
81
  "BACKEND": "channels.layers.InMemoryChannelLayer"
73
82
  }
74
83
  }
75
-
76
84
  CORS_ORIGIN_ALLOW_ALL = True
77
85
  CORS_ALLOW_CREDENTIALS = True
78
86
  ROOT_URLCONF = "%s.urls" % BASE_APP
79
87
  ASGI_APPLICATION = "%s.asgi.application" % BASE_APP
80
88
 
81
- MONGO = {
82
- 'host': '<IP>',
83
- 'port': '<PORT>',
84
- "username": "<USERNAME>",
85
- "password": '<PASSWORD>'
86
- }
87
-
88
- MINIO = {
89
- 'endpoint': '<IP>:<PORT>',
90
- 'access_key': '<USERNAME>',
91
- "secret_key": "<PASSWORD>",
92
- 'secure': False
93
- }
89
+ """ Optional settings """
94
90
 
95
- """ Optional settings """
96
- # ALLOWED_HOSTS = ['*']
97
- # LANGUAGE_CODE = 'en-us'
98
- # TIME_ZONE = 'Asia/Shanghai'
99
- # USE_I18N = True
100
- # USE_TZ = False
101
- # SESSION_SAVE_EVERY_REQUEST = True
102
- # SESSION_COOKIE_AGE = 60 * 60
103
- # FILE_UPLOAD_MAX_MEMORY_SIZE = 1024 * 1024 * 100
104
- # DATA_UPLOAD_MAX_MEMORY_SIZE = 1024 * 1024 * 100
91
+ ALLOWED_HOSTS = ['*']
92
+ LANGUAGE_CODE = 'en-us'
93
+ TIME_ZONE = 'Asia/Shanghai'
94
+ USE_I18N = True
95
+ USE_TZ = False
96
+ SESSION_SAVE_EVERY_REQUEST = True
97
+ SESSION_COOKIE_AGE = 60 * 60
98
+ FILE_UPLOAD_MAX_MEMORY_SIZE = 1024 * 1024 * 100
99
+ DATA_UPLOAD_MAX_MEMORY_SIZE = 1024 * 1024 * 100
105
100
 
106
101
  ```
107
102
  # 2. asgi
@@ -110,7 +105,7 @@ MINIO = {
110
105
  from django.core.asgi import get_asgi_application
111
106
  from channels.routing import ProtocolTypeRouter, URLRouter
112
107
  from django.urls import re_path
113
- from src.valar.channels import ValarConsumer
108
+ from valar.channels.consumer import ValarConsumer
114
109
 
115
110
  application = ProtocolTypeRouter({
116
111
  'http': get_asgi_application(),
@@ -122,41 +117,39 @@ application = ProtocolTypeRouter({
122
117
  ```
123
118
 
124
119
  # 3. migrate
125
- ```shell
126
- python manage.py makemigrations
127
- python manage.py migrate
128
- ```
120
+ no need, valar will auto migration
129
121
 
130
122
 
131
123
  # 4. root urls
132
124
 
133
- ```python
134
- from django.urls import path, include
125
+ no need, valar will auto set urlpatterns
135
126
 
136
- urlpatterns = [
137
- path('data/', include('src.valar.data.urls')),
138
- ]
127
+ # 5. how to use valar_channel
139
128
 
140
- channel_mapping = {
141
- # 'test': test_handler
142
- }
143
- ```
144
129
 
145
- # 5. channel_handler
130
+ 5.1 set HANDLER_MAPPING in settings
146
131
 
147
132
  ```python
133
+ HANDLER_MAPPING = "%s.urls.channel_mapping" % BASE_APP
134
+ ```
148
135
 
149
- import time
150
-
151
- from src.valar.channels.sender import ValarSocketSender
152
- from src.valar import Counter
153
-
136
+ 5.2 create a handler
154
137
 
138
+ ```python
139
+ from valar.channels.sender import ValarSocketSender
155
140
  def test_handler(sender: ValarSocketSender):
156
141
  data = sender.data
157
- length = data.get('length', 50)
158
- counter = Counter(length)
142
+ length = data.get('length',30)
143
+ counter = sender.create_counter(length)
159
144
  for i in range(length):
160
- time.sleep(0.1)
161
- sender.to_clients(counter.tick(), sender.client, wait=True)
145
+ # sync method
146
+ sender.to_clients(counter.tick() ,sender.client, wait=True)
147
+ ```
148
+
149
+ 5.3 register handler in channel_mapping
150
+
151
+ ```python
152
+ channel_mapping = {
153
+ 'test': test_handler,
154
+ }
162
155
  ```
@@ -0,0 +1,47 @@
1
+ valar/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ valar/apps.py,sha256=OGgsSN7nsa5GEA3kF0EqtY5eFWI5pnuR2tw32cZXmpo,632
3
+ valar/urls.py,sha256=tE_gvrzla_RDza7JOsINssxBmQfm_R-esUpNtwHUkf4,1099
4
+ valar/channels/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
+ valar/channels/consumer.py,sha256=fEP52wBHWccturn2QAkqOt9-_Fr8akiw95AoVc6dEMM,1395
6
+ valar/channels/counter.py,sha256=K8aQUI1RiIrSOg3280tV102soC-ZC1qSRZvBXuwNYQ0,377
7
+ valar/channels/executer.py,sha256=_Ap859nvxRl8Ln0BWMqhnL6cQNl-1NQSmMR4Akh-afY,333
8
+ valar/channels/mapping.py,sha256=1SBqxEYO4epbRkSOUw5zm6gau15imz1gokrRTQcy94A,755
9
+ valar/channels/sender.py,sha256=PMa6tM300VPsmDzI_b8n6g3u2YOhAmlve71k1pktKFE,3610
10
+ valar/channels/views.py,sha256=4J_f-Bn3VR0o0spOa9D52aRcxMRZ0YYgo-dMzJqFrd4,375
11
+ valar/classes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
+ valar/classes/singleton_meta.py,sha256=aa9DZKG4Q9Cr67ZWrQ0yaFLrEjwFoTMQbDrpoIqgJZs,245
13
+ valar/classes/valar_minio.py,sha256=20FpP7fbSuKG4cTF0-gmYUvHnPsVvwWOchfljb92o-8,2720
14
+ valar/classes/valar_response.py,sha256=nwOOjT1AeORkxAIRTrXMPa6-xtMZP7XaLJnHG-yfudA,252
15
+ valar/classes/app_mixins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
+ valar/classes/app_mixins/auto_migration_mixin.py,sha256=PpqZaIYXMDmlMzfDbmdMNv18T_d7wA8yfVSgU4Qw3uM,337
17
+ valar/classes/app_mixins/auto_urlpatterns_mixin.py,sha256=FX-t-TJWawXyS2r6jbj_IrJBpzwMbWzIjyK6PsHL6XE,415
18
+ valar/dao/__init__.py,sha256=WGjXrnjmgcfOvtTYIVjtdsmh9mlc0IJCrZD2ScZ6Kx0,1335
19
+ valar/dao/abstract.py,sha256=2M5OLxze-uQDAJIgJtuGKoDjpwVw97Rg_wOeOq6gFTA,2318
20
+ valar/dao/engine.py,sha256=B41ScN2OqWpPmVX6n6EEqHPfNejCsMhAo4oBNOTOUAQ,2759
21
+ valar/dao/frame.py,sha256=9vDsJfB-Ztb4YN8Lt6pHJeF_RndqHsVeA_ygWIOgALM,7468
22
+ valar/dao/meta.py,sha256=qEdTmdLrurp3CCMiGGtsDwVkXys6Rb5P0s_pru2w90A,4930
23
+ valar/dao/mon_dao.py,sha256=TRrHUBdWBbOn47uV5ot_B2GcvWGoNpadJW_CkS0TEhc,3588
24
+ valar/dao/mon_field.py,sha256=AJp-KS19oRiRHtMidC_1uTv2oCplqO4-bdKNDLMllWU,570
25
+ valar/dao/orm_dao.py,sha256=yq3WoWsRQQCXKsX-jBMmyNBicpE22K1SkEldRbGPCHI,12322
26
+ valar/dao/orm_field.py,sha256=cl1c9SML9QHHwQCwTUeRsWXlumHLd82C5RRgdaIx5TU,5017
27
+ valar/dao/query.py,sha256=7MqCdwjdhXWBWjEggHVFQfC0zlZH3TrwuVxKE7E0OKA,1049
28
+ valar/dao/defaults/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
+ valar/dao/defaults/field_keys_default.py,sha256=ypirNtCqnHeQqya3lMaL604z8qWD7oemC4xPaiXAkCg,1817
30
+ valar/dao/defaults/field_values_default.py,sha256=6zKPqbw0vJKW_9ilj6PC7IgDyayiWjHsNc4y7aVzuNw,3552
31
+ valar/dao/defaults/view_defaults.py,sha256=v2wEgiaXqEcM4lcjM2uV83cLA5EJZf6qHfLZ7YJikIg,572
32
+ valar/migrations/0001_initial.py,sha256=ExzflfBPtc_I5kVrKOYY-YM3XStE4bIvqkq1MlYvMS0,10525
33
+ valar/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
+ valar/models/__init__.py,sha256=t5BRtyeM8Pa3MRpiC72IoMIl6-2YGEZrU77iemLfuSk,31
35
+ valar/models/core.py,sha256=ghtfs8uFH6SC0xvd-gkARr-FUWDXG0IMGWSuETOvecw,3695
36
+ valar/models/frame.py,sha256=N13Bok7XNJDLoYDCpCIq8tEUktQVNerrLtk_U0KDJAE,851
37
+ valar/models/meta.py,sha256=JPa-Rap2sdSYnG6Sk7_vFrg5flP3r6fAM7tRvlwb4Vw,4871
38
+ valar/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
+ valar/views/file.py,sha256=NxfbxT4EJRDFgXol06kD0vcSp4lN4BCVJ5wq43rh8Yg,1537
40
+ valar/views/handler.py,sha256=zlJoCnFnXK_2hyTXaNQrwj7svWQJk4ixIldCosIoCpY,1113
41
+ valar/views/meta.py,sha256=H3_raG-LEcfg1p_CBpluhPXBsLFQB_jtaI5CKGgYOKk,4774
42
+ valar/views/rest.py,sha256=HnmPR6_Q_NTtotaeDjfwIGwVG7eigtKBXfoaedUgar8,2349
43
+ valar-1.2.0.dist-info/licenses/LICENSE,sha256=2bm9uFabQZ3Ykb_SaSU_uUbAj2-htc6WJQmS_65qD00,1073
44
+ valar-1.2.0.dist-info/METADATA,sha256=8VwVIvq2k2Ck8ZSJ2t3mfUqWTMLOCgNUt-olqZmaM4k,3431
45
+ valar-1.2.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
46
+ valar-1.2.0.dist-info/top_level.txt,sha256=TVi6VcvvYfVYZ_WnUVwT4psI8p6inaP3KfmQEWrrvYg,6
47
+ valar-1.2.0.dist-info/RECORD,,
@@ -1,7 +0,0 @@
1
- class AutoMigrationMixin:
2
- name = None # 子类必须提供
3
- def auto_migrate(self):
4
- from django.core.management import call_command
5
- call_command('makemigrations', self.name, interactive=False, verbosity=0)
6
- call_command('migrate', self.name, interactive=False, verbosity=0)
7
-
@@ -1,27 +0,0 @@
1
- valar/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- valar/apps.py,sha256=0qShghD2ubrvCMp_MWOQy6KZBgS4N59N6AJ-IUeBb8c,522
3
- valar/urls.py,sha256=FbM-Wbc7gnda7tlC2dbACxeWcobp_lWlpY29jwxANQY,142
4
- valar/channels/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- valar/channels/consumer.py,sha256=w2Cc-4Jy3tt5h8lKwtmcsJd3yo6HOIrkPspDc1dIQSg,1421
6
- valar/channels/executer.py,sha256=lurFYyUETq6eWjFUXA-m7mmQTeZtwfxrzuOayWxs4BE,314
7
- valar/channels/mapping.py,sha256=1SBqxEYO4epbRkSOUw5zm6gau15imz1gokrRTQcy94A,755
8
- valar/channels/sender.py,sha256=x9oYOYSK0e5E37GauWF5KKbyG1toe8wRAPwSAv0TQms,2465
9
- valar/channels/views.py,sha256=SMY80ZVDDjIZI-k75TymhToV-3fXPAMxcD93G7mDeRw,374
10
- valar/classes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- valar/classes/auto_migration_mixin.py,sha256=DrcZX1xR_b7S6mxvzDMidvt9uOUvyUkONlc7Dqyci2w,306
12
- valar/classes/auto_urlpatterns_mixin.py,sha256=b0gB2_GpFfpLusNAFGrDvCxlSRghlNlRzNyadrtLDLo,414
13
- valar/classes/counter.py,sha256=K8aQUI1RiIrSOg3280tV102soC-ZC1qSRZvBXuwNYQ0,377
14
- valar/classes/singleton_meta.py,sha256=aa9DZKG4Q9Cr67ZWrQ0yaFLrEjwFoTMQbDrpoIqgJZs,245
15
- valar/classes/valar_response.py,sha256=kQnHWm8McUKTE_Q20JjLQsXOAv-IX979FRg6O42Tsng,246
16
- valar/frame/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- valar/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
- valar/models/__init__.py,sha256=t5BRtyeM8Pa3MRpiC72IoMIl6-2YGEZrU77iemLfuSk,31
19
- valar/models/core.py,sha256=a-EEN6-s_wdKrgw8nJTPvWcvxRiSG-ff7k_L5_crW-0,3439
20
- valar/models/frame.py,sha256=MrgcPfBLN0nvpIm2gF68YjmavIgOMGLZUjJ-eiNb90o,1016
21
- valar/models/meta.py,sha256=auy7ofa5aR_1dmp-DtoQ7DiFsqKc923-Wh0ymTh7k0A,4470
22
- valar/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
- valar-1.1.3.dist-info/licenses/LICENSE,sha256=2bm9uFabQZ3Ykb_SaSU_uUbAj2-htc6WJQmS_65qD00,1073
24
- valar-1.1.3.dist-info/METADATA,sha256=7KKN7-Z_6A47MloeCiKU5-pnbZOYwzNh0qMMk9lNb8w,3398
25
- valar-1.1.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
26
- valar-1.1.3.dist-info/top_level.txt,sha256=TVi6VcvvYfVYZ_WnUVwT4psI8p6inaP3KfmQEWrrvYg,6
27
- valar-1.1.3.dist-info/RECORD,,
File without changes
File without changes
File without changes