django-nativemojo 0.1.10__py3-none-any.whl → 0.1.15__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 (120) hide show
  1. django_nativemojo-0.1.15.dist-info/METADATA +136 -0
  2. {django_nativemojo-0.1.10.dist-info → django_nativemojo-0.1.15.dist-info}/RECORD +105 -65
  3. mojo/__init__.py +1 -1
  4. mojo/apps/account/management/__init__.py +5 -0
  5. mojo/apps/account/management/commands/__init__.py +6 -0
  6. mojo/apps/account/management/commands/serializer_admin.py +531 -0
  7. mojo/apps/account/migrations/0004_user_avatar.py +20 -0
  8. mojo/apps/account/migrations/0005_group_last_activity.py +18 -0
  9. mojo/apps/account/models/group.py +25 -7
  10. mojo/apps/account/models/member.py +15 -4
  11. mojo/apps/account/models/user.py +197 -20
  12. mojo/apps/account/rest/group.py +1 -0
  13. mojo/apps/account/rest/user.py +6 -2
  14. mojo/apps/aws/rest/__init__.py +1 -0
  15. mojo/apps/aws/rest/s3.py +64 -0
  16. mojo/apps/fileman/README.md +8 -8
  17. mojo/apps/fileman/backends/base.py +76 -70
  18. mojo/apps/fileman/backends/filesystem.py +86 -86
  19. mojo/apps/fileman/backends/s3.py +200 -108
  20. mojo/apps/fileman/migrations/0001_initial.py +106 -0
  21. mojo/apps/fileman/migrations/0002_filemanager_parent_alter_filemanager_max_file_size.py +24 -0
  22. mojo/apps/fileman/migrations/0003_remove_file_fileman_fil_upload__c4bc35_idx_and_more.py +25 -0
  23. mojo/apps/fileman/migrations/0004_remove_file_original_filename_and_more.py +39 -0
  24. mojo/apps/fileman/migrations/0005_alter_file_upload_token.py +18 -0
  25. mojo/apps/fileman/migrations/0006_file_download_url_filemanager_forever_urls.py +23 -0
  26. mojo/apps/fileman/migrations/0007_remove_filemanager_forever_urls_and_more.py +22 -0
  27. mojo/apps/fileman/migrations/0008_file_category.py +18 -0
  28. mojo/apps/fileman/migrations/0009_rename_file_path_file_storage_file_path.py +18 -0
  29. mojo/apps/fileman/migrations/0010_filerendition.py +33 -0
  30. mojo/apps/fileman/migrations/0011_alter_filerendition_original_file.py +19 -0
  31. mojo/apps/fileman/models/__init__.py +1 -5
  32. mojo/apps/fileman/models/file.py +204 -58
  33. mojo/apps/fileman/models/manager.py +161 -31
  34. mojo/apps/fileman/models/rendition.py +118 -0
  35. mojo/apps/fileman/renderer/__init__.py +111 -0
  36. mojo/apps/fileman/renderer/audio.py +403 -0
  37. mojo/apps/fileman/renderer/base.py +205 -0
  38. mojo/apps/fileman/renderer/document.py +404 -0
  39. mojo/apps/fileman/renderer/image.py +222 -0
  40. mojo/apps/fileman/renderer/utils.py +297 -0
  41. mojo/apps/fileman/renderer/video.py +304 -0
  42. mojo/apps/fileman/rest/__init__.py +1 -18
  43. mojo/apps/fileman/rest/upload.py +22 -32
  44. mojo/apps/fileman/signals.py +58 -0
  45. mojo/apps/fileman/tasks.py +254 -0
  46. mojo/apps/fileman/utils/__init__.py +40 -16
  47. mojo/apps/incident/migrations/0005_incidenthistory.py +39 -0
  48. mojo/apps/incident/migrations/0006_alter_incident_state.py +18 -0
  49. mojo/apps/incident/models/__init__.py +1 -0
  50. mojo/apps/incident/models/history.py +36 -0
  51. mojo/apps/incident/models/incident.py +1 -1
  52. mojo/apps/incident/reporter.py +3 -1
  53. mojo/apps/incident/rest/event.py +7 -1
  54. mojo/apps/logit/migrations/0004_alter_log_level.py +18 -0
  55. mojo/apps/logit/models/log.py +4 -1
  56. mojo/apps/metrics/utils.py +2 -2
  57. mojo/apps/notify/handlers/ses/message.py +1 -1
  58. mojo/apps/notify/providers/aws.py +2 -2
  59. mojo/apps/tasks/__init__.py +34 -1
  60. mojo/apps/tasks/manager.py +200 -45
  61. mojo/apps/tasks/rest/tasks.py +24 -10
  62. mojo/apps/tasks/runner.py +283 -18
  63. mojo/apps/tasks/task.py +99 -0
  64. mojo/apps/tasks/tq_handlers.py +118 -0
  65. mojo/decorators/auth.py +6 -1
  66. mojo/decorators/http.py +7 -2
  67. mojo/helpers/aws/__init__.py +41 -0
  68. mojo/helpers/aws/ec2.py +804 -0
  69. mojo/helpers/aws/iam.py +748 -0
  70. mojo/helpers/aws/s3.py +451 -11
  71. mojo/helpers/aws/ses.py +483 -0
  72. mojo/helpers/aws/sns.py +461 -0
  73. mojo/helpers/crypto/__pycache__/hash.cpython-310.pyc +0 -0
  74. mojo/helpers/crypto/__pycache__/sign.cpython-310.pyc +0 -0
  75. mojo/helpers/crypto/__pycache__/utils.cpython-310.pyc +0 -0
  76. mojo/helpers/dates.py +18 -0
  77. mojo/helpers/response.py +6 -2
  78. mojo/helpers/settings/__init__.py +2 -0
  79. mojo/helpers/{settings.py → settings/helper.py} +1 -37
  80. mojo/helpers/settings/parser.py +132 -0
  81. mojo/middleware/logging.py +1 -1
  82. mojo/middleware/mojo.py +5 -0
  83. mojo/models/rest.py +261 -46
  84. mojo/models/secrets.py +13 -4
  85. mojo/serializers/__init__.py +100 -0
  86. mojo/serializers/advanced/README.md +363 -0
  87. mojo/serializers/advanced/__init__.py +247 -0
  88. mojo/serializers/advanced/formats/__init__.py +28 -0
  89. mojo/serializers/advanced/formats/csv.py +416 -0
  90. mojo/serializers/advanced/formats/excel.py +516 -0
  91. mojo/serializers/advanced/formats/json.py +239 -0
  92. mojo/serializers/advanced/formats/localizers.py +509 -0
  93. mojo/serializers/advanced/formats/response.py +485 -0
  94. mojo/serializers/advanced/serializer.py +568 -0
  95. mojo/serializers/manager.py +501 -0
  96. mojo/serializers/optimized.py +618 -0
  97. mojo/serializers/settings_example.py +322 -0
  98. mojo/serializers/{models.py → simple.py} +38 -15
  99. testit/helpers.py +21 -4
  100. django_nativemojo-0.1.10.dist-info/METADATA +0 -96
  101. mojo/apps/metrics/rest/db.py +0 -0
  102. mojo/helpers/aws/setup_email.py +0 -0
  103. mojo/ws4redis/README.md +0 -174
  104. mojo/ws4redis/__init__.py +0 -2
  105. mojo/ws4redis/client.py +0 -283
  106. mojo/ws4redis/connection.py +0 -327
  107. mojo/ws4redis/exceptions.py +0 -32
  108. mojo/ws4redis/redis.py +0 -183
  109. mojo/ws4redis/servers/base.py +0 -86
  110. mojo/ws4redis/servers/django.py +0 -171
  111. mojo/ws4redis/servers/uwsgi.py +0 -63
  112. mojo/ws4redis/settings.py +0 -45
  113. mojo/ws4redis/utf8validator.py +0 -128
  114. mojo/ws4redis/websocket.py +0 -403
  115. {django_nativemojo-0.1.10.dist-info → django_nativemojo-0.1.15.dist-info}/LICENSE +0 -0
  116. {django_nativemojo-0.1.10.dist-info → django_nativemojo-0.1.15.dist-info}/NOTICE +0 -0
  117. {django_nativemojo-0.1.10.dist-info → django_nativemojo-0.1.15.dist-info}/WHEEL +0 -0
  118. /mojo/{ws4redis/servers → apps/aws}/__init__.py +0 -0
  119. /mojo/apps/{fileman/models/render.py → aws/models/__init__.py} +0 -0
  120. /mojo/apps/fileman/{rest/__init__ → migrations/__init__.py} +0 -0
