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

@@ -47,6 +47,14 @@ class ValarMinio:
47
47
  )
48
48
  return BytesIO(ret.read())
49
49
 
50
+ def read_path(self, path) -> BytesIO:
51
+ bucket_name, object_name = path.split('/')
52
+ ret: BaseHTTPResponse = self.client.get_object(
53
+ bucket_name=bucket_name,
54
+ object_name=object_name
55
+ )
56
+ return BytesIO(ret.read())
57
+
50
58
  def __generate_policy__(self):
51
59
  return json.dumps({
52
60
  "Version": "2012-10-17",
valar/dao/__init__.py CHANGED
@@ -18,15 +18,15 @@ class Dao(AbstractDao):
18
18
  self.fields = self.dao.fields
19
19
  self.manager = self.dao.manager
20
20
 
21
+ def insert_one(self, item):
22
+ return self.dao.insert_one(item)
23
+
24
+ def update_one(self, item):
25
+ return self.dao.update_one(item)
26
+
21
27
  def save_many(self, array: list):
22
- warnings.warn(
23
- "save_many 已弃用,请使用 insert_one 或 update_one 替代。",
24
- DeprecationWarning,
25
- stacklevel=2
26
- )
27
28
  return self.dao.save_many(array)
28
29
 
29
-
30
30
  def save_one(self, item):
31
31
  return self.dao.save_one(item)
32
32
 
valar/dao/abstract.py CHANGED
@@ -49,6 +49,14 @@ class AbstractDao(ABC):
49
49
  def save_one(self, item):
50
50
  pass
51
51
 
52
+ @abstractmethod
53
+ def insert_one(self, item):
54
+ pass
55
+
56
+ @abstractmethod
57
+ def update_one(self, item):
58
+ pass
59
+
52
60
  @abstractmethod
53
61
  def save_many(self, array: list):
54
62
  pass
valar/dao/mon_dao.py CHANGED
@@ -19,6 +19,12 @@ domain_mapping = {
19
19
 
20
20
  class MonDao(AbstractDao):
21
21
 
22
+ def insert_one(self, item):
23
+ pass
24
+
25
+ def update_one(self, item):
26
+ pass
27
+
22
28
  def __init__(self, entity):
23
29
  self.db = 'mon'
24
30
  self.entity = entity
valar/dao/orm_dao.py CHANGED
@@ -50,7 +50,18 @@ class OrmDao(AbstractDao):
50
50
  props.append('id')
51
51
  return list(query_set.values(*props))
52
52
 
53
- def save_one(self, item):
53
+ def insert_one(self, item):
54
+ print(item)
55
+ return self.__save__(item)
56
+
57
+ def update_one(self, item):
58
+ pass
59
+
60
+ def save_one(self, item: dict):
61
+ item.update({'saved': True})
62
+ return self.__save__(item)
63
+
64
+ def __save__(self, item: dict):
54
65
  oid, simple_item, complex_item = self.__detach_item__(item)
55
66
  query_set = self.manager.filter(id=oid) if oid else []
56
67
  if len(query_set):
@@ -1,4 +1,4 @@
1
- # Generated by Django 4.2.24 on 2025-09-19 15:34
1
+ # Generated by Django 4.2.24 on 2025-09-21 19:05
2
2
 
3
3
  from django.db import migrations, models
4
4
  import django.db.models.deletion
@@ -0,0 +1,32 @@
1
+ # Generated by Django 4.2.24 on 2025-09-22 11:51
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ('valar', '0001_initial'),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.CreateModel(
14
+ name='Location',
15
+ fields=[
16
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
17
+ ('sort', models.BigIntegerField(null=True, verbose_name='序号')),
18
+ ('create_time', models.DateTimeField(auto_now_add=True, null=True, verbose_name='创建时间')),
19
+ ('modify_time', models.DateTimeField(auto_now=True, null=True, verbose_name='修改时间')),
20
+ ('disabled', models.BooleanField(default=False, verbose_name='禁用')),
21
+ ('saved', models.BooleanField(default=False, verbose_name='已保存')),
22
+ ('pid', models.IntegerField(default=0, verbose_name='父节点')),
23
+ ('isLeaf', models.BooleanField(default=False, verbose_name='叶子节点')),
24
+ ('icon', models.CharField(max_length=255, null=True, verbose_name='图标')),
25
+ ('scope', models.CharField(max_length=100, null=True)),
26
+ ('name', models.CharField(max_length=100, null=True)),
27
+ ],
28
+ options={
29
+ 'verbose_name': '指标集',
30
+ },
31
+ ),
32
+ ]
@@ -0,0 +1,28 @@
1
+ # Generated by Django 4.2.24 on 2025-09-22 11:51
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ('valar', '0002_location'),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AddField(
14
+ model_name='location',
15
+ name='code',
16
+ field=models.CharField(max_length=100, null=True),
17
+ ),
18
+ migrations.AddField(
19
+ model_name='location',
20
+ name='name_cn',
21
+ field=models.CharField(max_length=100, null=True),
22
+ ),
23
+ migrations.AddField(
24
+ model_name='location',
25
+ name='name_en',
26
+ field=models.CharField(max_length=100, null=True),
27
+ ),
28
+ ]
@@ -0,0 +1,25 @@
1
+ # Generated by Django 4.2.24 on 2025-09-22 11:52
2
+
3
+ from django.db import migrations
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ('valar', '0003_location_code_location_name_cn_location_name_en'),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.RemoveField(
14
+ model_name='location',
15
+ name='icon',
16
+ ),
17
+ migrations.RemoveField(
18
+ model_name='location',
19
+ name='isLeaf',
20
+ ),
21
+ migrations.RemoveField(
22
+ model_name='location',
23
+ name='pid',
24
+ ),
25
+ ]
valar/models/indicator.py CHANGED
@@ -22,3 +22,14 @@ class Indicator(VModel):
22
22
 
