ramifice 0.3.26__py3-none-any.whl → 0.3.28__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 +2 -1
- ramifice/commons/__init__.py +1 -3
- ramifice/commons/general.py +1 -1
- ramifice/commons/indexes.py +1 -1
- ramifice/commons/many.py +9 -5
- ramifice/commons/one.py +17 -7
- ramifice/commons/tools.py +62 -57
- ramifice/commons/{units.py → unit_manager.py} +3 -3
- ramifice/fields/bool_field.py +2 -2
- ramifice/fields/choice_float_dyn_field.py +2 -2
- ramifice/fields/choice_float_field.py +2 -2
- ramifice/fields/choice_float_mult_dyn_field.py +2 -2
- ramifice/fields/choice_float_mult_field.py +2 -2
- ramifice/fields/choice_int_dyn_field.py +2 -2
- ramifice/fields/choice_int_field.py +2 -2
- ramifice/fields/choice_int_mult_dyn_field.py +2 -2
- ramifice/fields/choice_int_mult_field.py +2 -2
- ramifice/fields/choice_text_dyn_field.py +2 -2
- ramifice/fields/choice_text_field.py +2 -2
- ramifice/fields/choice_text_mult_dyn_field.py +2 -2
- ramifice/fields/choice_text_mult_field.py +2 -2
- ramifice/fields/color_field.py +2 -2
- ramifice/fields/date_field.py +1 -1
- ramifice/fields/date_time_field.py +1 -1
- ramifice/fields/email_field.py +2 -2
- ramifice/fields/file_field.py +3 -3
- ramifice/fields/float_field.py +2 -2
- ramifice/fields/id_field.py +1 -1
- ramifice/fields/image_field.py +3 -3
- ramifice/fields/integer_field.py +2 -2
- ramifice/fields/ip_field.py +2 -2
- ramifice/fields/password_field.py +1 -1
- ramifice/fields/phone_field.py +2 -2
- ramifice/fields/slug_field.py +2 -2
- ramifice/fields/text_field.py +2 -2
- ramifice/fields/url_field.py +2 -2
- ramifice/models/__init__.py +1 -0
- ramifice/{decorators.py → models/decorator.py} +11 -13
- ramifice/{model.py → models/model.py} +4 -4
- ramifice/{pseudo_model.py → models/pseudo.py} +4 -4
- ramifice/paladins/check.py +2 -2
- ramifice/paladins/delete.py +2 -2
- ramifice/paladins/groups/choice_group.py +1 -1
- ramifice/paladins/groups/date_group.py +1 -1
- ramifice/paladins/groups/file_group.py +2 -2
- ramifice/paladins/groups/id_group.py +1 -1
- ramifice/paladins/groups/img_group.py +2 -2
- ramifice/paladins/groups/num_group.py +1 -1
- ramifice/paladins/groups/pass_group.py +2 -2
- ramifice/paladins/groups/slug_group.py +1 -1
- ramifice/paladins/groups/text_group.py +2 -2
- ramifice/paladins/password.py +2 -2
- ramifice/paladins/refrash.py +2 -2
- ramifice/paladins/save.py +2 -2
- ramifice/paladins/tools.py +1 -1
- ramifice/utils/__init__.py +1 -0
- ramifice/{migration.py → utils/migration.py} +1 -1
- ramifice/utils/mixins/__init__.py +6 -0
- ramifice/{add_valid.py → utils/mixins/add_valid.py} +2 -2
- ramifice/{hooks.py → utils/mixins/hooks.py} +2 -2
- ramifice/utils/mixins/indexing.py +11 -0
- ramifice/{mixins.py → utils/mixins/json_converter.py} +2 -5
- ramifice/{types.py → utils/unit.py} +2 -9
- {ramifice-0.3.26.dist-info → ramifice-0.3.28.dist-info}/METADATA +5 -6
- ramifice-0.3.28.dist-info/RECORD +85 -0
- ramifice/indexing.py +0 -11
- ramifice-0.3.26.dist-info/RECORD +0 -82
- /ramifice/{errors.py → utils/errors.py} +0 -0
- /ramifice/{fixtures.py → utils/fixtures.py} +0 -0
- /ramifice/{store.py → utils/store.py} +0 -0
- /ramifice/{utilities.py → utils/tools.py} +0 -0
- /ramifice/{translations.py → utils/translations.py} +0 -0
- {ramifice-0.3.26.dist-info → ramifice-0.3.28.dist-info}/WHEEL +0 -0
- {ramifice-0.3.26.dist-info → ramifice-0.3.28.dist-info}/licenses/LICENSE +0 -0
ramifice/__init__.py
CHANGED
ramifice/commons/__init__.py
CHANGED
@@ -4,12 +4,10 @@ from .general import GeneralMixin
|
|
4
4
|
from .indexes import IndexMixin
|
5
5
|
from .many import ManyMixin
|
6
6
|
from .one import OneMixin
|
7
|
-
from .
|
8
|
-
from .units import UnitMixin
|
7
|
+
from .unit_manager import UnitMixin
|
9
8
|
|
10
9
|
|
11
10
|
class QCommonsMixin(
|
12
|
-
ToolMixin,
|
13
11
|
GeneralMixin,
|
14
12
|
OneMixin,
|
15
13
|
ManyMixin,
|
ramifice/commons/general.py
CHANGED
@@ -6,7 +6,7 @@ from pymongo.asynchronous.collection import AsyncCollection
|
|
6
6
|
from pymongo.asynchronous.command_cursor import AsyncCommandCursor
|
7
7
|
from pymongo.asynchronous.database import AsyncDatabase
|
8
8
|
|
9
|
-
from .. import store
|
9
|
+
from ..utils import store
|
10
10
|
|
11
11
|
|
12
12
|
class GeneralMixin:
|
ramifice/commons/indexes.py
CHANGED
ramifice/commons/many.py
CHANGED
@@ -7,8 +7,9 @@ from pymongo.asynchronous.collection import AsyncCollection
|
|
7
7
|
from pymongo.asynchronous.cursor import AsyncCursor, CursorType # type: ignore[attr-defined]
|
8
8
|
from pymongo.results import DeleteResult
|
9
9
|
|
10
|
-
from .. import store
|
11
|
-
from ..errors import PanicError
|
10
|
+
from ..utils import store
|
11
|
+
from ..utils.errors import PanicError
|
12
|
+
from .tools import mongo_doc_to_raw_doc, password_to_none
|
12
13
|
|
13
14
|
|
14
15
|
class ManyMixin:
|
@@ -67,8 +68,9 @@ class ManyMixin:
|
|
67
68
|
session=session,
|
68
69
|
allow_disk_use=allow_disk_use,
|
69
70
|
)
|
71
|
+
field_name_and_type = cls.META["field_name_and_type"] # type: ignore[attr-defined]
|
70
72
|
async for mongo_doc in cursor:
|
71
|
-
doc_list.append(
|
73
|
+
doc_list.append(password_to_none(field_name_and_type, mongo_doc))
|
72
74
|
return doc_list
|
73
75
|
|
74
76
|
@classmethod
|
@@ -131,8 +133,9 @@ class ManyMixin:
|
|
131
133
|
session=session,
|
132
134
|
allow_disk_use=allow_disk_use,
|
133
135
|
)
|
136
|
+
field_name_and_type = cls.META["field_name_and_type"] # type: ignore[attr-defined]
|
134
137
|
async for mongo_doc in cursor:
|
135
|
-
doc_list.append(
|
138
|
+
doc_list.append(mongo_doc_to_raw_doc(field_name_and_type, mongo_doc))
|
136
139
|
return doc_list
|
137
140
|
|
138
141
|
@classmethod
|
@@ -188,8 +191,9 @@ class ManyMixin:
|
|
188
191
|
session=session,
|
189
192
|
allow_disk_use=allow_disk_use,
|
190
193
|
)
|
194
|
+
field_name_and_type = cls.META["field_name_and_type"] # type: ignore[attr-defined]
|
191
195
|
async for mongo_doc in cursor:
|
192
|
-
doc_list.append(
|
196
|
+
doc_list.append(mongo_doc_to_raw_doc(field_name_and_type, mongo_doc))
|
193
197
|
return json.dumps(doc_list) if len(doc_list) > 0 else None
|
194
198
|
|
195
199
|
@classmethod
|
ramifice/commons/one.py
CHANGED
@@ -5,8 +5,9 @@ from typing import Any
|
|
5
5
|
from pymongo.asynchronous.collection import AsyncCollection
|
6
6
|
from pymongo.results import DeleteResult
|
7
7
|
|
8
|
-
from .. import store
|
9
|
-
from ..errors import PanicError
|
8
|
+
from ..utils import store
|
9
|
+
from ..utils.errors import PanicError
|
10
|
+
from .tools import from_mongo_doc, mongo_doc_to_raw_doc, password_to_none
|
10
11
|
|
11
12
|
|
12
13
|
class OneMixin:
|
@@ -25,7 +26,10 @@ class OneMixin:
|
|
25
26
|
# Get document.
|
26
27
|
mongo_doc = await collection.find_one(filter, *args, **kwargs)
|
27
28
|
if mongo_doc is not None:
|
28
|
-
mongo_doc =
|
29
|
+
mongo_doc = password_to_none(
|
30
|
+
cls.META["field_name_and_type"],
|
31
|
+
mongo_doc,
|
32
|
+
)
|
29
33
|
return mongo_doc
|
30
34
|
|
31
35
|
@classmethod
|
@@ -42,7 +46,10 @@ class OneMixin:
|
|
42
46
|
raw_doc = None
|
43
47
|
mongo_doc = await collection.find_one(filter, *args, **kwargs)
|
44
48
|
if mongo_doc is not None:
|
45
|
-
raw_doc =
|
49
|
+
raw_doc = mongo_doc_to_raw_doc(
|
50
|
+
cls.META["field_name_and_type"],
|
51
|
+
mongo_doc,
|
52
|
+
)
|
46
53
|
return raw_doc
|
47
54
|
|
48
55
|
@classmethod
|
@@ -60,7 +67,7 @@ class OneMixin:
|
|
60
67
|
mongo_doc = await collection.find_one(filter, *args, **kwargs)
|
61
68
|
if mongo_doc is not None:
|
62
69
|
# Convert document to Model instance.
|
63
|
-
inst_model =
|
70
|
+
inst_model = from_mongo_doc(cls, mongo_doc)
|
64
71
|
return inst_model
|
65
72
|
|
66
73
|
@classmethod
|
@@ -78,7 +85,7 @@ class OneMixin:
|
|
78
85
|
mongo_doc = await collection.find_one(filter, *args, **kwargs)
|
79
86
|
if mongo_doc is not None:
|
80
87
|
# Convert document to Model instance.
|
81
|
-
inst_model =
|
88
|
+
inst_model = from_mongo_doc(cls, mongo_doc)
|
82
89
|
json_str = inst_model.to_json()
|
83
90
|
return json_str
|
84
91
|
|
@@ -149,5 +156,8 @@ class OneMixin:
|
|
149
156
|
**kwargs,
|
150
157
|
)
|
151
158
|
if mongo_doc is not None:
|
152
|
-
mongo_doc =
|
159
|
+
mongo_doc = password_to_none(
|
160
|
+
cls.META["field_name_and_type"],
|
161
|
+
mongo_doc,
|
162
|
+
)
|
153
163
|
return mongo_doc
|
ramifice/commons/tools.py
CHANGED
@@ -4,60 +4,65 @@ from typing import Any
|
|
4
4
|
|
5
5
|
from babel.dates import format_date, format_datetime
|
6
6
|
|
7
|
-
from .. import translations
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
value
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
7
|
+
from ..utils import translations
|
8
|
+
|
9
|
+
|
10
|
+
def password_to_none(
|
11
|
+
field_name_and_type: dict[str, str],
|
12
|
+
mongo_doc: dict[str, Any],
|
13
|
+
) -> dict[str, Any]:
|
14
|
+
"""Create object instance from Mongo document."""
|
15
|
+
for f_name, t_name in field_name_and_type.items():
|
16
|
+
if "Pass" in t_name:
|
17
|
+
mongo_doc[f_name] = None
|
18
|
+
return mongo_doc
|
19
|
+
|
20
|
+
|
21
|
+
def from_mongo_doc(
|
22
|
+
cls_model: Any,
|
23
|
+
mongo_doc: dict[str, Any],
|
24
|
+
) -> Any:
|
25
|
+
"""Create object instance from Mongo document."""
|
26
|
+
obj = cls_model()
|
27
|
+
for name, data in mongo_doc.items():
|
28
|
+
field = obj.__dict__[name]
|
29
|
+
field.value = data if field.group != "pass" else None
|
30
|
+
return obj
|
31
|
+
|
32
|
+
|
33
|
+
def mongo_doc_to_raw_doc(
|
34
|
+
field_name_and_type: dict[str, str],
|
35
|
+
mongo_doc: dict[str, Any],
|
36
|
+
) -> dict[str, Any]:
|
37
|
+
"""Convert the Mongo document to the raw document.
|
38
|
+
|
39
|
+
Special changes:
|
40
|
+
_id to str
|
41
|
+
password to None
|
42
|
+
date to str
|
43
|
+
datetime to str
|
44
|
+
"""
|
45
|
+
doc: dict[str, Any] = {}
|
46
|
+
current_locale = translations.CURRENT_LOCALE
|
47
|
+
for f_name, t_name in field_name_and_type.items():
|
48
|
+
value = mongo_doc[f_name]
|
49
|
+
if value is not None:
|
50
|
+
if "Date" in t_name:
|
51
|
+
if "Time" in t_name:
|
52
|
+
value = format_datetime(
|
53
|
+
datetime=value,
|
54
|
+
format="short",
|
55
|
+
locale=current_locale,
|
56
|
+
)
|
57
|
+
else:
|
58
|
+
value = format_date(
|
59
|
+
date=value.date(),
|
60
|
+
format="short",
|
61
|
+
locale=current_locale,
|
62
|
+
)
|
63
|
+
elif "ID" in t_name:
|
64
|
+
value = str(value)
|
65
|
+
elif "Pass" in t_name:
|
66
|
+
value = None
|
67
|
+
doc[f_name] = value
|
68
|
+
return doc
|
@@ -7,9 +7,9 @@ from typing import Any
|
|
7
7
|
|
8
8
|
from pymongo.asynchronous.collection import AsyncCollection
|
9
9
|
|
10
|
-
from .. import store
|
11
|
-
from ..errors import PanicError
|
12
|
-
from ..
|
10
|
+
from ..utils import store
|
11
|
+
from ..utils.errors import PanicError
|
12
|
+
from ..utils.unit import Unit
|
13
13
|
|
14
14
|
|
15
15
|
class UnitMixin:
|
ramifice/fields/bool_field.py
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
Type of selective float field with dynamic addition of elements.
|
4
4
|
"""
|
5
5
|
|
6
|
-
from .. import store
|
7
|
-
from ..mixins import JsonMixin
|
6
|
+
from ..utils import store
|
7
|
+
from ..utils.mixins.json_converter import JsonMixin
|
8
8
|
from .general.choice_group import ChoiceGroup
|
9
9
|
from .general.field import Field
|
10
10
|
|
@@ -3,8 +3,8 @@
|
|
3
3
|
Type of selective float field with static of elements.
|
4
4
|
"""
|
5
5
|
|
6
|
-
from .. import store
|
7
|
-
from ..mixins import JsonMixin
|
6
|
+
from ..utils import store
|
7
|
+
from ..utils.mixins.json_converter import JsonMixin
|
8
8
|
from .general.choice_group import ChoiceGroup
|
9
9
|
from .general.field import Field
|
10
10
|
|
@@ -3,8 +3,8 @@
|
|
3
3
|
Type of selective float field with dynamic addition of elements.
|
4
4
|
"""
|
5
5
|
|
6
|
-
from .. import store
|
7
|
-
from ..mixins import JsonMixin
|
6
|
+
from ..utils import store
|
7
|
+
from ..utils.mixins.json_converter import JsonMixin
|
8
8
|
from .general.choice_group import ChoiceGroup
|
9
9
|
from .general.field import Field
|
10
10
|
|
@@ -3,8 +3,8 @@
|
|
3
3
|
Type of selective float field with static of elements.
|
4
4
|
"""
|
5
5
|
|
6
|
-
from .. import store
|
7
|
-
from ..mixins import JsonMixin
|
6
|
+
from ..utils import store
|
7
|
+
from ..utils.mixins.json_converter import JsonMixin
|
8
8
|
from .general.choice_group import ChoiceGroup
|
9
9
|
from .general.field import Field
|
10
10
|
|
@@ -3,8 +3,8 @@
|
|
3
3
|
Type of selective integer field with dynamic addition of elements.
|
4
4
|
"""
|
5
5
|
|
6
|
-
from .. import store
|
7
|
-
from ..mixins import JsonMixin
|
6
|
+
from ..utils import store
|
7
|
+
from ..utils.mixins.json_converter import JsonMixin
|
8
8
|
from .general.choice_group import ChoiceGroup
|
9
9
|
from .general.field import Field
|
10
10
|
|
@@ -3,8 +3,8 @@
|
|
3
3
|
Type of selective integer field with static of elements.
|
4
4
|
"""
|
5
5
|
|
6
|
-
from .. import store
|
7
|
-
from ..mixins import JsonMixin
|
6
|
+
from ..utils import store
|
7
|
+
from ..utils.mixins.json_converter import JsonMixin
|
8
8
|
from .general.choice_group import ChoiceGroup
|
9
9
|
from .general.field import Field
|
10
10
|
|
@@ -3,8 +3,8 @@
|
|
3
3
|
Type of selective integer field with dynamic addition of elements.
|
4
4
|
"""
|
5
5
|
|
6
|
-
from .. import store
|
7
|
-
from ..mixins import JsonMixin
|
6
|
+
from ..utils import store
|
7
|
+
from ..utils.mixins.json_converter import JsonMixin
|
8
8
|
from .general.choice_group import ChoiceGroup
|
9
9
|
from .general.field import Field
|
10
10
|
|
@@ -3,8 +3,8 @@
|
|
3
3
|
Type of selective integer field with static of elements.
|
4
4
|
"""
|
5
5
|
|
6
|
-
from .. import store
|
7
|
-
from ..mixins import JsonMixin
|
6
|
+
from ..utils import store
|
7
|
+
from ..utils.mixins.json_converter import JsonMixin
|
8
8
|
from .general.choice_group import ChoiceGroup
|
9
9
|
from .general.field import Field
|
10
10
|
|
@@ -3,8 +3,8 @@
|
|
3
3
|
Type of selective text field with dynamic addition of elements.
|
4
4
|
"""
|
5
5
|
|
6
|
-
from .. import store
|
7
|
-
from ..mixins import JsonMixin
|
6
|
+
from ..utils import store
|
7
|
+
from ..utils.mixins.json_converter import JsonMixin
|
8
8
|
from .general.choice_group import ChoiceGroup
|
9
9
|
from .general.field import Field
|
10
10
|
|
@@ -3,8 +3,8 @@
|
|
3
3
|
Type of selective text field with static of elements.
|
4
4
|
"""
|
5
5
|
|
6
|
-
from .. import store
|
7
|
-
from ..mixins import JsonMixin
|
6
|
+
from ..utils import store
|
7
|
+
from ..utils.mixins.json_converter import JsonMixin
|
8
8
|
from .general.choice_group import ChoiceGroup
|
9
9
|
from .general.field import Field
|
10
10
|
|
@@ -3,8 +3,8 @@
|
|
3
3
|
Type of selective text field with dynamic addition of elements.
|
4
4
|
"""
|
5
5
|
|
6
|
-
from .. import store
|
7
|
-
from ..mixins import JsonMixin
|
6
|
+
from ..utils import store
|
7
|
+
from ..utils.mixins.json_converter import JsonMixin
|
8
8
|
from .general.choice_group import ChoiceGroup
|
9
9
|
from .general.field import Field
|
10
10
|
|
@@ -3,8 +3,8 @@
|
|
3
3
|
Type of selective text field with static of elements.
|
4
4
|
"""
|
5
5
|
|
6
|
-
from .. import store
|
7
|
-
from ..mixins import JsonMixin
|
6
|
+
from ..utils import store
|
7
|
+
from ..utils.mixins.json_converter import JsonMixin
|
8
8
|
from .general.choice_group import ChoiceGroup
|
9
9
|
from .general.field import Field
|
10
10
|
|
ramifice/fields/color_field.py
CHANGED
ramifice/fields/date_field.py
CHANGED
@@ -7,7 +7,7 @@ from typing import Any
|
|
7
7
|
from babel.dates import format_datetime
|
8
8
|
from dateutil.parser import parse
|
9
9
|
|
10
|
-
from .. import store, translations
|
10
|
+
from ..utils import store, translations
|
11
11
|
from .general.date_group import DateGroup
|
12
12
|
from .general.field import Field
|
13
13
|
|
ramifice/fields/email_field.py
CHANGED
@@ -2,8 +2,8 @@
|
|
2
2
|
|
3
3
|
from email_validator import EmailNotValidError, validate_email
|
4
4
|
|
5
|
-
from .. import store
|
6
|
-
from ..mixins import JsonMixin
|
5
|
+
from ..utils import store
|
6
|
+
from ..utils.mixins.json_converter import JsonMixin
|
7
7
|
from .general.field import Field
|
8
8
|
from .general.text_group import TextGroup
|
9
9
|
|
ramifice/fields/file_field.py
CHANGED
@@ -8,9 +8,9 @@ from datetime import date
|
|
8
8
|
from pathlib import Path
|
9
9
|
from typing import Any
|
10
10
|
|
11
|
-
from .. import store
|
12
|
-
from ..errors import FileHasNoExtensionError
|
13
|
-
from ..mixins import JsonMixin
|
11
|
+
from ..utils import store
|
12
|
+
from ..utils.errors import FileHasNoExtensionError
|
13
|
+
from ..utils.mixins.json_converter import JsonMixin
|
14
14
|
from .general.field import Field
|
15
15
|
from .general.file_group import FileGroup
|
16
16
|
|
ramifice/fields/float_field.py
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
"""Field of Model for enter (float) number."""
|
2
2
|
|
3
|
-
from .. import store
|
4
|
-
from ..mixins import JsonMixin
|
3
|
+
from ..utils import store
|
4
|
+
from ..utils.mixins.json_converter import JsonMixin
|
5
5
|
from .general.field import Field
|
6
6
|
from .general.number_group import NumberGroup
|
7
7
|
|
ramifice/fields/id_field.py
CHANGED
ramifice/fields/image_field.py
CHANGED
@@ -10,9 +10,9 @@ from typing import Any
|
|
10
10
|
|
11
11
|
from PIL import Image
|
12
12
|
|
13
|
-
from .. import store
|
14
|
-
from ..errors import FileHasNoExtensionError
|
15
|
-
from ..mixins import JsonMixin
|
13
|
+
from ..utils import store
|
14
|
+
from ..utils.errors import FileHasNoExtensionError
|
15
|
+
from ..utils.mixins.json_converter import JsonMixin
|
16
16
|
from .general.field import Field
|
17
17
|
from .general.file_group import FileGroup
|
18
18
|
|
ramifice/fields/integer_field.py
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
"""Field of Model for enter (int) number."""
|
2
2
|
|
3
|
-
from .. import store
|
4
|
-
from ..mixins import JsonMixin
|
3
|
+
from ..utils import store
|
4
|
+
from ..utils.mixins.json_converter import JsonMixin
|
5
5
|
from .general.field import Field
|
6
6
|
from .general.number_group import NumberGroup
|
7
7
|
|
ramifice/fields/ip_field.py
CHANGED
ramifice/fields/phone_field.py
CHANGED
ramifice/fields/slug_field.py
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
"""Field of Model for automatic generation of string `slug`."""
|
2
2
|
|
3
|
-
from .. import store
|
4
|
-
from ..mixins import JsonMixin
|
3
|
+
from ..utils import store
|
4
|
+
from ..utils.mixins.json_converter import JsonMixin
|
5
5
|
from .general.field import Field
|
6
6
|
from .general.text_group import TextGroup
|
7
7
|
|
ramifice/fields/text_field.py
CHANGED
ramifice/fields/url_field.py
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
"""Models."""
|