@@ -0,0 +1,136 @@
1
+ Metadata-Version: 2.3
2
+ Name: django-nativemojo
3
+ Version: 0.1.15
4
+ Summary: A REST framework for DJANGO with some extra apps that make it easy to provide a secure robust graph like RESIT API.
5
+ License: MIT
6
+ Author: MOJO Dev Team
7
+ Author-email: gotmojo@nativemojo.com
8
+ Requires-Python: >=3.9,<4.0
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.9
12
+ Classifier: Programming Language :: Python :: 3.10
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Requires-Dist: django (>=4.2.18,<6.0.0)
17
+ Requires-Dist: django-cors-headers (>=4.7.0,<5.0.0)
18
+ Requires-Dist: faker (>=35.2.0,<36.0.0)
19
+ Requires-Dist: gevent (>=25.5.1,<26.0.0)
20
+ Requires-Dist: pycryptodome (>=3.21.0,<4.0.0)
21
+ Requires-Dist: pyjwt (>=2.10.1,<3.0.0)
22
+ Requires-Dist: pyobjict (>=2.0.2,<4.0.0)
23
+ Requires-Dist: pytz (>=2025.1,<2026.0)
24
+ Requires-Dist: redis (>=3.5.3,<6.0.0)
25
+ Requires-Dist: requests (>=2.32.3,<3.0.0)
26
+ Requires-Dist: ua-parser (>=1.0.1,<2.0.0)
27
+ Requires-Dist: ujson (>=5.10.0,<6.0.0)
28
+ Description-Content-Type: text/markdown
29
+
30
+ # Django-MOJO
31
+
32
+ **The Lightweight, Secure, and Extensible REST and Auth Framework for Django**
33
+
34
+ ---
35
+
36
+ Django-MOJO helps you rapidly build secure APIs and manage authentication in Django projects—without the usual boilerplate or complexity. It brings clarity and maintainability to your codebase, all while providing robust object-level security and powerful helper utilities for real-world development.
37
+
38
+ ---
39
+
40
+ ## Why Django-MOJO?
41
+
42
+ - **Minimal Setup, Maximum Power:** Expose Django models as RESTful APIs with a few lines of code. Add new features without touching central registries.
43
+ - **Object-Level Permissions:** Move beyond Django’s traditional model-level permissions for fine-grained access control.
44
+ - **Secure by Default:** Every endpoint and operation is permission-aware, designed to keep your data and users safe.
45
+ - **Simple Patterns & Helpers:** Use concise decorators, built-in utilities (cron, crypto, logging, tasks), and keep codebases easy for teams to extend.
46
+ - **Effortless Testing:** Built-in lightweight test framework for REST APIs—no external dependencies needed.
47
+
48
+ ---
49
+
50
+ ## Core Workflow
51
+
52
+ 1. **Create Django Models:**
53
+ Inherit from `MojoModel` and define a `RestMeta` inner class to configure permissions, default filters, and output graphs.
54
+
55
+ 2. **Register REST Endpoints:**
56
+ Use decorators (`@md.URL`, `@md.GET`, etc.) to expose catch-all or method-specific API endpoints in your app’s rest/ directory.
57
+
58
+ 3. **Embrace Helpers:**
59
+ Leverage and extend the extensive helpers in `mojo/helpers/` for logging, cron, request parsing, redis, and more.
60
+
61
+ 4. **Test with Confidence:**
62
+ Write and run tests using MOJO’s integrated “testit” system—both for APIs and backend logic.
63
+
64
+ ---
65
+
66
+ ## Quick Example
67
+
68
+ **models/group.py**
69
+ ```python
70
+ from django.db import models
71
+ from mojo.models import MojoModel
72
+
73
+ class Group(MojoModel):
74
+ name = models.CharField(max_length=200)
75
+ class RestMeta:
76
+ VIEW_PERMS = ["view_groups"]
77
+ SAVE_PERMS = ["manage_groups"]
78
+ LIST_DEFAULT_FILTERS = {"is_active": True}
79
+ GRAPHS = {
80
+ "default": {"fields": ["id", "name", "created"]},
81
+ }
82
+ ```
83
+
84
+ **rest/group.py**
85
+ ```python
86
+ from mojo import decorators as md
87
+ from .models.group import Group
88
+
89
+ @md.URL('group')
90
+ @md.URL('group/<int:pk>')
91
+ def on_group(request, pk=None):
92
+ return Group.on_rest_request(request, pk)
93
+ ```
94
+
95
+ ---
96
+
97
+ ## Project Structure
98
+
99
+ - **mojo/account/** – Authentication models, JWT middleware, and permissions
100
+ - **mojo/base/** – Core model/REST abstractions
101
+ - **mojo/helpers/** – Logging, crypto, cron, and other utilities
102
+ - **mojo/tasks/** – Redis-backed task scheduling and runner
103
+ - **mojo/testit/** – Lightweight test suite and REST client
104
+ - **docs/** – Area-focused detailed documentation
105
+
106
+ ---
107
+
108
+ ## Documentation
109
+
110
+ Want details or examples? Dive into the docs:
111
+
112
+ - [Getting Started & Installing](docs/llm_context.md)
113
+ - [REST API & Graph Serialization](docs/rest.md)
114
+ - [Authentication & JWT](docs/auth.md)
115
+ - [Helpers & Utilities](docs/helpers.md)
116
+ - [Tasks & Cron Schedules](docs/tasks.md)
117
+ - [Testing Framework](docs/testit.md)
118
+ - [Developing & Contributing](docs/developer_guide.md)
119
+ - [Decorators Reference](docs/decorators.md)
120
+ - [Metrics](docs/metrics.md)
121
+ - [Cron Scheduler](docs/cron.md)
122
+
123
+ ---
124
+
125
+ ## Contributing
126
+
127
+ We welcome pull requests and issues! Contributions should follow our [Developer Guide](docs/developer_guide.md) and maintain the framework’s philosophy: **keep it simple, explicit, and secure**.
128
+
129
+ ---
130
+
131
+ ## License
132
+
133
+ Licensed under the Apache License v2.0.
134
+ See the [LICENSE](LICENSE) file for details.
135
+
136
+ ---
@@ -1,43 +1,72 @@
1
- mojo/__init__.py,sha256=xxWQdMLF2SWv7E9FsazjGtL0d7VtUbkFD-pG8dvkqwk,71
1
+ mojo/__init__.py,sha256=SX-WIBr9fNhOD7_J1Nv3qOdlg4QhGKK4JdS1wcZxp6o,71
2
2
  mojo/apps/account/__init__.py,sha256=RwxmQqhA0Pub7VSpEHplzPYjfPBBzioocJeQ8pCNeZ4,46
3
3
  mojo/apps/account/admin.py,sha256=sE4GxFX9-g-vvNWf22LOqlbQdKK47O9sKP-ohdBpmiE,3026
4
4
  mojo/apps/account/apps.py,sha256=CCK2aJu19BpDq_uDI8DIqJFbRmfudzY9KZWahcbYLbE,539
5
+ mojo/apps/account/management/__init__.py,sha256=vSTSprFOr42paP838wrW23zVG44yA0koBfInXVwKQ0A,121
6
+ mojo/apps/account/management/commands/__init__.py,sha256=QsFr7gQcuPOvlg_VvSRnhQV-meDaqkCufBjucsLEaPI,199
7
+ mojo/apps/account/management/commands/serializer_admin.py,sha256=G3R3U0n8tgbP0AjGAJIqdHHHEmIYWCS9D_hDel7U_R0,19380
5
8
  mojo/apps/account/migrations/0001_initial.py,sha256=qOwAHtdgyTI-ZGGOnC2ZUn-NSqlyp1z5c6uXvCZBbNE,4220
6
9
  mojo/apps/account/migrations/0002_user_is_email_verified_user_is_phone_verified.py,sha256=tBGQ9p7ADhFGGTOXDBslXK5Q4igfpbjI3j1IXqq5064,549
7
10
  mojo/apps/account/migrations/0003_group_mojo_secrets_user_mojo_secrets.py,sha256=il2zEdYBGgnUa1ybes3AGPx1RykenlnXr-1nIlhVawU,616
11
+ mojo/apps/account/migrations/0004_user_avatar.py,sha256=yUfyY7nOWIZrw2EfuGmrFbWMr40fW117dpFw3gVLXDI,589
12
+ mojo/apps/account/migrations/0005_group_last_activity.py,sha256=l68nR0UoewXAonqKdbbzB8k4BqHQPuZZj1MmAWZ8Ryc,413
8
13
  mojo/apps/account/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
14
  mojo/apps/account/models/__init__.py,sha256=zmePIaBIvzZ2LmiqAD8i-TR1lJ5SBwRzHXP3totxffc,80
10
- mojo/apps/account/models/group.py,sha256=TRIkMS3QlJVoz20AdSbfr6NMuJBDYTwkI_AIyThbwlI,3093
11
- mojo/apps/account/models/member.py,sha256=fYa0HAGoZIMJHZcpfe3JKPXEJET-NefyiAtnES88YNg,3315
15
+ mojo/apps/account/models/group.py,sha256=DoZd4z0yfmcKzNFGRhTGBrtTHRgFkKsYX-TpnMlDt94,4083
16
+ mojo/apps/account/models/member.py,sha256=Q0Z57kv2TawKFJOHuZ4r3SaqSMQyNvczEngY0UddyuI,3798
12
17
  mojo/apps/account/models/pkey.py,sha256=sSHixJTi7HwjJ-p3CB2UePGQLb0zV4UshS01xi8uykE,687
13
- mojo/apps/account/models/user.py,sha256=HZNqX4Th6lySXIQH0xjDUOQw7gkIk2GPBY34b8Z3ge4,7830
18
+ mojo/apps/account/models/user.py,sha256=nzb-nakMRF9Patu9axxkDl6jq3Wvd0VvBQCkrCAWwe8,15264
14
19
  mojo/apps/account/rest/__init__.py,sha256=IUkkLoR8YkarNZyq_KtDj1OcNgpMu_rIXnVhBsjkMVw,55
15
- mojo/apps/account/rest/group.py,sha256=QF6mBrvvfmhXGDG6cP_t2oz3CsfP9wHY8MUmiVwEkWQ,835
16
- mojo/apps/account/rest/user.py,sha256=yoJKX88peUDUmgGKV5rAFTEAjH6_KNTkdx_j5wUhbvI,1805
20
+ mojo/apps/account/rest/group.py,sha256=hMDiYaJVwKEF2rRtVVmQzOdP4Inzr2vtToV1MgZFy60,861
21
+ mojo/apps/account/rest/user.py,sha256=tEitjRR4ePHhBn1Z7w3u5eWPigTH_ldN2XGkKqnojRw,1938
17
22
  mojo/apps/account/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
23
  mojo/apps/account/utils/jwtoken.py,sha256=7EMC08oDB9oeasv_7nishUNrE-QTls-Mv2n4yAa9euk,2714
19
24
  mojo/apps/account/utils/passkeys.py,sha256=vUsXroe4SYcst4L7-eRWDR21l-yVYMOKa1-yWFNKfPo,2343
20
- mojo/apps/fileman/README.md,sha256=SHHrn_1VNHoI2ZFHwa-WKKDmQimeNoo_Qiv1MA7fJfs,14131
25
+ mojo/apps/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
+ mojo/apps/aws/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
+ mojo/apps/aws/rest/__init__.py,sha256=yVz2TQX2aWNQlEdGPleWAOenb1OAUhscqkEkFSKMZb0,18
28
+ mojo/apps/aws/rest/s3.py,sha256=jt9F3gd8aih0H-I6RKEBLLYHiw-D-aMWtWWY8lfYCfg,2541
29
+ mojo/apps/fileman/README.md,sha256=vuld7Ek0kDO0WU3jgaZDmjj8pYxF674WkrPvW6X1Cfg,14106
21
30
  mojo/apps/fileman/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
31
  mojo/apps/fileman/apps.py,sha256=evFaBnGp90BZWgAe00fOYjdZ--5msi_vW8zjHgVct1Y,383
23
32
  mojo/apps/fileman/backends/__init__.py,sha256=BQqbsGYQvfOPlXLio2XwNGsT5eLGIbrf01PZ8OceUx8,3292
24
- mojo/apps/fileman/backends/base.py,sha256=sWw28XLqOdivxvziDrS5yXDxhWyoIciGvox158ry_zI,9731
25
- mojo/apps/fileman/backends/filesystem.py,sha256=qoq-tmv4mDhlOazAQez5hhQWSRZ1g7p0SjKkh1QPOJE,15755
26
- mojo/apps/fileman/backends/s3.py,sha256=CJ0x-GeBdZwGdYXqbv0VX6P1AsvM7LJtWpw8W-QNi4k,14743
33
+ mojo/apps/fileman/backends/base.py,sha256=3tvnt3GrnCWhKsLUh0sE8BQeTik7HmbVbZv5lKYw9_w,9411
34
+ mojo/apps/fileman/backends/filesystem.py,sha256=ykRCiV6aMxjjmDMOY9xfpupC1zcbPF04XBbs0ygmHWg,14949
35
+ mojo/apps/fileman/backends/s3.py,sha256=Y2xIZbT41opJOUTt3JL77-TQj6CpEO3wtfHwCrqifZU,17883
27
36
  mojo/apps/fileman/examples/configurations.py,sha256=vDIMijAvF-iVrc8ZT1OzjDPKCJYsvxuvAuirXhB9FYU,13775
28
37
  mojo/apps/fileman/examples/usage_example.py,sha256=ATkGuUUoNYb4xhEaWFul7Sj-gyKIa9XF5EmVUibSbMQ,22795
29
38
  mojo/apps/fileman/management/__init__.py,sha256=HqDUzH9gSF7kUKGypm6LZ5cHxzYEc3I2_9fB3eI283s,36
30
39
  mojo/apps/fileman/management/commands/__init__.py,sha256=XtylA46UPDJ5ZY48r5yyk7ZKpvfmnb8kYJjIRVFAMiM,45
31
40
  mojo/apps/fileman/management/commands/cleanup_expired_uploads.py,sha256=818-r5w8sKPSOMa1iA7VjUSpYCnlKdjWtsv8cdHkfY8,8354
32
- mojo/apps/fileman/models/__init__.py,sha256=yCL7DVsaVaolSaKDHswzCR0SfQhHleLLqK4luZQqP7Y,101
33
- mojo/apps/fileman/models/file.py,sha256=Jv4IZDZfdVL0s3qTmEpoXdu_bKzt8bjPUbcihg47jUU,8469
34
- mojo/apps/fileman/models/manager.py,sha256=NorEmFWBpCkoVTwG6pl9uApUfFKEfGP47GNApFJFcXo,6928
35
- mojo/apps/fileman/models/render.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
- mojo/apps/fileman/rest/__init__,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
- mojo/apps/fileman/rest/__init__.py,sha256=bTdI15HSGfduCS5YQUdqh2aOS9iwbchF1LL1Fok8lPc,418
41
+ mojo/apps/fileman/migrations/0001_initial.py,sha256=M_JTKQK1sIHVA-jMjQzHyGVTp3GAOEUjJIHzT466KDg,7670
42
+ mojo/apps/fileman/migrations/0002_filemanager_parent_alter_filemanager_max_file_size.py,sha256=qGeGzANHIcUs_CAZBxdCrO6qxAAPSpMuh8TXiyzB6WQ,839
43
+ mojo/apps/fileman/migrations/0003_remove_file_fileman_fil_upload__c4bc35_idx_and_more.py,sha256=s6_Mk7ZgUc_sGIFlldY45KDY1O5fHo2HbMHfvd2r01c,600
44
+ mojo/apps/fileman/migrations/0004_remove_file_original_filename_and_more.py,sha256=zg7dedMO6a0a-FjtEBRVCgn5Pjrr1B5SDVBMoyw2w0c,1358
45
+ mojo/apps/fileman/migrations/0005_alter_file_upload_token.py,sha256=sDjN_Qb9CGqp-U4oDYzMClDtasWhQzTw-TQMdqHRjuU,480
46
+ mojo/apps/fileman/migrations/0006_file_download_url_filemanager_forever_urls.py,sha256=gzgtrYVKLJR71Xu8Wk83VK6dacgGdGCWvNq5eSU_vcc,703
47
+ mojo/apps/fileman/migrations/0007_remove_filemanager_forever_urls_and_more.py,sha256=dsZW-CZkgJcMp4XwF_dexzDB-JX_GNm4TDOuSFWC3e0,593
48
+ mojo/apps/fileman/migrations/0008_file_category.py,sha256=K_2hSPIxut-707_e6UxTu1yI2jA18NMtG6NE1uAd6pk,538
49
+ mojo/apps/fileman/migrations/0009_rename_file_path_file_storage_file_path.py,sha256=gs6-auHbek6OOFZ6am6SZH-BAWcSGFeISjJtNuOra7I,371
50
+ mojo/apps/fileman/migrations/0010_filerendition.py,sha256=bBXd4rN9nBOsYJ5d6uy2AasvETTU2XsHg5fay7teP-4,1939
51
+ mojo/apps/fileman/migrations/0011_alter_filerendition_original_file.py,sha256=MolIDgbswlzj6Sso2dRSgRrSxiYDF8R8V80UG0vfyZs,540
52
+ mojo/apps/fileman/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
+ mojo/apps/fileman/models/__init__.py,sha256=eINHGAhNCLK7Z4XeHT-iFH--0X3m23P2Py2zQgJHQbA,93
54
+ mojo/apps/fileman/models/file.py,sha256=F00n5OzWJyXayUtiQ2KI6l_yyvalLvFiyoOLxeuibHI,14296
55
+ mojo/apps/fileman/models/manager.py,sha256=iyp4YkvQaeMDuHq9Gh7CnSS7zkhakF6bMgU-oMcB1kw,11643
56
+ mojo/apps/fileman/models/rendition.py,sha256=j96Q-zv-dB-Shc_4AwE-ky1ZCovGjvX3KO0ACOBUlto,3198
57
+ mojo/apps/fileman/renderer/__init__.py,sha256=8LyugR_AXzq0bwScDLGWW8y7A_be0kIrs0L2AtVwgqc,3510
58
+ mojo/apps/fileman/renderer/audio.py,sha256=BUJefcyPMqqnpWD7nYATWVft4xaoKKpqbTx7GoZxI8M,15421
59
+ mojo/apps/fileman/renderer/base.py,sha256=Neh6G-v0IRey2xQvf8lFspIAAD9oK5LBvfuQqs7a0RQ,6538
60
+ mojo/apps/fileman/renderer/document.py,sha256=SScakrHT0TJJktEjpPkmX5eZfzzk2rgvD1VYJcwflLI,14836
61
+ mojo/apps/fileman/renderer/image.py,sha256=kDmtEu8UVhwUc1MsIf5Ty0OVLt3cC6tSL95xo6Vshfg,7883
62
+ mojo/apps/fileman/renderer/utils.py,sha256=dAOBih3uVMIkcGiiY2bjhGxWpgfM5_KUMG2Y4dlBTSw,8672
63
+ mojo/apps/fileman/renderer/video.py,sha256=Ml633nSDwgPx0BeKSQ5wAR4r642_BKPEA-_2dTboRDQ,10899
64
+ mojo/apps/fileman/rest/__init__.py,sha256=u4ZyCGVFOpp5OnXnHvl46rvsFUlHeXWNYNc0BBhKMK8,108
38
65
  mojo/apps/fileman/rest/fileman.py,sha256=cQYKVm9Nzu5-Hf2tWbq8Gg_zad3RtIy2bE88NLgKlrs,346
39
- mojo/apps/fileman/rest/upload.py,sha256=He7d3wIwEGnh4XjoJ-Q43dd5UHeZ5cCXW8C_L2f5cpM,2736
40
- mojo/apps/fileman/utils/__init__.py,sha256=K1QDycY3cDNbYf1FGaegJAzcgJAQMBK0SKQIJWXVECM,345
66
+ mojo/apps/fileman/rest/upload.py,sha256=NZZnPytjQvG2OWVdNDN4t1a8mltZZNM51aiA0Yr51Ww,2579
67
+ mojo/apps/fileman/signals.py,sha256=Kj_vhUdOhAFNrl4VxD7RoAipbx9i8DiZJw_2L_g9Gfw,2849
68
+ mojo/apps/fileman/tasks.py,sha256=59RBxKGOTwMNYbfMIRbF3QSVqj9jWnMZi2arD9dc3DA,8059
69
+ mojo/apps/fileman/utils/__init__.py,sha256=KbDUNeCSW4d6Rg6h_Bh2H_5ol70oE6twLp3ErNnnPBE,1237
41
70
  mojo/apps/fileman/utils/upload.py,sha256=hcH0pUf_dZ3tlkZQw1_YBBeAqxwMEDedsBG-n310uS8,18792
42
71
  mojo/apps/incident/__init__.py,sha256=G75zqcH8fatIpQ0Jfp67xg48JtpQR_A6MkN2ykxrjRU,35
43
72
  mojo/apps/incident/handlers/__init__.py,sha256=gl8imRiKYCnwB2SBoAavpUfJ9ifkS7WF_DOJKMHJg9Q,128
@@ -46,10 +75,13 @@ mojo/apps/incident/migrations/0001_initial.py,sha256=F1qZFxGRjD9qyk_zHkn3FmdyMh9
46
75
  mojo/apps/incident/migrations/0002_rename_bundle_ruleset_bundle_minutes_event_hostname_and_more.py,sha256=9_C_mLwbdr1RcyrtD-pm4EuwuFKInluk5IBuW4_1UJU,1441
47
76
  mojo/apps/incident/migrations/0003_alter_event_model_id.py,sha256=pFN_W8Ok46rmQOqKDFrAXYEY0iXphFE4Rh7MSJu0VGY,459
48
77
  mojo/apps/incident/migrations/0004_alter_incident_model_id.py,sha256=Cv2mqjYXeHgYBi7BUb_mYw-PuPQKRXj6_uy9bqECNRI,422
78
+ mojo/apps/incident/migrations/0005_incidenthistory.py,sha256=pGv1HkLudn2n7st5RlbAkutLnQ640dxHP4mGf7eMmho,2060
79
+ mojo/apps/incident/migrations/0006_alter_incident_state.py,sha256=fZkbMh-hoArprkwx6J6WI8NsMwbm9zMGg-QdABz63wE,412
49
80
  mojo/apps/incident/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
- mojo/apps/incident/models/__init__.py,sha256=vpTRJerw0lAOa31nEsxiJRRhU4CYcNHRqqPijpAtM9A,88
81
+ mojo/apps/incident/models/__init__.py,sha256=L8fNydMVPC1I9gZVR4iiCGNpdx0NOkRngG7BIsAB6pc,125
51
82
  mojo/apps/incident/models/event.py,sha256=jDEFVzQdv7NZsgfpm2sy0QTirazXWJg7McHElFW50TI,5177
52
- mojo/apps/incident/models/incident.py,sha256=OJVEW54VFHT7PVcZFnGqDhrCE9wRS7nO-17fqnJAQek,1210
83
+ mojo/apps/incident/models/history.py,sha256=67Lnp_4T8dwFCZMnkFwwTI52gtOFdsKAqfNs5yZ7og0,1492
84
+ mojo/apps/incident/models/incident.py,sha256=3GdySPULs300vyOVcCnGDVinap1w7Hwti6W1Lia24To,1222
53
85
  mojo/apps/incident/models/rule.py,sha256=74tP-h5KqNRRvbmjksCj4SrKJeWi5Fu3vy18t7k6Jys,10110
54
86
  mojo/apps/incident/parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
87
  mojo/apps/incident/parsers/ossec/__init__.py,sha256=2e96VUlQj_WgmSKLaUVxKijdv-tY5juquEUebWRCrdQ,48
@@ -57,26 +89,26 @@ mojo/apps/incident/parsers/ossec/core.py,sha256=lC3DuJolsJtHOdgVCG2qYcVwi_ryM8WN
57
89
  mojo/apps/incident/parsers/ossec/parsed.py,sha256=1Fcw7F01lAK70aSf7ga5ka2izB_IUGeIfomEcqUY_Qk,786
58
90
  mojo/apps/incident/parsers/ossec/rules.py,sha256=635TmK6uUOQZsgMKDbU5HJIGjYlXUo4I6AIBFCuY0V8,4252
59
91
  mojo/apps/incident/parsers/ossec/utils.py,sha256=OkD5unXJAuqQo2_mGCO8bokY0tTOzwAAo28hz7Ux8vg,5061
60
- mojo/apps/incident/reporter.py,sha256=38fU5T3jAZhgdZkTM1fStW8iXUUY4Lvq9f9_JbQVaIc,1535
92
+ mojo/apps/incident/reporter.py,sha256=UDk10QUf6ZQ18WuIxSAokB0St_NsCmOWcIfb6QAVslc,1586
61
93
  mojo/apps/incident/rest/__init__.py,sha256=KxYajaFDgrKzBLI5fgMK4Qzj6-LFH_J7uCOhWpxNW5E,42
62
- mojo/apps/incident/rest/event.py,sha256=zqCbMSsFJRIvXzyAP3pyUf1tfpMoEZL2A6holmY_0wY,668
94
+ mojo/apps/incident/rest/event.py,sha256=ZlOi88Q8HcvtwCOW65X9RSaTddyXweOCOW3vWgVNOcs,851
63
95
  mojo/apps/incident/rest/ossec.py,sha256=Rw7o1LRCZdeHL3wOry6zgT9r1MGVxUzJiwvmyT5GfbI,730
64
96
  mojo/apps/logit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
97
  mojo/apps/logit/admin.py,sha256=XLvz6CtwfW3rryp5xfvtylL_CWZ5-CbChK4DB2Hl3qM,1552
66
98
  mojo/apps/logit/migrations/0001_initial.py,sha256=7vrTetfEFrUzc3cOoboyktfK_KlsfrGAoCDf4T2sJzk,1348
67
99
  mojo/apps/logit/migrations/0002_log_duid_log_payload_log_username.py,sha256=s97JeIMjNmKah2b7YcGauaVg_1liTeUJfq-GCi0wP6U,696
68
100
  mojo/apps/logit/migrations/0003_log_level.py,sha256=HzLwBYitzRsHxGkM9gKrgc4A8dzLt4ewl14nCnWLSnc,424
101
+ mojo/apps/logit/migrations/0004_alter_log_level.py,sha256=QFPma7kIEUd2wPzc-OExWJt64ZekSXHtuyCgo7ImDVs,403
69
102
  mojo/apps/logit/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
103
  mojo/apps/logit/models/__init__.py,sha256=cOGwOYzMoshEbZiiasBGkj6wF0SBu3Jdpl-AuakDesw,19
71
- mojo/apps/logit/models/log.py,sha256=4ZEnILbDZ-1kn-59-jPG2miTPxzRWdijS7qjDzFEy_Q,2359
104
+ mojo/apps/logit/models/log.py,sha256=KfZ2w1atNJ4fbIlkZXcQNqBfDWk8tdaUYmU-Gv4nz3g,2474
72
105
  mojo/apps/logit/rest.py,sha256=bPoq9Blqzr1YU43LTLf9DiSLe6DgjcH1ctDnfvidpbs,205
73
106
  mojo/apps/metrics/README.md,sha256=i4dHNqTKgBLMSIxyLddD7wifxZRDTn2JqQGPmW3EWIw,2984
74
107
  mojo/apps/metrics/__init__.py,sha256=1qdjIyJiY3nHkFEcW2UQ23JWkgSonhMOf6JiEY4BYRw,223
75
108
  mojo/apps/metrics/redis_metrics.py,sha256=6zwXc4_QOGrFE0M4njISvoECbyuCcUXvFzYJyRynlo0,12694
76
109
  mojo/apps/metrics/rest/__init__.py,sha256=ERmmOxz_9mUkIuccNbzUa5Y6gVLLVDdyc4cCxbCCUbY,20
77
110
  mojo/apps/metrics/rest/base.py,sha256=1uEqxlvEQpXNOJqFpQe-HxETiYF_6bxmJ9X5eYclabg,5895
78
- mojo/apps/metrics/rest/db.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
- mojo/apps/metrics/utils.py,sha256=lVqMwReXxGE3AjjIIspHH5Cgbqe2so1vlMSbFurZ9Y4,7313
111
+ mojo/apps/metrics/utils.py,sha256=vadTrB0Sp5EEYcAvu0br0NcPovOo2geFjPSajNZbzJo,7313
80
112
  mojo/apps/notify/README.md,sha256=jsklDrzD5d94r7cwgaU6Gi1HCjBDfWq7jd92qB0JYPU,2169
81
113
  mojo/apps/notify/README_NOTIFICATIONS.md,sha256=JhPpwDVHxJ9OPG7-R_aVWmlpSwFTpnv3wYDteowbPZM,14156
82
114
  mojo/apps/notify/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -86,7 +118,7 @@ mojo/apps/notify/handlers/example_handlers.py,sha256=gEPs9-JQ5oFqUhVqRjvgP2ge456
86
118
  mojo/apps/notify/handlers/ses/__init__.py,sha256=Lev-YzMn5sUZaUH2C5mHmJEiAH5mIA64rZGEs5bRtvI,850
87
119
  mojo/apps/notify/handlers/ses/bounce.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
88
120
  mojo/apps/notify/handlers/ses/complaint.py,sha256=F5l7C7jemGBcolc8r0YEDe2H_xlbtSEbVHXCoVuVHEI,825
89
- mojo/apps/notify/handlers/ses/message.py,sha256=lC2OiYxsA6aujaEHp7WnVvlvi_VILWZrb6YKr3bYsXc,2876
121
+ mojo/apps/notify/handlers/ses/message.py,sha256=knJIzb7_k1HwuykylF9M5YaR9LsG89adTZU2sPxkYxk,2875
90
122
  mojo/apps/notify/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
123
  mojo/apps/notify/management/commands/__init__.py,sha256=R8BsVh1cMnNDaFJopGszkfOZju6JDSvlHw0hzEpTrm0,4
92
124
  mojo/apps/notify/management/commands/process_notifications.py,sha256=wt_dNBJi7WtEFwyYIs_mcVcZCDhUmx-uFGvKgDs9SMA,12969
@@ -102,7 +134,7 @@ mojo/apps/notify/models/outbox.py,sha256=hRjalXVES3p6lH4u622mX1ABxzFRTcdvGlV9VuD
102
134
  mojo/apps/notify/models/outbox_message.py,sha256=6Ebmcy0aqt7wvoGxIDGYpDvIzg6mQeJWZzlWl_BFtUk,8413
103
135
  mojo/apps/notify/models/template.py,sha256=kAj1GfHII277Ez01MZkTlkrgyr_xsgTvDrRVAy-O6qQ,1025
104
136
  mojo/apps/notify/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
- mojo/apps/notify/providers/aws.py,sha256=w3L7jvEtLcIu9V8IN8BNKNoRtxxangGzGzFTQ8-5pE0,2701
137
+ mojo/apps/notify/providers/aws.py,sha256=YIz7LN7HzCZTAzJ97_kMwG7mBqV9pItVgTOij38YMlE,2699
106
138
  mojo/apps/notify/rest/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
107
139
  mojo/apps/notify/rest/ses.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
140
  mojo/apps/notify/utils/__init__.py,sha256=G4oWPVgLaz3QXXTF_lEa1GRmU8C15b6wn78A6YjSNSA,87
@@ -110,26 +142,33 @@ mojo/apps/notify/utils/notifications.py,sha256=XY3P-BHrnA2vFSKrRPjFDClfTR7uRFJfJ
110
142
  mojo/apps/notify/utils/parsing.py,sha256=GN-9h_nnutB7w1Ebg8emeF6j_gyX-BWRYOKwGWLVjrI,6557
111
143
  mojo/apps/notify/utils/render.py,sha256=PN-KH9C3SUV8E78B91pIC06dd2Ak7hVqqxQbImrbp_4,5270
112
144
  mojo/apps/tasks/README.md,sha256=PGBo7P-8FMbWcvhvNyJGx8ayd4MOl1l9D0QNZ4w2IW4,3700
113
- mojo/apps/tasks/__init__.py,sha256=052U1fvSHzU_pGbbPB5KuOL_-KSHh_qxF6RIHuUGKhA,301
114
- mojo/apps/tasks/manager.py,sha256=UvCvGxvcbvXTqBhcOP0lflAhuXfse4A3v_txqWKFx6w,16869
145
+ mojo/apps/tasks/__init__.py,sha256=dbsOCfeKmhP0PZzZ66ghpy2O7tYiUOrjvWw08keqH1Q,1633
146
+ mojo/apps/tasks/manager.py,sha256=l6rw2yR6-AVKBoS_KQjL4elsPfeUXLVsDwCy_x6OEm0,22236
115
147
  mojo/apps/tasks/rest/__init__.py,sha256=xDdCeGCNnN5vq3PObWsqslrSZ4CqdzzFVpdrDasmqqs,42
116
148
  mojo/apps/tasks/rest/hooks.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
- mojo/apps/tasks/rest/tasks.py,sha256=18fxIWNCqcl0kQfsoJVPSCGL4ZbJTtUTY56CB5-s_BE,1420
118
- mojo/apps/tasks/runner.py,sha256=jd9MFOM1lvLuDmfmdo5_LrE3lu62gCYb7kKoS3o_0HY,6842
119
- mojo/apps/tasks/tq_handlers.py,sha256=rT4Bg8mEUucNPShKw9w6srHhyeKJpgRID4DOV28J-No,369
149
+ mojo/apps/tasks/rest/tasks.py,sha256=c_Rn3stA9ubfPRXQfFPHYACQBwOKdkxT2X60DAWOUko,1855
150
+ mojo/apps/tasks/runner.py,sha256=s2fEVyCaSDeS19dhKD8tompGpG2YoAeDB0wWIEH9H7o,15970
151
+ mojo/apps/tasks/task.py,sha256=aGOJmj6QGA9gt7XrYaBfjChQXtuwOmvLVVDxG6t4pvo,3134
152
+ mojo/apps/tasks/tq_handlers.py,sha256=0Yk28o33tVYRqQvMLjIv583VX_9_RIj8fw7tCZCF0ZU,4092
120
153
  mojo/decorators/__init__.py,sha256=XzKewkbEeLd0M1ciA6Qf1kbawOd2VV-FbAT1nMLBoQ0,64
121
- mojo/decorators/auth.py,sha256=K3sJnVJRCgKlVgj2RB4plauA4NyfbMxfVWbwuT2uJ6E,832
154
+ mojo/decorators/auth.py,sha256=spUgzYYBGrVCdyZJ23QxU3wNbLZ5IHkWet195R4cbW0,1019
122
155
  mojo/decorators/cron.py,sha256=8Qc4XJU9wUSxfepRALZbeFmgOOVWikhGMnrcOk5wbIw,1199
123
- mojo/decorators/http.py,sha256=SMDURloKk8HNY0DCerGMZnjvioO-DdXrZfdsGiJuDsg,5325
156
+ mojo/decorators/http.py,sha256=e0_Swh8hUKbXiJAeIxyms24__jX7rhbQBltJ903mxKU,5550
124
157
  mojo/decorators/validate.py,sha256=MEaIR8yvsM2nloOVbqjvvnrrA0wZn6OLkov2tJ1qdIw,550
125
158
  mojo/errors.py,sha256=MPJ5_B-RQNK69-fQ-Hs1oddjupjfwWNakieVPee9hU4,3281
126
159
  mojo/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
127
- mojo/helpers/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
160
+ mojo/helpers/aws/__init__.py,sha256=IacXZGfC3zSz-qC7gS9q3bFGWpeQotLF9OyBS2YaF8s,741
128
161
  mojo/helpers/aws/client.py,sha256=JoHStXSar6myZuObgteh06ZvFrKGp5Tv7lme0BFcAPw,203
129
- mojo/helpers/aws/s3.py,sha256=Qdic9K0Teun86Mnf0fMq7ChzRwHe5GDxuGaP3cjSKUs,7595
130
- mojo/helpers/aws/setup_email.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
162
+ mojo/helpers/aws/ec2.py,sha256=HrRxggGxjsG2MbGjWzKsC-bCk7VdyXtzFsbeQdcJEqg,27840
163
+ mojo/helpers/aws/iam.py,sha256=Kn24kEy8cacNWhYdagvEfXR8pG8un9DAYg-uHmptraY,23737
164
+ mojo/helpers/aws/s3.py,sha256=SnLOX7X6gqu3fpi1BlGyTTI9FkEDTBFuhXNxMkwNz3o,22106
165
+ mojo/helpers/aws/ses.py,sha256=BIRZW-co4_VSm73kGN6wPhthlv_3-wKEHvkGsQsIeG0,16051
166
+ mojo/helpers/aws/sns.py,sha256=-qkJwRBEPWQxkBr18lS4t6I_oW2wLm2LGfOWTyKnXDs,15119
131
167
  mojo/helpers/cron.py,sha256=_hoKgYYc7m4oU_eU4uUOIXOhJA0A9Lw0f9GPm5TCcs4,2411
132
168
  mojo/helpers/crypto/__init__.py,sha256=sEa199m84nvPZoLcHow3ZxWGZuDxJZDBQlfXu-uFUpM,177
169
+ mojo/helpers/crypto/__pycache__/hash.cpython-310.pyc,sha256=zF9hKIS1bvhOmizUAA89Rr8bOiaiBbhNswDt-QFT6qM,1889
170
+ mojo/helpers/crypto/__pycache__/sign.cpython-310.pyc,sha256=-_nNIfd-2s51HcduaZoum5nCSiFFBFoHs77Off-BZx4,1326
171
+ mojo/helpers/crypto/__pycache__/utils.cpython-310.pyc,sha256=0Tkd8DBEFPl-c7fogn1ehrO2xtmaimGnRjhpdpEQSaw,1091
133
172
  mojo/helpers/crypto/aes.py,sha256=8VTAsykOxiSBbdKVK0DxJ_1Y2wGkY0CDRjhXSiMvF8o,1830
134
173
  mojo/helpers/crypto/hash.py,sha256=HVgfzmpMO5K5stiiateB1y16SAHS7qOP0nGRGyVW0FU,2078
135
174
  mojo/helpers/crypto/privpub/__init__.py,sha256=Om2Iw0r1tV4_W3OwWazLveQFTs4bwnYc35JxRBf9nm4,44
@@ -139,7 +178,7 @@ mojo/helpers/crypto/sign.py,sha256=jC_QKm7WcxQix0DuxSk5SGD8L-6mBSl1ZHobPnpsR48,1
139
178
  mojo/helpers/crypto/too.l.py,sha256=6ypxFDOkHylcVfdGRlTtS-Jtig8JHkfVHi5N2w0i-_s,821
140
179
  mojo/helpers/crypto/utils.py,sha256=eLnEL92TvBFzl07XtVGLprJQ2BTCsQqXDDuKaw9sIt4,771
141
180
  mojo/helpers/daemon.py,sha256=6cC2XWIUZH59YdrV2dglPqNtJ8UUPbsKSatGsDp44m8,3276
142
- mojo/helpers/dates.py,sha256=XbXbH9kvd8riIWUZA2PXl7hx2in7F8uSWX3DzNiO-kM,2064
181
+ mojo/helpers/dates.py,sha256=geNPvF4kvb1WAM3aCNnIxQWmoxkEqzN-S6VKWEk5Ca8,2534
143
182
  mojo/helpers/dns/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
144
183
  mojo/helpers/dns/godaddy.py,sha256=l8AboiEeGQ34p2t-i5Z6XDkf3siUgRsqIg1mVciPZnU,2334
145
184
  mojo/helpers/filetypes.py,sha256=4BJpH8jQ_bZk-86yy2ZasVgVnxHNLIi96d2umQz_dXI,4163
@@ -149,46 +188,47 @@ mojo/helpers/paths.py,sha256=dIAGF0MOr9faE72fwne2-BEaarXCvJBsU8yJSjB15hA,2053
149
188
  mojo/helpers/redis.py,sha256=ZQkw1vSVdDMAtybUOVM_XCyZ_38YhY1NTfofwihJqSg,288
150
189
  mojo/helpers/request.py,sha256=9qPg6FyfwBzGDD1X390pdALzeKLRkYvSj0jBg0IssVA,2357
151
190
  mojo/helpers/request_parser.py,sha256=OHsoBaZJ07OEWMDxVTnwElTEpd-zMtwpNdAKL_4KFzc,8862
152
- mojo/helpers/response.py,sha256=YnCvfn3pvO4YW5Hym3nLe6D6GlTTjm4IMMkchCX53t8,521
153
- mojo/helpers/settings.py,sha256=rIFxl8-z8XeW6RMI2IvR-WSxQ2u1j0MAqmXVEAVPSyE,5114
191
+ mojo/helpers/response.py,sha256=4Iwzqgaa4fP6LEn4SVxPGtXBchTGtXSKEwk-MDCD8BA,690
192
+ mojo/helpers/settings/__init__.py,sha256=hoBkefiF-jluJeIQ6mHBfMedVs7cFJGRmPZMTiNmHCo,93
193
+ mojo/helpers/settings/helper.py,sha256=TRF9MfUMz3vxr6i-u_OV1bhSm0JRQOreIbHSCUOc0Rc,3646
194
+ mojo/helpers/settings/parser.py,sha256=DmVfQdTd_wClxyhqd2T8AgrgRecAoi5ZdIAVJEm4alE,4709
154
195
  mojo/helpers/sysinfo.py,sha256=CHflsP26GZYTWU3LZpUtZ98l66x5QFXllfQJlv3MvRw,4517
155
196
  mojo/helpers/ua.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
156
197
  mojo/middleware/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
157
198
  mojo/middleware/auth.py,sha256=RrApAXvlK5Llj75xPbVE_6RJJF_ubAFxUt3m9h1u-8I,941
158
- mojo/middleware/logging.py,sha256=V2N0kx4AYoQbfKXk0vcgcMe9fL9zaPV7VfW2RwMvaSY,2283
159
- mojo/middleware/mojo.py,sha256=EcTjSjwQgnyEmIpndxYQcwRY0C2SodgTubOr9dOEACI,679
199
+ mojo/middleware/logging.py,sha256=GDtaFrf0A_R0rnsd1rRPZC_N24Op6vlwo-FFy7lbPf4,2288
200
+ mojo/middleware/mojo.py,sha256=oEeXw4JF2vRNbyiY6jS5zmxsL_6sK_o4FpPUCLUC_xc,863
160
201
  mojo/migrations/0001_initial.py,sha256=ir1h2kZZ6WnAChhcCejCVd5C0kWhGsXKozNhZeWvUTs,1337
161
202
  mojo/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
162
203
  mojo/models/__init__.py,sha256=1A4nsKq1ZDt85pFrqLUTVqi-DTKojulrSa6rTJK65-Q,61
163
204
  mojo/models/meta.py,sha256=XHSjwcWUwsGEuI2rbenQv4aXo0IPN8oJu5mk8I5vgWQ,10232
164
- mojo/models/rest.py,sha256=TJQYDo96mdB1Ew-JuglQ_byurhxgrZazgZJK4-IO_ac,19645
165
- mojo/models/secrets.py,sha256=GMxLDQ1XMor1AnMjxD4Dy_3aHEPcHwtI25bxPYOo64U,1906
205
+ mojo/models/rest.py,sha256=3S7veOKRo6ABlqcgH3p_WChZS6lO_RoZlYWa2AvEKCs,27891
206
+ mojo/models/secrets.py,sha256=kzViGh0Mi2uKj_rtBp4F8GxcLSWThhewwLkFNckNNtU,2268
166
207
  mojo/rest/__init__.py,sha256=KjRXymi2g5qLVJ-KOOCFwqDocB2RxeGY6-T5HQU7np4,20
167
208
  mojo/rest/info.py,sha256=ftL5NZjswWzIfRsxistZrPN8jbIAyHhygYzcb2M7UMQ,699
168
- mojo/serializers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
169
- mojo/serializers/models.py,sha256=8Xk_TwTJfMiRjqlYNNauc3pBv3nUikJi3xElkflv8KE,7031
209
+ mojo/serializers/__init__.py,sha256=mi4Nkl7KG8k5Vh6wB4KKQxV4moyvf-8FQiSQUepDgm4,2700
210
+ mojo/serializers/advanced/README.md,sha256=0nXQ8N4AKU4mQluM08Oh-hdaSgXfs37zdz4HdmYd9wk,10290
211
+ mojo/serializers/advanced/__init__.py,sha256=Glb76rdGoeO5Z0A9rYZ4ju_x-FGEszRkeKmNj4atRvA,7083
212
+ mojo/serializers/advanced/formats/__init__.py,sha256=7KCfFtacYEdhRr_UxqFxD79KdJ8GrhL29PoEhyW0U-M,651
213
+ mojo/serializers/advanced/formats/csv.py,sha256=R0ofSthT0b7vG68OKaCFAensQ-AjZRvYZNdF20SmGf0,15172
214
+ mojo/serializers/advanced/formats/excel.py,sha256=ptgiiTVUmVwM2tixR_NNC9W84VSh_N-ZUt3sNJgTrTw,18985
215
+ mojo/serializers/advanced/formats/json.py,sha256=MxGhTiy6wCtF0iIw2Guyiz22TYPne365aFL7lXulRmQ,7723
216
+ mojo/serializers/advanced/formats/localizers.py,sha256=vziGn1vI8cx_U7xc5qblXPO-e86qYwyq5e4loEPQjPk,13031
217
+ mojo/serializers/advanced/formats/response.py,sha256=OELwD1wFBQNnhppalZ0WOdLb_TEgHTzVl48ZOt32yCU,17218
218
+ mojo/serializers/advanced/serializer.py,sha256=TwiV7LRwYMP5wyTGhTQ0ork-XghDl_ebBpVF3qCtI-4,21000
219
+ mojo/serializers/manager.py,sha256=CFgfk4apufgq2eyj6Tl5pQ84iWxLcZqx_iPfExdsS8s,18988
170
220
  mojo/serializers/openapi.py,sha256=sRc9GQh6tbNIV-MnJN7Fn_4NeT0QF37tro8G88MMbck,6448
221
+ mojo/serializers/optimized.py,sha256=tmoZGqjwwEYEEFzJQoY80GEoo25br9CjYwyQzRyYxsA,21094
222
+ mojo/serializers/settings_example.py,sha256=eKIKLPZIvJ2VHfr6VuOZCoy-0j9w6DZVfXgHUTjqnsc,11543
223
+ mojo/serializers/simple.py,sha256=sDQfiBsw2oTK1ZDiVj0-Y0w5G6SoeXsVFblITr2ClPw,8339
171
224
  mojo/urls.py,sha256=lkB5Dxz7zaSQI2YC5nHvLgt32rcPeaj-YfknlUw_xzQ,1201
172
- mojo/ws4redis/README.md,sha256=QvwdsauPKxx4qQqnJ991xeU8DgFQCj3CeQt-nCE4s-w,3624
173
- mojo/ws4redis/__init__.py,sha256=ij80KRdl8a5pvMiYrZlseMtNPGApc9rwdvXxoUdDFBY,46
174
- mojo/ws4redis/client.py,sha256=eT6e7Q6Rbqsv5R9BhTXkuJKkjKspewJGzDbi56ecL50,7070
175
- mojo/ws4redis/connection.py,sha256=9ZrIyL78_T9n71s_gIlrZMgBAf6h51vr_c7a3HDM230,13532
176
- mojo/ws4redis/exceptions.py,sha256=EGLoRTdqJVwz900pwhciqPuSjBBd08hhLgFu6umHrI4,636
177
- mojo/ws4redis/redis.py,sha256=bcrIJ9laE9S55bMzmMlZLOYq-kQS9egrZ0aww64WWfQ,6713
178
- mojo/ws4redis/servers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
179
- mojo/ws4redis/servers/base.py,sha256=S8Dtiv-Af5spiI4Bdtz0iwFs26dOyXiIsHLOVG0Bk88,3765
180
- mojo/ws4redis/servers/django.py,sha256=iuS16OxRcxIaOBaxfxxHxwwGC1TAmPykDhBYVeV4_ak,5902
181
- mojo/ws4redis/servers/uwsgi.py,sha256=BftTWjKU_upZWRw1ONO5jPOL0VP6of7cuySyd866yHk,1733
182
- mojo/ws4redis/settings.py,sha256=KKq00EwoGnz1yLwCZr5Dfoq2izivmAdsNEEM4EhZwN4,1610
183
- mojo/ws4redis/utf8validator.py,sha256=S0OlfjeGRP75aO6CzZsF4oTjRQAgR17OWE9rgZdMBZA,5122
184
- mojo/ws4redis/websocket.py,sha256=hfrZBM_fWukgEhwDZFLS4N4Q_jt-FsOu4m0mE1bWfeo,14207
185
225
  testit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
186
226
  testit/client.py,sha256=uG0_R1FJ36NaAPsCX4wJh07B4Tl54I4IqsUCCxpynto,5355
187
227
  testit/faker.py,sha256=fdrgVkgdgypiGZGigBb9uyWHopflulaHrLOmzBdfCFA,393
188
- testit/helpers.py,sha256=obLNW_wDhsJ_JQM0h6_-EhDT6END8jDShPtNDo-EeFs,5499
228
+ testit/helpers.py,sha256=RTqGT2P6wLdHXfifqS73AoQFlnFJshnjmk8QNuohUoU,6074
189
229
  testit/runner.py,sha256=u_Tx1x144vOBXW737THyA6KqWJu1gSwWyBYn6JYNiBI,10302
190
- django_nativemojo-0.1.10.dist-info/LICENSE,sha256=K2Ly2mJoqzHPrWcXQFXWbvDtphQ51huB2RbfGW7WmUM,774
191
- django_nativemojo-0.1.10.dist-info/METADATA,sha256=bdBST6Z1gbaG4bmrUkoa4IiUHeqT4i4YfH9eNTFrqp4,4838
192
- django_nativemojo-0.1.10.dist-info/NOTICE,sha256=FqvhpeIbbnXn4wqLHA6Ap2VhQfU2e7QVFFyRW8L_6ys,256
193
- django_nativemojo-0.1.10.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
194
- django_nativemojo-0.1.10.dist-info/RECORD,,
230
+ django_nativemojo-0.1.15.dist-info/LICENSE,sha256=K2Ly2mJoqzHPrWcXQFXWbvDtphQ51huB2RbfGW7WmUM,774
231
+ django_nativemojo-0.1.15.dist-info/METADATA,sha256=6AJlktr2bo5GE5COjQ0vWtM-NNMtoo0KFDLm5AyAKKc,4773
232
+ django_nativemojo-0.1.15.dist-info/NOTICE,sha256=FqvhpeIbbnXn4wqLHA6Ap2VhQfU2e7QVFFyRW8L_6ys,256
233
+ django_nativemojo-0.1.15.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
234
+ django_nativemojo-0.1.15.dist-info/RECORD,,
mojo/__init__.py CHANGED
@@ -1,3 +1,3 @@
1
- __version__ = "0.1.10"
1
+ __version__ = "0.1.15"
2
2
 
3
3
  from mojo.helpers.response import JsonResponse
@@ -0,0 +1,5 @@
1
+ """
2
+ Django-MOJO Management Commands
3
+
4
+ This package contains Django management commands for MOJO framework operations.
5
+ """
@@ -0,0 +1,6 @@
1
+ """
2
+ Django-MOJO Management Commands
3
+
4
+ This package contains Django management commands for MOJO framework operations
5
+ including serializer management, performance monitoring, and system utilities.
6
+ """