ramifice 0.3.28__py3-none-any.whl → 0.3.30__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 (50) hide show
  1. ramifice/commons/general.py +9 -9
  2. ramifice/commons/indexes.py +7 -7
  3. ramifice/commons/many.py +14 -14
  4. ramifice/commons/one.py +7 -7
  5. ramifice/commons/unit_manager.py +3 -5
  6. ramifice/fields/bool_field.py +2 -2
  7. ramifice/fields/choice_float_dyn_field.py +2 -2
  8. ramifice/fields/choice_float_field.py +2 -2
  9. ramifice/fields/choice_float_mult_dyn_field.py +2 -2
  10. ramifice/fields/choice_float_mult_field.py +2 -2
  11. ramifice/fields/choice_int_dyn_field.py +2 -2
  12. ramifice/fields/choice_int_field.py +2 -2
  13. ramifice/fields/choice_int_mult_dyn_field.py +2 -2
  14. ramifice/fields/choice_int_mult_field.py +2 -2
  15. ramifice/fields/choice_text_dyn_field.py +2 -2
  16. ramifice/fields/choice_text_field.py +2 -2
  17. ramifice/fields/choice_text_mult_dyn_field.py +2 -2
  18. ramifice/fields/choice_text_mult_field.py +2 -2
  19. ramifice/fields/color_field.py +3 -3
  20. ramifice/fields/date_field.py +2 -2
  21. ramifice/fields/date_time_field.py +2 -2
  22. ramifice/fields/email_field.py +2 -2
  23. ramifice/fields/file_field.py +2 -2
  24. ramifice/fields/float_field.py +2 -2
  25. ramifice/fields/id_field.py +2 -2
  26. ramifice/fields/image_field.py +2 -2
  27. ramifice/fields/integer_field.py +2 -2
  28. ramifice/fields/ip_field.py +2 -2
  29. ramifice/fields/password_field.py +2 -2
  30. ramifice/fields/phone_field.py +2 -2
  31. ramifice/fields/slug_field.py +2 -2
  32. ramifice/fields/text_field.py +2 -2
  33. ramifice/fields/url_field.py +2 -2
  34. ramifice/models/decorator.py +3 -3
  35. ramifice/models/model.py +1 -1
  36. ramifice/paladins/check.py +10 -10
  37. ramifice/paladins/delete.py +9 -9
  38. ramifice/paladins/groups/text_group.py +1 -1
  39. ramifice/paladins/password.py +9 -9
  40. ramifice/paladins/refrash.py +6 -6
  41. ramifice/paladins/save.py +15 -15
  42. ramifice/paladins/validation.py +4 -4
  43. ramifice/utils/{store.py → globals.py} +2 -4
  44. ramifice/utils/migration.py +16 -16
  45. ramifice/utils/tools.py +1 -1
  46. {ramifice-0.3.28.dist-info → ramifice-0.3.30.dist-info}/METADATA +1 -1
  47. ramifice-0.3.30.dist-info/RECORD +85 -0
  48. ramifice-0.3.28.dist-info/RECORD +0 -85
  49. {ramifice-0.3.28.dist-info → ramifice-0.3.30.dist-info}/WHEEL +0 -0
  50. {ramifice-0.3.28.dist-info → ramifice-0.3.30.dist-info}/licenses/LICENSE +0 -0
@@ -12,7 +12,7 @@ from pymongo.asynchronous.collection import AsyncCollection
12
12
  from termcolor import colored
13
13
 
14
14
  from ..models.model import Model
15
- from . import store
15
+ from . import globals
16
16
  from .errors import DoesNotMatchRegexError, NoModelsForMigrationError, PanicError
17
17
  from .fixtures import apply_fixture
18
18
 
@@ -21,15 +21,15 @@ class Monitor:
21
21
  """Monitoring and updating database state for application."""
22
22
 
23
23
  def __init__(self, database_name: str, mongo_client: AsyncMongoClient): # noqa: D107
24
- store.DEBUG = False
24
+ globals.DEBUG = False
25
25
  #
26
- db_name_regex = store.REGEX["database_name"]
26
+ db_name_regex = globals.REGEX["database_name"]
27
27
  if db_name_regex.match(database_name) is None:
28
28
  raise DoesNotMatchRegexError("^[a-zA-Z][-_a-zA-Z0-9]{0,59}$")
29
29
  #
30
- store.DATABASE_NAME = database_name
31
- store.MONGO_CLIENT = mongo_client
32
- store.MONGO_DATABASE = store.MONGO_CLIENT[store.DATABASE_NAME]
30
+ globals.DATABASE_NAME = database_name
31
+ globals.MONGO_CLIENT = mongo_client
32
+ globals.MONGO_DATABASE = globals.MONGO_CLIENT[globals.DATABASE_NAME]
33
33
  # Get Model list.
