ramifice 0.8.11__py3-none-any.whl → 0.8.13__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/__init__.py +16 -1
- ramifice/commons/__init__.py +2 -2
- ramifice/commons/general.py +11 -11
- ramifice/commons/indexes.py +8 -8
- ramifice/commons/many.py +10 -6
- ramifice/commons/one.py +13 -8
- ramifice/commons/tools.py +4 -4
- ramifice/commons/unit_manager.py +15 -5
- ramifice/fields/__init__.py +1 -1
- ramifice/fields/bool_field.py +26 -18
- ramifice/fields/choice_float_dyn_field.py +29 -21
- ramifice/fields/choice_float_field.py +41 -33
- ramifice/fields/choice_float_mult_dyn_field.py +29 -21
- ramifice/fields/choice_float_mult_field.py +48 -40
- ramifice/fields/choice_int_dyn_field.py +29 -21
- ramifice/fields/choice_int_field.py +41 -33
- ramifice/fields/choice_int_mult_dyn_field.py +29 -21
- ramifice/fields/choice_int_mult_field.py +48 -40
- ramifice/fields/choice_text_dyn_field.py +29 -21
- ramifice/fields/choice_text_field.py +47 -39
- ramifice/fields/choice_text_mult_dyn_field.py +29 -21
- ramifice/fields/choice_text_mult_field.py +48 -40
- ramifice/fields/color_field.py +40 -32
- ramifice/fields/date_field.py +49 -40
- ramifice/fields/date_time_field.py +49 -40
- ramifice/fields/email_field.py +42 -34
- ramifice/fields/file_field.py +45 -35
- ramifice/fields/float_field.py +56 -47
- ramifice/fields/general/__init__.py +1 -1
- ramifice/fields/general/choice_group.py +2 -2
- ramifice/fields/general/date_group.py +2 -2
- ramifice/fields/general/field.py +2 -2
- ramifice/fields/general/file_group.py +2 -2
- ramifice/fields/general/number_group.py +2 -2
- ramifice/fields/general/text_group.py +3 -3
- ramifice/fields/id_field.py +35 -28
- ramifice/fields/image_field.py +67 -57
- ramifice/fields/integer_field.py +56 -47
- ramifice/fields/ip_field.py +41 -34
- ramifice/fields/password_field.py +29 -22
- ramifice/fields/phone_field.py +44 -36
- ramifice/fields/slug_field.py +30 -22
- ramifice/fields/text_field.py +43 -35
- ramifice/fields/url_field.py +40 -33
- ramifice/models/__init__.py +1 -1
- ramifice/models/decorator.py +33 -11
- ramifice/models/model.py +16 -16
- ramifice/paladins/__init__.py +2 -2
- ramifice/paladins/check.py +8 -3
- ramifice/paladins/delete.py +9 -3
- ramifice/paladins/groups/__init__.py +1 -1
- ramifice/paladins/groups/bool_group.py +3 -3
- ramifice/paladins/groups/choice_group.py +3 -3
- ramifice/paladins/groups/date_group.py +3 -3
- ramifice/paladins/groups/file_group.py +3 -3
- ramifice/paladins/groups/id_group.py +3 -3
- ramifice/paladins/groups/img_group.py +3 -3
- ramifice/paladins/groups/num_group.py +3 -3
- ramifice/paladins/groups/pass_group.py +3 -3
- ramifice/paladins/groups/slug_group.py +8 -3
- ramifice/paladins/groups/text_group.py +3 -3
- ramifice/paladins/password.py +11 -4
- ramifice/paladins/refrash.py +7 -3
- ramifice/paladins/save.py +9 -3
- ramifice/paladins/tools.py +11 -6
- ramifice/paladins/validation.py +4 -4
- ramifice/utils/__init__.py +1 -1
- ramifice/utils/constants.py +1 -1
- ramifice/utils/errors.py +7 -7
- ramifice/utils/fixtures.py +7 -2
- ramifice/utils/migration.py +18 -9
- ramifice/utils/mixins/__init__.py +1 -1
- ramifice/utils/mixins/add_valid.py +3 -3
- ramifice/utils/mixins/hooks.py +8 -8
- ramifice/utils/mixins/indexing.py +3 -3
- ramifice/utils/mixins/json_converter.py +6 -6
- ramifice/utils/tools.py +12 -12
- ramifice/utils/translations.py +24 -8
- ramifice/utils/unit.py +8 -3
- {ramifice-0.8.11.dist-info → ramifice-0.8.13.dist-info}/METADATA +9 -5
- ramifice-0.8.13.dist-info/RECORD +84 -0
- ramifice-0.8.11.dist-info/RECORD +0 -84
- {ramifice-0.8.11.dist-info → ramifice-0.8.13.dist-info}/WHEEL +0 -0
- {ramifice-0.8.11.dist-info → ramifice-0.8.13.dist-info}/licenses/LICENSE +0 -0
ramifice/utils/tools.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
"""Global collection of auxiliary methods."""
|
1
|
+
"""Ramifice - Global collection of auxiliary methods."""
|
2
2
|
|
3
3
|
__all__ = (
|
4
4
|
"is_password",
|
@@ -29,14 +29,14 @@ from ramifice.utils.constants import REGEX
|
|
29
29
|
|
30
30
|
|
31
31
|
def is_password(password: str | None) -> bool:
|
32
|
-
"""Validate Password."""
|
32
|
+
"""Ramifice - Validate Password."""
|
33
33
|
if not REGEX["password"].match(str(password)):
|
34
34
|
return False
|
35
35
|
return True
|
36
36
|
|
37
37
|
|
38
38
|
def to_human_size(size: int) -> str:
|
39
|
-
"""Convert number of bytes to readable format."""
|
39
|
+
"""Ramifice - Convert number of bytes to readable format."""
|
40
40
|
idx = int(math.floor(math.log(size) / math.log(1024)))
|
41
41
|
size = size if size < 1024 else abs(round(size / pow(1024, idx), 2))
|
42
42
|
order = ["bytes", "KB", "MB", "GB", "TB"][idx]
|
@@ -44,13 +44,13 @@ def to_human_size(size: int) -> str:
|
|
44
44
|
|
45
45
|
|
46
46
|
async def get_file_size(path: str) -> int:
|
47
|
-
"""Get file size in bytes."""
|
47
|
+
"""Ramifice - Get file size in bytes."""
|
48
48
|
size: int = await to_thread(getsize, path)
|
49
49
|
return size
|
50
50
|
|
51
51
|
|
52
52
|
def normal_email(email: str | None) -> str | None:
|
53
|
-
"""Normalizing email address.
|
53
|
+
"""Ramifice - Normalizing email address.
|
54
54
|
|
55
55
|
Use this before requeste to a database.
|
56
56
|
For example, on the login page.
|
@@ -68,7 +68,7 @@ def normal_email(email: str | None) -> str | None:
|
|
68
68
|
|
69
69
|
|
70
70
|
async def is_email(email: str | None) -> bool:
|
71
|
-
"""Validate Email address."""
|
71
|
+
"""Ramifice - Validate Email address."""
|
72
72
|
try:
|
73
73
|
await to_thread(
|
74
74
|
validate_email,
|
@@ -81,7 +81,7 @@ async def is_email(email: str | None) -> bool:
|
|
81
81
|
|
82
82
|
|
83
83
|
def is_url(url: str | None) -> bool:
|
84
|
-
"""Validate URL address."""
|
84
|
+
"""Ramifice - Validate URL address."""
|
85
85
|
result = urlparse(str(url))
|
86
86
|
if not result.scheme or not result.netloc:
|
87
87
|
return False
|
@@ -89,7 +89,7 @@ def is_url(url: str | None) -> bool:
|
|
89
89
|
|
90
90
|
|
91
91
|
def is_ip(address: str | int | None) -> bool:
|
92
|
-
"""Validate IP address."""
|
92
|
+
"""Ramifice - Validate IP address."""
|
93
93
|
try:
|
94
94
|
ipaddress.ip_address(str(address))
|
95
95
|
except ValueError:
|
@@ -98,14 +98,14 @@ def is_ip(address: str | int | None) -> bool:
|
|
98
98
|
|
99
99
|
|
100
100
|
def is_color(color_code: str | None) -> bool:
|
101
|
-
"""Validate Color code."""
|
101
|
+
"""Ramifice - Validate Color code."""
|
102
102
|
if REGEX["color_code"].match(str(color_code)) is None:
|
103
103
|
return False
|
104
104
|
return True
|
105
105
|
|
106
106
|
|
107
107
|
def is_phone(number: str | None) -> bool:
|
108
|
-
"""Validate Phone number."""
|
108
|
+
"""Ramifice - Validate Phone number."""
|
109
109
|
try:
|
110
110
|
phone = phonenumbers.parse(str(number))
|
111
111
|
if not phonenumbers.is_valid_number(phone):
|
@@ -116,10 +116,10 @@ def is_phone(number: str | None) -> bool:
|
|
116
116
|
|
117
117
|
|
118
118
|
def is_mongo_id(oid: Any) -> bool:
|
119
|
-
"""Validation of the Mongodb identifier."""
|
119
|
+
"""Ramifice - Validation of the Mongodb identifier."""
|
120
120
|
return ObjectId.is_valid(oid)
|
121
121
|
|
122
122
|
|
123
123
|
def hash_to_obj_id(hash: str | None) -> ObjectId | None:
|
124
|
-
"""Get ObjectId from hash string."""
|
124
|
+
"""Ramifice - Get ObjectId from hash string."""
|
125
125
|
return ObjectId(hash) if bool(hash) else None
|
ramifice/utils/translations.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
"""
|
1
|
+
"""Ramifice - Localization of translations.
|
2
2
|
|
3
3
|
The module contains the following variables:
|
4
4
|
|
@@ -26,18 +26,23 @@ __all__ = (
|
|
26
26
|
"DEFAULT_LOCALE",
|
27
27
|
"CURRENT_LOCALE",
|
28
28
|
"LANGUAGES",
|
29
|
-
"
|
29
|
+
"add_languages",
|
30
|
+
"_",
|
30
31
|
"gettext",
|
31
32
|
"ngettext",
|
33
|
+
"change_locale",
|
32
34
|
)
|
33
35
|
|
34
36
|
import copy
|
35
37
|
import gettext as _gettext
|
38
|
+
import logging
|
36
39
|
from gettext import NullTranslations
|
37
40
|
from typing import Any
|
38
41
|
|
39
42
|
from ramifice.utils.errors import PanicError
|
40
43
|
|
44
|
+
logger = logging.getLogger(__name__)
|
45
|
+
|
41
46
|
# Language by default.
|
42
47
|
DEFAULT_LOCALE: str = "en"
|
43
48
|
# Code of current language.
|
@@ -45,9 +50,20 @@ CURRENT_LOCALE: str = copy.deepcopy(DEFAULT_LOCALE)
|
|
45
50
|
# List of supported languages.
|
46
51
|
LANGUAGES: frozenset[str] = frozenset(("en", "ru"))
|
47
52
|
|
48
|
-
|
49
|
-
|
50
|
-
|
53
|
+
|
54
|
+
def add_languages(
|
55
|
+
default_locale: str,
|
56
|
+
languages: frozenset[str],
|
57
|
+
) -> None:
|
58
|
+
"""Ramifice - Add languages."""
|
59
|
+
global DEFAULT_LOCALE, LANGUAGES
|
60
|
+
if not default_locale in languages:
|
61
|
+
msg = "DEFAULT_LOCALE is not included in the LANGUAGES!"
|
62
|
+
logger.error(msg)
|
63
|
+
raise PanicError(msg)
|
64
|
+
DEFAULT_LOCALE = default_locale
|
65
|
+
LANGUAGES = languages
|
66
|
+
|
51
67
|
|
52
68
|
# Add translations for Ramifice.
|
53
69
|
ramifice_translations: dict[str, NullTranslations] = {
|
@@ -75,7 +91,7 @@ custom_translations: dict[str, NullTranslations] = {
|
|
75
91
|
|
76
92
|
|
77
93
|
def get_ramifice_translator(lang_code: str) -> Any:
|
78
|
-
"""Get an object of translation for the desired language, for Ramifice.
|
94
|
+
"""Ramifice - Get an object of translation for the desired language, for Ramifice.
|
79
95
|
|
80
96
|
Examples:
|
81
97
|
>>> from ramifice import translations
|
@@ -97,7 +113,7 @@ def get_ramifice_translator(lang_code: str) -> Any:
|
|
97
113
|
|
98
114
|
|
99
115
|
def get_custom_translator(lang_code: str) -> Any:
|
100
|
-
"""Get an object of translation for the desired language, for custom project.
|
116
|
+
"""Ramifice - Get an object of translation for the desired language, for custom project.
|
101
117
|
|
102
118
|
Examples:
|
103
119
|
>>> from ramifice import translations
|
@@ -127,7 +143,7 @@ ngettext: Any = get_custom_translator(DEFAULT_LOCALE).ngettext
|
|
127
143
|
|
128
144
|
|
129
145
|
def change_locale(lang_code: str) -> None:
|
130
|
-
"""Change current language.
|
146
|
+
"""Ramifice - Change current language.
|
131
147
|
|
132
148
|
Examples:
|
133
149
|
>>> from ramifice import translations
|
ramifice/utils/unit.py
CHANGED
@@ -1,13 +1,17 @@
|
|
1
|
-
"""Unit - Data management in dynamic fields."""
|
1
|
+
"""Ramifice - Unit - Data management in dynamic fields."""
|
2
2
|
|
3
3
|
__all__ = ("Unit",)
|
4
4
|
|
5
|
+
import logging
|
6
|
+
|
5
7
|
from ramifice.utils.errors import PanicError
|
6
8
|
from ramifice.utils.mixins.json_converter import JsonMixin
|
7
9
|
|
10
|
+
logger = logging.getLogger(__name__)
|
11
|
+
|
8
12
|
|
9
13
|
class Unit(JsonMixin):
|
10
|
-
"""Unit of information for `choices` parameter in dynamic field types.
|
14
|
+
"""Ramifice - Unit of information for `choices` parameter in dynamic field types.
|
11
15
|
|
12
16
|
Attributes:
|
13
17
|
field -- The name of the dynamic field.
|
@@ -50,7 +54,7 @@ class Unit(JsonMixin):
|
|
50
54
|
self.check_empty_arguments()
|
51
55
|
|
52
56
|
def check_empty_arguments(self) -> None:
|
53
|
-
"""Check the arguments for empty values.
|
57
|
+
"""Ramifice - Check the arguments for empty values.
|
54
58
|
|
55
59
|
Returns:
|
56
60
|
`None` or raised exception `PanicError`.
|
@@ -71,4 +75,5 @@ class Unit(JsonMixin):
|
|
71
75
|
+ f"Field: `{field_name}` => "
|
72
76
|
+ "Must not be empty!"
|
73
77
|
)
|
78
|
+
logger.error(msg)
|
74
79
|
raise PanicError(msg)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ramifice
|
3
|
-
Version: 0.8.
|
3
|
+
Version: 0.8.13
|
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/
|
@@ -260,8 +260,10 @@ if __name__ == "__main__":
|
|
260
260
|
```python
|
261
261
|
from ramifice import translations
|
262
262
|
|
263
|
-
translations.
|
264
|
-
|
263
|
+
translations.add_languages(
|
264
|
+
default_locale="en", # For Ramifice by default = "en"
|
265
|
+
languages=frozenset(("en", "ru")), # For Ramifice by default = ["en", "ru"]
|
266
|
+
)
|
265
267
|
```
|
266
268
|
|
267
269
|
```shell
|
@@ -286,8 +288,10 @@ uv run pybabel compile -d config/translations/custom
|
|
286
288
|
```python
|
287
289
|
from ramifice import translations
|
288
290
|
|
289
|
-
translations.
|
290
|
-
|
291
|
+
translations.add_languages(
|
292
|
+
default_locale="en", # For Ramifice by default = "en"
|
293
|
+
languages=frozenset(("en", "ru", "de", "de_ch")), # For Ramifice by default = ["en", "ru"]
|
294
|
+
)
|
291
295
|
```
|
292
296
|
|
293
297
|
```shell
|
@@ -0,0 +1,84 @@
|
|
1
|
+
ramifice/__init__.py,sha256=Xejr_t4cimFFNKS6xXvAeLRue1vTB5kZWGeYbHXDUDw,1116
|
2
|
+
ramifice/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
|
+
ramifice/commons/__init__.py,sha256=F5tnz0bz7IcwOT9wkPmyWL7cDDUI1BUVSfC73G56dfs,567
|
4
|
+
ramifice/commons/general.py,sha256=HuErflr-dZ2pWhaSy81IGllFfGxlj8yrdnaAEGUtK3M,5554
|
5
|
+
ramifice/commons/indexes.py,sha256=Ay1Y7Ft8t6Yuw7_LHtK5K87BNAac2WYsY2zzvPEu_zw,3784
|
6
|
+
ramifice/commons/many.py,sha256=ekOp7XxusTA7u6GKErtV8fEeQ5mzCV3IJz_jiA045GM,9464
|
7
|
+
ramifice/commons/one.py,sha256=xSMghkeRgheIY4U9vl9om7_ASihrkQ41AXS4m7W3z2M,7028
|
8
|
+
ramifice/commons/tools.py,sha256=Cs1RRWolxBrGXwTWLuqYmkOgDLYoKJmfctf_MgZPams,2505
|
9
|
+
ramifice/commons/unit_manager.py,sha256=9XrWZtbt9CzZMUDz4mqL3McvJ8RkseMSJpNGgxoGSeA,4875
|
10
|
+
ramifice/fields/__init__.py,sha256=g1Nrv2E1XrdGO9xIiyhhjIRDh-KyOwLSvDuMCOfmBBw,1721
|
11
|
+
ramifice/fields/bool_field.py,sha256=azPiI2Fq6PkBGILeDo2wrIepzPERRPMrFvE7z7FxnvM,2408
|
12
|
+
ramifice/fields/choice_float_dyn_field.py,sha256=a2HS4PlIPQs9Ya3foyMthFqWZT45p8tIJ9NIllV9Zgk,3490
|
13
|
+
ramifice/fields/choice_float_field.py,sha256=lfDgF57LFHKcr2HyC-V8SZkuiyWUSIWEefzU_CYBE-Q,4336
|
14
|
+
ramifice/fields/choice_float_mult_dyn_field.py,sha256=zcSyyOfXHD9RE78cxnG4ACpAKrYm1n93LRwIooWTd4U,3557
|
15
|
+
ramifice/fields/choice_float_mult_field.py,sha256=WlRSb5o8Jn2F9xYBXH0u1xpuXQdNJFNED4b2PuVnD_s,4706
|
16
|
+
ramifice/fields/choice_int_dyn_field.py,sha256=wg90Pdf9gHri0VLpTLbI_ztJvFsdiN9dqJJskO1hMN4,3482
|
17
|
+
ramifice/fields/choice_int_field.py,sha256=2vM9WVXYdk9nYgGajmf_B8m3J17zRqOmncqF9_jFOYs,4322
|
18
|
+
ramifice/fields/choice_int_mult_dyn_field.py,sha256=Vn_Ua8lV-5YN6VRfHaquq299ZBlyENv88_wdqR4tnCU,3551
|
19
|
+
ramifice/fields/choice_int_mult_field.py,sha256=dv-qwE_yT_dedJicwCQM0O_jahexSlw_R1RtKGyuZ3E,4698
|
20
|
+
ramifice/fields/choice_text_dyn_field.py,sha256=lSmD-JW4w1NdVa_GhUcCZ4Su5pmRmoMtebgRgiwCfso,3473
|
21
|
+
ramifice/fields/choice_text_field.py,sha256=5choPzao1Np74e-5iRWBHL9VxkVe93XRJYqtZgY11mE,4542
|
22
|
+
ramifice/fields/choice_text_mult_dyn_field.py,sha256=8wqlU0sTJ48Joeh1yyrAE8LnRH2GSBUOWzcjqvWU7lY,3542
|
23
|
+
ramifice/fields/choice_text_mult_field.py,sha256=gbHqd0awF_h1KlEecGVzIiXNs5pdR4_VKqbFzzJjTt8,4689
|
24
|
+
ramifice/fields/color_field.py,sha256=lbSHIsf3i42S5vvTCgO9IBYgywK6EeF58TNTG71C1Xw,3937
|
25
|
+
ramifice/fields/date_field.py,sha256=vu8tiQMdwrcG0MEsBKJ7WibVY2te1goWO1m6HSb36LU,5743
|
26
|
+
ramifice/fields/date_time_field.py,sha256=ntAwhSUcVSy_-Py1IuTtZpeVqafqKmxqJPFhROMbG4s,5782
|
27
|
+
ramifice/fields/email_field.py,sha256=V_Nw6tHrWQ11-8KDn-AzA6SGyMVnSMmFEhmQdsBYke4,3850
|
28
|
+
ramifice/fields/file_field.py,sha256=YK3HU2jfiFXMkuq9m_ZBJZY4nppEJwCg4h0d9e_WQOw,8782
|
29
|
+
ramifice/fields/float_field.py,sha256=PK1YTiY2prSyMUg_TgtryAAECzmripF5VWe_trFWjEo,5083
|
30
|
+
ramifice/fields/id_field.py,sha256=osYwdJgHBSR4w4dPc1PcZmt58fq7wjrhzFoLtZ3SP9M,4547
|
31
|
+
ramifice/fields/image_field.py,sha256=gmIrtYkic7bpvOv0I-snMi1WxgyPdJlnmJWd4oIvuTk,12302
|
32
|
+
ramifice/fields/integer_field.py,sha256=Djjym6ceLtkhKzeHHCOv9Zx5egTTJhVWQpVTljxN4-4,5057
|
33
|
+
ramifice/fields/ip_field.py,sha256=nMo3t5xgg_cgU5NjsDaUko4I-MCdm9I4wg5ybV03-VM,3754
|
34
|
+
ramifice/fields/password_field.py,sha256=I6yn8Iyez-V3M8czHi25lLrR8zabGX87ozZGgq-ulBw,3612
|
35
|
+
ramifice/fields/phone_field.py,sha256=jCZkIu1FIMUA6oEGOFmrdULJM50Ag5p8wbGOnDfKKag,4040
|
36
|
+
ramifice/fields/slug_field.py,sha256=E5ZxEx8_4y6sO-neBbbodKSb4vjNg2DPO-ioLyVydxE,3049
|
37
|
+
ramifice/fields/text_field.py,sha256=qPwQ_IW6TdkK7kIV6GWTVsw1OJu6Cb-7w3UtH0Ksx1o,4515
|
38
|
+
ramifice/fields/url_field.py,sha256=10H0pg4Du5goT9mKs53A4PgMDQSCkcJB9R7tE9UrdWc,4402
|
39
|
+
ramifice/fields/general/__init__.py,sha256=j3Onqv8DAR5vMf7GLvLdBDYe5i2WaxF6aHgus0NZBMw,51
|
40
|
+
ramifice/fields/general/choice_group.py,sha256=u-xmgr88oYo2gPxmBaCk9Lzxh6dWxYj_N8hiEoOENgM,1014
|
41
|
+
ramifice/fields/general/date_group.py,sha256=RCNl5qrOwJ1AoysgpwR2mq87l0UJU0Ep7MmliLyTtjM,1263
|
42
|
+
ramifice/fields/general/field.py,sha256=bNVZrl4Vw0ZBHHdijAUAbIl78jIB4loWRUYMcdg6i0E,1430
|
43
|
+
ramifice/fields/general/file_group.py,sha256=SmF8OHKXsyZtWr90n8iCAXBXFQrjRV2HdDc_n1ngITk,1064
|
44
|
+
ramifice/fields/general/number_group.py,sha256=jspiA9hWiU_hNhXbTku2rZG3UezrhEVBGopNgooJ4ig,813
|
45
|
+
ramifice/fields/general/text_group.py,sha256=hYVX4-ipD2_eyj-WpHIHnFrpQevySaVd4twffUsrOLo,1164
|
46
|
+
ramifice/models/__init__.py,sha256=y5jRhSzcPuEVUWr1u--o1GyjFb7irlf5Rn2gPvQ3IPg,26
|
47
|
+
ramifice/models/decorator.py,sha256=U4uubmFUCipkiILvej5VrH4qwow3DGG_DG444hX6Ju0,6667
|
48
|
+
ramifice/models/model.py,sha256=m19E7h3Fv2F7oDotc1z_n_NglFN7KmXOrNL0r4Jg_y4,7352
|
49
|
+
ramifice/paladins/__init__.py,sha256=I2FzvCrp6upv_GPLfDqaVLwIT6-3Dp_K9i51tFUXDuc,673
|
50
|
+
ramifice/paladins/check.py,sha256=kZXibFqTkMnMdujAVlcGRVaMZlOQ0od5N0lWExu_FEc,6971
|
51
|
+
ramifice/paladins/delete.py,sha256=PRd-xraM9gMdCSFemGX5A8YAdg08RKVqerBGrvFwfJk,3677
|
52
|
+
ramifice/paladins/password.py,sha256=MyDZN94yUqpAmD2jt6Hk5714bYcXQZGszNVjm33e-M8,3332
|
53
|
+
ramifice/paladins/refrash.py,sha256=QyvWm_nRdbrtRuyESLZbaoEkqO8n1cs1tvsIfSu6mC8,1251
|
54
|
+
ramifice/paladins/save.py,sha256=XlJUKkMySE7_9w1H9L-u7L-J9Uj88njVzTHzfI9rYu8,4121
|
55
|
+
ramifice/paladins/tools.py,sha256=sdQQkyi3VaS0v_bVHRy6bt_pPmu0r1iorT9MX9_ThIw,2978
|
56
|
+
ramifice/paladins/validation.py,sha256=DglGT-GnL7XM__77vNXkOAmdBMUVw8HyIJJ5rmKuPns,1808
|
57
|
+
ramifice/paladins/groups/__init__.py,sha256=JCsgvspyx4dg9vNNONIlGzlL4Dnejm5N4rynOG8LLPo,723
|
58
|
+
ramifice/paladins/groups/bool_group.py,sha256=hOD2wbz6VFS7KhxuevV5ApKXkmTJB18S-5s92PwOmHM,874
|
59
|
+
ramifice/paladins/groups/choice_group.py,sha256=ODB7m8PFY-fM68LTRujN7yUL9oJvMt39p25aVBJxWCc,1881
|
60
|
+
ramifice/paladins/groups/date_group.py,sha256=I7W2HFJ96IJh8lpMyHa--_msyNityN2cGbWMky-ShAc,3845
|
61
|
+
ramifice/paladins/groups/file_group.py,sha256=Rtj75Q8V7ie8Nf96Z-QYj2Ah65HK8BQIwbFvSFJxeLE,3048
|
62
|
+
ramifice/paladins/groups/id_group.py,sha256=cXVM65IGo7UTrTezc_6NsSfHK7SXGekQgY1YHQT6Gug,1354
|
63
|
+
ramifice/paladins/groups/img_group.py,sha256=M-fzE1tX0BVYqvT9KCqdTo5FbS5f-nSXdomyNWrvTNw,6204
|
64
|
+
ramifice/paladins/groups/num_group.py,sha256=WJR6Jaxd_YmEvWdgEXzDFZsiiF0OqOstw6_NaRGbLSU,2382
|
65
|
+
ramifice/paladins/groups/pass_group.py,sha256=1_FYXA96yan4xCvoY-ABX02T8gyrPP5Pjr4Np_expi8,1953
|
66
|
+
ramifice/paladins/groups/slug_group.py,sha256=0H1baGmX572t3v6E68rwS3AvDyfGPJMldZgPVNZtyPI,2533
|
67
|
+
ramifice/paladins/groups/text_group.py,sha256=2CyhZxQgFDv-uGRKIxgngB15_BfgPmhxp4N_X7WXsSQ,4538
|
68
|
+
ramifice/utils/__init__.py,sha256=wdOon9X-38jYpgOy1qyN-u7IzbGEXXuXudnzj5xFQGI,54
|
69
|
+
ramifice/utils/constants.py,sha256=VFvzFaOfzzhfoLMrI9nH9Dz_P5ktI8cOdqTINFHUEo4,2624
|
70
|
+
ramifice/utils/errors.py,sha256=OBoTuVLkMbtt-wdOZKY6eByNwAmaQvu1FHhfUi-aU9k,1978
|
71
|
+
ramifice/utils/fixtures.py,sha256=fmC87O0EE-EHsDqSOMD0mCSehKncMazzPuIfm7cO1tI,3351
|
72
|
+
ramifice/utils/migration.py,sha256=Q_kDRdMMtkYX4mB8RoLD2sIOej8rr9yhqz-Aip57VYU,11553
|
73
|
+
ramifice/utils/tools.py,sha256=LZyA715HnkNO7TcBu4Ia29A6Ko3n-F2BRULzIyNKt9o,3279
|
74
|
+
ramifice/utils/translations.py,sha256=hIEXrc_53zx8wMnC7RnsIkqmh_SWJcxKQGl-TXGy3c4,4698
|
75
|
+
ramifice/utils/unit.py,sha256=7I48948JfUSxHS78aN7VfFi5nMi5DUi2cgaDu15dn7s,2601
|
76
|
+
ramifice/utils/mixins/__init__.py,sha256=1W6HoabjN73crpzJ_rmhI10KM9C2RbPZn5Em6Gi9Aig,283
|
77
|
+
ramifice/utils/mixins/add_valid.py,sha256=vYq4wGdpfA4iLMts7G0NvDALZBwupOScsajDFWCmmYg,472
|
78
|
+
ramifice/utils/mixins/hooks.py,sha256=h8coNstWWHI4VwPgpjx0NWTj93-5NDAGtav0VFh-fk4,1031
|
79
|
+
ramifice/utils/mixins/indexing.py,sha256=WVLxmkLKg-C_LHn2hq6LJuOkSr9eS-XUUvCMgK-pKYo,387
|
80
|
+
ramifice/utils/mixins/json_converter.py,sha256=qBqFYol3Pbq1kX33EWB6FsYUL3AGSdYNtQE97HQ9jy4,1225
|
81
|
+
ramifice-0.8.13.dist-info/METADATA,sha256=MPb7W8bLK3cwGVfNc8iZai1EiXoy35pc_a8pccd9_Z8,20361
|
82
|
+
ramifice-0.8.13.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
83
|
+
ramifice-0.8.13.dist-info/licenses/LICENSE,sha256=LrEL0aTZx90HDwFUQCJutORiDjJL9AnuVvCtspXIqt4,1095
|
84
|
+
ramifice-0.8.13.dist-info/RECORD,,
|
ramifice-0.8.11.dist-info/RECORD
DELETED
@@ -1,84 +0,0 @@
|
|
1
|
-
ramifice/__init__.py,sha256=Pm2v5QCHErdx0sWBFeJnoczz3fg_rzd8UB7AS_ICDL0,820
|
2
|
-
ramifice/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
|
-
ramifice/commons/__init__.py,sha256=HwOckqlNkt4OzFbYqnLw9x0VXLbwO_mJaJ9MLYgSvtI,545
|
4
|
-
ramifice/commons/general.py,sha256=ZryiRH-qf_cH9HCul7EP11UU-k4YO_rp_kku2FWAwj4,5433
|
5
|
-
ramifice/commons/indexes.py,sha256=dBPVYeJGbEyENLEzGjQmQ2XYOr3qqzjonj6zyH4rl54,3696
|
6
|
-
ramifice/commons/many.py,sha256=VkEVWzz3FgoSsuQULfV8rfW87H558_NRbwfQhlGgqNs,9311
|
7
|
-
ramifice/commons/one.py,sha256=XHXUthY-ACW-9dhI4yWGupZ1RsaRSQbIuwu_rdngjBc,6822
|
8
|
-
ramifice/commons/tools.py,sha256=wBnJFibq3jW09vXywnP3MFGWCb2iLxWeDfwWBKf2b7g,2461
|
9
|
-
ramifice/commons/unit_manager.py,sha256=bKvHEAag5FrH3kXmmqQCgfSEIkJjIGIo1ymCfLhbcKc,4569
|
10
|
-
ramifice/fields/__init__.py,sha256=u_XTUfcWTI96lvxinMPm_s9XNJ4jNDd8zhL9vwRvckc,1710
|
11
|
-
ramifice/fields/bool_field.py,sha256=ZZftUSR9CKhl2eGTGfbmmSgoKVnWDcNuP2bMrycF9O0,2136
|
12
|
-
ramifice/fields/choice_float_dyn_field.py,sha256=F6hXUXV9iNW4TgvSvBGTXwK33qtDFx7OskfEeHFgkP4,3199
|
13
|
-
ramifice/fields/choice_float_field.py,sha256=NVQGPPOMdkdFRyqXhEJoKjv6-MPAYPJcLN25VVojM78,3989
|
14
|
-
ramifice/fields/choice_float_mult_dyn_field.py,sha256=voiokW_Rx89nckrRq5e_DClIe7V7cQ2B3Y58yvDSenc,3266
|
15
|
-
ramifice/fields/choice_float_mult_field.py,sha256=VZtTO8Yx4fSJkW4p5mVw_DuroncGNHvtAM1nbL5rku4,4339
|
16
|
-
ramifice/fields/choice_int_dyn_field.py,sha256=UHi2jpxXhP5xZQz2PhFGJybR_yjHgmrxTsUpiH7dPlU,3191
|
17
|
-
ramifice/fields/choice_int_field.py,sha256=eAPQzt97_mHCDhCJt8oYuDFEMBb8s-DAwEEaRbMRDnw,3975
|
18
|
-
ramifice/fields/choice_int_mult_dyn_field.py,sha256=a0p70n0xnAzJWfnOJ7HrZqYCPZeKVQEd3yNisFUgNfw,3260
|
19
|
-
ramifice/fields/choice_int_mult_field.py,sha256=ZnC7bB5r1Z6PsW0Lp7r6Pu2yyI46GGPHyj9PC6juajA,4331
|
20
|
-
ramifice/fields/choice_text_dyn_field.py,sha256=h2eUA2gUwmiP-ykzWVDLSCZRNLE6LFeb04GgF4MJdlU,3182
|
21
|
-
ramifice/fields/choice_text_field.py,sha256=TLkZ47oX1_HCtP3erl-0vIMqzSD_vpGbcImymw3YB8M,4175
|
22
|
-
ramifice/fields/choice_text_mult_dyn_field.py,sha256=h104T9SR9vjWi6KBrQ0U1-hM1rqZXXyaEVkBRb_ct4w,3251
|
23
|
-
ramifice/fields/choice_text_mult_field.py,sha256=XlLxwPWyrQWmiL95GAg5Avlo84vi8jovAnkXq5GsS3E,4322
|
24
|
-
ramifice/fields/color_field.py,sha256=I87c8w-2PHMCSTfWTXCmZMJNmrnqzW9Kox436M7yx6A,3605
|
25
|
-
ramifice/fields/date_field.py,sha256=QkUiaBd0FxgDkjYnkCG9M8Jlsg1YuhCe-csuvZ20AGY,5305
|
26
|
-
ramifice/fields/date_time_field.py,sha256=1WBb_zzYe8-eG7mWvoHSm08PF8YDCxZo7iDk8-h3arY,5344
|
27
|
-
ramifice/fields/email_field.py,sha256=8BxJZQGkYSLVz01HFaSaZQw9VC_n8pUc423d7halxGA,3510
|
28
|
-
ramifice/fields/file_field.py,sha256=IYICN6iYiz-VmN6GrrashE2qOBzEHTZgUzyYdYYBdPQ,8333
|
29
|
-
ramifice/fields/float_field.py,sha256=pKe_XgBjUKxUWZ_ZKTwTgrZlNx8Zn1jShMukeG7P5FQ,4666
|
30
|
-
ramifice/fields/id_field.py,sha256=O68MAiRcYsGmM6gxTaA7NH1obI7HFyba_ANx8_HQL9Y,4209
|
31
|
-
ramifice/fields/image_field.py,sha256=w0Xd0d9idmB1Eb41VcZqjcRRU7aSPbTWp0zm0Qqom78,11753
|
32
|
-
ramifice/fields/integer_field.py,sha256=CJ1tOn6eOyK9zc-NRWkNTCmpZ9HoKgEvRzCUdEHgY6o,4640
|
33
|
-
ramifice/fields/ip_field.py,sha256=dS4uxcCaL49fisacVhhBS3npTuRORgKJClDMys82CG4,3416
|
34
|
-
ramifice/fields/password_field.py,sha256=cEwU-YiqxZfGu7OeMilmYEakpwF5JWIYKfHiUrSKtGA,3298
|
35
|
-
ramifice/fields/phone_field.py,sha256=gOU3dYfWvYzzI2TA73KiIz3vTyp1khAbVNjqz_z6Dbg,3692
|
36
|
-
ramifice/fields/slug_field.py,sha256=o8ftFnwClNUl7y6zyE7UUo0daUu5SV_tvwR_f7uFNg8,2761
|
37
|
-
ramifice/fields/text_field.py,sha256=QEjsvqxe76OgU5e0yIxGw_6MDbTzz0QAqtdxqbdz9-4,4168
|
38
|
-
ramifice/fields/url_field.py,sha256=ww2qYPmKYMYvgG4UHbWqEZdRPLVDFTqaMFD2EZUxpWM,4068
|
39
|
-
ramifice/fields/general/__init__.py,sha256=JzgIDseNQLB_IDwY9-JSiT_bONxvhJmbKl5PhQzTnpE,40
|
40
|
-
ramifice/fields/general/choice_group.py,sha256=Nvpz_lXMeZPWnogOL0QB71DApv2k-KQ9ZhWCx2AjilM,992
|
41
|
-
ramifice/fields/general/date_group.py,sha256=DDQayQPU0EESfYMY4pVHleYK9ysWRV86VLefV3Gs5k4,1241
|
42
|
-
ramifice/fields/general/field.py,sha256=3HnAV6hQ2Jn4nn_Cososs9EqfV1Y5wbDUwEzOu23mzE,1408
|
43
|
-
ramifice/fields/general/file_group.py,sha256=q1gPQpTYsLMYZIpmj_dj4CQ_Ryo7PBpsTSKwy3E5dow,1042
|
44
|
-
ramifice/fields/general/number_group.py,sha256=GBE2Cv61rYKg1WjyD1nqE7z3QF3thBiLKAWAkKw1xGs,791
|
45
|
-
ramifice/fields/general/text_group.py,sha256=6SLJ8TM9moFECrxDbNXeFNGclQPYxmnP2Tm19e98hmk,1131
|
46
|
-
ramifice/models/__init__.py,sha256=h_QQ5rSJNZ-7kmx7wIFd8E8RmUS94b_x4jdwMbq8zm4,15
|
47
|
-
ramifice/models/decorator.py,sha256=8Uy6uutRxbyNbS-C1nB50stUqJzF00MKsMECjxgMkd8,5991
|
48
|
-
ramifice/models/model.py,sha256=ugkEDWsaUJOMLVQPhqDp0fcijcTk9vTsh9l-H43tZL4,7184
|
49
|
-
ramifice/paladins/__init__.py,sha256=4cHrf5OhQGQm3GOTH4Wv3LVDgnVGbp6rc2EeNCRDD6Q,651
|
50
|
-
ramifice/paladins/check.py,sha256=ZBYrdPvoFSha9-mL5lUihMN5z0EdTd-zsFjbKdnOSTw,6764
|
51
|
-
ramifice/paladins/delete.py,sha256=1-CbxQMvfrdg1BXH9L1ah0tQShweXF1rbL89Yc5XMSg,3495
|
52
|
-
ramifice/paladins/password.py,sha256=pcDOCNW1WOLa8qGfoCIeNOZjCe_qlcNNKBYutn52RQ0,3079
|
53
|
-
ramifice/paladins/refrash.py,sha256=Ab22W4nQs3s8LgFgjmxjYKElsfRwRowM9LzTrGFyJAM,1131
|
54
|
-
ramifice/paladins/save.py,sha256=2YeEofr-kRF7bP5mEVejIlspDBjiLKzBqG2lSj6BOus,3927
|
55
|
-
ramifice/paladins/tools.py,sha256=YSJsjSAqP1jlcS1XvQGtLlL5b_EL-U6nYNewv5dFaZo,2807
|
56
|
-
ramifice/paladins/validation.py,sha256=3x8WUR0bTDkzJj41mEZyKc6brEmNukKpy0fc0NsniwQ,1764
|
57
|
-
ramifice/paladins/groups/__init__.py,sha256=GxJWM3IkYT3HW9pnJ1QTEjdOKJnjEoAaQ8SRukXnIW0,712
|
58
|
-
ramifice/paladins/groups/bool_group.py,sha256=X8P4YDh02gNzxTo9rgeCnmnV88jApUPqPLYIkpf5vGg,841
|
59
|
-
ramifice/paladins/groups/choice_group.py,sha256=NkD2sKqBkdUMHY36pFdvL4uQ-81LXByRHF_lhCEAI6Y,1848
|
60
|
-
ramifice/paladins/groups/date_group.py,sha256=i6beJVv4RpMsSnqZziCLnvKoC43r4lyjsUjyBu_ZBkk,3812
|
61
|
-
ramifice/paladins/groups/file_group.py,sha256=vzTfkEKA4GDd3c4opeFbM_teGslYreoAyplvzvzpeCw,3015
|
62
|
-
ramifice/paladins/groups/id_group.py,sha256=9iurBTOuhG1_8Wmxc5piTMcUNxAW3H0ZavA1sW7uopY,1321
|
63
|
-
ramifice/paladins/groups/img_group.py,sha256=yH1cNAZbRnc5l67HCsjLNf2cR0L4LGasuBMOhCOP4GA,6171
|
64
|
-
ramifice/paladins/groups/num_group.py,sha256=UtpmYELsNyooiOEIAhSaRuTxYr_FrNpqq9KqAflX2aU,2349
|
65
|
-
ramifice/paladins/groups/pass_group.py,sha256=54kvAyoUCEjujTw0Dh6oUrtv3RU80sWEem_b-3Ytv0k,1920
|
66
|
-
ramifice/paladins/groups/slug_group.py,sha256=OFuSqwnvmN6SSbR05zHHHngr44lbrAgZnIugSV650V0,2362
|
67
|
-
ramifice/paladins/groups/text_group.py,sha256=PzFuRaHQzfsboGOOGKsxuqazN6We5u9TudB0-k1v0Ow,4505
|
68
|
-
ramifice/utils/__init__.py,sha256=xixHoOX4ja5jIUZemem1qn4k4aonv3G3Q76azQK_pkU,43
|
69
|
-
ramifice/utils/constants.py,sha256=Wu_MyXvPpNonBbdgCmETLvMsZavyNXQ1IW9RXS9CMTA,2613
|
70
|
-
ramifice/utils/errors.py,sha256=iuhq7fzpUmsOyeXeg2fJjta8yAuqlXLKsZVMpfUhtHE,1901
|
71
|
-
ramifice/utils/fixtures.py,sha256=4vUFyIiEcqtkS5bAqwBWwXUKny3akbyWbI1j9450sBg,3211
|
72
|
-
ramifice/utils/migration.py,sha256=3rGebK-df0EBvq2QKIP9URnm3TPZLI97GXUf4EZRNsM,11134
|
73
|
-
ramifice/utils/tools.py,sha256=EPFINdgAJgewwQ9OErLEX8_z-_soQckyX7FsA7eRvyQ,3147
|
74
|
-
ramifice/utils/translations.py,sha256=h8B9AdqFu2V-8eg8DMwLpa9pib8IMv59SyPSDuyxchM,4305
|
75
|
-
ramifice/utils/unit.py,sha256=kfVlPHeVhVsli6jw5tV5yHC23QhAsTEL_V2rwHtDE20,2479
|
76
|
-
ramifice/utils/mixins/__init__.py,sha256=GrxJDsw73bEkitIh0-0BCxNnUK-N5uRXMCRlaPoaz1o,265
|
77
|
-
ramifice/utils/mixins/add_valid.py,sha256=9GV0XwprHl4yNRQty3InKij8oqO-9WZgWiQTfh0CVH0,439
|
78
|
-
ramifice/utils/mixins/hooks.py,sha256=oZXO2v9zsEzpf2w3L04YjigGKyk6c8PzCWBneqGi2CQ,943
|
79
|
-
ramifice/utils/mixins/indexing.py,sha256=bpQaQCLIhk6SmjEwZssAXhabsdXV8MFihlKhHHxO--w,358
|
80
|
-
ramifice/utils/mixins/json_converter.py,sha256=HMU4gDnrUS0oW3vT-mWAruvNJGn37Pv2A4CKnOBnrJA,1159
|
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
|