ramifice 0.8.21__py3-none-any.whl → 0.8.25__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 +8 -1
- ramifice/commons/__init__.py +2 -2
- ramifice/commons/general.py +11 -11
- ramifice/commons/indexes.py +8 -8
- ramifice/commons/many.py +6 -6
- ramifice/commons/one.py +8 -8
- ramifice/commons/tools.py +4 -4
- ramifice/commons/unit_manager.py +3 -3
- ramifice/fields/__init__.py +1 -1
- ramifice/fields/bool_field.py +4 -4
- ramifice/fields/choice_float_dyn_field.py +5 -5
- ramifice/fields/choice_float_field.py +5 -5
- ramifice/fields/choice_float_mult_dyn_field.py +5 -5
- ramifice/fields/choice_float_mult_field.py +5 -5
- ramifice/fields/choice_int_dyn_field.py +5 -5
- ramifice/fields/choice_int_field.py +5 -5
- ramifice/fields/choice_int_mult_dyn_field.py +5 -5
- ramifice/fields/choice_int_mult_field.py +5 -5
- ramifice/fields/choice_text_dyn_field.py +5 -5
- ramifice/fields/choice_text_field.py +5 -5
- ramifice/fields/choice_text_mult_dyn_field.py +5 -5
- ramifice/fields/choice_text_mult_field.py +5 -5
- ramifice/fields/color_field.py +4 -4
- ramifice/fields/date_field.py +7 -7
- ramifice/fields/date_time_field.py +7 -7
- ramifice/fields/email_field.py +4 -4
- ramifice/fields/file_field.py +6 -6
- ramifice/fields/float_field.py +4 -4
- ramifice/fields/general/__init__.py +1 -1
- ramifice/fields/general/choice_group.py +9 -10
- ramifice/fields/general/date_group.py +11 -11
- ramifice/fields/general/field.py +13 -13
- ramifice/fields/general/file_group.py +10 -10
- ramifice/fields/general/number_group.py +8 -8
- ramifice/fields/general/text_group.py +10 -10
- ramifice/fields/id_field.py +7 -7
- ramifice/fields/image_field.py +6 -6
- ramifice/fields/integer_field.py +4 -4
- ramifice/fields/ip_field.py +4 -4
- ramifice/fields/password_field.py +7 -7
- ramifice/fields/phone_field.py +4 -4
- ramifice/fields/slug_field.py +4 -4
- ramifice/fields/text_field.py +5 -5
- ramifice/fields/url_field.py +4 -4
- ramifice/models/__init__.py +1 -1
- ramifice/models/decorator.py +3 -3
- ramifice/models/model.py +16 -16
- ramifice/paladins/__init__.py +2 -2
- ramifice/paladins/add_valid.py +3 -3
- ramifice/paladins/check.py +3 -3
- ramifice/paladins/delete.py +3 -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 +3 -3
- ramifice/paladins/groups/text_group.py +3 -3
- ramifice/paladins/hooks.py +8 -8
- ramifice/paladins/indexing.py +3 -3
- ramifice/paladins/password.py +4 -4
- ramifice/paladins/refrash.py +3 -3
- ramifice/paladins/save.py +3 -3
- ramifice/paladins/tools.py +6 -6
- ramifice/paladins/validation.py +4 -4
- ramifice/utils/__init__.py +13 -1
- ramifice/utils/constants.py +1 -1
- ramifice/utils/errors.py +23 -23
- ramifice/utils/fixtures.py +2 -2
- ramifice/utils/migration.py +8 -8
- ramifice/utils/{mixins/json_converter.py → mixins.py} +6 -6
- ramifice/utils/tools.py +12 -12
- ramifice/utils/translations.py +5 -5
- ramifice/utils/unit.py +10 -10
- {ramifice-0.8.21.dist-info → ramifice-0.8.25.dist-info}/METADATA +3 -2
- ramifice-0.8.25.dist-info/RECORD +83 -0
- ramifice/utils/mixins/__init__.py +0 -5
- ramifice-0.8.21.dist-info/RECORD +0 -84
- {ramifice-0.8.21.dist-info → ramifice-0.8.25.dist-info}/WHEEL +0 -0
- {ramifice-0.8.21.dist-info → ramifice-0.8.25.dist-info}/licenses/LICENSE +0 -0
@@ -1,4 +1,4 @@
|
|
1
|
-
"""
|
1
|
+
"""Set of mixins for Models and Fields."""
|
2
2
|
|
3
3
|
__all__ = ("JsonMixin",)
|
4
4
|
|
@@ -8,10 +8,10 @@ import orjson
|
|
8
8
|
|
9
9
|
|
10
10
|
class JsonMixin:
|
11
|
-
"""
|
11
|
+
"""Contains the methods for converting Fields to JSON and back."""
|
12
12
|
|
13
13
|
def to_dict(self) -> dict[str, Any]:
|
14
|
-
"""
|
14
|
+
"""Convert object instance to a dictionary."""
|
15
15
|
json_dict: dict[str, Any] = {}
|
16
16
|
for name, data in self.__dict__.items():
|
17
17
|
if not callable(data):
|
@@ -19,12 +19,12 @@ class JsonMixin:
|
|
19
19
|
return json_dict
|
20
20
|
|
21
21
|
def to_json(self) -> str:
|
22
|
-
"""
|
22
|
+
"""Convert object instance to a JSON string."""
|
23
23
|
return orjson.dumps(self.to_dict()).decode("utf-8")
|
24
24
|
|
25
25
|
@classmethod
|
26
26
|
def from_dict(cls, json_dict: dict[str, Any]) -> Any:
|
27
|
-
"""
|
27
|
+
"""Convert JSON string to a object instance."""
|
28
28
|
obj = cls()
|
29
29
|
for name, data in json_dict.items():
|
30
30
|
obj.__dict__[name] = data
|
@@ -32,6 +32,6 @@ class JsonMixin:
|
|
32
32
|
|
33
33
|
@classmethod
|
34
34
|
def from_json(cls, json_str: str) -> Any:
|
35
|
-
"""
|
35
|
+
"""Convert JSON string to a object instance."""
|
36
36
|
json_dict = orjson.loads(json_str)
|
37
37
|
return cls.from_dict(json_dict)
|
ramifice/utils/tools.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
"""
|
1
|
+
"""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
|
-
"""
|
32
|
+
"""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
|
-
"""
|
39
|
+
"""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
|
-
"""
|
47
|
+
"""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
|
-
"""
|
53
|
+
"""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
|
-
"""
|
71
|
+
"""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
|
-
"""
|
84
|
+
"""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
|
-
"""
|
92
|
+
"""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
|
-
"""
|
101
|
+
"""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
|
-
"""
|
108
|
+
"""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
|
-
"""
|
119
|
+
"""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
|
-
"""
|
124
|
+
"""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
|
+
"""Localization of translations.
|
2
2
|
|
3
3
|
The module contains the following variables:
|
4
4
|
|
@@ -55,7 +55,7 @@ def add_languages(
|
|
55
55
|
default_locale: str,
|
56
56
|
languages: frozenset[str],
|
57
57
|
) -> None:
|
58
|
-
"""
|
58
|
+
"""Add languages."""
|
59
59
|
global DEFAULT_LOCALE, LANGUAGES
|
60
60
|
if not default_locale in languages:
|
61
61
|
msg = "DEFAULT_LOCALE is not included in the LANGUAGES!"
|
@@ -91,7 +91,7 @@ custom_translations: dict[str, NullTranslations] = {
|
|
91
91
|
|
92
92
|
|
93
93
|
def get_ramifice_translator(lang_code: str) -> Any:
|
94
|
-
"""
|
94
|
+
"""Get an object of translation for the desired language, for Ramifice.
|
95
95
|
|
96
96
|
Examples:
|
97
97
|
>>> from ramifice import translations
|
@@ -113,7 +113,7 @@ def get_ramifice_translator(lang_code: str) -> Any:
|
|
113
113
|
|
114
114
|
|
115
115
|
def get_custom_translator(lang_code: str) -> Any:
|
116
|
-
"""
|
116
|
+
"""Get an object of translation for the desired language, for custom project.
|
117
117
|
|
118
118
|
Examples:
|
119
119
|
>>> from ramifice import translations
|
@@ -143,7 +143,7 @@ ngettext: Any = get_custom_translator(DEFAULT_LOCALE).ngettext
|
|
143
143
|
|
144
144
|
|
145
145
|
def change_locale(lang_code: str) -> None:
|
146
|
-
"""
|
146
|
+
"""Change current language.
|
147
147
|
|
148
148
|
Examples:
|
149
149
|
>>> from ramifice import translations
|
ramifice/utils/unit.py
CHANGED
@@ -1,23 +1,23 @@
|
|
1
|
-
"""
|
1
|
+
"""Unit - Data management in dynamic fields."""
|
2
2
|
|
3
3
|
__all__ = ("Unit",)
|
4
4
|
|
5
5
|
import logging
|
6
6
|
|
7
7
|
from ramifice.utils.errors import PanicError
|
8
|
-
from ramifice.utils.mixins
|
8
|
+
from ramifice.utils.mixins import JsonMixin
|
9
9
|
|
10
10
|
logger = logging.getLogger(__name__)
|
11
11
|
|
12
12
|
|
13
13
|
class Unit(JsonMixin):
|
14
|
-
"""
|
14
|
+
"""Unit of information for `choices` parameter in dynamic field types.
|
15
15
|
|
16
|
-
|
17
|
-
field
|
18
|
-
title
|
19
|
-
value
|
20
|
-
is_delete
|
16
|
+
Args:
|
17
|
+
field: The name of the dynamic field.
|
18
|
+
title: The name of the choice item.
|
19
|
+
value: The value of the choice item.
|
20
|
+
is_delete: True - if you need to remove the item of choice.
|
21
21
|
"""
|
22
22
|
|
23
23
|
def __init__( # noqa: D107
|
@@ -26,7 +26,7 @@ class Unit(JsonMixin):
|
|
26
26
|
title: dict[str, str], # Example: {"en": "Title", "ru": "Заголовок"}
|
27
27
|
value: float | int | str,
|
28
28
|
is_delete: bool = False,
|
29
|
-
):
|
29
|
+
) -> None:
|
30
30
|
# Check the match of types.
|
31
31
|
if not isinstance(field, str):
|
32
32
|
msg = "Class: `Unit` > Field: `field` => Not а `str` type!"
|
@@ -54,7 +54,7 @@ class Unit(JsonMixin):
|
|
54
54
|
self.check_empty_arguments()
|
55
55
|
|
56
56
|
def check_empty_arguments(self) -> None:
|
57
|
-
"""
|
57
|
+
"""Check the arguments for empty values.
|
58
58
|
|
59
59
|
Returns:
|
60
60
|
`None` or raised exception `PanicError`.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ramifice
|
3
|
-
Version: 0.8.
|
3
|
+
Version: 0.8.25
|
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/
|
@@ -68,6 +68,7 @@ Description-Content-Type: text/markdown
|
|
68
68
|
<a href="https://github.com/kebasyaty/ramifice"><img src="https://img.shields.io/github/languages/top/kebasyaty/ramifice" alt="Top"></a>
|
69
69
|
<a href="https://github.com/kebasyaty/ramifice"><img src="https://img.shields.io/github/repo-size/kebasyaty/ramifice" alt="Size"></a>
|
70
70
|
<a href="https://github.com/kebasyaty/ramifice"><img src="https://img.shields.io/github/last-commit/kebasyaty/ramifice/main" alt="Last commit"></a>
|
71
|
+
<a href="https://github.com/kebasyaty/ramifice/releases/" alt="GitHub release"><img src="https://img.shields.io/github/release/kebasyaty/ramifice" alt="GitHub release"></a>
|
71
72
|
</p>
|
72
73
|
<p align="center">
|
73
74
|
Ramifice is built around <a href="https://pypi.org/project/pymongo/" alt="PyMongo">PyMongo</a>.
|
@@ -618,4 +619,4 @@ size: int = get_file_size(path) # => 9843
|
|
618
619
|
|
619
620
|
## License
|
620
621
|
|
621
|
-
|
622
|
+
This project is licensed under the [MIT](https://github.com/kebasyaty/ramifice/blob/main/LICENSE "MIT").
|
@@ -0,0 +1,83 @@
|
|
1
|
+
ramifice/__init__.py,sha256=rTkA9TUWsis-q056oslAcalr3rwNChMUcpQX5Q43Pzs,1520
|
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=D4sRNe9zrG_BD43vcEbnv81YthnzctZznbih6lBCnqM,9424
|
7
|
+
ramifice/commons/one.py,sha256=htcrIjwKTegwvLoA9KHVChCLzdwVJW0LZXUGLBMFE64,6979
|
8
|
+
ramifice/commons/tools.py,sha256=wBnJFibq3jW09vXywnP3MFGWCb2iLxWeDfwWBKf2b7g,2461
|
9
|
+
ramifice/commons/unit_manager.py,sha256=hDHmn3u0NDeIXxh0iCvaxN_stxtCAJVie-cWAZ6TK88,4968
|
10
|
+
ramifice/fields/__init__.py,sha256=hjqCZG_kKsHdHtSd05vHn9SiFpk-YSvKEsVFaXim5Sw,2360
|
11
|
+
ramifice/fields/bool_field.py,sha256=ehJIGDoj4hLgDPcV5iNlC0FBDE2PNoK6sQsh7lIunDc,2382
|
12
|
+
ramifice/fields/choice_float_dyn_field.py,sha256=JvZHRUvCO7aKof49fNSIsyA6UWOj3pxYM4h3E28yj6g,3453
|
13
|
+
ramifice/fields/choice_float_field.py,sha256=t2RZ14wySastdvAkEpG-IdRa5NqC-ccMHbLB7xsN0QA,4299
|
14
|
+
ramifice/fields/choice_float_mult_dyn_field.py,sha256=Ryii6MGPN8ZxKNSXPa4YFk3Zkyf5EmBfnYFKNGG62KA,3520
|
15
|
+
ramifice/fields/choice_float_mult_field.py,sha256=cSz2WkXfFOc4yia9eF54nK983Rfl5EnQVh7gXFoCZLg,4669
|
16
|
+
ramifice/fields/choice_int_dyn_field.py,sha256=vHJIMfaQ_U4VIyGBU9A_mVEMql9qmQ9taaC0ptWnlLE,3445
|
17
|
+
ramifice/fields/choice_int_field.py,sha256=WN3v6bZ09qatLDiTG_t03wi7oNzgWfKIBv9aC3UOBUY,4285
|
18
|
+
ramifice/fields/choice_int_mult_dyn_field.py,sha256=BS619QX9nGcSxglcu_rKFftkM0OulL6lss_GOOXZIwM,3514
|
19
|
+
ramifice/fields/choice_int_mult_field.py,sha256=L1yuxBN_Z2t86dhWhAuHYKO68KgHExXRLwW01sfK22A,4661
|
20
|
+
ramifice/fields/choice_text_dyn_field.py,sha256=F1mQVY6AmzVCx39DL9PKIl2tPkZPyF845zSpbuHsCyY,3436
|
21
|
+
ramifice/fields/choice_text_field.py,sha256=713z-5ml2dKmvKT0R75dgwtgoeZlUjPbXPpEXc453EY,4505
|
22
|
+
ramifice/fields/choice_text_mult_dyn_field.py,sha256=JTVxazJ12IHXSOdeUPW6kZkY_0rGh3iQt1omuMFdo4U,3505
|
23
|
+
ramifice/fields/choice_text_mult_field.py,sha256=liwlu6oMfG22OU_3Rg74DUPmFgRnwO09MDRncuIg36c,4652
|
24
|
+
ramifice/fields/color_field.py,sha256=N0no1wsVi1cYKipO7ZYsiVYIIn_yIpk-_Gfo4yCzrck,3911
|
25
|
+
ramifice/fields/date_field.py,sha256=wxOHf9cvPA-0V767U_9mBzwtgMIdFeZii_867IOcmTI,5688
|
26
|
+
ramifice/fields/date_time_field.py,sha256=dYKQvPN3uZ0vD5MfNe5almARze3VMAILWjgGy6ZDNBc,5727
|
27
|
+
ramifice/fields/email_field.py,sha256=BW6bhngLl9adpajxQscGys7k7M5AVg2YUqG2_VeGrj4,3824
|
28
|
+
ramifice/fields/file_field.py,sha256=eM4FSxcEIuHxcw79-ZvdDfQmHvNk8O4T1Z-hrNAXLXE,8734
|
29
|
+
ramifice/fields/float_field.py,sha256=2xXA9xaXe54zcL6rIe6wbFUOm0uuvNH9kDNoZ5M9xyU,5057
|
30
|
+
ramifice/fields/id_field.py,sha256=QUYwdEpzIJceqCfn04SkwQwqQl5BR-qprhuWrN74n8E,4492
|
31
|
+
ramifice/fields/image_field.py,sha256=I8aMxb45KC3uCkNuFhb8D1GGlUvQYfAsLmyYQqLVUpA,12254
|
32
|
+
ramifice/fields/integer_field.py,sha256=hdOEdlr2-xOEnf_mWpb3LPYqujiexAUyWVNdHk78y14,5031
|
33
|
+
ramifice/fields/ip_field.py,sha256=WzmZ8N5yL6KkzPfHiISCE4JYQK5g1VXOO6nFyFMSFC4,3728
|
34
|
+
ramifice/fields/password_field.py,sha256=U6uxWRxBtnW54J1Tq1T3EJZ0RvnGVkJbkPWUsihHqs4,3557
|
35
|
+
ramifice/fields/phone_field.py,sha256=4CE8HJS6Zjwlu9xNDPdvqWYoMIGn7MbABQ3CqwtALRM,4014
|
36
|
+
ramifice/fields/slug_field.py,sha256=CztvWcSIM_koGuM_Sml3-Sf0E3zfJkhvARuK537ab1E,3023
|
37
|
+
ramifice/fields/text_field.py,sha256=sTjqY2SGT9ehybXbLR49hHn1xy0L5TCLkV8TksBdvIY,4478
|
38
|
+
ramifice/fields/url_field.py,sha256=VQZ1NhZdUXnM3bnz5vgcnzYP6rmrSWVMfPmnvEfOk8c,4376
|
39
|
+
ramifice/fields/general/__init__.py,sha256=JzgIDseNQLB_IDwY9-JSiT_bONxvhJmbKl5PhQzTnpE,40
|
40
|
+
ramifice/fields/general/choice_group.py,sha256=RkYEuEl6wSazqhq2aDhUoKzKTEd54BgItpRy69rH93o,928
|
41
|
+
ramifice/fields/general/date_group.py,sha256=9fgLgyKhfVEwlCcQ87uRInmvWhwMoyfB5dT3Tq3wCPM,1229
|
42
|
+
ramifice/fields/general/field.py,sha256=tBU-9l_w1LW1EVRvu0qJn1ySk5y3BzzaUSeStIbMEg4,1392
|
43
|
+
ramifice/fields/general/file_group.py,sha256=97JqyUCKYGtvQfNOuUjOa5SIMuQ4V6I-rpmM5UDmS1E,1032
|
44
|
+
ramifice/fields/general/number_group.py,sha256=6Canht6VXXzp2lF-6R7uoWXbPufrjceYP74btOyzmzA,785
|
45
|
+
ramifice/fields/general/text_group.py,sha256=ofWj1d-9pKkbxARpXa2xQ6ANY3fiLtJUaFPp0vsDiT4,1123
|
46
|
+
ramifice/models/__init__.py,sha256=h_QQ5rSJNZ-7kmx7wIFd8E8RmUS94b_x4jdwMbq8zm4,15
|
47
|
+
ramifice/models/decorator.py,sha256=uIjJ3uww0Ac7ufFn4VMqlA_8eP1I6oIhz5gRnDnH2w8,6396
|
48
|
+
ramifice/models/model.py,sha256=qH21L7sDmJxbMz5UygHPCJhWgL52snFV_BRN-GchV00,7711
|
49
|
+
ramifice/paladins/__init__.py,sha256=4OSEBIPXEXFbQZucz3_eog4jEBgAvNojjiwEHKcVYns,859
|
50
|
+
ramifice/paladins/add_valid.py,sha256=NbRDEjetY0Pp3qoLzM5QUYI8ydkiXav_iOnqJUIwcRw,430
|
51
|
+
ramifice/paladins/check.py,sha256=UHGlyZqZVq200Iv7BpRphf8LfREzV3X5EkdoqSuDqsg,6935
|
52
|
+
ramifice/paladins/delete.py,sha256=k3N2qlaHZLWtFUTqWvtkYaqW9h3uK7ecpLjKr5gfoGE,3690
|
53
|
+
ramifice/paladins/hooks.py,sha256=oZXO2v9zsEzpf2w3L04YjigGKyk6c8PzCWBneqGi2CQ,943
|
54
|
+
ramifice/paladins/indexing.py,sha256=pQGKZFmYougPJwZRVqDINvcEQEcYsTCjAsNMMhmwrsU,354
|
55
|
+
ramifice/paladins/password.py,sha256=7lZmsl-bBely5zlVz0aCYlC5yf8nHp1YswoFF4CZWBI,3297
|
56
|
+
ramifice/paladins/refrash.py,sha256=oS-N1QVwQGwt5lSxS01bpM6ETGuMLV_RFt1u5v2uEds,1221
|
57
|
+
ramifice/paladins/save.py,sha256=Ylmf20iZU9IwR0kE9zNlJVUXxjb9BckP9ifwRqCTJAg,3715
|
58
|
+
ramifice/paladins/tools.py,sha256=8rkWPGrVMJiYN97EZuX52nVFVfB6qa08avYT4v8ohLA,2918
|
59
|
+
ramifice/paladins/validation.py,sha256=3x8WUR0bTDkzJj41mEZyKc6brEmNukKpy0fc0NsniwQ,1764
|
60
|
+
ramifice/paladins/groups/__init__.py,sha256=GdIBJaMKz7L8pBKMAA__a4m-p0g0_RlzCcvDLDMMiec,958
|
61
|
+
ramifice/paladins/groups/bool_group.py,sha256=X8P4YDh02gNzxTo9rgeCnmnV88jApUPqPLYIkpf5vGg,841
|
62
|
+
ramifice/paladins/groups/choice_group.py,sha256=NkD2sKqBkdUMHY36pFdvL4uQ-81LXByRHF_lhCEAI6Y,1848
|
63
|
+
ramifice/paladins/groups/date_group.py,sha256=i6beJVv4RpMsSnqZziCLnvKoC43r4lyjsUjyBu_ZBkk,3812
|
64
|
+
ramifice/paladins/groups/file_group.py,sha256=vzTfkEKA4GDd3c4opeFbM_teGslYreoAyplvzvzpeCw,3015
|
65
|
+
ramifice/paladins/groups/id_group.py,sha256=9iurBTOuhG1_8Wmxc5piTMcUNxAW3H0ZavA1sW7uopY,1321
|
66
|
+
ramifice/paladins/groups/img_group.py,sha256=yH1cNAZbRnc5l67HCsjLNf2cR0L4LGasuBMOhCOP4GA,6171
|
67
|
+
ramifice/paladins/groups/num_group.py,sha256=UtpmYELsNyooiOEIAhSaRuTxYr_FrNpqq9KqAflX2aU,2349
|
68
|
+
ramifice/paladins/groups/pass_group.py,sha256=54kvAyoUCEjujTw0Dh6oUrtv3RU80sWEem_b-3Ytv0k,1920
|
69
|
+
ramifice/paladins/groups/slug_group.py,sha256=aakQpNoAcEFppRczlZgnP4-u9_7-Mb0RAWKhSGmo0Ig,2506
|
70
|
+
ramifice/paladins/groups/text_group.py,sha256=PzFuRaHQzfsboGOOGKsxuqazN6We5u9TudB0-k1v0Ow,4505
|
71
|
+
ramifice/utils/__init__.py,sha256=lAD90nw2VfGSuf0SLjOkeFScBPmc48XFvecueAfq73w,468
|
72
|
+
ramifice/utils/constants.py,sha256=Wu_MyXvPpNonBbdgCmETLvMsZavyNXQ1IW9RXS9CMTA,2613
|
73
|
+
ramifice/utils/errors.py,sha256=eEV7-aVR0U19vKqTd9JRHFJXcOv6N1HtXSzqeQpdciE,2796
|
74
|
+
ramifice/utils/fixtures.py,sha256=n_EZ53uf4wKU1Erk9u58v0C1o5oqtBtnVe7JOJtH_VA,3335
|
75
|
+
ramifice/utils/migration.py,sha256=Oo0Zjvje8YOR1szTUL5dn6trnb5oU41u6aveDNmpIvI,11460
|
76
|
+
ramifice/utils/mixins.py,sha256=XSkxJllqsMxN7xcP_9kn3-GRS4a1l_QQpFOlD3e-tIM,1123
|
77
|
+
ramifice/utils/tools.py,sha256=EPFINdgAJgewwQ9OErLEX8_z-_soQckyX7FsA7eRvyQ,3147
|
78
|
+
ramifice/utils/translations.py,sha256=XlMcTRnDDxABxkBbFQY6Lg96IDuYoJUVSvPPWdeZNe8,4646
|
79
|
+
ramifice/utils/unit.py,sha256=7alJuqY6vmYVZtumND6yMSJQDgarqMdRHXTyC6ULh4M,2550
|
80
|
+
ramifice-0.8.25.dist-info/METADATA,sha256=Pg_YC_1bQVetxYELzYUeIUdVWe9u0MbnZx_f_CuTNOk,21089
|
81
|
+
ramifice-0.8.25.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
82
|
+
ramifice-0.8.25.dist-info/licenses/LICENSE,sha256=LrEL0aTZx90HDwFUQCJutORiDjJL9AnuVvCtspXIqt4,1095
|
83
|
+
ramifice-0.8.25.dist-info/RECORD,,
|
ramifice-0.8.21.dist-info/RECORD
DELETED
@@ -1,84 +0,0 @@
|
|
1
|
-
ramifice/__init__.py,sha256=eMxD1xjSRQ_DU1BSs9FSgt--Xs4rKdsHgY2h2lhvq7M,1163
|
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=Scqzrh5l3aMXGkiKi8RngWLM6CR2T1dtuqE6QOY8r3Q,9490
|
7
|
-
ramifice/commons/one.py,sha256=KTX2q2XdO3ognREOJnKRrjfc9gUpfcxpN5eCrHA90zI,7067
|
8
|
-
ramifice/commons/tools.py,sha256=Cs1RRWolxBrGXwTWLuqYmkOgDLYoKJmfctf_MgZPams,2505
|
9
|
-
ramifice/commons/unit_manager.py,sha256=_K0dYu8iBXh9WFzZq3p8YnHj9xQOlSIUg_s_8LyNeRg,5001
|
10
|
-
ramifice/fields/__init__.py,sha256=7lmcAu-7zsndVgjUJ329HFgAgCtg036lC9ifH5xpaJk,2371
|
11
|
-
ramifice/fields/bool_field.py,sha256=DNC2Tw7sClOhLaR03180hdR1IK8Q7f90c0XYAHmPhFI,2411
|
12
|
-
ramifice/fields/choice_float_dyn_field.py,sha256=W3SPcGzys0vUz1VKNCcQ5Oq4oq4zYyXx_iYRcgj63Zc,3493
|
13
|
-
ramifice/fields/choice_float_field.py,sha256=xn-0PViaQE0VSykBj1VuhqbF7rHWhPjtOXL-5gCkPoc,4339
|
14
|
-
ramifice/fields/choice_float_mult_dyn_field.py,sha256=0RtO16glK-yjjligRyErssX2GWgOFSshPQmnREz7kQM,3560
|
15
|
-
ramifice/fields/choice_float_mult_field.py,sha256=s7ZqNTac5Mv1Zn7nD8JCp8aXAylPuyIUiCuM4AxnQ9A,4709
|
16
|
-
ramifice/fields/choice_int_dyn_field.py,sha256=XpL3mNs2usP7ii2qetaOL263pnnVmJ4GPeBQvkSW1a8,3485
|
17
|
-
ramifice/fields/choice_int_field.py,sha256=AyZMyprppzDQXU3NoCbUOqvApK_GFtNPFCUbA8t-aRI,4325
|
18
|
-
ramifice/fields/choice_int_mult_dyn_field.py,sha256=BnI7pqION2OKqss2YPUmC1Qh1KFR9waiJcNGB_TVJGQ,3554
|
19
|
-
ramifice/fields/choice_int_mult_field.py,sha256=vP0CbOW2TDjEX_mvKpaWQGrF1LBnl-Cs48tWMpq9srM,4701
|
20
|
-
ramifice/fields/choice_text_dyn_field.py,sha256=Jh4RISEP6kdoQw4WPbWbhMG1hCBCHLxGdYEPGESjJP0,3476
|
21
|
-
ramifice/fields/choice_text_field.py,sha256=eedLdbIg-X-YN8msLa4I8qC2dHRtpFsdJb_pmJ7nWt4,4545
|
22
|
-
ramifice/fields/choice_text_mult_dyn_field.py,sha256=0ANNnJ6XBuvZEmh6VChImQ8nPKEzd0hFptWSn0Mm5So,3545
|
23
|
-
ramifice/fields/choice_text_mult_field.py,sha256=ouz-PXJV7oQyY5wXe5noixqcT6MNQShnF_U2WwNZHLI,4692
|
24
|
-
ramifice/fields/color_field.py,sha256=o_m9al63D0GwR0XSfpR-WXEwvbC8Y9t4iFhpZC5iNSg,3940
|
25
|
-
ramifice/fields/date_field.py,sha256=qkq50h5V0osjwa1UVGaqvqmEHudcWOyTq07nJF65yxQ,5746
|
26
|
-
ramifice/fields/date_time_field.py,sha256=QtZs87wae5Ih1rCqIqATVkNguFgw3t1pwUhkD5mdf78,5785
|
27
|
-
ramifice/fields/email_field.py,sha256=8dK3KOHGXtfdA5b-UDhdaCo0Gb1L2CiE5myZSCdJ6bs,3853
|
28
|
-
ramifice/fields/file_field.py,sha256=jxWPzF799ygKM0LXpBoTdslv4nw7CXvaLZyXXCGF4r8,8785
|
29
|
-
ramifice/fields/float_field.py,sha256=tLmNzc4IAlx_ClqhqOFoFdTyvAVeehAzb8WYs8fd6yI,5086
|
30
|
-
ramifice/fields/id_field.py,sha256=5DVR7sVDqLtpKM9HU2tyjKJCNp4PkWs6iw3EGy_xm3c,4550
|
31
|
-
ramifice/fields/image_field.py,sha256=W8WwynhviX-pQX1p_hFEqEWDXkMn-nOZ3dovxcAp5KY,12305
|
32
|
-
ramifice/fields/integer_field.py,sha256=ABFjWPoCzmeRQjrrH9mnqOeAoUHLSKeD-pysYUwQt-0,5060
|
33
|
-
ramifice/fields/ip_field.py,sha256=BhFu9KZOg1UhpzAktFAuPiTUhc2ketJLwml6S7q_Sic,3757
|
34
|
-
ramifice/fields/password_field.py,sha256=lpFVuG-sIEDFARpnx48_-MHYoW9Wk8fdHV_oxtzkzAQ,3615
|
35
|
-
ramifice/fields/phone_field.py,sha256=RLH52_lSchgAFhVe4-fg9gp-UFR60o9MBzSfOQJV158,4043
|
36
|
-
ramifice/fields/slug_field.py,sha256=JkIxYDVwGod2jNMg_UCIA8IXOHo7sOzh0WRnWTspZGk,3052
|
37
|
-
ramifice/fields/text_field.py,sha256=YHRPtobZpNlZL-k48I99bRx7E-uOQvuysbbj8bqrZ_I,4518
|
38
|
-
ramifice/fields/url_field.py,sha256=YqaGJRU4lViw2DMIcyhcQNLiaoO77-YvuyhUWWp8KsI,4405
|
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=f9PGmU927BkIOirtloGs3R3IhjiL8P3_0KgCkAqDz_A,6429
|
48
|
-
ramifice/models/model.py,sha256=M-pYUqzOhvzZEc2tfPy5fNDdrtIC2mFvajV3q2CpOfc,7887
|
49
|
-
ramifice/paladins/__init__.py,sha256=_8eJ6dAr_omSAU6VUZQjxty0V52ExBPReyUFToDX4PQ,881
|
50
|
-
ramifice/paladins/add_valid.py,sha256=Yxo8LfJMxcAsY-ooZV1cLwFsfjxV5MPR0ebnWpyo4oE,463
|
51
|
-
ramifice/paladins/check.py,sha256=L7mYsN5qp6ZlGiyPBQK1jw4GN03aIh8QpbbdK6-n6S4,6968
|
52
|
-
ramifice/paladins/delete.py,sha256=Ynew5zvEBRJNmss5I8hSIp7KgBHpSvDEJCwOfMH5MUU,3723
|
53
|
-
ramifice/paladins/hooks.py,sha256=h8coNstWWHI4VwPgpjx0NWTj93-5NDAGtav0VFh-fk4,1031
|
54
|
-
ramifice/paladins/indexing.py,sha256=WVLxmkLKg-C_LHn2hq6LJuOkSr9eS-XUUvCMgK-pKYo,387
|
55
|
-
ramifice/paladins/password.py,sha256=hdEfSwz0a9FJ5IIYpyD9bmV_kNGvXP4OV5Ea-V0Yx98,3341
|
56
|
-
ramifice/paladins/refrash.py,sha256=0qst0ii2ThH-VJduSI1zgkuZQGLnR8IiIu5rTVxzM9U,1254
|
57
|
-
ramifice/paladins/save.py,sha256=Tv6TP4Hv0sNIk_aSzLrS6f6kH29A8cFn-f_bzCqP71M,3748
|
58
|
-
ramifice/paladins/tools.py,sha256=GubR4JwvFu1IAPaH7fr_Fpehd2JoY9qO23Kg8uoXiJU,2984
|
59
|
-
ramifice/paladins/validation.py,sha256=DglGT-GnL7XM__77vNXkOAmdBMUVw8HyIJJ5rmKuPns,1808
|
60
|
-
ramifice/paladins/groups/__init__.py,sha256=R4cr9Xt2N-TvNIsoJ4h9J10Zqcuyqk9v3lE_rMEe52o,969
|
61
|
-
ramifice/paladins/groups/bool_group.py,sha256=hOD2wbz6VFS7KhxuevV5ApKXkmTJB18S-5s92PwOmHM,874
|
62
|
-
ramifice/paladins/groups/choice_group.py,sha256=ODB7m8PFY-fM68LTRujN7yUL9oJvMt39p25aVBJxWCc,1881
|
63
|
-
ramifice/paladins/groups/date_group.py,sha256=I7W2HFJ96IJh8lpMyHa--_msyNityN2cGbWMky-ShAc,3845
|
64
|
-
ramifice/paladins/groups/file_group.py,sha256=Rtj75Q8V7ie8Nf96Z-QYj2Ah65HK8BQIwbFvSFJxeLE,3048
|
65
|
-
ramifice/paladins/groups/id_group.py,sha256=cXVM65IGo7UTrTezc_6NsSfHK7SXGekQgY1YHQT6Gug,1354
|
66
|
-
ramifice/paladins/groups/img_group.py,sha256=M-fzE1tX0BVYqvT9KCqdTo5FbS5f-nSXdomyNWrvTNw,6204
|
67
|
-
ramifice/paladins/groups/num_group.py,sha256=WJR6Jaxd_YmEvWdgEXzDFZsiiF0OqOstw6_NaRGbLSU,2382
|
68
|
-
ramifice/paladins/groups/pass_group.py,sha256=1_FYXA96yan4xCvoY-ABX02T8gyrPP5Pjr4Np_expi8,1953
|
69
|
-
ramifice/paladins/groups/slug_group.py,sha256=QCO0ry0-E7bO9tsD4NajPMMbB0chGmuLyzdJCLnY1EI,2539
|
70
|
-
ramifice/paladins/groups/text_group.py,sha256=2CyhZxQgFDv-uGRKIxgngB15_BfgPmhxp4N_X7WXsSQ,4538
|
71
|
-
ramifice/utils/__init__.py,sha256=wdOon9X-38jYpgOy1qyN-u7IzbGEXXuXudnzj5xFQGI,54
|
72
|
-
ramifice/utils/constants.py,sha256=VFvzFaOfzzhfoLMrI9nH9Dz_P5ktI8cOdqTINFHUEo4,2624
|
73
|
-
ramifice/utils/errors.py,sha256=L_eZttzoLvv5_ukCan7vTmCbYcSbuGfOvfd4q4Cy17s,2953
|
74
|
-
ramifice/utils/fixtures.py,sha256=R6lHvNp5hvA6Bryom2XNu3CvT-zwXpBGH8AZa3gRC1Q,3357
|
75
|
-
ramifice/utils/migration.py,sha256=IZ3MFJD2n61uJ0Nl90Ll28GJwjUJf_2IOVbATTHDS_A,11529
|
76
|
-
ramifice/utils/tools.py,sha256=LZyA715HnkNO7TcBu4Ia29A6Ko3n-F2BRULzIyNKt9o,3279
|
77
|
-
ramifice/utils/translations.py,sha256=Jh0nzwcn3bhUU2TjPAQboe3_pkVyhYQYdeINyC5SQo8,4701
|
78
|
-
ramifice/utils/unit.py,sha256=ToBeu92tzOY32fuzLdxScNeYXvGIDr0nx7yTv2DShVo,2604
|
79
|
-
ramifice/utils/mixins/__init__.py,sha256=1i7Vy8JkgyUqJei9fWD62O65SPpRD0i8Gh7S66PLyLQ,145
|
80
|
-
ramifice/utils/mixins/json_converter.py,sha256=qBqFYol3Pbq1kX33EWB6FsYUL3AGSdYNtQE97HQ9jy4,1225
|
81
|
-
ramifice-0.8.21.dist-info/METADATA,sha256=roQuW6d_aocRtIbofKugHlkPkZIDnPeiRaZruPLg568,20918
|
82
|
-
ramifice-0.8.21.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
83
|
-
ramifice-0.8.21.dist-info/licenses/LICENSE,sha256=LrEL0aTZx90HDwFUQCJutORiDjJL9AnuVvCtspXIqt4,1095
|
84
|
-
ramifice-0.8.21.dist-info/RECORD,,
|
File without changes
|
File without changes
|