ramifice 0.8.10__py3-none-any.whl → 0.8.11__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.
@@ -4,7 +4,7 @@ __all__ = ("CheckMixin",)
4
4
 
5
5
  from os import remove
6
6
  from shutil import rmtree
7
- from typing import Any
7
+ from typing import Any, assert_never
8
8
 
9
9
  from anyio import to_thread
10
10
  from bson.objectid import ObjectId
@@ -96,28 +96,30 @@ class CheckMixin(
96
96
  params["is_error_symptom"] = True
97
97
  # Checking the fields by groups.
98
98
  if not field_data.ignored:
99
- group = field_data.group
100
99
  params["field_data"] = field_data
101
- if group == "text":
102
- await self.text_group(params)
103
- elif group == "num":
104
- await self.num_group(params)
105
- elif group == "date":
106
- self.date_group(params)
107
- elif group == "img":
108
- await self.img_group(params)
109
- elif group == "file":
110
- await self.file_group(params)
111
- elif group == "choice":
112
- self.choice_group(params)
113
- elif group == "bool":
114
- self.bool_group(params)
115
- elif group == "id":
116
- self.id_group(params)
117
- elif group == "slug":
118
- await self.slug_group(params)
119
- elif group == "pass":
120
- self.pass_group(params)
100
+ match field_data.group:
101
+ case "text":
102
+ await self.text_group(params)
103
+ case "num":
104
+ await self.num_group(params)
105
+ case "date":
106
+ self.date_group(params)
107
+ case "img":
108
+ await self.img_group(params)
109
+ case "file":
110
+ await self.file_group(params)
111
+ case "choice":
112
+ self.choice_group(params)
113
+ case "bool":
114
+ self.bool_group(params)
115
+ case "id":
116
+ self.id_group(params)
117
+ case "slug":
118
+ await self.slug_group(params)
119
+ case "pass":
120
+ self.pass_group(params)
121
+ case _ as unreachable:
122
+ assert_never(unreachable)
121
123
 
122
124
  # Actions in case of error.
123
125
  if is_save:
@@ -130,36 +132,36 @@ class CheckMixin(
130
132
  for field_name, field_data in self.__dict__.items():
131
133
  if callable(field_data) or field_data.ignored:
132
134
  continue
133
- group = field_data.group
134
- if group == "file":
135
- file_data = result_map.get(field_name)
136
- if file_data is not None:
137
- if file_data["is_new_file"]:
138
- await to_thread.run_sync(remove, file_data["path"])
139
- field_data.value = None
140
- if curr_doc is not None:
141
- field_data.value = curr_doc[field_name]
142
- elif group == "img":
143
- img_data = result_map.get(field_name)
144
- if img_data is not None:
145
- if img_data["is_new_img"]:
146
- await to_thread.run_sync(rmtree, img_data["imgs_dir_path"])
147
- field_data.value = None
148
- if curr_doc is not None:
149
- field_data.value = curr_doc[field_name]
135
+ match field_data.group:
136
+ case "file":
137
+ file_data = result_map.get(field_name)
138
+ if file_data is not None:
139
+ if file_data["is_new_file"]:
140
+ await to_thread.run_sync(remove, file_data["path"])
141
+ field_data.value = None
142
+ if curr_doc is not None:
143
+ field_data.value = curr_doc[field_name]
144
+ case "img":
145
+ img_data = result_map.get(field_name)
146
+ if img_data is not None:
147
+ if img_data["is_new_img"]:
148
+ await to_thread.run_sync(rmtree, img_data["imgs_dir_path"])
149
+ field_data.value = None
150
+ if curr_doc is not None:
151
+ field_data.value = curr_doc[field_name]
150
152
  else:
151
153
  for field_name, field_data in self.__dict__.items():
152
154
  if callable(field_data) or field_data.ignored:
153
155
  continue
154
- group = field_data.group
155
- if group == "file":
156
- file_data = result_map.get(field_name)
157
- if file_data is not None:
158
- file_data["is_new_file"] = False
159
- elif group == "img":
160
- img_data = result_map.get(field_name)
161
- if img_data is not None:
162
- img_data["is_new_img"] = False
156
+ match field_data.group:
157
+ case "file":
158
+ file_data = result_map.get(field_name)
159
+ if file_data is not None:
160
+ file_data["is_new_file"] = False
161
+ case "img":
162
+ img_data = result_map.get(field_name)
163
+ if img_data is not None:
164
+ img_data["is_new_img"] = False
163
165
  #
164
166
  return dict(
165
167
  data=result_map,
@@ -92,38 +92,39 @@ class ImgGroupMixin:
92
92
  continue
93
93
  size = max_size, max_size
94
94
  img.thumbnail(size=size, resample=Image.Resampling.LANCZOS)
95
- if size_name == "lg":
96
- value["path_lg"] = f"{imgs_dir_path}/lg{extension}"
97
- value["url_lg"] = f"{imgs_dir_url}/lg{extension}"
98
- await to_thread(
99
- img.save,
100
- fp=value["path_lg"],
101
- format=ext_upper,
102
- )
103
- elif size_name == "md":
104
- value["path_md"] = f"{imgs_dir_path}/md{extension}"
105
- value["url_md"] = f"{imgs_dir_url}/md{extension}"
106
- await to_thread(
107
- img.save,
108
- fp=value["path_md"],
109
- format=ext_upper,
110
- )
111
- elif size_name == "sm":
112
- value["path_sm"] = f"{imgs_dir_path}/sm{extension}"
113
- value["url_sm"] = f"{imgs_dir_url}/sm{extension}"
114
- await to_thread(
115
- img.save,
116
- fp=value["path_sm"],
117
- format=ext_upper,
118
- )
119
- elif size_name == "xs":
120
- value["path_xs"] = f"{imgs_dir_path}/xs{extension}"
121
- value["url_xs"] = f"{imgs_dir_url}/xs{extension}"
122
- await to_thread(
123
- img.save,
124
- fp=value["path_xs"],
125
- format=ext_upper,
126
- )
95
+ match size_name:
96
+ case "lg":
97
+ value["path_lg"] = f"{imgs_dir_path}/lg{extension}"
98
+ value["url_lg"] = f"{imgs_dir_url}/lg{extension}"
99
+ await to_thread(
100
+ img.save,
101
+ fp=value["path_lg"],
102
+ format=ext_upper,
103
+ )
104
+ case "md":
105
+ value["path_md"] = f"{imgs_dir_path}/md{extension}"
106
+ value["url_md"] = f"{imgs_dir_url}/md{extension}"
107
+ await to_thread(
108
+ img.save,
109
+ fp=value["path_md"],
110
+ format=ext_upper,
111
+ )
112
+ case "sm":
113
+ value["path_sm"] = f"{imgs_dir_path}/sm{extension}"
114
+ value["url_sm"] = f"{imgs_dir_url}/sm{extension}"
115
+ await to_thread(
116
+ img.save,
117
+ fp=value["path_sm"],
118
+ format=ext_upper,
119
+ )
120
+ case "xs":
121
+ value["path_xs"] = f"{imgs_dir_path}/xs{extension}"
122
+ value["url_xs"] = f"{imgs_dir_url}/xs{extension}"
123
+ await to_thread(
124
+ img.save,
125
+ fp=value["path_xs"],
126
+ format=ext_upper,
127
+ )
127
128
  # Insert result.
128
129
  if params["is_save"] and (value["is_new_img"] or value["save_as_is"]):
129
130
  value["is_delete"] = False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ramifice
3
- Version: 0.8.10
3
+ Version: 0.8.11
4
4
  Summary: ORM-pseudo-like API MongoDB for Python language.
5
5
  Project-URL: Homepage, https://github.com/kebasyaty/ramifice
6
6
  Project-URL: Documentation, https://kebasyaty.github.io/ramifice/
@@ -47,7 +47,7 @@ ramifice/models/__init__.py,sha256=h_QQ5rSJNZ-7kmx7wIFd8E8RmUS94b_x4jdwMbq8zm4,1
47
47
  ramifice/models/decorator.py,sha256=8Uy6uutRxbyNbS-C1nB50stUqJzF00MKsMECjxgMkd8,5991
48
48
  ramifice/models/model.py,sha256=ugkEDWsaUJOMLVQPhqDp0fcijcTk9vTsh9l-H43tZL4,7184
49
49
  ramifice/paladins/__init__.py,sha256=4cHrf5OhQGQm3GOTH4Wv3LVDgnVGbp6rc2EeNCRDD6Q,651
50
- ramifice/paladins/check.py,sha256=6uisaM3MgUpA_LQ_w8Did4dRcDKz9il-tRY2lrqh91I,6602
50
+ ramifice/paladins/check.py,sha256=ZBYrdPvoFSha9-mL5lUihMN5z0EdTd-zsFjbKdnOSTw,6764
51
51
  ramifice/paladins/delete.py,sha256=1-CbxQMvfrdg1BXH9L1ah0tQShweXF1rbL89Yc5XMSg,3495
52
52
  ramifice/paladins/password.py,sha256=pcDOCNW1WOLa8qGfoCIeNOZjCe_qlcNNKBYutn52RQ0,3079
53
53
  ramifice/paladins/refrash.py,sha256=Ab22W4nQs3s8LgFgjmxjYKElsfRwRowM9LzTrGFyJAM,1131
@@ -60,7 +60,7 @@ ramifice/paladins/groups/choice_group.py,sha256=NkD2sKqBkdUMHY36pFdvL4uQ-81LXByR
60
60
  ramifice/paladins/groups/date_group.py,sha256=i6beJVv4RpMsSnqZziCLnvKoC43r4lyjsUjyBu_ZBkk,3812
61
61
  ramifice/paladins/groups/file_group.py,sha256=vzTfkEKA4GDd3c4opeFbM_teGslYreoAyplvzvzpeCw,3015
62
62
  ramifice/paladins/groups/id_group.py,sha256=9iurBTOuhG1_8Wmxc5piTMcUNxAW3H0ZavA1sW7uopY,1321
63
- ramifice/paladins/groups/img_group.py,sha256=qy2PeCIcEHTeFsP3GFJspUBMAGprlZEeasB8rETRtEY,6047
63
+ ramifice/paladins/groups/img_group.py,sha256=yH1cNAZbRnc5l67HCsjLNf2cR0L4LGasuBMOhCOP4GA,6171
64
64
  ramifice/paladins/groups/num_group.py,sha256=UtpmYELsNyooiOEIAhSaRuTxYr_FrNpqq9KqAflX2aU,2349
65
65
  ramifice/paladins/groups/pass_group.py,sha256=54kvAyoUCEjujTw0Dh6oUrtv3RU80sWEem_b-3Ytv0k,1920
66
66
  ramifice/paladins/groups/slug_group.py,sha256=OFuSqwnvmN6SSbR05zHHHngr44lbrAgZnIugSV650V0,2362
@@ -78,7 +78,7 @@ ramifice/utils/mixins/add_valid.py,sha256=9GV0XwprHl4yNRQty3InKij8oqO-9WZgWiQTfh
78
78
  ramifice/utils/mixins/hooks.py,sha256=oZXO2v9zsEzpf2w3L04YjigGKyk6c8PzCWBneqGi2CQ,943
79
79
  ramifice/utils/mixins/indexing.py,sha256=bpQaQCLIhk6SmjEwZssAXhabsdXV8MFihlKhHHxO--w,358
80
80
  ramifice/utils/mixins/json_converter.py,sha256=HMU4gDnrUS0oW3vT-mWAruvNJGn37Pv2A4CKnOBnrJA,1159
81
- ramifice-0.8.10.dist-info/METADATA,sha256=CvH9io_z3tA8tvXlOyXRqFIcT5lWabVct11yeQW_a9g,20328
82
- ramifice-0.8.10.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
83
- ramifice-0.8.10.dist-info/licenses/LICENSE,sha256=LrEL0aTZx90HDwFUQCJutORiDjJL9AnuVvCtspXIqt4,1095
84
- ramifice-0.8.10.dist-info/RECORD,,
81
+ ramifice-0.8.11.dist-info/METADATA,sha256=gyWFF58rN0S1oFCBtqIW0JnggmWzWrmC8v7qZH2fuEM,20328
82
+ ramifice-0.8.11.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
83
+ ramifice-0.8.11.dist-info/licenses/LICENSE,sha256=LrEL0aTZx90HDwFUQCJutORiDjJL9AnuVvCtspXIqt4,1095
84
+ ramifice-0.8.11.dist-info/RECORD,,