core-framework 0.3.0__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 (222) hide show
  1. core_framework/__init__.py +0 -0
  2. core_framework/alembic/comment/alembic/README +1 -0
  3. core_framework/alembic/comment/alembic/env.py +72 -0
  4. core_framework/alembic/comment/alembic/script.py.mako +28 -0
  5. core_framework/alembic/comment/alembic/versions/30334fd1347b_init.py +59 -0
  6. core_framework/alembic/comment/alembic/versions/a2b3c4d5e6f7_improve_comment_indexes.py +54 -0
  7. core_framework/alembic/comment/alembic/versions/bcc8e00cfc8b_add_extra_tables.py +64 -0
  8. core_framework/alembic/comment/alembic/versions/d1e2f3a4b5c6_add_comment_stats_dirty_table.py +29 -0
  9. core_framework/alembic/comment/alembic/versions/e3f4a5b6c7d8_cascade_delete_comment_descendants.py +49 -0
  10. core_framework/alembic/comment/alembic/versions/f7e6d5c4b3a2_comments_path_to_ltree.py +60 -0
  11. core_framework/alembic/comment/alembic.ini +52 -0
  12. core_framework/alembic/extension/alembic/README +1 -0
  13. core_framework/alembic/extension/alembic/env.py +98 -0
  14. core_framework/alembic/extension/alembic/script.py.mako +28 -0
  15. core_framework/alembic/extension/alembic/versions/0389226049cb_add_pg_trgm_extension.py +25 -0
  16. core_framework/alembic/extension/alembic/versions/5dc58b016cf5_add_citext_extension.py +25 -0
  17. core_framework/alembic/extension/alembic/versions/b0ba0d8a284e_add_pg_stat_statements_extension.py +25 -0
  18. core_framework/alembic/extension/alembic/versions/c9d0e1f2a3b4_add_ltree_extension.py +25 -0
  19. core_framework/alembic/extension/alembic.ini +147 -0
  20. core_framework/alembic/moderation/alembic/README +1 -0
  21. core_framework/alembic/moderation/alembic/env.py +98 -0
  22. core_framework/alembic/moderation/alembic/script.py.mako +28 -0
  23. core_framework/alembic/moderation/alembic/versions/085ba9021850_add_category_to_user_restrictions.py +93 -0
  24. core_framework/alembic/moderation/alembic/versions/5f9e4fc14a41_create_moderation_appeals_table.py +69 -0
  25. core_framework/alembic/moderation/alembic/versions/63e37381e73b_add_user_reports_table.py +33 -0
  26. core_framework/alembic/moderation/alembic/versions/6a2ae31b7ac6_add_moderation_actions_table.py +34 -0
  27. core_framework/alembic/moderation/alembic/versions/716aa1735c03_improve_indexes.py +36 -0
  28. core_framework/alembic/moderation/alembic/versions/7d243ddbfde1_add_post_reports_table.py +35 -0
  29. core_framework/alembic/moderation/alembic/versions/8fba1f72dd46_add_indexes.py +64 -0
  30. core_framework/alembic/moderation/alembic/versions/95cc35a51984_update_restriction_history.py +91 -0
  31. core_framework/alembic/moderation/alembic/versions/9ad79d0af730_add_unique_constraint_user_reports_.py +28 -0
  32. core_framework/alembic/moderation/alembic/versions/a5e569f5df1a_create_user_restrictions_table.py +38 -0
  33. core_framework/alembic/moderation/alembic/versions/b2c3d4e5f6a7_add_indexes.py +42 -0
  34. core_framework/alembic/moderation/alembic/versions/c3d4e5f6a7b8_improve_report_indexes.py +48 -0
  35. core_framework/alembic/moderation/alembic/versions/d4af74643ff5_add_internal_notes_table.py +38 -0
  36. core_framework/alembic/moderation/alembic/versions/db20f2fb7390_add_comment_reports_table.py +35 -0
  37. core_framework/alembic/moderation/alembic/versions/e66226952ea6_add_report_category_to_user_reports_.py +54 -0
  38. core_framework/alembic/moderation/alembic/versions/f5e8cb275c30_enforce_1_pending_appeal.py +29 -0
  39. core_framework/alembic/moderation/alembic/versions/fe1faad2832d_create_restriction_history_table.py +69 -0
  40. core_framework/alembic/moderation/alembic.ini +147 -0
  41. core_framework/alembic/post/alembic/README +1 -0
  42. core_framework/alembic/post/alembic/env.py +97 -0
  43. core_framework/alembic/post/alembic/script.py.mako +28 -0
  44. core_framework/alembic/post/alembic/versions/51542673f5c8_add_tables_for_muted_banned_users.py +41 -0
  45. core_framework/alembic/post/alembic/versions/5beeeae40a4a_add_post_views_table.py +45 -0
  46. core_framework/alembic/post/alembic/versions/620971509a8b_init.py +55 -0
  47. core_framework/alembic/post/alembic/versions/a1b2c3d4e5f6_add_indexes.py +44 -0
  48. core_framework/alembic/post/alembic/versions/c1d2e3f4a5b6_add_post_hashtags_table.py +36 -0
  49. core_framework/alembic/post/alembic/versions/e56723f2afff_add_post_stats_table.py +39 -0
  50. core_framework/alembic/post/alembic/versions/fbc723ac58cc_add_post_likes_table.py +32 -0
  51. core_framework/alembic/post/alembic.ini +149 -0
  52. core_framework/alembic/user/alembic/README +1 -0
  53. core_framework/alembic/user/alembic/env.py +98 -0
  54. core_framework/alembic/user/alembic/script.py.mako +28 -0
  55. core_framework/alembic/user/alembic/versions/1a8bb99726ed_remove_avatar_id_from_users.py +81 -0
  56. core_framework/alembic/user/alembic/versions/2ccacf455941_improve_indexes.py +34 -0
  57. core_framework/alembic/user/alembic/versions/47f47ce2110e_create_user_deletions_table.py +31 -0
  58. core_framework/alembic/user/alembic/versions/5976db3f0175_drop_user_states.py +26 -0
  59. core_framework/alembic/user/alembic/versions/62417002cf32_add_indexes.py +46 -0
  60. core_framework/alembic/user/alembic/versions/6f7ccf3c226b_refactor_user_login_events.py +66 -0
  61. core_framework/alembic/user/alembic/versions/73432817015b_add_user_preferences_table.py +33 -0
  62. core_framework/alembic/user/alembic/versions/765bc01a7a59_create_user_blocks_table.py +33 -0
  63. core_framework/alembic/user/alembic/versions/7a56631f9927_create_user_login_events_table.py +49 -0
  64. core_framework/alembic/user/alembic/versions/831611e589bc_create_user_state.py +31 -0
  65. core_framework/alembic/user/alembic/versions/83c98ab2a779_add_user_profiles_table.py +88 -0
  66. core_framework/alembic/user/alembic/versions/8a94362cad6d_create_user_role.py +31 -0
  67. core_framework/alembic/user/alembic/versions/94b973923895_add_user_change_history_table.py +97 -0
  68. core_framework/alembic/user/alembic/versions/cbc0f4efe84f_add_avatar_id_column_to_users_table.py +31 -0
  69. core_framework/alembic/user/alembic/versions/d8b98ac6b073_add_index_for_get_admin_user_ids_query.py +29 -0
  70. core_framework/alembic/user/alembic/versions/ddb70cc09d16_create_user_states_table.py +34 -0
  71. core_framework/alembic/user/alembic/versions/f9ba10815ecd_add_users_table.py +33 -0
  72. core_framework/alembic/user/alembic.ini +147 -0
  73. core_framework/api/__init__.py +0 -0
  74. core_framework/api/admin/__init__.py +0 -0
  75. core_framework/api/admin/comments/router.py +69 -0
  76. core_framework/api/admin/comments/schemas.py +53 -0
  77. core_framework/api/admin/moderation/__init__.py +0 -0
  78. core_framework/api/admin/moderation/router.py +205 -0
  79. core_framework/api/admin/moderation/schemas.py +110 -0
  80. core_framework/api/admin/posts/router.py +62 -0
  81. core_framework/api/admin/posts/schemas.py +29 -0
  82. core_framework/api/admin/router.py +17 -0
  83. core_framework/api/admin/users/__init__.py +0 -0
  84. core_framework/api/admin/users/router.py +181 -0
  85. core_framework/api/admin/users/schemas.py +137 -0
  86. core_framework/api/auth/__init__.py +0 -0
  87. core_framework/api/auth/router.py +21 -0
  88. core_framework/api/auth/schemas.py +28 -0
  89. core_framework/api/comments/authenticated/router.py +126 -0
  90. core_framework/api/comments/authenticated/schemas.py +27 -0
  91. core_framework/api/comments/public/router.py +103 -0
  92. core_framework/api/comments/public/schemas.py +36 -0
  93. core_framework/api/comments/router.py +9 -0
  94. core_framework/api/comments/schemas.py +17 -0
  95. core_framework/api/dependencies.py +168 -0
  96. core_framework/api/events/router.py +39 -0
  97. core_framework/api/events/schemas.py +20 -0
  98. core_framework/api/posts/authenticated/router.py +83 -0
  99. core_framework/api/posts/authenticated/schemas.py +37 -0
  100. core_framework/api/posts/public/router.py +100 -0
  101. core_framework/api/posts/public/schemas.py +39 -0
  102. core_framework/api/posts/router.py +9 -0
  103. core_framework/api/posts/schemas.py +39 -0
  104. core_framework/api/router.py +19 -0
  105. core_framework/api/schemas.py +9 -0
  106. core_framework/api/system/__init__.py +0 -0
  107. core_framework/api/system/router.py +108 -0
  108. core_framework/api/users/__init__.py +0 -0
  109. core_framework/api/users/authenticated/__init__.py +0 -0
  110. core_framework/api/users/authenticated/router.py +244 -0
  111. core_framework/api/users/authenticated/schemas.py +81 -0
  112. core_framework/api/users/public/__init__.py +0 -0
  113. core_framework/api/users/public/router.py +25 -0
  114. core_framework/api/users/public/schemas.py +7 -0
  115. core_framework/api/users/router.py +9 -0
  116. core_framework/api/users/shared/schemas.py +174 -0
  117. core_framework/application/__init__.py +0 -0
  118. core_framework/application/auth/__init__.py +0 -0
  119. core_framework/application/auth/access_service.py +26 -0
  120. core_framework/application/auth/auth_service.py +10 -0
  121. core_framework/application/auth/models.py +10 -0
  122. core_framework/application/bootstrap.py +19 -0
  123. core_framework/application/comments/admin_service.py +236 -0
  124. core_framework/application/comments/aggregation_service.py +28 -0
  125. core_framework/application/comments/authenticated_service.py +89 -0
  126. core_framework/application/comments/public_service.py +218 -0
  127. core_framework/application/events/README.md +26 -0
  128. core_framework/application/events/event_service.py +51 -0
  129. core_framework/application/events/event_token.py +46 -0
  130. core_framework/application/events/models.py +9 -0
  131. core_framework/application/moderation/__init__.py +0 -0
  132. core_framework/application/moderation/appeal_service.py +98 -0
  133. core_framework/application/moderation/moderator_service.py +46 -0
  134. core_framework/application/moderation/report_service.py +180 -0
  135. core_framework/application/moderation/scheduled_service.py +5 -0
  136. core_framework/application/moderation/user_service.py +180 -0
  137. core_framework/application/posts/admin_service.py +104 -0
  138. core_framework/application/posts/aggregation_service.py +28 -0
  139. core_framework/application/posts/authenticated_service.py +72 -0
  140. core_framework/application/posts/public_service.py +197 -0
  141. core_framework/application/shared/__init__.py +0 -0
  142. core_framework/application/shared/enums.py +16 -0
  143. core_framework/application/shared/exceptions.py +16 -0
  144. core_framework/application/shared/user_agent.py +24 -0
  145. core_framework/application/users/__init__.py +0 -0
  146. core_framework/application/users/admin_service.py +298 -0
  147. core_framework/application/users/authenticated_service.py +179 -0
  148. core_framework/application/users/public_service.py +7 -0
  149. core_framework/application/users/scheduled_service.py +5 -0
  150. core_framework/bundled_alembic.py +57 -0
  151. core_framework/core/__init__.py +37 -0
  152. core_framework/core/cache.py +234 -0
  153. core_framework/core/context.py +14 -0
  154. core_framework/core/database.py +111 -0
  155. core_framework/core/exception_handlers/__init__.py +3 -0
  156. core_framework/core/exception_handlers/comment.py +99 -0
  157. core_framework/core/exception_handlers/common.py +5 -0
  158. core_framework/core/exception_handlers/moderation.py +104 -0
  159. core_framework/core/exception_handlers/post.py +54 -0
  160. core_framework/core/exception_handlers/setup.py +80 -0
  161. core_framework/core/exception_handlers/user.py +72 -0
  162. core_framework/core/http_client.py +64 -0
  163. core_framework/core/logging.py +99 -0
  164. core_framework/core/middleware.py +64 -0
  165. core_framework/core/observability.py +36 -0
  166. core_framework/core/pagination.py +203 -0
  167. core_framework/core/redis.py +135 -0
  168. core_framework/core/runtime.py +66 -0
  169. core_framework/core/settings.py +189 -0
  170. core_framework/domains/__init__.py +0 -0
  171. core_framework/domains/comment/README.md +243 -0
  172. core_framework/domains/comment/__init__.py +25 -0
  173. core_framework/domains/comment/constants.py +3 -0
  174. core_framework/domains/comment/dependencies.py +29 -0
  175. core_framework/domains/comment/enums.py +11 -0
  176. core_framework/domains/comment/exceptions.py +31 -0
  177. core_framework/domains/comment/models.py +54 -0
  178. core_framework/domains/comment/repository.py +947 -0
  179. core_framework/domains/comment/service.py +259 -0
  180. core_framework/domains/moderation/README.md +138 -0
  181. core_framework/domains/moderation/__init__.py +47 -0
  182. core_framework/domains/moderation/dependencies.py +29 -0
  183. core_framework/domains/moderation/enums.py +62 -0
  184. core_framework/domains/moderation/exceptions.py +31 -0
  185. core_framework/domains/moderation/models.py +94 -0
  186. core_framework/domains/moderation/repository.py +828 -0
  187. core_framework/domains/moderation/service.py +334 -0
  188. core_framework/domains/post/README.md +182 -0
  189. core_framework/domains/post/__init__.py +22 -0
  190. core_framework/domains/post/constants.py +3 -0
  191. core_framework/domains/post/dependencies.py +29 -0
  192. core_framework/domains/post/enums.py +18 -0
  193. core_framework/domains/post/exceptions.py +21 -0
  194. core_framework/domains/post/models.py +53 -0
  195. core_framework/domains/post/repository.py +791 -0
  196. core_framework/domains/post/service.py +204 -0
  197. core_framework/domains/user/README.md +74 -0
  198. core_framework/domains/user/__init__.py +39 -0
  199. core_framework/domains/user/constants.py +8 -0
  200. core_framework/domains/user/dependencies.py +29 -0
  201. core_framework/domains/user/enums.py +19 -0
  202. core_framework/domains/user/exceptions.py +31 -0
  203. core_framework/domains/user/models.py +124 -0
  204. core_framework/domains/user/repository.py +612 -0
  205. core_framework/domains/user/service.py +257 -0
  206. core_framework/domains/user/utils.py +182 -0
  207. core_framework/main.py +104 -0
  208. core_framework/worker/__init__.py +0 -0
  209. core_framework/worker/main.py +56 -0
  210. core_framework/worker/schedules/__init__.py +35 -0
  211. core_framework/worker/schedules/schedule_aggregate_comment_stats.py +32 -0
  212. core_framework/worker/schedules/schedule_aggregate_post_view_counts.py +28 -0
  213. core_framework/worker/schedules/schedule_expired_account_deletions.py +24 -0
  214. core_framework/worker/schedules/schedule_expired_mute_lifts.py +24 -0
  215. core_framework/worker/tasks/__init__.py +11 -0
  216. core_framework/worker/tasks/process_account_deletion.py +13 -0
  217. core_framework/worker/tasks/process_aggregate_comment_stats.py +19 -0
  218. core_framework/worker/tasks/process_aggregate_post_stats.py +12 -0
  219. core_framework/worker/tasks/process_mute_lift.py +13 -0
  220. core_framework-0.3.0.dist-info/METADATA +22 -0
  221. core_framework-0.3.0.dist-info/RECORD +222 -0
  222. core_framework-0.3.0.dist-info/WHEEL +4 -0