34
34
  self.model_list: list[Any] = [
35
35
  cls_model for cls_model in Model.__subclasses__() if cls_model.META["is_migrate_model"]
@@ -45,7 +45,7 @@ class Monitor:
45
45
  """
46
46
  # Get access to super collection.
47
47
  # (Contains Model state and dynamic field data.)
48
- super_collection: AsyncCollection = store.MONGO_DATABASE[store.SUPER_COLLECTION_NAME] # type: ignore[index]
48
+ super_collection: AsyncCollection = globals.MONGO_DATABASE[globals.SUPER_COLLECTION_NAME]
49
49
  # Switch the `is_model_exist` parameter in `False`.
50
50
  async for model_state in super_collection.find():
51
51
  q_filter = {"collection_name": model_state["collection_name"]}
@@ -56,7 +56,7 @@ class Monitor:
56
56
  """Get the state of the current model from a super collection."""
57
57
  # Get access to super collection.
58
58
  # (Contains Model state and dynamic field data.)
59
- super_collection: AsyncCollection = store.MONGO_DATABASE[store.SUPER_COLLECTION_NAME] # type: ignore[index]
59
+ super_collection: AsyncCollection = globals.MONGO_DATABASE[globals.SUPER_COLLECTION_NAME]
60
60
  # Get state of current Model.
61
61
  model_state: dict[str, Any] | None = await super_collection.find_one(
62
62
  {"collection_name": metadata["collection_name"]}
@@ -88,10 +88,10 @@ class Monitor:
88
88
  delete collections associated with those Models.
89
89
  """ # noqa: D205
90
90
  # Get access to database.
91
- database = store.MONGO_DATABASE
91
+ database = globals.MONGO_DATABASE
92
92
  # Get access to super collection.
93
93
  # (Contains Model state and dynamic field data.)
94
- super_collection: AsyncCollection = store.MONGO_DATABASE[store.SUPER_COLLECTION_NAME] # type: ignore[index]
94
+ super_collection: AsyncCollection = globals.MONGO_DATABASE[globals.SUPER_COLLECTION_NAME]
95
95
  # Delete data for non-existent Models.
96
96
  async for model_state in super_collection.find():
97
97
  if model_state["is_model_exist"] is False:
@@ -113,9 +113,9 @@ class Monitor:
113
113
  # Switch the `is_model_exist` parameter in the condition `False`.
114
114
  await self.reset()
115
115
  # Get access to database.
116
- database = store.MONGO_DATABASE
116
+ database = globals.MONGO_DATABASE
117
117
  # Get access to super collection.
118
- super_collection: AsyncCollection = database[store.SUPER_COLLECTION_NAME] # type: ignore[index]
118
+ super_collection: AsyncCollection = database[globals.SUPER_COLLECTION_NAME]
119
119
  #
120
120
  for cls_model in self.model_list:
121
121
  # Get metadata of current Model.
@@ -128,7 +128,7 @@ class Monitor:
128
128
  # Get a list of new fields.
129
129
  new_fields: list[str] = self.new_fields(metadata, model_state)
130
130
  # Get collection for current Model.
131
- model_collection: AsyncCollection = database[model_state["collection_name"]] # type: ignore[index]
131
+ model_collection: AsyncCollection = database[model_state["collection_name"]]
132
132
  # Add new fields with default value or
133
133
  # update existing fields whose field type has changed.
134
134
  async for mongo_doc in model_collection.find():
@@ -194,7 +194,7 @@ class Monitor:
194
194
  )
195
195
  #
196
196
  # Block the verification code.
197
- store.DEBUG = False
197
+ globals.DEBUG = False
198
198
  #
199
199
  # Delete data for non-existent Models from a
200
200
  # super collection and delete collections associated with those Models.
@@ -206,8 +206,8 @@ class Monitor:
206
206
  # Apply fixture to current Model.
207
207
  fixture_name: str | None = cls_model.META["fixture_name"]
208
208
  if fixture_name is not None:
