ramifice 0.8.11__py3-none-any.whl → 0.8.12__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.
Files changed (84) hide show
  1. ramifice/__init__.py +16 -1
  2. ramifice/commons/__init__.py +2 -2
  3. ramifice/commons/general.py +11 -11
  4. ramifice/commons/indexes.py +8 -8
  5. ramifice/commons/many.py +10 -6
  6. ramifice/commons/one.py +13 -8
  7. ramifice/commons/tools.py +4 -4
  8. ramifice/commons/unit_manager.py +15 -5
  9. ramifice/fields/__init__.py +1 -1
  10. ramifice/fields/bool_field.py +26 -18
  11. ramifice/fields/choice_float_dyn_field.py +29 -21
  12. ramifice/fields/choice_float_field.py +41 -33
  13. ramifice/fields/choice_float_mult_dyn_field.py +29 -21
  14. ramifice/fields/choice_float_mult_field.py +48 -40
  15. ramifice/fields/choice_int_dyn_field.py +29 -21
  16. ramifice/fields/choice_int_field.py +41 -33
  17. ramifice/fields/choice_int_mult_dyn_field.py +29 -21
  18. ramifice/fields/choice_int_mult_field.py +48 -40
  19. ramifice/fields/choice_text_dyn_field.py +29 -21
  20. ramifice/fields/choice_text_field.py +47 -39
  21. ramifice/fields/choice_text_mult_dyn_field.py +29 -21
  22. ramifice/fields/choice_text_mult_field.py +48 -40
  23. ramifice/fields/color_field.py +40 -32
  24. ramifice/fields/date_field.py +49 -40
  25. ramifice/fields/date_time_field.py +49 -40
  26. ramifice/fields/email_field.py +42 -34
  27. ramifice/fields/file_field.py +45 -35
  28. ramifice/fields/float_field.py +56 -47
  29. ramifice/fields/general/__init__.py +1 -1
  30. ramifice/fields/general/choice_group.py +2 -2
  31. ramifice/fields/general/date_group.py +2 -2
  32. ramifice/fields/general/field.py +2 -2
  33. ramifice/fields/general/file_group.py +2 -2
  34. ramifice/fields/general/number_group.py +2 -2
  35. ramifice/fields/general/text_group.py +3 -3
  36. ramifice/fields/id_field.py +35 -28
  37. ramifice/fields/image_field.py +67 -57
  38. ramifice/fields/integer_field.py +56 -47
  39. ramifice/fields/ip_field.py +41 -34
  40. ramifice/fields/password_field.py +29 -22
  41. ramifice/fields/phone_field.py +44 -36
  42. ramifice/fields/slug_field.py +30 -22
  43. ramifice/fields/text_field.py +43 -35
  44. ramifice/fields/url_field.py +40 -33
  45. ramifice/models/__init__.py +1 -1
  46. ramifice/models/decorator.py +33 -11
  47. ramifice/models/model.py +16 -16
  48. ramifice/paladins/__init__.py +2 -2
  49. ramifice/paladins/check.py +8 -3
  50. ramifice/paladins/delete.py +9 -3
  51. ramifice/paladins/groups/__init__.py +1 -1
  52. ramifice/paladins/groups/bool_group.py +3 -3
  53. ramifice/paladins/groups/choice_group.py +3 -3
  54. ramifice/paladins/groups/date_group.py +3 -3
  55. ramifice/paladins/groups/file_group.py +3 -3
  56. ramifice/paladins/groups/id_group.py +3 -3
  57. ramifice/paladins/groups/img_group.py +3 -3
  58. ramifice/paladins/groups/num_group.py +3 -3
  59. ramifice/paladins/groups/pass_group.py +3 -3
  60. ramifice/paladins/groups/slug_group.py +8 -3
  61. ramifice/paladins/groups/text_group.py +3 -3
  62. ramifice/paladins/password.py +11 -4
  63. ramifice/paladins/refrash.py +7 -3
  64. ramifice/paladins/save.py +9 -3
  65. ramifice/paladins/tools.py +11 -6
  66. ramifice/paladins/validation.py +4 -4
  67. ramifice/utils/__init__.py +1 -1
  68. ramifice/utils/constants.py +1 -1
  69. ramifice/utils/errors.py +7 -7
  70. ramifice/utils/fixtures.py +7 -2
  71. ramifice/utils/migration.py +18 -9
  72. ramifice/utils/mixins/__init__.py +1 -1
  73. ramifice/utils/mixins/add_valid.py +3 -3
  74. ramifice/utils/mixins/hooks.py +8 -8
  75. ramifice/utils/mixins/indexing.py +3 -3
  76. ramifice/utils/mixins/json_converter.py +6 -6
  77. ramifice/utils/tools.py +12 -12
  78. ramifice/utils/translations.py +8 -4
  79. ramifice/utils/unit.py +8 -3
  80. {ramifice-0.8.11.dist-info → ramifice-0.8.12.dist-info}/METADATA +1 -1
  81. ramifice-0.8.12.dist-info/RECORD +84 -0
  82. ramifice-0.8.11.dist-info/RECORD +0 -84
  83. {ramifice-0.8.11.dist-info → ramifice-0.8.12.dist-info}/WHEEL +0 -0
  84. {ramifice-0.8.11.dist-info → ramifice-0.8.12.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
@@ -1,4 +1,4 @@
1
- """For localization of translations.
1
+ """Ramifice - Localization of translations.
2
2
 
3
3
  The module contains the following variables:
4
4
 
@@ -33,11 +33,14 @@ __all__ = (
33
33
 
34
34
  import copy
35
35
  import gettext as _gettext
36
+ import logging
36
37
  from gettext import NullTranslations
37
38
  from typing import Any
38
39
 
39
40
  from ramifice.utils.errors import PanicError
40
41
 
42
+ logger = logging.getLogger(__name__)
43
+
41
44
  # Language by default.
42
45
  DEFAULT_LOCALE: str = "en"
43
46
  # Code of current language.
@@ -47,6 +50,7 @@ LANGUAGES: frozenset[str] = frozenset(("en", "ru"))
47
50
 
48
51
  if not DEFAULT_LOCALE in LANGUAGES:
49
52
  msg = "ERROR: DEFAULT_LOCALE is not included in the LANGUAGES!"
53
+ logger.error(msg)
50
54
  raise PanicError(msg)
51
55
 
52
56
  # Add translations for Ramifice.
@@ -75,7 +79,7 @@ custom_translations: dict[str, NullTranslations] = {
75
79
 
76
80
 
77
81
  def get_ramifice_translator(lang_code: str) -> Any:
78
- """Get an object of translation for the desired language, for Ramifice.
82
+ """Ramifice - Get an object of translation for the desired language, for Ramifice.
79
83
 
80
84
  Examples:
81
85
  >>> from ramifice import translations
@@ -97,7 +101,7 @@ def get_ramifice_translator(lang_code: str) -> Any:
97
101
 
98
102
 
99
103
  def get_custom_translator(lang_code: str) -> Any:
100
- """Get an object of translation for the desired language, for custom project.
104
+ """Ramifice - Get an object of translation for the desired language, for custom project.
101
105
 
102
106
  Examples:
103
107
  >>> from ramifice import translations
@@ -127,7 +131,7 @@ ngettext: Any = get_custom_translator(DEFAULT_LOCALE).ngettext
127
131
 
128
132
 
129
133
  def change_locale(lang_code: str) -> None:
130
- """Change current language.
134
+ """Ramifice - Change current language.
131
135
 
132
136
  Examples:
133
137
  >>> 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.11
3
+ Version: 0.8.12
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/
@@ -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=gI-3R-xcOfONF11VTxmya0upXdE5ALoetTibEfyqlf0,4424
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.12.dist-info/METADATA,sha256=bQXSVotn2jXPctHCF-GICVspqxbwwBtqCdKSv2sssK4,20328
82
+ ramifice-0.8.12.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
83
+ ramifice-0.8.12.dist-info/licenses/LICENSE,sha256=LrEL0aTZx90HDwFUQCJutORiDjJL9AnuVvCtspXIqt4,1095
84
+ ramifice-0.8.12.dist-info/RECORD,,
@@ -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,,