@@ -0,0 +1,24 @@
1
+ from loguru import logger
2
+ from saq.types import Context
3
+
4
+ from core_framework.application.users.scheduled_service import retrieve_expired_user_deletions
5
+
6
+
7
+ async def schedule_expired_account_deletions(ctx: Context) -> None:
8
+ try:
9
+ expired_user_ids = await retrieve_expired_user_deletions()
10
+
11
+ if not expired_user_ids:
12
+ return
13
+
14
+ queue = ctx["queue"]
15
+
16
+ for user_id in expired_user_ids:
17
+ try:
18
+ await queue.enqueue("process_account_deletion", user_id=user_id, key=f"account_deletion:{user_id}")
19
+ except Exception as e:
20
+ logger.error(f"Failed to enqueue deletion for user_id={user_id}: {e}")
21
+
22
+ except Exception as e:
23
+ logger.error(f"Error in schedule_expired_account_deletions: {e}")
24
+ raise
@@ -0,0 +1,24 @@
1
+ from loguru import logger
2
+ from saq.types import Context
3
+
4
+ from core_framework.application.moderation.scheduled_service import retrieve_expired_mute_user_ids
5
+
6
+
7
+ async def schedule_expired_mute_lifts(ctx: Context) -> None:
8
+ try:
9
+ expired_user_ids = await retrieve_expired_mute_user_ids()
10
+
11
+ if not expired_user_ids:
12
+ return
13
+
14
+ queue = ctx["queue"]
15
+
16
+ for user_id in expired_user_ids:
17
+ try:
18
+ await queue.enqueue("process_mute_lift", user_id=user_id, key=f"mute_lift:{user_id}")
19
+ except Exception as e:
20
+ logger.error(f"Failed to enqueue mute lift for user_id={user_id}: {e}")
21
+
22
+ except Exception as e:
23
+ logger.error(f"Error in schedule_expired_mute_lifts: {e}")
24
+ raise
@@ -0,0 +1,11 @@
1
+ from core_framework.worker.tasks.process_account_deletion import process_account_deletion
2
+ from core_framework.worker.tasks.process_aggregate_comment_stats import process_aggregate_comment_stats
3
+ from core_framework.worker.tasks.process_aggregate_post_stats import process_aggregate_post_stats
4
+ from core_framework.worker.tasks.process_mute_lift import process_mute_lift
5
+
6
+ tasks = [
7
+ process_account_deletion,
8
+ process_aggregate_comment_stats,
9
+ process_aggregate_post_stats,
10
+ process_mute_lift,
11
+ ]
@@ -0,0 +1,13 @@
1
+ from loguru import logger
2
+ from saq.types import Context
3
+
4
+ from core_framework.application.users.admin_service import remove_user
5
+ from core_framework.domains.user import SYSTEM_USER_ID
6
+
7
+
8
+ async def process_account_deletion(ctx: Context, *, user_id: str) -> None:
9
+ try:
10
+ await remove_user(actor_id=SYSTEM_USER_ID, user_id=user_id)
11
+ except Exception as e:
12
+ logger.error(f"Failed to delete user account user_id={user_id}: {e}")
13
+ raise
@@ -0,0 +1,19 @@
1
+ from loguru import logger
2
+ from saq.types import Context
3
+
4
+ from core_framework.application.comments.aggregation_service import (
5
+ aggregate_comment_stats,
6
+ mark_comment_stats_dirty,
7
+ )
8
+
9
+
10
+ async def process_aggregate_comment_stats(ctx: Context, *, comment_id: str) -> None:
11
+ try:
12
+ await aggregate_comment_stats(comment_id=comment_id)
13
+ except Exception as e:
14
+ logger.error(f"Failed to aggregate comment stats comment_id={comment_id}: {e}")
15
+ try:
16
+ await mark_comment_stats_dirty(comment_id=comment_id)
17
+ except Exception as insert_exc:
18
+ logger.error(f"Failed to re-mark comment_id={comment_id} dirty after aggregation failure: {insert_exc}")
19
+ raise
@@ -0,0 +1,12 @@
1
+ from loguru import logger
2
+ from saq.types import Context
3
+
4
+ from core_framework.application.posts.aggregation_service import aggregate_post_stats
5
+
6
+
7
+ async def process_aggregate_post_stats(ctx: Context, *, post_id: str) -> None:
8
+ try:
9
+ await aggregate_post_stats(post_id=post_id)
10
+ except Exception as e:
11
+ logger.error(f"Failed to aggregate post stats post_id={post_id}: {e}")
12
+ raise
@@ -0,0 +1,13 @@
1
+ from loguru import logger
2
+ from saq.types import Context
3
+
4
+ from core_framework.application.moderation.user_service import clear_user_restriction
5
+ from core_framework.domains.user import SYSTEM_USER_ID
6
+
7
+
8
+ async def process_mute_lift(ctx: Context, *, user_id: str) -> None:
9
+ try:
10
+ await clear_user_restriction(actor_id=SYSTEM_USER_ID, user_id=user_id)
11
+ except Exception as e:
12
+ logger.error(f"Failed to lift mute for user_id={user_id}: {e}")
13
+ raise
@@ -0,0 +1,22 @@
1
+ Metadata-Version: 2.4
2
+ Name: core-framework
3
+ Version: 0.3.0
4
+ Summary: Core framework package (import as core_framework)
5
+ Requires-Python: >=3.14
6
+ Requires-Dist: alembic>=1.18.4
7
+ Requires-Dist: async-lru>=2.1.0
8
+ Requires-Dist: asyncer>=0.0.14
9
+ Requires-Dist: asyncpg>=0.31.0
10
+ Requires-Dist: brotli-asgi>=1.6.0
11
+ Requires-Dist: device-detector>=6.2.0
12
+ Requires-Dist: fastapi[standard]>=0.135.1
13
+ Requires-Dist: firebase-admin>=7.3.0
14
+ Requires-Dist: httpx[http2]>=0.28.1
15
+ Requires-Dist: itsdangerous>=2.2.0
16
+ Requires-Dist: logfire[asyncpg,fastapi,httpx,redis]>=4.29.0
17
+ Requires-Dist: loguru>=0.7.3
18
+ Requires-Dist: mashumaro[orjson]>=3.20
19
+ Requires-Dist: orjson>=3.11.7
20
+ Requires-Dist: python-ulid>=3.1.0
21
+ Requires-Dist: saq[redis]>=0.26.3
22
+ Requires-Dist: tenacity>=9.1.4
@@ -0,0 +1,222 @@
1
+ core_framework/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ core_framework/bundled_alembic.py,sha256=yteLJORIxsXrtjXjWrC3wqVwUlF3tofHub99MvBYyqY,1690
3
+ core_framework/main.py,sha256=dPnenfcyS8cyBvNEHPRsguqHLYaB_WjMz9nc85E6mXk,3530
4
+ core_framework/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
+ core_framework/api/dependencies.py,sha256=aoTk3OCBbmytpu4kWB-c2yXmTVJsSt8SJm5tjE4-Tc0,5505
6
+ core_framework/api/router.py,sha256=gF8G8LngRHcbaqg7bBlgNpe6BbU7KRVC-85wD-Hinbg,787
7
+ core_framework/api/schemas.py,sha256=ORkJazfHpMdnZ3itaADZxBedpt0iR8sEZOxHxRxKqyk,317
8
+ core_framework/api/admin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
+ core_framework/api/admin/router.py,sha256=-M3j3KAA3D6YFKWGW3vtylcGAAHPThkJYaHN1z7LglM,652
10
+ core_framework/api/admin/comments/router.py,sha256=umi5_BrPCzfDIWvCm3l6lLckdJL69QCkEiRex8F8BO8,2589
11
+ core_framework/api/admin/comments/schemas.py,sha256=IBUOuyuCDfKqzmllhDTJounYAWATyVG--KDQGW87Q3M,1518
12
+ core_framework/api/admin/moderation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
+ core_framework/api/admin/moderation/router.py,sha256=-h_FbZtRr_8IGvSB0UCWsiDuN5JqDeN88B5R3eh9Uso,7418
14
+ core_framework/api/admin/moderation/schemas.py,sha256=vsAOpYdQxnejyD9zeI8Bk0fwkHc3EoG3dOh61EZzOpE,2552
15
+ core_framework/api/admin/posts/router.py,sha256=gAKbYCCgQwxkdkhsHeHOpdxHRpjwTWSYAwpL1sDy-48,1792
16
+ core_framework/api/admin/posts/schemas.py,sha256=58BmaVxlokegQ7AGnX4l8nGewxsSGdIBtNcOmWlJw4k,884
17
+ core_framework/api/admin/users/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
+ core_framework/api/admin/users/router.py,sha256=Yu41MXfsrh5aEvPQ4yygym8KloW62nFTxGNDdJesUZ8,5750
19
+ core_framework/api/admin/users/schemas.py,sha256=j_5EYCBN-GrcdX7NpEgCAFKQwfaaFXtWAYoQMCkh1Hk,3337
20
+ core_framework/api/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
+ core_framework/api/auth/router.py,sha256=O74yjJDUo3JMsrRb8YpSCoC7Z4-bD6AIUIRJTVcevZw,577
22
+ core_framework/api/auth/schemas.py,sha256=q24gwLOfViT7DhvaOiKQTIMrjgJEqdKvIXuS2DFGyug,597
23
+ core_framework/api/comments/router.py,sha256=PyNmPR3EGjkjF66NtDjaZGTaf1f0CfnpuVbLW8Ka-Us,305
24
+ core_framework/api/comments/schemas.py,sha256=vgttTIaos6O-ZCCeLET5yCeFezL4rba5cN7DP9unbUE,496
25
+ core_framework/api/comments/authenticated/router.py,sha256=57Wed5CsHz95gXLEqXPajkNmz4CICTKh8hTsjoIWO6Q,4091
26
+ core_framework/api/comments/authenticated/schemas.py,sha256=9CZZ-nXCxb8zhZXDOJjIU4JmZNqGQ6afIYzsWAz0Dls,758
27
+ core_framework/api/comments/public/router.py,sha256=sH_fTF7XEAT_20nFXBTr_9ZpuVz-85NNuSg0Y32bE7I,3487
28
+ core_framework/api/comments/public/schemas.py,sha256=FwsL1OABhEqpfrBz5TwsTBfyFRXdIXg8TUeJ_QUFTus,873
29
+ core_framework/api/events/router.py,sha256=veABt_KoH-wGxM4zufHEbfSoAXFqtejvHbzxgWc6-7E,1241
30
+ core_framework/api/events/schemas.py,sha256=6gTsxLSb-vrg-lGbtH71PEcKLYECU5jWOLo6hqobqUo,497
31
+ core_framework/api/posts/router.py,sha256=oGmm_Ko8C8-ekhS_TKEtfwUergVnzlVV1kRVkwRy0Wc,299
32
+ core_framework/api/posts/schemas.py,sha256=hzasd2KYRMoG8luYIQkG5gMfKQaIygj55Nfk2wGLZKE,1185
33
+ core_framework/api/posts/authenticated/router.py,sha256=Pxb10DOeU7ezUFI4Ig_t15bw30pytE2MJ0a6JnjEcjM,2656
34
+ core_framework/api/posts/authenticated/schemas.py,sha256=WSxBqrgB7O3inVoUjOF616VOu1LMIYW3mOoq1tWt5bg,1275
35
+ core_framework/api/posts/public/router.py,sha256=OaKuhnRbraExMKaPq1X5QDu7TKrZVkjNDimfo5HMXhg,3299
36
+ core_framework/api/posts/public/schemas.py,sha256=SwgzXl5gSQq4v6hbP_uRopkZy-DjzXX0qc0GRESxfo0,1002
37
+ core_framework/api/system/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
+ core_framework/api/system/router.py,sha256=swqRib01iJ_FGV7QZxtalK-eSlzGrxEZ04llv07B9Jg,3286
39
+ core_framework/api/users/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
+ core_framework/api/users/router.py,sha256=zFZ8xleNocvpUh0fBhogDT9Pio67AE15GsdCdufYMJU,299
41
+ core_framework/api/users/authenticated/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
+ core_framework/api/users/authenticated/router.py,sha256=rIVKcSeljFL8xrYZTr2OEpIyrcfkmcleynmw0w1HMww,7622
43
+ core_framework/api/users/authenticated/schemas.py,sha256=4mYjvcxKvGFqe_j8kG5cp_boaEUIjLacaZ6rcwktoqY,2038
44
+ core_framework/api/users/public/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
+ core_framework/api/users/public/router.py,sha256=EXEj1mDCNDRDBKL2mNFZYe46vWR4NACKq71ZFp-5bd0,974
46
+ core_framework/api/users/public/schemas.py,sha256=jHLlQDApeUZeat8rrhDI9hQzNvUGO12qnci_LXIAzZI,144
47
+ core_framework/api/users/shared/schemas.py,sha256=4Xm2_7EzYzyHsDzBruIa0rfbeb8w3IxMjrKEb8SS_hk,4791
48
+ core_framework/application/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
+ core_framework/application/bootstrap.py,sha256=hQC_Gua0GxvO-_mXMXaGlw9cekQTpPD1o27APmArRms,957
50
+ core_framework/application/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
+ core_framework/application/auth/access_service.py,sha256=1lnruuti7lE6jobqjcZqS1QQlGoR6OPC8MtX9mkFnxY,1007
52
+ core_framework/application/auth/auth_service.py,sha256=G9i-E-eHTzwVruFa7t6DT2AZAcngxlVDdAx5GyY2ZX4,455
53
+ core_framework/application/auth/models.py,sha256=dioCCwlGDMVh2pAXjvdkitFyXDHGNj_nMHrjIQTCD7w,277
54
+ core_framework/application/comments/admin_service.py,sha256=56JDUEeSpd7SzVs7HJsCTD_eparEeebh0pV4gqMggeo,8956
55
+ core_framework/application/comments/aggregation_service.py,sha256=v9CStk8JX8M6NuL740f68Aw6hlQnhrhg7sCywj5O8bQ,1153
56
+ core_framework/application/comments/authenticated_service.py,sha256=w26Zj12n7KwRGbARYnxhY-R3hGXsB9DRmsbL_CNnYbE,2528
57
+ core_framework/application/comments/public_service.py,sha256=Uzl9bZKfHIIAzE1eMsHKBBMEwP6Nvgzh1DGIq-c6hbk,8169
58
+ core_framework/application/events/README.md,sha256=1NcKcnSQQ-v2yzUN5IO54FLCsfWuDR9ekyfAqoX_a6U,860
59
+ core_framework/application/events/event_service.py,sha256=X0IpYA_SkPBKPMd-_uXJ1f0yS3-xi-wjd7suzMGeviA,1519
60
+ core_framework/application/events/event_token.py,sha256=RpJnRrGIlfGazgOHeADccqFfRwIANSRKco_nEJpPSSc,1469
61
+ core_framework/application/events/models.py,sha256=QxDC9enAN-PRzilufJUJv_qUF0k2K0GICVzHqyHNOZ4,211
62
+ core_framework/application/moderation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
+ core_framework/application/moderation/appeal_service.py,sha256=fhIoUeGtpXePPfg6vbqVtWFEjHslKayti6Y-MHwHN4o,3841
64
+ core_framework/application/moderation/moderator_service.py,sha256=Nn9gFyzGfUkXJ1Q9znS-AuxNpkfbIPpyYCzZscLLeSs,1691
65
+ core_framework/application/moderation/report_service.py,sha256=gNOWe8FP32ip4L6GoWaHdmkDN7XZTkP112WVMihvHWk,6056
66
+ core_framework/application/moderation/scheduled_service.py,sha256=f4jD3a8xnuCceokHUJ9bA-tQXm7GFbLqXStqezkj7oY,217
67
+ core_framework/application/moderation/user_service.py,sha256=Ot7H5kwcbfH1QBgRTe4jApZx9bHDNZiKv7Nkr90gxAg,8065
68
+ core_framework/application/posts/admin_service.py,sha256=0m4xdi4KOjgq-cjbgY33A48jwm4z8tKpl97sh_GC2i0,4298
69
+ core_framework/application/posts/aggregation_service.py,sha256=GYnvyhW3M1YwGKvF_McWSFtlNr-HyDYlf-r1EmSGAo8,1166
70
+ core_framework/application/posts/authenticated_service.py,sha256=YXR6cTnQofUBdo8u9pZaesUnf-0lYmh1-MgCNJwweJ8,1918
71
+ core_framework/application/posts/public_service.py,sha256=m_ABoo3kOEOiL9s99vP_xyNnco6NdbpIToIio5WrTSo,7840
72
+ core_framework/application/shared/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
+ core_framework/application/shared/enums.py,sha256=lhU6UmirLlFe7Us2xaVutSBciozYNHG7QnmYisvo-mo,257
74
+ core_framework/application/shared/exceptions.py,sha256=TuhLGXxEoCJoscLS_j_lERW3yNOH7M0CP9b98TYaX6w,495
75
+ core_framework/application/shared/user_agent.py,sha256=jVTR_dPc1LVQ7xFY-twnnP9cpXAfniw_PF6stNtzNh0,750
76
+ core_framework/application/users/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
+ core_framework/application/users/admin_service.py,sha256=e-ucDiNnMdqxGkAUvDszJUOLgZyJKDb_KU619UlG6hs,10449
78
+ core_framework/application/users/authenticated_service.py,sha256=0PJk3BOHWw29thUKieuqwcm-WOIxVwloTOf5LQy-51k,6601
79
+ core_framework/application/users/public_service.py,sha256=V-YgYQmyna38oyzDA3Qffphy-_e4CJHHxlP77T-yCZg,273
80
+ core_framework/application/users/scheduled_service.py,sha256=ryM_UmsOxZOWKDuKH4cqxVutculNUm8Z-epPLI_iYU0,195
81
+ core_framework/core/__init__.py,sha256=OTKIIk8xGrPY6EqeD5L-9Y9Y-3b_PudEoLGZUx60Oz8,1369
82
+ core_framework/core/cache.py,sha256=sltaPBBJHVUyO5WydqKFu6aeokl-mqq0FXuIXURyznM,8734
83
+ core_framework/core/context.py,sha256=9YzdKkPurFEmT3316n5GDxkvrIKxeDRhbEMBirlKlRQ,489
84
+ core_framework/core/database.py,sha256=Au3vj8Rokk47IxEQ4M3KvxMQOH7bBxBZIkMpd9-pLCc,3668
85
+ core_framework/core/http_client.py,sha256=x00oah5Qdr9W3QiEYFMiW1SGktYMGiN-79cQnORQgE8,1794
86
+ core_framework/core/logging.py,sha256=-LmS7AJWror3V-e6YjyjdNd89DXp_OzMCZTc8o-MCxg,2985
87
+ core_framework/core/middleware.py,sha256=9AvMlOpb-2oT9ZnWngPaWd_dXkOBiniLkMJ_z2FJ6t4,2390
88
+ core_framework/core/observability.py,sha256=CU-3pKf0IVKrhJF1eJiv-PpSx4jWvi5PBc-RNo0s4Wg,797
89
+ core_framework/core/pagination.py,sha256=GVX6UoGwVJx3HRe8sebgUsrY23LuBpcmyyDEaKSF6bE,6474
90
+ core_framework/core/redis.py,sha256=Sdlxt4qpqlnJNgciFJRTzIvJ1akKYaU6kIu0ajO27sk,4105
91
+ core_framework/core/runtime.py,sha256=l9lrnHxNpJaoxAvnPPxTXiERZ_llt421eVxW8tWzWio,2184
92
+ core_framework/core/settings.py,sha256=-DQCyV7Gw6nSCWbyAy2G6lhjJnnBr-KokwQSdKNOEKs,4960
93
+ core_framework/core/exception_handlers/__init__.py,sha256=ccMugH1vyUaZ3ZTStdzVpfz7eL2zdsyDR9XRH-9lGQo,122
94
+ core_framework/core/exception_handlers/comment.py,sha256=1X22gXfUPZVa34g1hanecLFYSOs8dsA9SPh7VEZ43bU,2967
95
+ core_framework/core/exception_handlers/common.py,sha256=fy4o_FyKnievO6QB2MB3NfbPYMSCadGJwRYHwZDKkog,163
96
+ core_framework/core/exception_handlers/moderation.py,sha256=oIbBBzJJ_w7L5lqJuf6Ml5OMbS6JCQW6bW3rRiEAeaE,2933
97
+ core_framework/core/exception_handlers/post.py,sha256=ONPWvOe-qRZhDbRRULy7r8ncPEdAcKLnQ5IjTyiBzMw,1589
98
+ core_framework/core/exception_handlers/setup.py,sha256=vtYT1tVUT7QSEQYT3ZElz20uHbSBJBx8fZQaoXVrxtk,2382
99
+ core_framework/core/exception_handlers/user.py,sha256=AAd-7WiMPSE76eOjs58C_YonPlUhwf40SI-l5Gpnqqg,1962
100
+ core_framework/domains/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
101
+ core_framework/domains/comment/README.md,sha256=gOa985YOq9usktq3S4ZAyM-uM_4Gu3qJjjPQmcSke5Q,13902
102
+ core_framework/domains/comment/__init__.py,sha256=77E_n2HkRZ1C26ailID9XP-O_rIrN10xFu4Q5lpcaQ8,796
103
+ core_framework/domains/comment/constants.py,sha256=YW2DepaGNO-bRGV9Aht4X699iNvrMqnXxLk8UGmaxUQ,81
104
+ core_framework/domains/comment/dependencies.py,sha256=zVc_-QB5GwN9WGhSPGstR2fA6058-nVk15UR-sAOpL4,1038
105
+ core_framework/domains/comment/enums.py,sha256=e6BbJojzLfJM04inK_G3enNemcViNMy1WSOgQWxVV2Y,186
106
+ core_framework/domains/comment/exceptions.py,sha256=opzklBVXwH6eonHiNPEPqvoSca7RzQ1VVldGK2KIE74,929
107
+ core_framework/domains/comment/models.py,sha256=RceVmgzmpezWjhdmR2cjNwmUyTQQrBpYz9zKMZSUEK0,1124
108
+ core_framework/domains/comment/repository.py,sha256=xZwLD_6ug61skzvy7osSjBCZo7ybU-xyVru3pGkEIYQ,33691
109
+ core_framework/domains/comment/service.py,sha256=xe--Zdqs_9iCqLdW7gr3wdw-ZGuwHJxQ3D3a_YJAqCQ,9247
110
+ core_framework/domains/moderation/README.md,sha256=y39p3lQyigMDbl3E41pKDRm6_n52rOSmaQUeE5AUXEQ,5226
111
+ core_framework/domains/moderation/__init__.py,sha256=YT8VYmhXYbjcfRZAo_V2-Z5n91YzT8V7yydZlQz0e3M,1127
112
+ core_framework/domains/moderation/dependencies.py,sha256=E9kJK34-rVefNWnBNKo7uWKEKZNDhg5Xv_MsqEcpvSs,1119
113
+ core_framework/domains/moderation/enums.py,sha256=0VqbF1jP5DVW8WZKCFtetppRVFaAi3wYiVGuMI8OigU,1347
114
+ core_framework/domains/moderation/exceptions.py,sha256=o7Tcd7sFSkNHAhIxdSpwaIIARyqw9rNq6Az4bQrcmgk,902
115
+ core_framework/domains/moderation/models.py,sha256=2ejAD_wZJxnPS5grRUizb-g0L5SBEEihvAHC24v9dWk,2101
116
+ core_framework/domains/moderation/repository.py,sha256=tI8R1zxqU9UgG83serI-XdriAC5d1Ze_dXdAulatXU4,30528
117
+ core_framework/domains/moderation/service.py,sha256=A-bAWqNceGz4IK7bChhv-aHQwDDYjlN4ei43dIzPs0o,12647
118
+ core_framework/domains/post/README.md,sha256=iGt_ngrvSf5JNgUBWF1GegoewLv4Rk01Apwb7iRUtvA,8252
119
+ core_framework/domains/post/__init__.py,sha256=xHKSauQFubqUQP-sdokJ4-jVUJ7IJw9MaR24If-VoH4,623
120
+ core_framework/domains/post/constants.py,sha256=YW2DepaGNO-bRGV9Aht4X699iNvrMqnXxLk8UGmaxUQ,81
121
+ core_framework/domains/post/dependencies.py,sha256=-siu4q2tqQBCjgv3rxHLC_FnhrUeDDkOac-XhBtnOOM,957
122
+ core_framework/domains/post/enums.py,sha256=vYFGQrRvjXZHc0OIk0oPs-v0ykVixsOVVsiekUtCCt8,306
123
+ core_framework/domains/post/exceptions.py,sha256=XAIOTm22YS5-sPPdS2RwM0Jo3JBHSjj-7mZegeMpiio,595
124
+ core_framework/domains/post/models.py,sha256=AM50kHMEgBQBHiWO5yywA17k0Nga_iZT4jvSDrSYeSA,1062
125
+ core_framework/domains/post/repository.py,sha256=-zE1YrnMKBQi7pdICLnX7MD7GfEDF8tIK8iruZc-3m4,28483
126
+ core_framework/domains/post/service.py,sha256=mr7ANlaBQVHLPUw1LGVdpjoQ2K5Jzk8DsZXAnQST8MY,7372
127
+ core_framework/domains/user/README.md,sha256=DS05or5Nt7CgBoZkgWCeio2J8IoHXpugBsOztUJRcQU,1971
128
+ core_framework/domains/user/__init__.py,sha256=PrmgGOglQebEjTZOgxxXDnZcONJWeqIbKLNCjtSlOQ0,973
129
+ core_framework/domains/user/constants.py,sha256=Fp9CeGjJXakvJFfkpwtmlFm-9kPNOWRIerqsL7fCFtg,293
130
+ core_framework/domains/user/dependencies.py,sha256=mag--Amc5Az4XWyUTUa7aXQvPhvwHwzak4nE7IhTAa4,957
131
+ core_framework/domains/user/enums.py,sha256=71Ut2V-aDyoksJSOc19kauKq6tKfcYG5XYn-fZWsXlM,322
132
+ core_framework/domains/user/exceptions.py,sha256=rEYZM3W3X2v8om_CAYCLydqr5iey4VQLPiywuHEdBY0,868
133
+ core_framework/domains/user/models.py,sha256=ypQ6-K4ws4qkKebmZDPZqqfqbyUyYsOnK7QGAlqRSOQ,2675
134
+ core_framework/domains/user/repository.py,sha256=loTDbbcXfKBOAjmu5b-qDJCwVcheD9ASj3Zldv_GdSA,22513
135
+ core_framework/domains/user/service.py,sha256=nAqc2mTl_ku7IPPWw_eHrQACZPo_1RJ29W9s0garzxQ,10061
136
+ core_framework/domains/user/utils.py,sha256=x9S6FqohClXarplCZXMFaf8OKCTSEeJ57o6cdDoyy4A,2725
137
+ core_framework/worker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
138
+ core_framework/worker/main.py,sha256=zwLPl2WMtXDBXwzjaUzE-ZaHCPMBum0eKltaqI56VQQ,1974
139
+ core_framework/worker/schedules/__init__.py,sha256=1YPzgThv-fVUTaRVgKOnd8byOIGWKNKidCd_mC712-k,1191
140
+ core_framework/worker/schedules/schedule_aggregate_comment_stats.py,sha256=ZcjgdRXcKpqXBMvMQ_Dtqo6KCZOW_4YbNAFGwS-KOjc,1180
141
+ core_framework/worker/schedules/schedule_aggregate_post_view_counts.py,sha256=KGVl6SKIohxql4ShbnOwqvfR5CWRYsRGrbWphTpvmrY,863
142
+ core_framework/worker/schedules/schedule_expired_account_deletions.py,sha256=SOxBbmhx4speUSQHL7IO7GdJEiiQxb3fNhORGhsBIJY,794
143
+ core_framework/worker/schedules/schedule_expired_mute_lifts.py,sha256=0hkETQTpOPEdastox054IEQdRVV4guYn-tXb9hK-VAY,770
144
+ core_framework/worker/tasks/__init__.py,sha256=0ncWXYdTGV1osaoXNq84c89wMw2x2HsbrkzN47eTLks,505
145
+ core_framework/worker/tasks/process_account_deletion.py,sha256=qg9wfVKPaUgUkr4OzpwP8S5L_dVicSUXSiVwWJ7nLpY,456
146
+ core_framework/worker/tasks/process_aggregate_comment_stats.py,sha256=W9MUlfFMtJ8vrNazD0dYE9MaJrOmZI9ZDaSRiXC75kA,710
147
+ core_framework/worker/tasks/process_aggregate_post_stats.py,sha256=-UbqdSrx_Pt_mWZqsla672Jj2USM9js-7DSz2XGP8OM,405
148
+ core_framework/worker/tasks/process_mute_lift.py,sha256=uEK7yLh5-ShvPaOKr1Fy7pCGOrasdQ6ZyKgxMtghZis,469
149
+ core_framework/alembic/comment/alembic.ini,sha256=UmDYXlchSHx6XUR8G23G9d7hr1nrOgTaxkEVxrGtmKk,934
150
+ core_framework/alembic/comment/alembic/README,sha256=4rQvyDfqodGhpJw74VYijRmgFP49ji5chyEemWGHsuw,59
151
+ core_framework/alembic/comment/alembic/env.py,sha256=NGcmSpaUsfVaXHwTempXOQQ-ql3grs4VN01WObgf2Mo,2049
152
+ core_framework/alembic/comment/alembic/script.py.mako,sha256=04kgeBtNMa4cCnG8CfQcKt6P6rnloIfj8wy0u_DBydM,704
153
+ core_framework/alembic/comment/alembic/versions/30334fd1347b_init.py,sha256=ca2uVAnwHkvwBoAYHsBxGDvA-U-fru9R6feU8qVlIe8,1891
154
+ core_framework/alembic/comment/alembic/versions/a2b3c4d5e6f7_improve_comment_indexes.py,sha256=SMXw-wLhLYRsQZFJWDEiGAbjrAu9R1x68iqtnjhAWGU,1533
155
+ core_framework/alembic/comment/alembic/versions/bcc8e00cfc8b_add_extra_tables.py,sha256=kuiAkN9jKLpRqZLmFVD80FDvrf1-tDYmHJ_8U61I-Zg,2331
156
+ core_framework/alembic/comment/alembic/versions/d1e2f3a4b5c6_add_comment_stats_dirty_table.py,sha256=cvdLcTcJK9wgf5j9xSUUYFyPec9XMhrhApVtyxgu6qk,683
157
+ core_framework/alembic/comment/alembic/versions/e3f4a5b6c7d8_cascade_delete_comment_descendants.py,sha256=iK1jCcZrS7H7Gbotaq1fmD1KQDW7qQc17yYgykDfT3o,1323
158
+ core_framework/alembic/comment/alembic/versions/f7e6d5c4b3a2_comments_path_to_ltree.py,sha256=GKs1375D_UipZTZmGPUScLZBZSetloQP2YrdAlJT-hU,1680
159
+ core_framework/alembic/extension/alembic.ini,sha256=wpStuy3-V_6PzuXbbj-mOiLXRvB8j-dCg91Olf26_Vs,4807
160
+ core_framework/alembic/extension/alembic/README,sha256=4rQvyDfqodGhpJw74VYijRmgFP49ji5chyEemWGHsuw,59
161
+ core_framework/alembic/extension/alembic/env.py,sha256=Mtd0dIr7pVhQnslQbTQfQUlkFdS0GdwA6OUzzPdnA74,2799
162
+ core_framework/alembic/extension/alembic/script.py.mako,sha256=04kgeBtNMa4cCnG8CfQcKt6P6rnloIfj8wy0u_DBydM,704
163
+ core_framework/alembic/extension/alembic/versions/0389226049cb_add_pg_trgm_extension.py,sha256=9TbRxXzRc1iX4GFYAboVpH9ClnwCw43J3vFu8UKApPw,554
164
+ core_framework/alembic/extension/alembic/versions/5dc58b016cf5_add_citext_extension.py,sha256=ae9_gdt4xk8bURvCk2bOwmRF602-y-x3V_nwL73KeuU,528
165
+ core_framework/alembic/extension/alembic/versions/b0ba0d8a284e_add_pg_stat_statements_extension.py,sha256=N0JNFj8AFHgPi2v4Bm_ndebWjce9VZnygMVHGVYawmo,587
166
+ core_framework/alembic/extension/alembic/versions/c9d0e1f2a3b4_add_ltree_extension.py,sha256=MkDbalzkrmPbv3B5hBVv1ut4Q2mC8Y63XcsUD3V5K24,562
167
+ core_framework/alembic/moderation/alembic.ini,sha256=wpStuy3-V_6PzuXbbj-mOiLXRvB8j-dCg91Olf26_Vs,4807
168
+ core_framework/alembic/moderation/alembic/README,sha256=4rQvyDfqodGhpJw74VYijRmgFP49ji5chyEemWGHsuw,59
169
+ core_framework/alembic/moderation/alembic/env.py,sha256=U7RZitgtF4JfMEGxRZcF-Yx3KWY0r8MEOXfJLkoYN94,2800
170
+ core_framework/alembic/moderation/alembic/script.py.mako,sha256=04kgeBtNMa4cCnG8CfQcKt6P6rnloIfj8wy0u_DBydM,704
171
+ core_framework/alembic/moderation/alembic/versions/085ba9021850_add_category_to_user_restrictions.py,sha256=Vzyv0RPj9_TOS3gRnO0w437-yGH8MzH03uy6V03RPWY,3838
172
+ core_framework/alembic/moderation/alembic/versions/5f9e4fc14a41_create_moderation_appeals_table.py,sha256=mzFhA8xQQqzXhb9P3tn00iiY8DSISrGkQgwoyEl-2kI,2270
173
+ core_framework/alembic/moderation/alembic/versions/63e37381e73b_add_user_reports_table.py,sha256=kTB5zYKhWu9j-7QGZSurX7pjfPMm760QD6cFSKJX0UU,835
174
+ core_framework/alembic/moderation/alembic/versions/6a2ae31b7ac6_add_moderation_actions_table.py,sha256=DBhMyVKyH5vx7Lp6Ab-Y-CRcB2PvIocPudLOYG-H2yE,922
175
+ core_framework/alembic/moderation/alembic/versions/716aa1735c03_improve_indexes.py,sha256=yWAvp3gH0Fq3JGBnAenbAwsneN2A-ln7_1eVhJ8YiY4,1003
176
+ core_framework/alembic/moderation/alembic/versions/7d243ddbfde1_add_post_reports_table.py,sha256=2Xb__BguIiUHX59qGYXcIIPzw3N9-bu_06dCgv-XMCk,1000
177
+ core_framework/alembic/moderation/alembic/versions/8fba1f72dd46_add_indexes.py,sha256=Eo7zS76GTPoQw3JJDTE9-f5aaCuD7pxdbBwtH-Hf-H0,1743
178
+ core_framework/alembic/moderation/alembic/versions/95cc35a51984_update_restriction_history.py,sha256=sUz554DZNcdR14aJUSsdP8405G_zkQcZPvSJSm6p_ig,2548
179
+ core_framework/alembic/moderation/alembic/versions/9ad79d0af730_add_unique_constraint_user_reports_.py,sha256=cDhw7Q9aFjodxyWNSv_9d2WbUq43owFFN7GgpGbiYO0,710
180
+ core_framework/alembic/moderation/alembic/versions/a5e569f5df1a_create_user_restrictions_table.py,sha256=F2HSu9oBnD6HUDNZQu0YMkr2lZnEPSJWAtHvwPUU1XM,1052
181
+ core_framework/alembic/moderation/alembic/versions/b2c3d4e5f6a7_add_indexes.py,sha256=Y1vvKL-8W4PV9GadJYnKNplQOGd5dddaneXRwSvbzTo,1232
182
+ core_framework/alembic/moderation/alembic/versions/c3d4e5f6a7b8_improve_report_indexes.py,sha256=Wvvj4yDeUBVqhp2rAd7GMDZnuvdkbHKThwRge46IUr4,1342
183
+ core_framework/alembic/moderation/alembic/versions/d4af74643ff5_add_internal_notes_table.py,sha256=G9MsW6zzuIcti-yM76yrtE5Yx1XaYskAdgh_9AHOnCc,1043
184
+ core_framework/alembic/moderation/alembic/versions/db20f2fb7390_add_comment_reports_table.py,sha256=6mTGzpoZiuJxJkQUB7Y8a9IT-tzXCmSOkholOskH-T4,1012
185
+ core_framework/alembic/moderation/alembic/versions/e66226952ea6_add_report_category_to_user_reports_.py,sha256=4EQXLLwKaVuebOQIOEC5ZTyLbp0J2Ydi6_YXd8AEDN4,1335
186
+ core_framework/alembic/moderation/alembic/versions/f5e8cb275c30_enforce_1_pending_appeal.py,sha256=Bhliv7MwLeDRSDpj-FLPxpSJPqKAc-WRUzJSVL2jV8w,692
187
+ core_framework/alembic/moderation/alembic/versions/fe1faad2832d_create_restriction_history_table.py,sha256=03YPPHxzLlRoQA4n5RZUsP5PXFDrMTIm8c3DCJAjbG8,2708
188
+ core_framework/alembic/post/alembic.ini,sha256=_4cCLApYOVZoyiux9QpgfZHvdaswPWgO099qWIhxxBM,5008
189
+ core_framework/alembic/post/alembic/README,sha256=4rQvyDfqodGhpJw74VYijRmgFP49ji5chyEemWGHsuw,59
190
+ core_framework/alembic/post/alembic/env.py,sha256=7O_6-42g6Id5zQ-UMd8Nhg6fCbUW6feQvELNYiHOo9A,2793
191
+ core_framework/alembic/post/alembic/script.py.mako,sha256=04kgeBtNMa4cCnG8CfQcKt6P6rnloIfj8wy0u_DBydM,704
192
+ core_framework/alembic/post/alembic/versions/51542673f5c8_add_tables_for_muted_banned_users.py,sha256=d-SM0NQ9LVKlInvUza50ZlOaybx0AEtE4wAAc9t3f1s,1239
193
+ core_framework/alembic/post/alembic/versions/5beeeae40a4a_add_post_views_table.py,sha256=5DRlaAI7hfYlvgZpNE52dVUgT9A0Gr26p_IjthhyREI,1299
194
+ core_framework/alembic/post/alembic/versions/620971509a8b_init.py,sha256=JcLoKxpOkW1nMu8zykw1iB66SNQc-QAWT7N-Y2HxciI,1557
195
+ core_framework/alembic/post/alembic/versions/a1b2c3d4e5f6_add_indexes.py,sha256=rudbv9tb1dTjUsVqQNm6Qcsc97JoUxdvUHURm8Eyg8w,1218
196
+ core_framework/alembic/post/alembic/versions/c1d2e3f4a5b6_add_post_hashtags_table.py,sha256=wIriz01ARynir2R1jlxdYp0-a0y_mnO4ADyJVZlH-x8,951
197
+ core_framework/alembic/post/alembic/versions/e56723f2afff_add_post_stats_table.py,sha256=CdbTGNEjl4blfGL91qE3bIZKe-OXmgxYMEtO5xNnWhU,1331
198
+ core_framework/alembic/post/alembic/versions/fbc723ac58cc_add_post_likes_table.py,sha256=Sp1IRJBWlIJhgVXlUsSoVIinuQqbvf429Q6Dd8UDfzc,811
199
+ core_framework/alembic/user/alembic.ini,sha256=wpStuy3-V_6PzuXbbj-mOiLXRvB8j-dCg91Olf26_Vs,4807
200
+ core_framework/alembic/user/alembic/README,sha256=4rQvyDfqodGhpJw74VYijRmgFP49ji5chyEemWGHsuw,59
201
+ core_framework/alembic/user/alembic/env.py,sha256=MN9m-RlQMVx3lWnQ_g7dQVpU_ogeq2Uy-vIdRxApSeM,2794
202
+ core_framework/alembic/user/alembic/script.py.mako,sha256=04kgeBtNMa4cCnG8CfQcKt6P6rnloIfj8wy0u_DBydM,704
203
+ core_framework/alembic/user/alembic/versions/1a8bb99726ed_remove_avatar_id_from_users.py,sha256=9tVXigyMrs_g98M0ZdSPUGxzAEMriS5Z47YoaPmL768,3234
204
+ core_framework/alembic/user/alembic/versions/2ccacf455941_improve_indexes.py,sha256=9cGeocOAsgfgkqvnxc7n3mipyY7CbxSDOMPxJqE4KGM,847
205
+ core_framework/alembic/user/alembic/versions/47f47ce2110e_create_user_deletions_table.py,sha256=djOnC9TuegbkQFxjBwdxxmlGcE5nkKG70EinK_lWJzQ,794
206
+ core_framework/alembic/user/alembic/versions/5976db3f0175_drop_user_states.py,sha256=Wa2FbaN8DIISnNpzHY_9N9uVyCxiFOtDv3UOncU3Jg8,566
207
+ core_framework/alembic/user/alembic/versions/62417002cf32_add_indexes.py,sha256=NiBG5bqSnhcWdm8nXjBxZoYRDHnn3CzgIcS4LrDRNuM,1200
208
+ core_framework/alembic/user/alembic/versions/6f7ccf3c226b_refactor_user_login_events.py,sha256=_lifjhuwtg-jSmHj30kxbPf3f47kyoMLT6oEBClzSO4,2321
209
+ core_framework/alembic/user/alembic/versions/73432817015b_add_user_preferences_table.py,sha256=3Vs2uPQ_NvyUZ0imjJKgGs5Mv5TuKbORz6VimDIT55s,920
210
+ core_framework/alembic/user/alembic/versions/765bc01a7a59_create_user_blocks_table.py,sha256=OLbohV8Qk6RidvtJ6pAF70e_MUJIYchRBtHLAF7pjXo,947
211
+ core_framework/alembic/user/alembic/versions/7a56631f9927_create_user_login_events_table.py,sha256=-JeeGrNeBrCMI_5QgR5-LDufWVCwb_QeKdreKNKSP04,1571
212
+ core_framework/alembic/user/alembic/versions/831611e589bc_create_user_state.py,sha256=x8SkTcOoAU44qOmUnSkPX8I3hs5tSooiP2FjWuVWtYU,649
213
+ core_framework/alembic/user/alembic/versions/83c98ab2a779_add_user_profiles_table.py,sha256=lFj4d_SpGb8HARzer_mZ1zWUfv7m3O0mD0a7_Fad8Kw,4381
214
+ core_framework/alembic/user/alembic/versions/8a94362cad6d_create_user_role.py,sha256=pg593h8lgO00HNFKY8fphKGZUVjiiwHiu3JRmRJD8Lc,626
215
+ core_framework/alembic/user/alembic/versions/94b973923895_add_user_change_history_table.py,sha256=9EHOt8HMiZP6pQr_84yTi1x3s6Lh4T52jWVThMcHmf4,4117
216
+ core_framework/alembic/user/alembic/versions/cbc0f4efe84f_add_avatar_id_column_to_users_table.py,sha256=YtpY1aaoQ401yHlwbZEEH4hpjM9VLXiISI_8Bau7iWA,660
217
+ core_framework/alembic/user/alembic/versions/d8b98ac6b073_add_index_for_get_admin_user_ids_query.py,sha256=6lf9fQggiILRqYXYFHRkbkkyNim-NtUM6qPFNpA8yC8,668
218
+ core_framework/alembic/user/alembic/versions/ddb70cc09d16_create_user_states_table.py,sha256=K3GXDbDTdRXU4Iyjm_ciaMC5VSsAXBFebVIa67wMonI,913
219
+ core_framework/alembic/user/alembic/versions/f9ba10815ecd_add_users_table.py,sha256=o5ObfX25XqYpPeh1xenb7SSaDFkOylqTWwmXlTOdhv4,835
220
+ core_framework-0.3.0.dist-info/METADATA,sha256=RfHUFgqgIFReg_TYFf4u82oQOFOZsDM2NI7IvL25_PQ,745
221
+ core_framework-0.3.0.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
222
+ core_framework-0.3.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.29.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any