209
- collection: AsyncCollection = store.MONGO_DATABASE[
210
- cls_model.META["collection_name"] # type: ignore[index]
209
+ collection: AsyncCollection = globals.MONGO_DATABASE[
210
+ cls_model.META["collection_name"]
211
211
  ]
212
212
  if await collection.estimated_document_count() == 0:
213
213
  await apply_fixture(
ramifice/utils/tools.py CHANGED
@@ -10,7 +10,7 @@ import phonenumbers
10
10
  from bson.objectid import ObjectId
11
11
  from email_validator import EmailNotValidError, validate_email
12
12
 
13
- from .store import REGEX
13
+ from .globals import REGEX
14
14
 
15
15
 
16
16
  def is_password(password: str | None) -> bool:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ramifice
3
- Version: 0.3.28
3
+ Version: 0.3.30
4
4
  Summary: ORM-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,85 @@
1
+ ramifice/__init__.py,sha256=8B1FtacETazrqrcCpTuO1x1kx1N4pT25hQ3KhiTGsgg,729
2
+ ramifice/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ ramifice/commons/__init__.py,sha256=FTG78sTU0ay0rvmrq5fUmVjL-I-S7wgQq3BLcyqnjrQ,433
4
+ ramifice/commons/general.py,sha256=dy2GTpekLyshrNG68XV2dxNgwsS4QODtIcG-c6Xvalw,4298
5
+ ramifice/commons/indexes.py,sha256=hAcWKZ9MMgLbRtoQ6Af0b8r-PY0dbEYmMBl8z_d1DRo,3646
6
+ ramifice/commons/many.py,sha256=KGt7licVJmLADvyPtH7-GbXHig-EnGFbnk7QKu3mfvQ,8214
7
+ ramifice/commons/one.py,sha256=h9R-Ev-7h-xln4lp4SMJIIU9Cf9acqwjj4YYaML6uFg,5832
8
+ ramifice/commons/tools.py,sha256=v80Hf2O5NZ5xml4NFxINO9tZXrK4JQ9xC6xgZ9V3_tM,2002
9
+ ramifice/commons/unit_manager.py,sha256=IkWqXu1PHHal0aGfx6zme81iXPeygxPqEWO-u_8RXoI,4356
10
+ ramifice/fields/__init__.py,sha256=yRfX7Tvpuh27Ggcx5u9e1RRYK7Wu59EVJYxxetmuP1w,1290
11
+ ramifice/fields/bool_field.py,sha256=WWubSwsFJZu8b3MviDd2zXnNYOQaYw8toklFNSTVFLA,2072
12
+ ramifice/fields/choice_float_dyn_field.py,sha256=_QqZHJ9UDaKPWUlvzwAmf0BepKaA3AOhJWVsmajcqbM,3018
13
+ ramifice/fields/choice_float_field.py,sha256=xoeKVFyAB9Ns64DAEiRjXWBuY7tEECSr6sKApz1NOz4,3649
14
+ ramifice/fields/choice_float_mult_dyn_field.py,sha256=ERjg-eyZObT-ifMBdk78Ez04YlRz7kY_jhcS5QpEp0s,3081
15
+ ramifice/fields/choice_float_mult_field.py,sha256=5pUWsZ8Z7OBo85OlZxlyPGNfwjOAfbNpbjgjgodpXZ0,4206
16
+ ramifice/fields/choice_int_dyn_field.py,sha256=3Wu1alewYrQRPIbnXRrjsAp2E50xGK466x6YQbVQG7I,3012
17
+ ramifice/fields/choice_int_field.py,sha256=emmmygqEXwwHMc49cV8a4y8iX-jHbwxLxRGjg2e0hig,3637
18
+ ramifice/fields/choice_int_mult_dyn_field.py,sha256=olcebbGXz8ru8xZ1I1RwLdzIzYMUYBEInOerG_ci2k8,3077
19
+ ramifice/fields/choice_int_mult_field.py,sha256=r4KN12VD8XtftboCiYfN2M9bg3RmZe8mHj2_6agEo1g,4200
20
+ ramifice/fields/choice_text_dyn_field.py,sha256=M-Rkb4YyLjSmOBT8WE-fiNapQgk4uZnQMktVW6fMix4,3008
21
+ ramifice/fields/choice_text_field.py,sha256=jzWNow_nPPzLLdFYyhrMvNALp0fqWbccyB3pUwhrH7k,3842
22
+ ramifice/fields/choice_text_mult_dyn_field.py,sha256=5jch2i8fLn9Unkanm-zNA_0yegtTVsjcuJDg2TpzLRA,3073
23
+ ramifice/fields/choice_text_mult_field.py,sha256=wzYQlWQmwYtg4LhK8n-ycX3ijac5Q6vwRHqRgG7WQNs,4196
24
+ ramifice/fields/color_field.py,sha256=NdYey3Og8hh7oK7yDljrG6K8frgqj4C2OTXFnJVAYFQ,3526
25
+ ramifice/fields/date_field.py,sha256=w875p6JwssKhEZJLBHmC8sE5wArn161rlQi0Zt-qEZo,5214
26
+ ramifice/fields/date_time_field.py,sha256=OGi-ED-Gm_AWGzczHA1qch59IuWy3KkVIJHQl3OlatU,5249
27
+ ramifice/fields/email_field.py,sha256=jEIcWi6glmpK3x3os-b-IFxlrwho4uS4uIamprtg2_M,3433
28
+ ramifice/fields/file_field.py,sha256=ZikmAleY7G8fU0hVxXWFVP_M8FX9JAOoyypSTYYs1CE,7928
29
+ ramifice/fields/float_field.py,sha256=o6rkcoYJB0Lyq4GkDxP3v4mUS-nKUgYCxNQkmgbTjlY,4585
30
+ ramifice/fields/id_field.py,sha256=1_K1pfjYO7mNDs5W2zUHOiB5Y5vw0g02TPoGiBC2IYY,4135
31
+ ramifice/fields/image_field.py,sha256=eyyKRGYK277feiNeNwzIlNJ1DQhBpg0FuuDPzZSxCw4,12305
32
+ ramifice/fields/integer_field.py,sha256=O-nddXEn7rkkqB-SgJxLPRTRHmPstrO-IfYiGR_ADe8,4561
33
+ ramifice/fields/ip_field.py,sha256=tsxdwKd-MhkhnE1F2FmFg67jwh9Q-RvXECv1aG8PitE,3342
34
+ ramifice/fields/password_field.py,sha256=m3n_qJRRHCtgyBC7nDB0dYBO_82Lp1Ws48d1_jxHA8o,3216
35
+ ramifice/fields/phone_field.py,sha256=5qZ_rR82M9cuW7Dv-D5d9jDaw7DJp9y60lRB4GEmi4w,3615
36
+ ramifice/fields/slug_field.py,sha256=9rH1VdxYPoK60QCKHRB91bA3ZmIeIuFmf6WttzB1yTI,2685
37
+ ramifice/fields/text_field.py,sha256=sihbdO425xYrIY4yAUGtZT4yShJ8OKM0OfhCupTSA2o,4001
38
+ ramifice/fields/url_field.py,sha256=DTy4B22juav9dzIrqKy3NzM2vuICHvDzIDbzkkyF1C0,3993
39
+ ramifice/fields/general/__init__.py,sha256=5OE0TwPQjvpB3lBPuEwKrhjR_1ehOWxB98OJP_n32MA,20
40
+ ramifice/fields/general/choice_group.py,sha256=TBJblwH8mB71wd1z2jcSs28H-zx3JZVBfkk4YCE1-pI,916
41
+ ramifice/fields/general/date_group.py,sha256=RKockc_X1bYAbpzxTzXdc0kxgx51MK0bjko_j34ixWU,1169
42
+ ramifice/fields/general/field.py,sha256=Iwjx0idIUIFwcQw4TQEqejKct1EGaaJv1zZ1poSW8lo,1338
43
+ ramifice/fields/general/file_group.py,sha256=n45KfPzFI_l5hXoKkPDG0Q-0mdC2obExV-3PJ-MN5tA,1071
44
+ ramifice/fields/general/number_group.py,sha256=AqlCY-t6JHZ2QVBe7mk5nPt6z8M4VJ_RARRlSBoIxms,715
45
+ ramifice/fields/general/text_group.py,sha256=gP6mUGXr-LTI1UegqgEMQ-5vtUJuJs0wDYKVkknW_5E,873
46
+ ramifice/models/__init__.py,sha256=h_QQ5rSJNZ-7kmx7wIFd8E8RmUS94b_x4jdwMbq8zm4,15
47
+ ramifice/models/decorator.py,sha256=jOEn-0v0m_tM7mow45-tM-8LADUmwlG2DWZsEuC9S_w,6834
48
+ ramifice/models/model.py,sha256=6iD4c6Rk9Y5SFXnKNULWk7PlgVfzU_i4arF6SX6nysg,6495
49
+ ramifice/models/pseudo.py,sha256=PhLQM4zXdaOtTSmNFzwN4twlUmdvA1D_-YOMJtaOIwM,6754
50
+ ramifice/paladins/__init__.py,sha256=PIP3AXI2KBRXNcLJUF0d7ygJ7VLOAxlhb4HRKQ9MGYY,516
51
+ ramifice/paladins/check.py,sha256=6ywXXQLfX7GR2I1M7ka71J82v770JJ9GhPN0bVfsw5Y,6747
52
+ ramifice/paladins/delete.py,sha256=tw50E98D5eFZ7gHGnh_8ztUB1LeTeWWKZvIcQqlgbF8,3352
53
+ ramifice/paladins/password.py,sha256=w1XWh3bsncH1VTVjCLxyKI2waxMvltwcsPWW3V9Ib84,3027
54
+ ramifice/paladins/refrash.py,sha256=fw-9x_NKGzreipBt_F9KF6FTsYm9hSzfq4ubi1FHYrQ,1065
55
+ ramifice/paladins/save.py,sha256=EG0_v-imCQPax2pJIAXPoQcSL99g8abY2EeGJMvXBW4,3864
56
+ ramifice/paladins/tools.py,sha256=SrYeZJ0A8yahosvxNXGoPUM3Af9xeyggEQVoSvn6rSI,2044
57
+ ramifice/paladins/validation.py,sha256=gcEJXIEPu1g7Z54vl14YTs5rCmxOEYsgQH1usFfyy7k,1730
58
+ ramifice/paladins/groups/__init__.py,sha256=hpqmWLsYAMvZHAbmMXluQSqLhkHOSTUAgLHyTM1LTYI,472
59
+ ramifice/paladins/groups/bool_group.py,sha256=oJc9mw9KGrnK_Pj7uXixYYQAJphcXLr_xSQv3PMUlcU,792
60
+ ramifice/paladins/groups/choice_group.py,sha256=VcoPrTHTu9rcY4k6-dWHqBDE2zOHEIoLIKjG6-9dSps,1728
61
+ ramifice/paladins/groups/date_group.py,sha256=B9usKKrHX16F1ckik60Xkub1tawgNENSHTk5Rt-K96k,3741
62
+ ramifice/paladins/groups/file_group.py,sha256=-xgtrLOTlKXc71Mnbu3I_LbYnTEd8OprnhtYcJbaDtg,2932
63
+ ramifice/paladins/groups/id_group.py,sha256=q5BeoM1e7mZmX0zVgemva9K-9ihJKBrX8kxvMh-uhhQ,1268
64
+ ramifice/paladins/groups/img_group.py,sha256=RoD_QnW0F0DAzrGQmRi8jMZnWy2IomlFn6A5jTM02iA,5542
65
+ ramifice/paladins/groups/num_group.py,sha256=FHT9D2S3TsxdMypqoBgZsIzlaLY0KjXdPYqB95vvTRI,2229
66
+ ramifice/paladins/groups/pass_group.py,sha256=YU5a-NwohEutoEx2N5JmGfg8uPiYiW0XJ8XYsOih6eA,1859
67
+ ramifice/paladins/groups/slug_group.py,sha256=o-lr1ssfhTcBovlS6pWA2TQdg1qI6tlDjZ2iKkz-584,2191
68
+ ramifice/paladins/groups/text_group.py,sha256=tmuzW2YWgUvRCCUxGZMm7dErC7gw3kBUZrdq5QkLE4o,3136
69
+ ramifice/utils/__init__.py,sha256=xixHoOX4ja5jIUZemem1qn4k4aonv3G3Q76azQK_pkU,43
70
+ ramifice/utils/errors.py,sha256=iuhq7fzpUmsOyeXeg2fJjta8yAuqlXLKsZVMpfUhtHE,1901
71
+ ramifice/utils/fixtures.py,sha256=NtxOnZslYJb4yvRpZbs3ckugmTwHQFS_9iCt2zddOC0,3102
72
+ ramifice/utils/globals.py,sha256=uR20um3Qg_1SG1t7WyWbpq8kQD-9Mslyr_c1yh5Hw9w,1751
73
+ ramifice/utils/migration.py,sha256=LON53a8oBpjc9ox-FzqBEGsAWnqW8t-CWBkRC7BbwxI,11022
74
+ ramifice/utils/tools.py,sha256=sOKzwnvf6vdTNf9r6PKAdw6aB4undat2Z8tzS3M1GnQ,2733
75
+ ramifice/utils/translations.py,sha256=GNGE0ULAA0aOY5pTxUd3MQW-nVaKvp6BeXWEcsR0s0o,4048
76
+ ramifice/utils/unit.py,sha256=qJ2SpClsFcMRcwB_ZA-QlrB5T9OinCBiWx5KqQ9vH_A,2266
77
+ ramifice/utils/mixins/__init__.py,sha256=-UxYokZSlEaqoIs0aPVGtzK2CgN88mTzyhryHEtt0Yo,181
78
+ ramifice/utils/mixins/add_valid.py,sha256=TLOObedzXNA9eCylfAVbVCqIKE5sV-P5AdIN7avj-GA,407
79
+ ramifice/utils/mixins/hooks.py,sha256=33jvJRhfnJeL2Hd_YFXk3M_7wjqHaByU2wRjKyboL6s,914
80
+ ramifice/utils/mixins/indexing.py,sha256=Z0427HoaVRyNmSNN8Fx0mSICgAKV-gDdu3iR5qYUEbs,329
81
+ ramifice/utils/mixins/json_converter.py,sha256=WhigXyDAV-FfILaZuwvRFRIk0D90Rv3dG5t-mv5fVyc,1107
82
+ ramifice-0.3.30.dist-info/METADATA,sha256=LW96_DyC4OMVHMorgTAPR5SmbT6-2guMvdNST7US2KY,20695
83
+ ramifice-0.3.30.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
84
+ ramifice-0.3.30.dist-info/licenses/LICENSE,sha256=LrEL0aTZx90HDwFUQCJutORiDjJL9AnuVvCtspXIqt4,1095
85
+ ramifice-0.3.30.dist-info/RECORD,,
@@ -1,85 +0,0 @@
1
- ramifice/__init__.py,sha256=8B1FtacETazrqrcCpTuO1x1kx1N4pT25hQ3KhiTGsgg,729
2
- ramifice/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- ramifice/commons/__init__.py,sha256=FTG78sTU0ay0rvmrq5fUmVjL-I-S7wgQq3BLcyqnjrQ,433
4
- ramifice/commons/general.py,sha256=cgpxcFiUcjF6ygIEOd9bODVALbDrTmKxxW_73QD4RXo,4576
5
- ramifice/commons/indexes.py,sha256=rQ7nz2_4CVQZfVsfKgOlj7WncN3XeOy1MaEmML7XhiE,3854
6
- ramifice/commons/many.py,sha256=MxhJz9hBYe3WVda1vMTOdGu4WP9AszG6jR9-2_Koy00,8622
7
- ramifice/commons/one.py,sha256=TCPqsOTQG3NTiYys0rrN9OGqybOwBz6920SWJJU6EHY,5956
8
- ramifice/commons/tools.py,sha256=v80Hf2O5NZ5xml4NFxINO9tZXrK4JQ9xC6xgZ9V3_tM,2002
9
- ramifice/commons/unit_manager.py,sha256=6kerzTL0ymLfXioVitWTIoYz8Byk0Ax6P-lkjzUA_jI,4418
10
- ramifice/fields/__init__.py,sha256=yRfX7Tvpuh27Ggcx5u9e1RRYK7Wu59EVJYxxetmuP1w,1290
11
- ramifice/fields/bool_field.py,sha256=Y3pvquB2KJRc7S3nV9TqYW9AcAPe5cioVQgW_b95Q3Q,2068
12
- ramifice/fields/choice_float_dyn_field.py,sha256=Vt1zfvEJehpJs9iYjriK89qLot8IKL1jY-AfX-Xnl5A,3014
13
- ramifice/fields/choice_float_field.py,sha256=3OfVl9VQNbA5-DBFUQ3JgUeGRfpeLutxzTCAHgfgvnU,3645
14
- ramifice/fields/choice_float_mult_dyn_field.py,sha256=HIq_GwWPeCsf4Jf9j-Vs-YUWHvZ4nQTYFFwdS18MNLg,3077
15
- ramifice/fields/choice_float_mult_field.py,sha256=Ov8cjL4PKdctinNjDQ06eCFRCZreRtJlwM8E_zWVEyE,4202
16
- ramifice/fields/choice_int_dyn_field.py,sha256=5mlUBQqoa5FVkY7T4BaFOAY2OKsBoXbjC0zl8lnjaO0,3008
17
- ramifice/fields/choice_int_field.py,sha256=9N1mvcuic4hNPed3vPAgy1ucJlP9usY_pUJqpfAYU_4,3633
18
- ramifice/fields/choice_int_mult_dyn_field.py,sha256=j24sCMdmNO8s7nkRWDDGZPj6aN-YOqCTahcDmZkuKJQ,3073
19
- ramifice/fields/choice_int_mult_field.py,sha256=dwc9SEUAizmjwkIjW4giME6G6caP3QCOQ3I3Xsbq7Rg,4196
20
- ramifice/fields/choice_text_dyn_field.py,sha256=WveIJ7BJp0LXfVLmi8iKIhF9q9igz58tVTMqCENCnbk,3004
21
- ramifice/fields/choice_text_field.py,sha256=9w4JGCE1fUBRKZKW-4ZwCjCu3V7sVu8fzPtI5Q6sK_I,3838
22
- ramifice/fields/choice_text_mult_dyn_field.py,sha256=bxHrMoxsT10ZAcPTH9qoPd2lio3CC-P6dHChhcldNWE,3069
23
- ramifice/fields/choice_text_mult_field.py,sha256=Cag8p4rxdDP7XfrRQxQxAZKVjrXrm_Am2_uZSwSA8Qg,4192
24
- ramifice/fields/color_field.py,sha256=DBkXjPphSRV2hHblExj5f3EWqLOLkqdm2a1pk4R_HT8,3520
25
- ramifice/fields/date_field.py,sha256=HWj6PFiEVpwzyVckBcMLay8QxWLHP3L6d-RPTjrCM0g,5210
26
- ramifice/fields/date_time_field.py,sha256=c8pj-Y6LL1EOiR7v7leo7Kbx5tGhEqh5FHlRe3gYn18,5245
27
- ramifice/fields/email_field.py,sha256=fHqJj8SOc-kfke6AFWRkhJlpZiOuns5okSW4iF8huC4,3429
28
- ramifice/fields/file_field.py,sha256=frb_NzBE-f27q9L-hayH2Pqbi040-pFeUMrHl7ZjW2U,7924
29
- ramifice/fields/float_field.py,sha256=LUonvzOJ7EgBjOzN173rOaFpyFOQkxaFmyhPFrt69Gk,4581
30
- ramifice/fields/id_field.py,sha256=fLEa_kL825fEJDLh_xSaShoqWBF01eKTFpVD2YSVQPk,4131
31
- ramifice/fields/image_field.py,sha256=C5E2EYrpZNGrWFO99v7PlTWmWECLzra90s9JLp8AXzk,12301
32
- ramifice/fields/integer_field.py,sha256=ISMRG-WlTKAeEghHp_J47nr5ch-1hYSGBYooKfPOPu8,4557
33
- ramifice/fields/ip_field.py,sha256=m1tZHQ9VK61JLj05LIiv9hSJNG35uN_9ZNJCfH4g4ks,3338
34
- ramifice/fields/password_field.py,sha256=Y6UW7rsjdFFTcJq1cx9o8fKjhnu3CiHxGgm_av2Vpps,3212
35
- ramifice/fields/phone_field.py,sha256=ExtX766eG2tPHy_KeVIZ3vWhm-cbTA-KrIqyhxNjYg0,3611
36
- ramifice/fields/slug_field.py,sha256=HPdkcuSxPZhyyNRso5t0jyEr8CvO14a2zIs0ddzqO4I,2681
37
- ramifice/fields/text_field.py,sha256=o_GefkAGXzGVgKt0y85DiIb80JvteRPjia-wMBbM9r8,3997
38
- ramifice/fields/url_field.py,sha256=U-I14llZLJeXVPR2T1e4FRNI8eNneZkwfDFIgN6NCuI,3989
39
- ramifice/fields/general/__init__.py,sha256=5OE0TwPQjvpB3lBPuEwKrhjR_1ehOWxB98OJP_n32MA,20
40
- ramifice/fields/general/choice_group.py,sha256=TBJblwH8mB71wd1z2jcSs28H-zx3JZVBfkk4YCE1-pI,916
41
- ramifice/fields/general/date_group.py,sha256=RKockc_X1bYAbpzxTzXdc0kxgx51MK0bjko_j34ixWU,1169
42
- ramifice/fields/general/field.py,sha256=Iwjx0idIUIFwcQw4TQEqejKct1EGaaJv1zZ1poSW8lo,1338
43
- ramifice/fields/general/file_group.py,sha256=n45KfPzFI_l5hXoKkPDG0Q-0mdC2obExV-3PJ-MN5tA,1071
44
- ramifice/fields/general/number_group.py,sha256=AqlCY-t6JHZ2QVBe7mk5nPt6z8M4VJ_RARRlSBoIxms,715
45
- ramifice/fields/general/text_group.py,sha256=gP6mUGXr-LTI1UegqgEMQ-5vtUJuJs0wDYKVkknW_5E,873
46
- ramifice/models/__init__.py,sha256=h_QQ5rSJNZ-7kmx7wIFd8E8RmUS94b_x4jdwMbq8zm4,15
47
- ramifice/models/decorator.py,sha256=GqIeUx8uiqX-FAzH5XBgR38z6CaerUMqCxalwEkeLHM,6892
48
- ramifice/models/model.py,sha256=tNXVnZ-JrDl8PeLjNsqcKjx8HSkWAGo2lXhMN4Wogmc,6525
49
- ramifice/models/pseudo.py,sha256=PhLQM4zXdaOtTSmNFzwN4twlUmdvA1D_-YOMJtaOIwM,6754
50
- ramifice/paladins/__init__.py,sha256=PIP3AXI2KBRXNcLJUF0d7ygJ7VLOAxlhb4HRKQ9MGYY,516
51
- ramifice/paladins/check.py,sha256=e7rv-dnzZ-VlCwm2HzNj7WRMhuBXaso2JmdsN83bIUs,7020
52
- ramifice/paladins/delete.py,sha256=LOPuoo4pEOoDm0iDVngRM5b8gWBo5R0sce7JXacUJ-Q,3595
53
- ramifice/paladins/password.py,sha256=KHqy0Zpn5EhY-hf15EzdOi-3NRwKeLPqJxrVNLd5tbE,3275
54
- ramifice/paladins/refrash.py,sha256=quxlIYrysAWeG-3NB4lRMSvLkQ08sYEQvkB9WcdxvQA,1218
55
- ramifice/paladins/save.py,sha256=YiD-uqDbZ5o_jKZfAtp7i_IMK1J-sS6v6F5vOe5Q7YA,4287
56
- ramifice/paladins/tools.py,sha256=SrYeZJ0A8yahosvxNXGoPUM3Af9xeyggEQVoSvn6rSI,2044
57
- ramifice/paladins/validation.py,sha256=7lFDWjokUwMwVxWAVgd_GlWGpF4mukxIVpxvpdyA19A,1850
58
- ramifice/paladins/groups/__init__.py,sha256=hpqmWLsYAMvZHAbmMXluQSqLhkHOSTUAgLHyTM1LTYI,472
59
- ramifice/paladins/groups/bool_group.py,sha256=oJc9mw9KGrnK_Pj7uXixYYQAJphcXLr_xSQv3PMUlcU,792
60
- ramifice/paladins/groups/choice_group.py,sha256=VcoPrTHTu9rcY4k6-dWHqBDE2zOHEIoLIKjG6-9dSps,1728
61
- ramifice/paladins/groups/date_group.py,sha256=B9usKKrHX16F1ckik60Xkub1tawgNENSHTk5Rt-K96k,3741
62
- ramifice/paladins/groups/file_group.py,sha256=-xgtrLOTlKXc71Mnbu3I_LbYnTEd8OprnhtYcJbaDtg,2932
63
- ramifice/paladins/groups/id_group.py,sha256=q5BeoM1e7mZmX0zVgemva9K-9ihJKBrX8kxvMh-uhhQ,1268
64
- ramifice/paladins/groups/img_group.py,sha256=RoD_QnW0F0DAzrGQmRi8jMZnWy2IomlFn6A5jTM02iA,5542
65
- ramifice/paladins/groups/num_group.py,sha256=FHT9D2S3TsxdMypqoBgZsIzlaLY0KjXdPYqB95vvTRI,2229
66
- ramifice/paladins/groups/pass_group.py,sha256=YU5a-NwohEutoEx2N5JmGfg8uPiYiW0XJ8XYsOih6eA,1859
67
- ramifice/paladins/groups/slug_group.py,sha256=o-lr1ssfhTcBovlS6pWA2TQdg1qI6tlDjZ2iKkz-584,2191
68
- ramifice/paladins/groups/text_group.py,sha256=C1ljhuRvNdoLuF1sRQ8Qy95B0qXFFLSM5qcv5ifOf9E,3166
69
- ramifice/utils/__init__.py,sha256=xixHoOX4ja5jIUZemem1qn4k4aonv3G3Q76azQK_pkU,43
70
- ramifice/utils/errors.py,sha256=iuhq7fzpUmsOyeXeg2fJjta8yAuqlXLKsZVMpfUhtHE,1901
71
- ramifice/utils/fixtures.py,sha256=NtxOnZslYJb4yvRpZbs3ckugmTwHQFS_9iCt2zddOC0,3102
72
- ramifice/utils/migration.py,sha256=lrbOZDcbWgafCn6zf0XfPTfx2ez1O8DxBDhbwLvcwyE,11122
73
- ramifice/utils/store.py,sha256=MpDEPvUvbs11FXjakNtHPm9MekIv5p1U3as2Y80lTyc,1860
74
- ramifice/utils/tools.py,sha256=NX4mtXBi6H3UNlYcTMdlfltJ0MikTPa7kpB3F0qmUpM,2731
75
- ramifice/utils/translations.py,sha256=GNGE0ULAA0aOY5pTxUd3MQW-nVaKvp6BeXWEcsR0s0o,4048
76
- ramifice/utils/unit.py,sha256=qJ2SpClsFcMRcwB_ZA-QlrB5T9OinCBiWx5KqQ9vH_A,2266
77
- ramifice/utils/mixins/__init__.py,sha256=-UxYokZSlEaqoIs0aPVGtzK2CgN88mTzyhryHEtt0Yo,181
78
- ramifice/utils/mixins/add_valid.py,sha256=TLOObedzXNA9eCylfAVbVCqIKE5sV-P5AdIN7avj-GA,407
79
- ramifice/utils/mixins/hooks.py,sha256=33jvJRhfnJeL2Hd_YFXk3M_7wjqHaByU2wRjKyboL6s,914
80
- ramifice/utils/mixins/indexing.py,sha256=Z0427HoaVRyNmSNN8Fx0mSICgAKV-gDdu3iR5qYUEbs,329
81
- ramifice/utils/mixins/json_converter.py,sha256=WhigXyDAV-FfILaZuwvRFRIk0D90Rv3dG5t-mv5fVyc,1107
82
- ramifice-0.3.28.dist-info/METADATA,sha256=hmHFwmfXLE4hZqII68_OGO3l0RI6MlLMLgRTvQqDdiA,20695
83
- ramifice-0.3.28.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
84
- ramifice-0.3.28.dist-info/licenses/LICENSE,sha256=LrEL0aTZx90HDwFUQCJutORiDjJL9AnuVvCtspXIqt4,1095
85
- ramifice-0.3.28.dist-info/RECORD,,