ramifice 0.8.9__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.
- ramifice/paladins/check.py +50 -48
- ramifice/paladins/groups/img_group.py +33 -32
- ramifice/utils/translations.py +4 -3
- {ramifice-0.8.9.dist-info → ramifice-0.8.11.dist-info}/METADATA +1 -1
- {ramifice-0.8.9.dist-info → ramifice-0.8.11.dist-info}/RECORD +7 -7
- {ramifice-0.8.9.dist-info → ramifice-0.8.11.dist-info}/WHEEL +0 -0
- {ramifice-0.8.9.dist-info → ramifice-0.8.11.dist-info}/licenses/LICENSE +0 -0
ramifice/paladins/check.py
CHANGED
@@ -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
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
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
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
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
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
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
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
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
|
ramifice/utils/translations.py
CHANGED
@@ -5,12 +5,11 @@ The module contains the following variables:
|
|
5
5
|
- `CURRENT_LOCALE` - Code of current language.
|
6
6
|
- `DEFAULT_LOCALE` - Language code by default.
|
7
7
|
- `LANGUAGES` - List of codes supported by languages.
|
8
|
-
- `
|
9
|
-
- `
|
8
|
+
- `gettext` - The object of the current translator.
|
9
|
+
- `ngettext` - The object of the current translator.
|
10
10
|
|
11
11
|
The module contains the following functions:
|
12
12
|
|
13
|
-
- `get_translator` - Get an object of translation for the desired language.
|
14
13
|
- `change_locale` - To change the current language and translation object.
|
15
14
|
|
16
15
|
CKEditor supported languages:
|
@@ -28,6 +27,8 @@ __all__ = (
|
|
28
27
|
"CURRENT_LOCALE",
|
29
28
|
"LANGUAGES",
|
30
29
|
"change_locale",
|
30
|
+
"gettext",
|
31
|
+
"ngettext",
|
31
32
|
)
|
32
33
|
|
33
34
|
import copy
|
@@ -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=
|
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=
|
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
|
@@ -71,14 +71,14 @@ ramifice/utils/errors.py,sha256=iuhq7fzpUmsOyeXeg2fJjta8yAuqlXLKsZVMpfUhtHE,1901
|
|
71
71
|
ramifice/utils/fixtures.py,sha256=4vUFyIiEcqtkS5bAqwBWwXUKny3akbyWbI1j9450sBg,3211
|
72
72
|
ramifice/utils/migration.py,sha256=3rGebK-df0EBvq2QKIP9URnm3TPZLI97GXUf4EZRNsM,11134
|
73
73
|
ramifice/utils/tools.py,sha256=EPFINdgAJgewwQ9OErLEX8_z-_soQckyX7FsA7eRvyQ,3147
|
74
|
-
ramifice/utils/translations.py,sha256=
|
74
|
+
ramifice/utils/translations.py,sha256=h8B9AdqFu2V-8eg8DMwLpa9pib8IMv59SyPSDuyxchM,4305
|
75
75
|
ramifice/utils/unit.py,sha256=kfVlPHeVhVsli6jw5tV5yHC23QhAsTEL_V2rwHtDE20,2479
|
76
76
|
ramifice/utils/mixins/__init__.py,sha256=GrxJDsw73bEkitIh0-0BCxNnUK-N5uRXMCRlaPoaz1o,265
|
77
77
|
ramifice/utils/mixins/add_valid.py,sha256=9GV0XwprHl4yNRQty3InKij8oqO-9WZgWiQTfh0CVH0,439
|
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.
|
82
|
-
ramifice-0.8.
|
83
|
-
ramifice-0.8.
|
84
|
-
ramifice-0.8.
|
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,,
|
File without changes
|
File without changes
|