23
23
  class Meta:
24
24
  verbose_name = '指标项'
25
+
26
+
27
+ class Location(VModel):
28
+ scope = models.CharField(max_length=100, null=True)
29
+ code = models.CharField(max_length=100, null=True)
30
+ name = models.CharField(max_length=100, null=True)
31
+ name_cn = models.CharField(max_length=100, null=True)
32
+ name_en = models.CharField(max_length=100, null=True)
33
+
34
+ class Meta:
35
+ verbose_name = '指标集'
valar/urls.py CHANGED
@@ -6,6 +6,7 @@ urlpatterns = [
6
6
  path('socket/<str:handler>', handel_channel),
7
7
  path('batch', rest.batch),
8
8
  path('<str:db>/<str:entity>/save_one', rest.save_one),
9
+ path('<str:db>/<str:entity>/insert_one', rest.insert_one),
9
10
  path('<str:db>/<str:entity>/delete_one', rest.delete_one),
10
11
  path('<str:db>/<str:entity>/find_one', rest.find_one),
11
12
  path('<str:db>/<str:entity>/find', rest.find),
valar/views/rest.py CHANGED
@@ -1,5 +1,6 @@
1
1
  import json
2
2
 
3
+ from django.conf import settings
3
4
  from django.db.models import QuerySet
4
5
 
5
6
  from .handler import batch_handler
@@ -15,6 +16,15 @@ async def batch(request):
15
16
  return ValarResponse(True)
16
17
 
17
18
 
19
+ def insert_one(request, db, entity):
20
+ item = json.loads(request.body)
21
+ dao = Dao(entity, db)
22
+ print(item)
23
+ bean = dao.insert_one(item)
24
+ item = dao.serialize(bean)
25
+ return ValarResponse(item)
26
+
27
+
18
28
  def save_one(request, db, entity):
19
29
  item = json.loads(request.body)
20
30
  dao = Dao(entity, db)
@@ -46,6 +56,7 @@ def find_one(request, db, entity):
46
56
  dao = Dao(entity, db)
47
57
  bean = dao.find_one(_id)
48
58
  item = dao.serialize(bean)
59
+ item['$minio'] = settings.MINIO_ROOT
49
60
  return ValarResponse(item)
50
61
 
51
62
 
@@ -76,9 +87,8 @@ def search(request, db, entity):
76
87
  code = body.get('code', 'default')
77
88
  conditions = body.get('conditions')
78
89
  dao = Dao(entity, db)
79
- dao.save_one({})
80
90
  qs, _ = dao.find(conditions)
81
- # if db == 'orm': qs.filter(saved=False).delete()
91
+ if db == 'orm': qs.filter(saved=False).delete()
82
92
 
83
93
  if _type == 'tree':
84
94
  query_set = dao.tree(root, conditions)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: valar
3
- Version: 1.3.12
3
+ Version: 1.3.14
4
4
  Summary: valar for morghulis
5
5
  Home-page: https://gitee.com/GRIFFIN120/valar_dev
6
6
  Author: LYP
@@ -1,6 +1,6 @@
1
1
  valar/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  valar/apps.py,sha256=_FYAPq33FTimVOeSpdp6eQ8bWZBtT-tfG9lgZqGC3O8,746
3
- valar/urls.py,sha256=cKmlVu8TttqM8mVGmwE442DQHUs3zsubtUadyur_ofU,1349
3
+ valar/urls.py,sha256=iFBIFy9cvS4vR0rigbiuqeVMV8yAn2tUA798w2NUV8A,1412
4
4
  valar/auth/Authentication.py,sha256=8HCQ7U0SWMyIKgi5ZMXhVAkduaixJEF-RvNYM5IJpRA,1513
5
5
  valar/auth/Middleware.py,sha256=axg1UnA9NRY4Ug1WaR7i8uoq19OLEPnbtpRo1TSUllQ,1197
6
6
  valar/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -13,32 +13,35 @@ valar/channels/sender.py,sha256=6TJR5RlG9K44chhSUC34gvl1G2MgjRxnRpz9lGrs0rU,3852
13
13
  valar/channels/views.py,sha256=4J_f-Bn3VR0o0spOa9D52aRcxMRZ0YYgo-dMzJqFrd4,375
14
14
  valar/classes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
15
  valar/classes/singleton_meta.py,sha256=aa9DZKG4Q9Cr67ZWrQ0yaFLrEjwFoTMQbDrpoIqgJZs,245
16
- valar/classes/valar_minio.py,sha256=acQQbSCBPu1YiAVxU2k-l8BJ_b7JBox3hyt7j7s9MR4,2758
16
+ valar/classes/valar_minio.py,sha256=JkY2f_1U8oqOkBVq7NYCSGhZT5ZoLH1X92RxRm2RYxY,3026
17
17
  valar/classes/valar_response.py,sha256=C7jfWZFy5jPWioIHbq7XprzoCfNy1slmhcaQw7KBIp4,310
18
18
  valar/classes/app_mixins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
19
  valar/classes/app_mixins/auto_migration_mixin.py,sha256=lHKY5UnWyDVuEntmiJxF2AcoHFGwa4IRTygGW3zfO7w,330
20
20
  valar/classes/app_mixins/auto_urlpatterns_mixin.py,sha256=FX-t-TJWawXyS2r6jbj_IrJBpzwMbWzIjyK6PsHL6XE,415
21
- valar/dao/__init__.py,sha256=FeUpYTU61jaPhTF2isZVs3Xs3Bw0e4P2NllM4H2PnAI,1551
22
- valar/dao/abstract.py,sha256=3_9lS4bShAlrp_nv0wbBGrLVDnkvaeH2FxJTcJT-orA,2434
21
+ valar/dao/__init__.py,sha256=HRpBnsBSNgh2IHGg6zjOnNOkKETbSiuo1Qi6BG7wR2c,1525
22
+ valar/dao/abstract.py,sha256=6GurHbMmNTjLVVRHtv3zvZqxDS7lBjGW68RuszneS8c,2566
23
23
  valar/dao/engine.py,sha256=wiMOGr_RQYAzLr91C0WkxCQMMlJ-qsZf3IV-NlEwf04,3058
24
24
  valar/dao/frame.py,sha256=cz2SWcRgKww0XVNZpCcPD3ACcW6q6piMba2StshT60M,7462
25
25
  valar/dao/meta.py,sha256=2o720rFqPdDxQ0yXW74zHU0m914PfKkzvLwPINtiRbg,5051
26
- valar/dao/mon_dao.py,sha256=dyBM3B8qbcJrbtnTA6SabrtMKQnWkdK56N4u7uYdN7Y,3573
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=cspQs3Qis5ZuVQ13537l5-9wo3c9uRpAiXVf1Jw6-jM,13658
28
+ valar/dao/orm_dao.py,sha256=vL68kHEPvGTVknpDv0USl36JrZVhgl4sya8z9ob-LVI,13907
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
32
32
  valar/dao/defaults/field_keys_default.py,sha256=SegJzDXn7aHyIyIGyFIHbOltSWA1-JWwkQiaOva4WUY,2262
33
33
  valar/dao/defaults/field_values_default.py,sha256=ZyiN0f2nCqewEMfXWjwv6Yeq7gK16EBggTMU6s0pF40,3915
34
34
  valar/dao/defaults/view_defaults.py,sha256=v2wEgiaXqEcM4lcjM2uV83cLA5EJZf6qHfLZ7YJikIg,572
35
- valar/migrations/0001_initial.py,sha256=TYfWv9uH2y-uC5EwzbzEhZeex5cDhwCC94jLi2mkGjk,23345
35
+ valar/migrations/0001_initial.py,sha256=eAW7jCXafKG-uWwsQVb_8JWGBytj75Yl2grs4_nlVmY,23345
36
+ valar/migrations/0002_location.py,sha256=gfqmwADFFLyXL20EYWNxYtXAF7ZdTfOAQtd4gz3hrKw,1428
37
+ valar/migrations/0003_location_code_location_name_cn_location_name_en.py,sha256=TQgGFF5t5Ykncs7J5N9Bq0MEg5plkJ83wss2Cos0Tug,717
38
+ valar/migrations/0004_remove_location_icon_remove_location_isleaf_and_more.py,sha256=ELpOV-LdiOq6ATcx36-U_ji-ioDnY0tWv8zl1jWsZaQ,563
36
39
  valar/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
40
  valar/models/__init__.py,sha256=GMosgOi_o4kFIyReJg1qFqtbWSob5Mazd5FSGT_zfqI,55
38
41
  valar/models/auth.py,sha256=nxtLgJwBEgvYWXATcN-RN1e5LIzeUzK97jExUSjoIOk,1710
39
42
  valar/models/core.py,sha256=ghtfs8uFH6SC0xvd-gkARr-FUWDXG0IMGWSuETOvecw,3695
40
43
  valar/models/frame.py,sha256=N13Bok7XNJDLoYDCpCIq8tEUktQVNerrLtk_U0KDJAE,851
41
- valar/models/indicator.py,sha256=hkit14T6P5GnnKJq75QijvCaab82VFRyAS4-Sto-rU0,1024
44
+ valar/models/indicator.py,sha256=vytY_CFFziUO44oMNB2SXOxs8PKlZQ6NgAiYp2MjK_I,1384
42
45
  valar/models/meta.py,sha256=sNCYJZKzx8JNbRidgRQunwIHYn9WXm89Svoc7-uutd4,4967
43
46
  valar/models/test.py,sha256=3yfyZHJgviEybV1NyN4Qs1BGKE3DvAtb_e4oFI2MVos,1319
44
47
  valar/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -47,9 +50,9 @@ valar/views/file.py,sha256=MdsmuoauyPJTDb89_-mk57IFId5w8HJNpBVozBKAG7s,1538
47
50
  valar/views/handler.py,sha256=KlXWhVU-b_b5uxrUwQBHW7H4shSPy4NnXj6AINM_Joo,1619
48
51
  valar/views/meta.py,sha256=H3_raG-LEcfg1p_CBpluhPXBsLFQB_jtaI5CKGgYOKk,4774
49
52
  valar/views/password.py,sha256=O094qG8Sh4ilT_wpEMw4IZtAlcQjrDVcFD5BHaWKg2Q,2127
50
- valar/views/rest.py,sha256=4ZUnroVbOebuFXH5f_Tarnc0QFtsQv31D3id1roHSec,2496
51
- valar-1.3.12.dist-info/licenses/LICENSE,sha256=2bm9uFabQZ3Ykb_SaSU_uUbAj2-htc6WJQmS_65qD00,1073
52
- valar-1.3.12.dist-info/METADATA,sha256=ECyqmiFTgMYElBu4F69ogWnWWynyuyzdyNq28jsLFxo,5173
53
- valar-1.3.12.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
54
- valar-1.3.12.dist-info/top_level.txt,sha256=TVi6VcvvYfVYZ_WnUVwT4psI8p6inaP3KfmQEWrrvYg,6
55
- valar-1.3.12.dist-info/RECORD,,
53
+ valar/views/rest.py,sha256=iqBCXU105CyS-lQISqrTTD2LCGzXZNijhQfxM7Fc4_Q,2758
54
+ valar-1.3.14.dist-info/licenses/LICENSE,sha256=2bm9uFabQZ3Ykb_SaSU_uUbAj2-htc6WJQmS_65qD00,1073
55
+ valar-1.3.14.dist-info/METADATA,sha256=PlAwz-c2cy4TGH17oYPyprjLClaczG7Me_fauWJajJE,5173
56
+ valar-1.3.14.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
57
+ valar-1.3.14.dist-info/top_level.txt,sha256=TVi6VcvvYfVYZ_WnUVwT4psI8p6inaP3KfmQEWrrvYg,6
58
+ valar-1.3.14.dist-info/RECORD,,
File without changes