ramifice 0.8.25__py3-none-any.whl → 0.8.27__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/commons/tools.py +1 -5
- ramifice/fields/bool_field.py +13 -3
- ramifice/fields/choice_float_dyn_field.py +11 -1
- ramifice/fields/choice_float_field.py +15 -3
- ramifice/fields/choice_float_mult_dyn_field.py +11 -1
- ramifice/fields/choice_float_mult_field.py +15 -3
- ramifice/fields/choice_int_dyn_field.py +11 -1
- ramifice/fields/choice_int_field.py +15 -3
- ramifice/fields/choice_int_mult_dyn_field.py +11 -1
- ramifice/fields/choice_int_mult_field.py +15 -3
- ramifice/fields/choice_text_dyn_field.py +11 -1
- ramifice/fields/choice_text_field.py +15 -3
- ramifice/fields/choice_text_mult_dyn_field.py +11 -1
- ramifice/fields/choice_text_mult_field.py +15 -3
- ramifice/fields/color_field.py +20 -7
- ramifice/fields/date_field.py +19 -4
- ramifice/fields/date_time_field.py +19 -4
- ramifice/fields/email_field.py +19 -5
- ramifice/fields/file_field.py +24 -11
- ramifice/fields/float_field.py +22 -4
- ramifice/fields/general/choice_group.py +1 -3
- ramifice/fields/general/date_group.py +1 -2
- ramifice/fields/general/field.py +2 -4
- ramifice/fields/general/file_group.py +1 -3
- ramifice/fields/general/number_group.py +1 -3
- ramifice/fields/general/text_group.py +1 -3
- ramifice/fields/id_field.py +13 -8
- ramifice/fields/image_field.py +25 -15
- ramifice/fields/integer_field.py +22 -4
- ramifice/fields/ip_field.py +19 -5
- ramifice/fields/password_field.py +14 -5
- ramifice/fields/phone_field.py +19 -5
- ramifice/fields/slug_field.py +14 -3
- ramifice/fields/text_field.py +20 -3
- ramifice/fields/url_field.py +15 -15
- ramifice/models/__init__.py +7 -1
- ramifice/models/decorator.py +2 -2
- ramifice/models/model.py +5 -7
- ramifice/paladins/__init__.py +16 -1
- ramifice/paladins/add_valid.py +3 -2
- ramifice/paladins/check.py +5 -5
- ramifice/paladins/groups/slug_group.py +1 -1
- ramifice/paladins/groups/text_group.py +2 -2
- ramifice/paladins/hooks.py +8 -2
- ramifice/paladins/indexing.py +3 -2
- ramifice/paladins/save.py +2 -2
- ramifice/paladins/validation.py +9 -9
- ramifice/utils/constants.py +1 -1
- ramifice/utils/fixtures.py +3 -3
- ramifice/utils/migration.py +3 -3
- ramifice/utils/tools.py +1 -1
- ramifice/utils/translations.py +1 -1
- ramifice/utils/unit.py +2 -2
- {ramifice-0.8.25.dist-info → ramifice-0.8.27.dist-info}/METADATA +2 -3
- ramifice-0.8.27.dist-info/RECORD +83 -0
- ramifice-0.8.25.dist-info/RECORD +0 -83
- {ramifice-0.8.25.dist-info → ramifice-0.8.27.dist-info}/WHEEL +0 -0
- {ramifice-0.8.25.dist-info → ramifice-0.8.27.dist-info}/licenses/LICENSE +0 -0
ramifice/paladins/check.py
CHANGED
@@ -168,8 +168,8 @@ class CheckMixin(
|
|
168
168
|
if img_data is not None:
|
169
169
|
img_data["is_new_img"] = False
|
170
170
|
#
|
171
|
-
return
|
172
|
-
data
|
173
|
-
is_valid
|
174
|
-
is_update
|
175
|
-
|
171
|
+
return {
|
172
|
+
"data": result_map,
|
173
|
+
"is_valid": not params["is_error_symptom"],
|
174
|
+
"is_update": is_update,
|
175
|
+
}
|
@@ -66,7 +66,7 @@ class SlugGroupMixin:
|
|
66
66
|
err_msg = (
|
67
67
|
f"Model: `{params['full_model_name']}` > "
|
68
68
|
+ f"Field: `{field_name}` > "
|
69
|
-
+
|
69
|
+
+ "Parameter: `slug_sources` => "
|
70
70
|
+ "At least one field should be unique!"
|
71
71
|
)
|
72
72
|
logger.critical(err_msg)
|
@@ -102,11 +102,11 @@ class TextGroupMixin:
|
|
102
102
|
# Insert result.
|
103
103
|
if params["is_save"]:
|
104
104
|
if is_multi_language:
|
105
|
-
mult_lang_text
|
105
|
+
mult_lang_text = (
|
106
106
|
params["curr_doc"][field_name]
|
107
107
|
if params["is_update"]
|
108
108
|
else (
|
109
|
-
|
109
|
+
dict.fromkeys(translations.LANGUAGES)
|
110
110
|
if isinstance(value, str)
|
111
111
|
else {lang: value.get(lang, "- -") for lang in translations.LANGUAGES}
|
112
112
|
)
|
ramifice/paladins/hooks.py
CHANGED
@@ -2,26 +2,32 @@
|
|
2
2
|
|
3
3
|
__all__ = ("HooksMixin",)
|
4
4
|
|
5
|
-
from abc import
|
5
|
+
from abc import abstractmethod
|
6
6
|
|
7
7
|
|
8
|
-
class HooksMixin
|
8
|
+
class HooksMixin:
|
9
9
|
"""A set of abstract methods for creating hooks."""
|
10
10
|
|
11
|
+
@abstractmethod
|
11
12
|
async def pre_create(self) -> None:
|
12
13
|
"""Called before a new document is created in the database."""
|
13
14
|
|
15
|
+
@abstractmethod
|
14
16
|
async def post_create(self) -> None:
|
15
17
|
"""Called after a new document has been created in the database."""
|
16
18
|
|
19
|
+
@abstractmethod
|
17
20
|
async def pre_update(self) -> None:
|
18
21
|
"""Called before updating an existing document in the database."""
|
19
22
|
|
23
|
+
@abstractmethod
|
20
24
|
async def post_update(self) -> None:
|
21
25
|
"""Called after an existing document in the database is updated."""
|
22
26
|
|
27
|
+
@abstractmethod
|
23
28
|
async def pre_delete(self) -> None:
|
24
29
|
"""Called before deleting an existing document in the database."""
|
25
30
|
|
31
|
+
@abstractmethod
|
26
32
|
async def post_delete(self) -> None:
|
27
33
|
"""Called after an existing document in the database has been deleted."""
|
ramifice/paladins/indexing.py
CHANGED
@@ -2,12 +2,13 @@
|
|
2
2
|
|
3
3
|
__all__ = ("IndexMixin",)
|
4
4
|
|
5
|
-
from abc import
|
5
|
+
from abc import abstractmethod
|
6
6
|
|
7
7
|
|
8
|
-
class IndexMixin
|
8
|
+
class IndexMixin:
|
9
9
|
"""Contains the method for indexing the model in the database."""
|
10
10
|
|
11
11
|
@classmethod
|
12
|
+
@abstractmethod
|
12
13
|
async def indexing(cls) -> None:
|
13
14
|
"""Set up and start indexing."""
|
ramifice/paladins/save.py
CHANGED
@@ -46,7 +46,7 @@ class SaveMixin:
|
|
46
46
|
# Create or update a document in database.
|
47
47
|
if result_check["is_update"]:
|
48
48
|
# Update date and time.
|
49
|
-
checked_data["updated_at"] = datetime.now()
|
49
|
+
checked_data["updated_at"] = datetime.now() # noqa: DTZ005
|
50
50
|
# Run hook.
|
51
51
|
await self.pre_update()
|
52
52
|
# Update doc.
|
@@ -68,7 +68,7 @@ class SaveMixin:
|
|
68
68
|
refresh_from_mongo_doc(self, mongo_doc)
|
69
69
|
else:
|
70
70
|
# Add date and time.
|
71
|
-
today = datetime.now()
|
71
|
+
today = datetime.now() # noqa: DTZ005
|
72
72
|
checked_data["created_at"] = today
|
73
73
|
checked_data["updated_at"] = today
|
74
74
|
# Run hook.
|
ramifice/paladins/validation.py
CHANGED
@@ -31,19 +31,19 @@ class ValidationMixin:
|
|
31
31
|
if len(field_data.errors) > 0:
|
32
32
|
# title
|
33
33
|
if not is_err:
|
34
|
-
print(colored("\nERRORS:", "red", attrs=["bold"]))
|
35
|
-
print(colored("Model: ", "blue", attrs=["bold"]), end="")
|
36
|
-
print(colored(f"`{self.full_model_name()}`", "blue"))
|
34
|
+
print(colored("\nERRORS:", "red", attrs=["bold"])) # noqa: T201
|
35
|
+
print(colored("Model: ", "blue", attrs=["bold"]), end="") # noqa: T201
|
36
|
+
print(colored(f"`{self.full_model_name()}`", "blue")) # noqa: T201
|
37
37
|
is_err = True
|
38
38
|
# field name
|
39
|
-
print(colored("Field: ", "green", attrs=["bold"]), end="")
|
40
|
-
print(colored(f"`{field_name}`:", "green"))
|
39
|
+
print(colored("Field: ", "green", attrs=["bold"]), end="") # noqa: T201
|
40
|
+
print(colored(f"`{field_name}`:", "green")) # noqa: T201
|
41
41
|
# error messages
|
42
|
-
print(colored("\n".join(field_data.errors), "red"))
|
42
|
+
print(colored("\n".join(field_data.errors), "red")) # noqa: T201
|
43
43
|
if len(self._id.alerts) > 0:
|
44
44
|
# title
|
45
|
-
print(colored("AlERTS:", "yellow", attrs=["bold"]))
|
45
|
+
print(colored("AlERTS:", "yellow", attrs=["bold"])) # noqa: T201
|
46
46
|
# messages
|
47
|
-
print(colored("\n".join(self._id.alerts), "yellow"), end="\n\n")
|
47
|
+
print(colored("\n".join(self._id.alerts), "yellow"), end="\n\n") # noqa: T201
|
48
48
|
else:
|
49
|
-
print(end="\n\n")
|
49
|
+
print(end="\n\n") # noqa: T201
|
ramifice/utils/constants.py
CHANGED
@@ -64,7 +64,7 @@ REGEX: dict[str, re.Pattern] = {
|
|
64
64
|
"model_name": re.compile(r"^[A-Z][a-zA-Z0-9]{0,24}$"),
|
65
65
|
"color_code": re.compile(
|
66
66
|
r"^(?:#|0x)(?:[a-f0-9]{3}|[a-f0-9]{6}|[a-f0-9]{8})\b|(?:rgb|hsl)a?\([^\)]*\)$",
|
67
|
-
re.I,
|
67
|
+
re.I, # noqa: FURB167
|
68
68
|
),
|
69
69
|
"password": re.compile(r'^[-._!"`\'#%&,:;<>=@{}~\$\(\)\*\+\/\\\?\[\]\^\|a-zA-Z0-9]{8,256}$'),
|
70
70
|
}
|
ramifice/utils/fixtures.py
CHANGED
@@ -71,8 +71,8 @@ async def apply_fixture(
|
|
71
71
|
# If the check fails.
|
72
72
|
if not result_check["is_valid"]:
|
73
73
|
await collection.database.drop_collection(collection.name)
|
74
|
-
print(colored("\nFIXTURE:", "red", attrs=["bold"]))
|
75
|
-
print(colored(fixture_path, "blue", attrs=["bold"]))
|
74
|
+
print(colored("\nFIXTURE:", "red", attrs=["bold"])) # noqa: T201
|
75
|
+
print(colored(fixture_path, "blue", attrs=["bold"])) # noqa: T201
|
76
76
|
inst_model.print_err()
|
77
77
|
msg = f"Fixture `{fixture_name}` failed."
|
78
78
|
logger.critical(msg)
|
@@ -80,7 +80,7 @@ async def apply_fixture(
|
|
80
80
|
# Get data for document.
|
81
81
|
checked_data: dict[str, Any] = result_check["data"]
|
82
82
|
# Add date and time.
|
83
|
-
today = datetime.now()
|
83
|
+
today = datetime.now() # noqa: DTZ005
|
84
84
|
checked_data["created_at"] = today
|
85
85
|
checked_data["updated_at"] = today
|
86
86
|
# Run hook.
|
ramifice/utils/migration.py
CHANGED
@@ -172,7 +172,7 @@ class Migration:
|
|
172
172
|
is_migration_process=True,
|
173
173
|
)
|
174
174
|
if not result_check["is_valid"]:
|
175
|
-
print(colored("\n!!!>>MIGRATION<<!!!", "red", attrs=["bold"]))
|
175
|
+
print(colored("\n!!!>>MIGRATION<<!!!", "red", attrs=["bold"])) # noqa: T201
|
176
176
|
inst_model.print_err()
|
177
177
|
msg: str = "Migration failed."
|
178
178
|
logger.critical(msg)
|
@@ -188,7 +188,7 @@ class Migration:
|
|
188
188
|
):
|
189
189
|
checked_data[field_name] = mongo_doc[field_name]
|
190
190
|
# Update date and time.
|
191
|
-
checked_data["updated_at"] = datetime.now()
|
191
|
+
checked_data["updated_at"] = datetime.now() # noqa: DTZ005
|
192
192
|
# Update the document in the database.
|
193
193
|
await model_collection.replace_one(
|
194
194
|
filter={"_id": checked_data["_id"]},
|
@@ -197,7 +197,7 @@ class Migration:
|
|
197
197
|
#
|
198
198
|
# Refresh the dynamic fields data for the current model.
|
199
199
|
for field_name, field_data in metadata["data_dynamic_fields"].items():
|
200
|
-
if model_state["data_dynamic_fields"].get(field_name, False) == False:
|
200
|
+
if model_state["data_dynamic_fields"].get(field_name, False) == False: # noqa: E712
|
201
201
|
model_state["data_dynamic_fields"][field_name] = field_data
|
202
202
|
else:
|
203
203
|
metadata["data_dynamic_fields"][field_name] = model_state[
|
ramifice/utils/tools.py
CHANGED
@@ -37,7 +37,7 @@ def is_password(password: str | None) -> bool:
|
|
37
37
|
|
38
38
|
def to_human_size(size: int) -> str:
|
39
39
|
"""Convert number of bytes to readable format."""
|
40
|
-
idx = int(math.floor(math.log(size) / math.log(1024)))
|
40
|
+
idx = int(math.floor(math.log(size) / math.log(1024))) # noqa: RUF046
|
41
41
|
size = size if size < 1024 else abs(round(size / pow(1024, idx), 2))
|
42
42
|
order = ["bytes", "KB", "MB", "GB", "TB"][idx]
|
43
43
|
return f"{size} {order}"
|
ramifice/utils/translations.py
CHANGED
@@ -57,7 +57,7 @@ def add_languages(
|
|
57
57
|
) -> None:
|
58
58
|
"""Add languages."""
|
59
59
|
global DEFAULT_LOCALE, LANGUAGES
|
60
|
-
if not
|
60
|
+
if default_locale not in languages:
|
61
61
|
msg = "DEFAULT_LOCALE is not included in the LANGUAGES!"
|
62
62
|
logger.critical(msg)
|
63
63
|
raise PanicError(msg)
|
ramifice/utils/unit.py
CHANGED
@@ -38,10 +38,10 @@ class Unit(JsonMixin):
|
|
38
38
|
)
|
39
39
|
raise PanicError(msg)
|
40
40
|
if not isinstance(value, (float, int, str)):
|
41
|
-
msg = "Class: `Unit` > Field: `value` => Not
|
41
|
+
msg = "Class: `Unit` > Field: `value` => Not a `float | int | str` type!"
|
42
42
|
raise PanicError(msg)
|
43
43
|
if not isinstance(is_delete, bool):
|
44
|
-
msg = "Class: `Unit` > Field: `is_delete` => Not
|
44
|
+
msg = "Class: `Unit` > Field: `is_delete` => Not a `bool` type!"
|
45
45
|
raise PanicError(msg)
|
46
46
|
|
47
47
|
JsonMixin.__init__(self)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ramifice
|
3
|
-
Version: 0.8.
|
3
|
+
Version: 0.8.27
|
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/
|
@@ -105,7 +105,7 @@ Online browsable documentation is available at [https://kebasyaty.github.io/rami
|
|
105
105
|
[](https://github.com/kebasyaty/ramifice/blob/v0/assets/UBUNTU_INSTALL_MONGODB.md)
|
106
106
|
[](https://www.mongodb.com/try/download/community)
|
107
107
|
|
108
|
-
|
108
|
+
1. Run:
|
109
109
|
|
110
110
|
```shell
|
111
111
|
# Fedora:
|
@@ -124,7 +124,6 @@ uv add ramifice
|
|
124
124
|
|
125
125
|
3. Add `config` and `public` directories in root of your project:<br>
|
126
126
|
[Download config directory](https://downgit.github.io/#/home?url=https://github.com/kebasyaty/ramifice/tree/main/config "Download config directory")
|
127
|
-
<br>
|
128
127
|
[Download public directory](https://downgit.github.io/#/home?url=https://github.com/kebasyaty/ramifice/tree/main/public "Download public directory")
|
129
128
|
|
130
129
|
## Usage
|
@@ -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=o0o-0W7VDAMPiEOWF9Du7W7py94fCLFx8KJc7LM6HP4,2423
|
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=d3sKQWMAfEycgtBIhIIov2XVoqLbN8th8i3H7YLrNdg,2769
|
12
|
+
ramifice/fields/choice_float_dyn_field.py,sha256=e-i7CtmDVqWzRJJ5Pq4PmI69riHDPx9NX51h2qFsjEE,3912
|
13
|
+
ramifice/fields/choice_float_field.py,sha256=4oonFHhUdHCoEr5WTQ75kol0ugK73vrGgyp2sEc1NPI,4891
|
14
|
+
ramifice/fields/choice_float_mult_dyn_field.py,sha256=45nr0FoY9roO2pJ0FfzBIMu6ih5cl7_3NyKVwtUAHrA,3979
|
15
|
+
ramifice/fields/choice_float_mult_field.py,sha256=lCRFDlftuf8FnQxhw3pw543Aeo45dDJoHJOOlEUrnXc,5261
|
16
|
+
ramifice/fields/choice_int_dyn_field.py,sha256=qUAZivbZSmGYhoPo-vu9P0psEjj-ZtUWjmjYv9GY6yc,3904
|
17
|
+
ramifice/fields/choice_int_field.py,sha256=QwRt155knw0rK-VHwc6M2GlOyUmqgI2hGyJfjaicMQA,4877
|
18
|
+
ramifice/fields/choice_int_mult_dyn_field.py,sha256=QajFttWuw5Z_S_ik48zev83tVIiPOgHjzPFnxmkO_e4,3973
|
19
|
+
ramifice/fields/choice_int_mult_field.py,sha256=bA3IzVNivQLJlQlKR9ot4TnaQVAFvGTNLvCYe55UMqE,5253
|
20
|
+
ramifice/fields/choice_text_dyn_field.py,sha256=H_BGtTuNNGJdXDZmGGPpi-7c0GtDGJwkyNFbKScLs28,3895
|
21
|
+
ramifice/fields/choice_text_field.py,sha256=8oWCn0xX_mk6ZUICq1H-poTEAsTDgHPLQfCAZSNs-xI,5097
|
22
|
+
ramifice/fields/choice_text_mult_dyn_field.py,sha256=OrPZ-y2ihcJeLkTWJrcPgMijedq_5czbPEmISg1HdWU,3964
|
23
|
+
ramifice/fields/choice_text_mult_field.py,sha256=gw5vWxooWBp0-RbFNTs74_n7Ib_nS2hKjlYzDLgy9RU,5244
|
24
|
+
ramifice/fields/color_field.py,sha256=-ju_cJBzKSmcXsFQweePqNmF8VeIyaRJLwvl_ypOuVk,4505
|
25
|
+
ramifice/fields/date_field.py,sha256=pmn627RGLojnprr3KAEYWvaF8IZm3YsWFZHBR8CCuYQ,6315
|
26
|
+
ramifice/fields/date_time_field.py,sha256=AVtxkvs6MP6GnSQ5chImWETnJ57LEHJinTj05Xg1xiE,6372
|
27
|
+
ramifice/fields/email_field.py,sha256=Z1FNIVy6NFcgxYXxsioUfU_kipbMp6iXdxS97woBooU,4445
|
28
|
+
ramifice/fields/file_field.py,sha256=dAsOYXPjMNwC_t8jCyoNEwlRAsGEd9V_tiuix0qTukU,9476
|
29
|
+
ramifice/fields/float_field.py,sha256=ePOO0GBjDFlWjieRItpVKkUbKeuAagBCeDNvvFCVEJs,5859
|
30
|
+
ramifice/fields/id_field.py,sha256=36VroZIgCH6uKuYjjWTXIycZ06ZGy4reLX6FhMUphCI,4757
|
31
|
+
ramifice/fields/image_field.py,sha256=jeHzsQtPJObDkKWUfyGagXn3_vKBaG4YXuJyqRYD1Mc,12854
|
32
|
+
ramifice/fields/integer_field.py,sha256=p6dkzuTDjuBdi4K43m9-qRQGOXz4zNIz0x2fD1tm-Mk,5833
|
33
|
+
ramifice/fields/ip_field.py,sha256=7s-pWIXVol2wWP6q8bEJiK_VyIzGZO17ZROK_GGbOrY,4349
|
34
|
+
ramifice/fields/password_field.py,sha256=lKELnyIjlAIJWeCR_3BCa0ZL5R0L73cf9zimigIgN3g,3902
|
35
|
+
ramifice/fields/phone_field.py,sha256=9KwTd4lUHYsP2-XzWDnC0ri5reU7imCf51Qqjv_TIqQ,4636
|
36
|
+
ramifice/fields/slug_field.py,sha256=wJtyf5LWP5pxw6G91_sYSs02QY7kvLYyB1_99_6gz5o,3552
|
37
|
+
ramifice/fields/text_field.py,sha256=fBVxBzHwj7R0TiSXnidqA5XHJdEz16WShT6TGjC-B6g,5299
|
38
|
+
ramifice/fields/url_field.py,sha256=O0IG1NKljTCN8AXll0vAQgPE5dXHJPbxrkytI6zG3i0,4348
|
39
|
+
ramifice/fields/general/__init__.py,sha256=JzgIDseNQLB_IDwY9-JSiT_bONxvhJmbKl5PhQzTnpE,40
|
40
|
+
ramifice/fields/general/choice_group.py,sha256=fdxfUEKavnW3SahtmyXNDsIJ1O67wCqZb0g-qnNc9cc,896
|
41
|
+
ramifice/fields/general/date_group.py,sha256=0Y4njV6AboQKCpSpjNRWiO8iJF4EdnVWOvmRz_M_7MY,1185
|
42
|
+
ramifice/fields/general/field.py,sha256=8P_k66rSGpY9qfiyRvRcH4VcqmzCy6fphr_BLrf-2N0,1360
|
43
|
+
ramifice/fields/general/file_group.py,sha256=HjCww3B6eS9gUmr6AGZTXhHVhS_VBvn0XpbrViWA8a8,986
|
44
|
+
ramifice/fields/general/number_group.py,sha256=QvJnnpvWvU5J-99mWk7h-00hW7busClv1eSR_DPll4A,753
|
45
|
+
ramifice/fields/general/text_group.py,sha256=y5j_7I-TzOpr6vJpbEFHN1JRc6s0wa6BVSqnHMMmX-4,1077
|
46
|
+
ramifice/models/__init__.py,sha256=I4p5Y_oHG9ZLZ3vR44PpCGGvB-C2W7fSQPb5qJsm-VQ,178
|
47
|
+
ramifice/models/decorator.py,sha256=2asTgb2rG4lfTciJhrfOI11kk-2wiScLBIbMy9Er3B4,6366
|
48
|
+
ramifice/models/model.py,sha256=kexnWtfmQaiGZU2qKeAhuHLxmuIFFe-xHwCULzLs9bc,7639
|
49
|
+
ramifice/paladins/__init__.py,sha256=bFr12UzadCCpuIkGSd6reeIeQ5td8W7LfckduP84WXc,1517
|
50
|
+
ramifice/paladins/add_valid.py,sha256=c-vIkbbIBC94T4czxkQC40uwNEe6w8wQgNVgu4cjeoY,439
|
51
|
+
ramifice/paladins/check.py,sha256=Gdfqb6pvcRwbcJNPXlG15aIZfpWNZJlpA4Yomf8at1c,6940
|
52
|
+
ramifice/paladins/delete.py,sha256=k3N2qlaHZLWtFUTqWvtkYaqW9h3uK7ecpLjKr5gfoGE,3690
|
53
|
+
ramifice/paladins/hooks.py,sha256=jTOcz5eb3WUpIy21h-CcnsISDDsTgDCWjitszcFxZFE,1057
|
54
|
+
ramifice/paladins/indexing.py,sha256=ep6iSUhnH70eaNASr0Kx3yeuRE_i9BEdVUUiJBo4hZE,363
|
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=f91g24hDaifTtZVDCaixWYTAdUj0MTGv10hqT8FNUaE,3747
|
58
|
+
ramifice/paladins/tools.py,sha256=8rkWPGrVMJiYN97EZuX52nVFVfB6qa08avYT4v8ohLA,2918
|
59
|
+
ramifice/paladins/validation.py,sha256=vJ55g4al-V_aGxFSrnXDwAxjJXWv00Z8ZGexFipRD1c,1890
|
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=sf-9CebDLoCDsaxyPVJKMhi6D_tWFeg3ET8Qk5E8pU8,2505
|
70
|
+
ramifice/paladins/groups/text_group.py,sha256=TWvUxFctwDtXSJQL_E4TvHX1Yh-cDx5MJLGLAJyC6Xc,4478
|
71
|
+
ramifice/utils/__init__.py,sha256=lAD90nw2VfGSuf0SLjOkeFScBPmc48XFvecueAfq73w,468
|
72
|
+
ramifice/utils/constants.py,sha256=zDVG2D8u0UMNl1Ik90PhZCdxjmK81uwqxosorersbXE,2630
|
73
|
+
ramifice/utils/errors.py,sha256=eEV7-aVR0U19vKqTd9JRHFJXcOv6N1HtXSzqeQpdciE,2796
|
74
|
+
ramifice/utils/fixtures.py,sha256=8DqsTyX1yLIk04bYrKJHGojTc7974sEhQnsc6XVXe9M,3379
|
75
|
+
ramifice/utils/migration.py,sha256=0XMdHl1K0Akt5RxsRB_aUzN4VvN2t2yu3O-jSpFh79A,11504
|
76
|
+
ramifice/utils/mixins.py,sha256=XSkxJllqsMxN7xcP_9kn3-GRS4a1l_QQpFOlD3e-tIM,1123
|
77
|
+
ramifice/utils/tools.py,sha256=EKNJAV9Ch17IrmghLcu7-I69gDNkDSqPepG9GKU7WkA,3163
|
78
|
+
ramifice/utils/translations.py,sha256=EWITTDd4uXukRubOchqGwNjmZWt5HxoxRgq_kKeGsR8,4646
|
79
|
+
ramifice/utils/unit.py,sha256=Z32YjftbhNiuZTAQaM9-2ILxkfYcNz4nQ-1MFr8Jjek,2548
|
80
|
+
ramifice-0.8.27.dist-info/METADATA,sha256=ZVCIlIENRsAwjiVxjKUarX6apkD2gmTATwXy8h64A2c,21081
|
81
|
+
ramifice-0.8.27.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
82
|
+
ramifice-0.8.27.dist-info/licenses/LICENSE,sha256=LrEL0aTZx90HDwFUQCJutORiDjJL9AnuVvCtspXIqt4,1095
|
83
|
+
ramifice-0.8.27.dist-info/RECORD,,
|
ramifice-0.8.25.dist-info/RECORD
DELETED
@@ -1,83 +0,0 @@
|
|
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,,
|
File without changes
|
File without changes
|