django-slack-tools 0.3.2__tar.gz → 0.3.3__tar.gz

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 (212) hide show
  1. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/.devcontainer/devcontainer.json +1 -1
  2. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/.github/workflows/ci.yaml +8 -14
  3. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/.github/workflows/docs.yaml +8 -9
  4. django_slack_tools-0.3.3/.github/workflows/prepare-release.yaml +51 -0
  5. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/.github/workflows/release.yaml +22 -17
  6. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/PKG-INFO +2 -3
  7. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/README.md +1 -2
  8. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/pyproject.toml +1 -1
  9. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/messenger/backends/test_dummy.py +1 -1
  10. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/messenger/backends/test_logging_.py +1 -1
  11. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/messenger/backends/test_slack.py +3 -3
  12. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/test_message_templates.py +2 -2
  13. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/test_middlewares.py +1 -1
  14. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/test_template_loaders.py +1 -1
  15. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/test_shortcuts.py +1 -1
  16. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/test_validators.py +2 -2
  17. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/test_app_settings.py +1 -1
  18. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/utils/slack/test_misc.py +2 -2
  19. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/uv.lock +30 -30
  20. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/.devcontainer/onCreateCommand.sh +0 -0
  21. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/.editorconfig +0 -0
  22. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/.gitattributes +0 -0
  23. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/.github/dependabot.yaml +0 -0
  24. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/.gitignore +0 -0
  25. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/.pre-commit-config.yaml +0 -0
  26. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/.python-version +0 -0
  27. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/.vscode/extensions.json +0 -0
  28. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/.vscode/launch.json +0 -0
  29. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/.vscode/settings.json +0 -0
  30. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/CONTRIBUTING.md +0 -0
  31. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/LICENSE +0 -0
  32. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/Makefile +0 -0
  33. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/__init__.py +0 -0
  34. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/app_settings.py +0 -0
  35. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/locale/ko_KR/LC_MESSAGES/django.po +0 -0
  36. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/messenger/__init__.py +0 -0
  37. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/messenger/backends/__init__.py +0 -0
  38. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/messenger/backends/base.py +0 -0
  39. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/messenger/backends/dummy.py +0 -0
  40. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/messenger/backends/logging_.py +0 -0
  41. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/messenger/backends/slack.py +0 -0
  42. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/messenger/message_templates/__init__.py +0 -0
  43. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/messenger/message_templates/base.py +0 -0
  44. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/messenger/message_templates/python.py +0 -0
  45. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/messenger/messenger.py +0 -0
  46. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/messenger/middlewares/__init__.py +0 -0
  47. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/messenger/middlewares/base.py +0 -0
  48. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/messenger/request.py +0 -0
  49. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/messenger/response.py +0 -0
  50. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/messenger/shortcuts.py +0 -0
  51. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/messenger/template_loaders/__init__.py +0 -0
  52. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/messenger/template_loaders/base.py +0 -0
  53. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/messenger/template_loaders/errors.py +0 -0
  54. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/py.typed +0 -0
  55. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_events/__init__.py +0 -0
  56. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_events/views.py +0 -0
  57. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_messages/__init__.py +0 -0
  58. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_messages/admin/__init__.py +0 -0
  59. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_messages/admin/mention.py +0 -0
  60. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_messages/admin/message.py +0 -0
  61. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_messages/admin/message_recipient.py +0 -0
  62. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_messages/admin/messaging_policy.py +0 -0
  63. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_messages/apps.py +0 -0
  64. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_messages/messenger/__init__.py +0 -0
  65. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_messages/messenger/message_templates.py +0 -0
  66. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_messages/messenger/middlewares.py +0 -0
  67. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_messages/messenger/template_loaders.py +0 -0
  68. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_messages/migrations/0001_initial.py +0 -0
  69. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_messages/migrations/0002_default_policy.py +0 -0
  70. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_messages/migrations/0003_default_recipient.py +0 -0
  71. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_messages/migrations/0004_slackmessagingpolicy_template_type.py +0 -0
  72. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_messages/migrations/0005_alter_slackmessagingpolicy_template_type.py +0 -0
  73. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_messages/migrations/0006_alter_slackmessage_id.py +0 -0
  74. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_messages/migrations/__init__.py +0 -0
  75. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_messages/models/__init__.py +0 -0
  76. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_messages/models/mention.py +0 -0
  77. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_messages/models/message.py +0 -0
  78. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_messages/models/message_recipient.py +0 -0
  79. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_messages/models/messaging_policy.py +0 -0
  80. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_messages/shortcuts.py +0 -0
  81. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_messages/tasks.py +0 -0
  82. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/slack_messages/validators.py +0 -0
  83. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/utils/__init__.py +0 -0
  84. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/utils/django/__init__.py +0 -0
  85. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/utils/django/model_mixins.py +0 -0
  86. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/utils/django/widgets.py +0 -0
  87. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/utils/import_helper.py +0 -0
  88. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/utils/repr.py +0 -0
  89. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/utils/slack/__init__.py +0 -0
  90. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/django_slack_tools/utils/slack/misc.py +0 -0
  91. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/docs/api-references/messenger.md +0 -0
  92. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/docs/api-references/slack-messages.md +0 -0
  93. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/docs/index.md +0 -0
  94. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/docs/quick-start.md +0 -0
  95. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/docs/usages/celery-support.md +0 -0
  96. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/docs/usages/sending-messages.md +0 -0
  97. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/.env.example +0 -0
  98. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/.python-version +0 -0
  99. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/Makefile +0 -0
  100. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/README.md +0 -0
  101. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/docker-compose.yaml +0 -0
  102. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/docs/messages.png +0 -0
  103. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/docs/slack-app-home.png +0 -0
  104. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/docs/slash-command.png +0 -0
  105. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/dump.json +0 -0
  106. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/manage.py +0 -0
  107. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/pyproject.toml +0 -0
  108. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/todo/__init__.py +0 -0
  109. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/todo/celery.py +0 -0
  110. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/todo/settings.py +0 -0
  111. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/todo/slack_app.py +0 -0
  112. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/todo/urls.py +0 -0
  113. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/todo/wsgi.py +0 -0
  114. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/todo_app/__init__.py +0 -0
  115. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/todo_app/admin.py +0 -0
  116. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/todo_app/apps.py +0 -0
  117. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/todo_app/migrations/0001_initial.py +0 -0
  118. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/todo_app/migrations/__init__.py +0 -0
  119. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/todo_app/models.py +0 -0
  120. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/todo_app/services.py +0 -0
  121. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/todo_app/signals.py +0 -0
  122. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/todo_app/slack_listeners.py +0 -0
  123. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/todo_app/templates/todo-created.xml +0 -0
  124. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/todo_app/templates/todo-updated.xml +0 -0
  125. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/examples/todo/uv.lock +0 -0
  126. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/manage.py +0 -0
  127. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/mkdocs.yaml +0 -0
  128. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/noxfile.py +0 -0
  129. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/testproj/__init__.py +0 -0
  130. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/testproj/config/__init__.py +0 -0
  131. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/testproj/config/settings.py +0 -0
  132. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/testproj/config/slack_app.py +0 -0
  133. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/testproj/config/urls.py +0 -0
  134. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/testproj/config/wsgi.py +0 -0
  135. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/testproj/manage.py +0 -0
  136. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/testproj/templates/greet.xml +0 -0
  137. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/__init__.py +0 -0
  138. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/_factories.py +0 -0
  139. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/_helpers.py +0 -0
  140. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/conftest.py +0 -0
  141. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/messenger/__init__.py +0 -0
  142. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/messenger/_factories.py +0 -0
  143. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/messenger/_helpers.py +0 -0
  144. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/messenger/backends/__init__.py +0 -0
  145. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/messenger/backends/test_base.py +0 -0
  146. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/messenger/message_templates/__init__.py +0 -0
  147. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/messenger/message_templates/test_base.py +0 -0
  148. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/messenger/message_templates/test_python.py +0 -0
  149. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/messenger/middlewares/__init__.py +0 -0
  150. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/messenger/middlewares/test_base.py +0 -0
  151. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/messenger/template_loaders/__init__.py +0 -0
  152. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/messenger/template_loaders/test_base.py +0 -0
  153. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/messenger/test_messenger.py +0 -0
  154. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/messenger/test_request.py +0 -0
  155. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/messenger/test_response.py +0 -0
  156. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/messenger/test_shortcuts.py +0 -0
  157. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_events/__init__.py +0 -0
  158. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_events/test_views.py +0 -0
  159. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/__init__.py +0 -0
  160. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/_factories.py +0 -0
  161. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/admin/__init__.py +0 -0
  162. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/admin/test_mention.py +0 -0
  163. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/admin/test_message.py +0 -0
  164. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/admin/test_message_recipient.py +0 -0
  165. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/admin/test_messaging_policy.py +0 -0
  166. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/__init__.py +0 -0
  167. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/approval.json +0 -0
  168. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/approval.png +0 -0
  169. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/approval.xml +0 -0
  170. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/bullet-list.json +0 -0
  171. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/bullet-list.png +0 -0
  172. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/bullet-list.xml +0 -0
  173. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/complex-template-with-context.xml +0 -0
  174. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/complex-template.json +0 -0
  175. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/complex-template.png +0 -0
  176. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/complex-template.xml +0 -0
  177. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/newsletter.json +0 -0
  178. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/newsletter.png +0 -0
  179. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/newsletter.xml +0 -0
  180. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/notification.json +0 -0
  181. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/notification.png +0 -0
  182. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/notification.xml +0 -0
  183. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/onboarding-1.json +0 -0
  184. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/onboarding-1.png +0 -0
  185. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/onboarding-1.xml +0 -0
  186. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/onboarding-2.json +0 -0
  187. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/onboarding-2.png +0 -0
  188. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/onboarding-2.xml +0 -0
  189. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/poll.json +0 -0
  190. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/poll.png +0 -0
  191. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/poll.xml +0 -0
  192. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/search-results-1.json +0 -0
  193. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/search-results-1.png +0 -0
  194. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/search-results-1.xml +0 -0
  195. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/search-results-2.json +0 -0
  196. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/search-results-2.png +0 -0
  197. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/messenger/testcases/search-results-2.xml +0 -0
  198. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/models/__init__.py +0 -0
  199. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/models/_factories.py +0 -0
  200. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/models/test_mention.py +0 -0
  201. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/models/test_message.py +0 -0
  202. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/models/test_message_recipient.py +0 -0
  203. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/models/test_messaging_policy.py +0 -0
  204. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/test_apps.py +0 -0
  205. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/slack_messages/test_tasks.py +0 -0
  206. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/utils/__init__.py +0 -0
  207. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/utils/django/__init__.py +0 -0
  208. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/utils/django/test_model_mixins.py +0 -0
  209. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/utils/django/test_widgets.py +0 -0
  210. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/utils/slack/__init__.py +0 -0
  211. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/utils/test_import_helper.py +0 -0
  212. {django_slack_tools-0.3.2 → django_slack_tools-0.3.3}/tests/utils/test_repr.py +0 -0
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "lasuillard/django-slack-tools",
2
+ "name": "lasuillard-s/django-slack-tools",
3
3
  "image": "mcr.microsoft.com/devcontainers/base:1-bookworm",
4
4
  "features": {
5
5
  "ghcr.io/devcontainers-extra/features/pre-commit:2": {},
@@ -6,21 +6,18 @@ on:
6
6
  pull_request:
7
7
  branches: [main]
8
8
 
9
- permissions: read-all
10
-
11
9
  env:
12
10
  UV_FROZEN: 1
13
11
 
14
12
  jobs:
15
13
  lint:
16
- name: Lint
17
14
  runs-on: ubuntu-latest
15
+ timeout-minutes: 5
16
+ permissions:
17
+ contents: read
18
18
  steps:
19
- - name: Checkout
20
- uses: actions/checkout@v5
21
-
22
- - name: Set up uv
23
- uses: astral-sh/setup-uv@v6
19
+ - uses: actions/checkout@v5
20
+ - uses: astral-sh/setup-uv@v7
24
21
  with:
25
22
  version: latest
26
23
  enable-cache: true
@@ -36,7 +33,7 @@ jobs:
36
33
  if: always()
37
34
 
38
35
  test:
39
- name: Test (Python ${{ matrix.python-version }}, Django ${{ matrix.django-version }})
36
+ name: test (py${{ matrix.python-version }}, django${{ matrix.django-version }})
40
37
  runs-on: ubuntu-latest
41
38
  permissions:
42
39
  contents: read
@@ -54,11 +51,8 @@ jobs:
54
51
  django-version: "5.2"
55
52
 
56
53
  steps:
57
- - name: Checkout
58
- uses: actions/checkout@v5
59
-
60
- - name: Set up uv
61
- uses: astral-sh/setup-uv@v6
54
+ - uses: actions/checkout@v5
55
+ - uses: astral-sh/setup-uv@v7
62
56
  with:
63
57
  version: latest
64
58
  enable-cache: true
@@ -9,14 +9,13 @@ env:
9
9
 
10
10
  jobs:
11
11
  build-docs:
12
- name: Build Docs
13
12
  runs-on: ubuntu-latest
13
+ timeout-minutes: 10
14
+ permissions:
15
+ contents: read
14
16
  steps:
15
- - name: Checkout
16
- uses: actions/checkout@v5
17
-
18
- - name: Set up uv
19
- uses: astral-sh/setup-uv@v6
17
+ - uses: actions/checkout@v5
18
+ - uses: astral-sh/setup-uv@v7
20
19
  with:
21
20
  version: latest
22
21
  enable-cache: true
@@ -28,14 +27,14 @@ jobs:
28
27
  run: make docs
29
28
 
30
29
  - name: Upload docs artifact
31
- uses: actions/upload-pages-artifact@v4
30
+ uses: actions/upload-pages-artifact@v
32
31
  with:
33
32
  path: site/
34
33
 
35
- deploy-docs:
36
- name: Deploy Docs
34
+ publish-docs:
37
35
  needs: build-docs
38
36
  runs-on: ubuntu-latest
37
+ timeout-minutes: 5
39
38
  permissions:
40
39
  pages: write
41
40
  id-token: write
@@ -0,0 +1,51 @@
1
+ name: Prepare Release
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ tag:
7
+ description: Semver-style tag for release (e.g., v1.0.0)
8
+ required: true
9
+
10
+ jobs:
11
+ create-pr:
12
+ runs-on: ubuntu-latest
13
+ timeout-minutes: 5
14
+ permissions:
15
+ contents: write
16
+ pull-requests: write
17
+ steps:
18
+ - name: Check tag format
19
+ run: |
20
+ if [[ ! "${{ inputs.tag }}" =~ ^v ]]; then
21
+ echo "Tag must start with 'v'"
22
+ exit 1
23
+ fi
24
+
25
+ - uses: actions/checkout@v5
26
+ - uses: astral-sh/setup-uv@v7
27
+ with:
28
+ version: latest
29
+ enable-cache: true
30
+
31
+ - name: Set version
32
+ run: |
33
+ tag="${{ inputs.tag }}"
34
+ tag_no_v="${tag#v}"
35
+ uv version "${tag#v}"
36
+
37
+ - name: Generate GitHub App token
38
+ uses: actions/create-github-app-token@v2
39
+ id: generate-token
40
+ with:
41
+ app-id: ${{ vars.GH_APP_ID }}
42
+ private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
43
+
44
+ - name: Create pull request
45
+ uses: peter-evans/create-pull-request@v7.0.8
46
+ with:
47
+ token: ${{ steps.generate-token.outputs.token }}
48
+ sign-commits: true
49
+ title: Release ${{ inputs.tag }}
50
+ branch: release/${{ inputs.tag }}
51
+ delete-branch: true
@@ -1,60 +1,65 @@
1
1
  name: Release
2
2
 
3
3
  on:
4
- push:
5
- tags: [v*]
4
+ release:
5
+ types: [published]
6
6
 
7
7
  env:
8
8
  UV_FROZEN: 1
9
9
 
10
10
  jobs:
11
11
  release:
12
- name: Release
13
12
  runs-on: ubuntu-latest
13
+ timeout-minutes: 5
14
14
  permissions:
15
15
  contents: write
16
16
  steps:
17
- - name: Checkout
18
- uses: actions/checkout@v5
19
-
20
- - name: Set up uv
21
- uses: astral-sh/setup-uv@v6
17
+ - uses: actions/checkout@v5
18
+ - uses: astral-sh/setup-uv@v7
22
19
  with:
23
20
  version: latest
24
21
  enable-cache: true
25
22
 
26
23
  - name: Install deps
27
- run: uv sync
24
+ run: uv sync --frozen
28
25
 
29
26
  - name: Build package
30
27
  run: uv build
31
28
 
32
29
  - name: Create release
33
- uses: softprops/action-gh-release@v2
30
+ uses: softprops/action-gh-release@v2.4.1
34
31
  with:
32
+ tag_name: ${{ github.event.release.tag_name }}
35
33
  generate_release_notes: true
36
34
  files: dist/*
37
35
 
36
+ - name: Show files
37
+ run: ls -l --all --recursive dist
38
+
38
39
  - name: Upload release distributions
39
- uses: actions/upload-artifact@v4
40
+ uses: actions/upload-artifact@v5
40
41
  with:
41
42
  name: release-dists
42
43
  path: dist/
43
44
 
44
45
  publish-pypi:
45
- name: Publish to PyPI
46
+ needs: release
46
47
  runs-on: ubuntu-latest
47
- needs:
48
- - release
48
+ environment: pypi
49
+ timeout-minutes: 5
49
50
  permissions:
50
51
  id-token: write
51
- environment: pypi
52
52
  steps:
53
- - name: Retrieve release distributions
54
- uses: actions/download-artifact@v5
53
+ - name: Download release distributions
54
+ uses: actions/download-artifact@v6
55
55
  with:
56
56
  name: release-dists
57
57
  path: dist/
58
58
 
59
+ - name: Show artifacts
60
+ run: ls -l --all --recursive dist
61
+
59
62
  - name: Publish release distributions to PyPI
60
63
  uses: pypa/gh-action-pypi-publish@release/v1
64
+ with:
65
+ skip-existing: true
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-slack-tools
3
- Version: 0.3.2
3
+ Version: 0.3.3
4
4
  Summary: Little helpers working with Slack bot 🤖 in Django.
5
5
  Project-URL: Homepage, https://github.com/lasuillard/django-slack-tools
6
6
  Project-URL: Repository, https://github.com/lasuillard/django-slack-tools.git
@@ -20,8 +20,7 @@ Description-Content-Type: text/markdown
20
20
  # django-slack-tools
21
21
 
22
22
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
23
- [![CI](https://github.com/lasuillard/django-slack-tools/actions/workflows/ci.yaml/badge.svg)](https://github.com/lasuillard/django-slack-tools/actions/workflows/ci.yaml)
24
- [![codecov](https://codecov.io/gh/lasuillard/django-slack-tools/graph/badge.svg?token=c8kzjqjplF)](https://codecov.io/gh/lasuillard/django-slack-tools)
23
+ [![codecov](https://codecov.io/gh/lasuillard-s/django-slack-tools/graph/badge.svg?token=c8kzjqjplF)](https://codecov.io/gh/lasuillard-s/django-slack-tools)
25
24
  [![PyPI - Version](https://img.shields.io/pypi/v/django-slack-tools)](https://pypi.org/project/django-slack-tools/)
26
25
 
27
26
  Little helpers working with Slack bot 🤖 in Django.
@@ -1,8 +1,7 @@
1
1
  # django-slack-tools
2
2
 
3
3
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4
- [![CI](https://github.com/lasuillard/django-slack-tools/actions/workflows/ci.yaml/badge.svg)](https://github.com/lasuillard/django-slack-tools/actions/workflows/ci.yaml)
5
- [![codecov](https://codecov.io/gh/lasuillard/django-slack-tools/graph/badge.svg?token=c8kzjqjplF)](https://codecov.io/gh/lasuillard/django-slack-tools)
4
+ [![codecov](https://codecov.io/gh/lasuillard-s/django-slack-tools/graph/badge.svg?token=c8kzjqjplF)](https://codecov.io/gh/lasuillard-s/django-slack-tools)
6
5
  [![PyPI - Version](https://img.shields.io/pypi/v/django-slack-tools)](https://pypi.org/project/django-slack-tools/)
7
6
 
8
7
  Little helpers working with Slack bot 🤖 in Django.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "django-slack-tools"
3
- version = "0.3.2"
3
+ version = "0.3.3"
4
4
  description = "Little helpers working with Slack bot 🤖 in Django."
5
5
  authors = [{ name = "Yuchan Lee", email = "lasuillard@gmail.com" }]
6
6
  readme = "README.md"
@@ -44,5 +44,5 @@ class TestDummyBackend:
44
44
  header=MessageHeader(),
45
45
  body=None,
46
46
  )
47
- with pytest.raises(ValueError, match="Message body is required."):
47
+ with pytest.raises(ValueError, match=r"Message body is required."):
48
48
  backend.deliver(request)
@@ -44,5 +44,5 @@ class TestLoggingBackend:
44
44
  header=MessageHeader(),
45
45
  body=None,
46
46
  )
47
- with pytest.raises(ValueError, match="Message body is required."):
47
+ with pytest.raises(ValueError, match=r"Message body is required."):
48
48
  backend.deliver(request)
@@ -41,7 +41,7 @@ class TestSlackBackend:
41
41
  assert SlackBackend(slack_app=_slack_app)
42
42
  with pytest.raises(
43
43
  TypeError,
44
- match="Expected <class 'slack_bolt.app.app.App'> instance, got <class 'int'>",
44
+ match=r"Expected <class 'slack_bolt.app.app.App'> instance, got <class 'int'>",
45
45
  ):
46
46
  SlackBackend(slack_app="tests.messenger.backends.test_slack._not_slack_app")
47
47
 
@@ -74,7 +74,7 @@ class TestSlackBackend:
74
74
  header=MessageHeader(),
75
75
  body=None,
76
76
  )
77
- with pytest.raises(ValueError, match="Message body is required."):
77
+ with pytest.raises(ValueError, match=r"Message body is required."):
78
78
  backend.deliver(request)
79
79
 
80
80
  def test_deliver_remote_api_error(self, backend: SlackBackend, mock_slack_client: Mock) -> None:
@@ -158,7 +158,7 @@ class TestSlackRedirectBackend:
158
158
  header=MessageHeader(),
159
159
  body=None,
160
160
  )
161
- with pytest.raises(ValueError, match="Message body is required."):
161
+ with pytest.raises(ValueError, match=r"Message body is required."):
162
162
  backend.deliver(request)
163
163
 
164
164
  def test_deliver_remote_api_error(self, backend: SlackRedirectBackend, mock_slack_client: Mock) -> None:
@@ -17,11 +17,11 @@ def data_dir() -> Path:
17
17
  class TestDjangoTemplate:
18
18
  def test_instance_creation(self) -> None:
19
19
  # Mutually exclusive arguments provided
20
- with pytest.raises(TypeError, match="Exactly one of 'file' or 'inline' must be provided."):
20
+ with pytest.raises(TypeError, match=r"Exactly one of 'file' or 'inline' must be provided."):
21
21
  DjangoTemplate(file="whatever.xml", inline="<whatever>Whatever</whatever>") # type: ignore[call-overload]
22
22
 
23
23
  # Unsupported file extension
24
- with pytest.raises(TemplateDoesNotExist, match="template-does-not-exists.xml"):
24
+ with pytest.raises(TemplateDoesNotExist, match=r"template-does-not-exists.xml"):
25
25
  DjangoTemplate(file="template-does-not-exists.xml")
26
26
 
27
27
  @pytest.mark.parametrize(
@@ -78,7 +78,7 @@ class TestDjangoDatabasePersister:
78
78
  DjangoDatabasePersister(slack_app=None, get_permalink=False)
79
79
  with pytest.raises(
80
80
  ValueError,
81
- match="`slack_app` must be an instance of `App` if `get_permalink` is set `True`.",
81
+ match=r"`slack_app` must be an instance of `App` if `get_permalink` is set `True`.",
82
82
  ):
83
83
  DjangoDatabasePersister(slack_app=None, get_permalink=True)
84
84
 
@@ -126,5 +126,5 @@ class TestDjangoPolicyTemplateLoader:
126
126
  )
127
127
 
128
128
  loader = DjangoPolicyTemplateLoader()
129
- with pytest.raises(ValueError, match="Unsupported template type: '?'"):
129
+ with pytest.raises(ValueError, match=r"Unsupported template type: '?'"):
130
130
  loader.load("TEST")
@@ -134,7 +134,7 @@ def test_slack_message_mutually_exclusive_arguments(mock_slack_client: Mock) ->
134
134
  mock_slack_client.chat_postMessage.return_value = SlackMessageResponseFactory()
135
135
 
136
136
  # Act & Assert
137
- with pytest.raises(ValueError, match="Either `template` or `message` must be set, but not both."):
137
+ with pytest.raises(ValueError, match=r"Either `template` or `message` must be set, but not both."):
138
138
  slack_message( # type: ignore[call-overload]
139
139
  "whatever-channel",
140
140
  message="Hello, World!",
@@ -16,7 +16,7 @@ def test_header_validator() -> None:
16
16
  "unfurl_media": None,
17
17
  },
18
18
  )
19
- with pytest.raises(ValidationError, match=".+"):
19
+ with pytest.raises(ValidationError, match=r".+"):
20
20
  header_validator(
21
21
  {
22
22
  "_unknown_": "Give me an error",
@@ -37,5 +37,5 @@ def test_body_validator() -> None:
37
37
  "username": None,
38
38
  },
39
39
  )
40
- with pytest.raises(ValidationError, match=".+"):
40
+ with pytest.raises(ValidationError, match=r".+"):
41
41
  body_validator({})
@@ -145,7 +145,7 @@ class TestAppSettings:
145
145
  def test_bad_config_not_slack_app(self) -> None:
146
146
  with pytest.raises(
147
147
  ImproperlyConfigured,
148
- match="Expected <class 'slack_bolt.app.app.App'> instance, got <class 'int'>",
148
+ match=r"Expected <class 'slack_bolt.app.app.App'> instance, got <class 'int'>",
149
149
  ):
150
150
  AppSettings.from_dict(
151
151
  {
@@ -4,10 +4,10 @@ from django_slack_tools.utils.slack import get_block_kit_builder_url
4
4
 
5
5
 
6
6
  def test_get_block_kit_builder_url() -> None:
7
- with pytest.raises(ValueError, match="Only one of `blocks` or `attachments` should be provided."):
7
+ with pytest.raises(ValueError, match=r"Only one of `blocks` or `attachments` should be provided."):
8
8
  get_block_kit_builder_url()
9
9
 
10
- with pytest.raises(ValueError, match="Only one of `blocks` or `attachments` should be provided."):
10
+ with pytest.raises(ValueError, match=r"Only one of `blocks` or `attachments` should be provided."):
11
11
  get_block_kit_builder_url(blocks=[], attachments=[])
12
12
 
13
13
  payload = [
@@ -1,5 +1,5 @@
1
1
  version = 1
2
- revision = 2
2
+ revision = 3
3
3
  requires-python = ">=3.9, <4.0"
4
4
  resolution-markers = [
5
5
  "python_full_version >= '3.11'",
@@ -596,7 +596,7 @@ wheels = [
596
596
 
597
597
  [[package]]
598
598
  name = "django-slack-tools"
599
- version = "0.3.2"
599
+ version = "0.3.3"
600
600
  source = { editable = "." }
601
601
  dependencies = [
602
602
  { name = "django", version = "4.2.20", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
@@ -1634,15 +1634,15 @@ wheels = [
1634
1634
 
1635
1635
  [[package]]
1636
1636
  name = "pytest-xdist"
1637
- version = "3.7.0"
1637
+ version = "3.8.0"
1638
1638
  source = { registry = "https://pypi.org/simple" }
1639
1639
  dependencies = [
1640
1640
  { name = "execnet" },
1641
1641
  { name = "pytest" },
1642
1642
  ]
1643
- sdist = { url = "https://files.pythonhosted.org/packages/49/dc/865845cfe987b21658e871d16e0a24e871e00884c545f246dd8f6f69edda/pytest_xdist-3.7.0.tar.gz", hash = "sha256:f9248c99a7c15b7d2f90715df93610353a485827bc06eefb6566d23f6400f126", size = 87550, upload-time = "2025-05-26T21:18:20.251Z" }
1643
+ sdist = { url = "https://files.pythonhosted.org/packages/78/b4/439b179d1ff526791eb921115fca8e44e596a13efeda518b9d845a619450/pytest_xdist-3.8.0.tar.gz", hash = "sha256:7e578125ec9bc6050861aa93f2d59f1d8d085595d6551c2c90b6f4fad8d3a9f1", size = 88069, upload-time = "2025-07-01T13:30:59.346Z" }
1644
1644
  wheels = [
1645
- { url = "https://files.pythonhosted.org/packages/0d/b2/0e802fde6f1c5b2f7ae7e9ad42b83fd4ecebac18a8a8c2f2f14e39dce6e1/pytest_xdist-3.7.0-py3-none-any.whl", hash = "sha256:7d3fbd255998265052435eb9daa4e99b62e6fb9cfb6efd1f858d4d8c0c7f0ca0", size = 46142, upload-time = "2025-05-26T21:18:18.759Z" },
1645
+ { url = "https://files.pythonhosted.org/packages/ca/31/d4e37e9e550c2b92a9cbc2e4d0b7420a27224968580b5a447f420847c975/pytest_xdist-3.8.0-py3-none-any.whl", hash = "sha256:202ca578cfeb7370784a8c33d6d05bc6e13b4f25b5053c30a152269fd10f0b88", size = 46396, upload-time = "2025-07-01T13:30:56.632Z" },
1646
1646
  ]
1647
1647
 
1648
1648
  [[package]]
@@ -1849,28 +1849,28 @@ wheels = [
1849
1849
 
1850
1850
  [[package]]
1851
1851
  name = "ruff"
1852
- version = "0.12.11"
1853
- source = { registry = "https://pypi.org/simple" }
1854
- sdist = { url = "https://files.pythonhosted.org/packages/de/55/16ab6a7d88d93001e1ae4c34cbdcfb376652d761799459ff27c1dc20f6fa/ruff-0.12.11.tar.gz", hash = "sha256:c6b09ae8426a65bbee5425b9d0b82796dbb07cb1af045743c79bfb163001165d", size = 5347103, upload-time = "2025-08-28T13:59:08.87Z" }
1855
- wheels = [
1856
- { url = "https://files.pythonhosted.org/packages/d6/a2/3b3573e474de39a7a475f3fbaf36a25600bfeb238e1a90392799163b64a0/ruff-0.12.11-py3-none-linux_armv6l.whl", hash = "sha256:93fce71e1cac3a8bf9200e63a38ac5c078f3b6baebffb74ba5274fb2ab276065", size = 11979885, upload-time = "2025-08-28T13:58:26.654Z" },
1857
- { url = "https://files.pythonhosted.org/packages/76/e4/235ad6d1785a2012d3ded2350fd9bc5c5af8c6f56820e696b0118dfe7d24/ruff-0.12.11-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b8e33ac7b28c772440afa80cebb972ffd823621ded90404f29e5ab6d1e2d4b93", size = 12742364, upload-time = "2025-08-28T13:58:30.256Z" },
1858
- { url = "https://files.pythonhosted.org/packages/2c/0d/15b72c5fe6b1e402a543aa9d8960e0a7e19dfb079f5b0b424db48b7febab/ruff-0.12.11-py3-none-macosx_11_0_arm64.whl", hash = "sha256:d69fb9d4937aa19adb2e9f058bc4fbfe986c2040acb1a4a9747734834eaa0bfd", size = 11920111, upload-time = "2025-08-28T13:58:33.677Z" },
1859
- { url = "https://files.pythonhosted.org/packages/3e/c0/f66339d7893798ad3e17fa5a1e587d6fd9806f7c1c062b63f8b09dda6702/ruff-0.12.11-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:411954eca8464595077a93e580e2918d0a01a19317af0a72132283e28ae21bee", size = 12160060, upload-time = "2025-08-28T13:58:35.74Z" },
1860
- { url = "https://files.pythonhosted.org/packages/03/69/9870368326db26f20c946205fb2d0008988aea552dbaec35fbacbb46efaa/ruff-0.12.11-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6a2c0a2e1a450f387bf2c6237c727dd22191ae8c00e448e0672d624b2bbd7fb0", size = 11799848, upload-time = "2025-08-28T13:58:38.051Z" },
1861
- { url = "https://files.pythonhosted.org/packages/25/8c/dd2c7f990e9b3a8a55eee09d4e675027d31727ce33cdb29eab32d025bdc9/ruff-0.12.11-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ca4c3a7f937725fd2413c0e884b5248a19369ab9bdd850b5781348ba283f644", size = 13536288, upload-time = "2025-08-28T13:58:40.046Z" },
1862
- { url = "https://files.pythonhosted.org/packages/7a/30/d5496fa09aba59b5e01ea76775a4c8897b13055884f56f1c35a4194c2297/ruff-0.12.11-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:4d1df0098124006f6a66ecf3581a7f7e754c4df7644b2e6704cd7ca80ff95211", size = 14490633, upload-time = "2025-08-28T13:58:42.285Z" },
1863
- { url = "https://files.pythonhosted.org/packages/9b/2f/81f998180ad53445d403c386549d6946d0748e536d58fce5b5e173511183/ruff-0.12.11-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5a8dd5f230efc99a24ace3b77e3555d3fbc0343aeed3fc84c8d89e75ab2ff793", size = 13888430, upload-time = "2025-08-28T13:58:44.641Z" },
1864
- { url = "https://files.pythonhosted.org/packages/87/71/23a0d1d5892a377478c61dbbcffe82a3476b050f38b5162171942a029ef3/ruff-0.12.11-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4dc75533039d0ed04cd33fb8ca9ac9620b99672fe7ff1533b6402206901c34ee", size = 12913133, upload-time = "2025-08-28T13:58:47.039Z" },
1865
- { url = "https://files.pythonhosted.org/packages/80/22/3c6cef96627f89b344c933781ed38329bfb87737aa438f15da95907cbfd5/ruff-0.12.11-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4fc58f9266d62c6eccc75261a665f26b4ef64840887fc6cbc552ce5b29f96cc8", size = 13169082, upload-time = "2025-08-28T13:58:49.157Z" },
1866
- { url = "https://files.pythonhosted.org/packages/05/b5/68b3ff96160d8b49e8dd10785ff3186be18fd650d356036a3770386e6c7f/ruff-0.12.11-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:5a0113bd6eafd545146440225fe60b4e9489f59eb5f5f107acd715ba5f0b3d2f", size = 13139490, upload-time = "2025-08-28T13:58:51.593Z" },
1867
- { url = "https://files.pythonhosted.org/packages/59/b9/050a3278ecd558f74f7ee016fbdf10591d50119df8d5f5da45a22c6afafc/ruff-0.12.11-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:0d737b4059d66295c3ea5720e6efc152623bb83fde5444209b69cd33a53e2000", size = 11958928, upload-time = "2025-08-28T13:58:53.943Z" },
1868
- { url = "https://files.pythonhosted.org/packages/f9/bc/93be37347db854806904a43b0493af8d6873472dfb4b4b8cbb27786eb651/ruff-0.12.11-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:916fc5defee32dbc1fc1650b576a8fed68f5e8256e2180d4d9855aea43d6aab2", size = 11764513, upload-time = "2025-08-28T13:58:55.976Z" },
1869
- { url = "https://files.pythonhosted.org/packages/7a/a1/1471751e2015a81fd8e166cd311456c11df74c7e8769d4aabfbc7584c7ac/ruff-0.12.11-py3-none-musllinux_1_2_i686.whl", hash = "sha256:c984f07d7adb42d3ded5be894fb4007f30f82c87559438b4879fe7aa08c62b39", size = 12745154, upload-time = "2025-08-28T13:58:58.16Z" },
1870
- { url = "https://files.pythonhosted.org/packages/68/ab/2542b14890d0f4872dd81b7b2a6aed3ac1786fae1ce9b17e11e6df9e31e3/ruff-0.12.11-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:e07fbb89f2e9249f219d88331c833860489b49cdf4b032b8e4432e9b13e8a4b9", size = 13227653, upload-time = "2025-08-28T13:59:00.276Z" },
1871
- { url = "https://files.pythonhosted.org/packages/22/16/2fbfc61047dbfd009c58a28369a693a1484ad15441723be1cd7fe69bb679/ruff-0.12.11-py3-none-win32.whl", hash = "sha256:c792e8f597c9c756e9bcd4d87cf407a00b60af77078c96f7b6366ea2ce9ba9d3", size = 11944270, upload-time = "2025-08-28T13:59:02.347Z" },
1872
- { url = "https://files.pythonhosted.org/packages/08/a5/34276984705bfe069cd383101c45077ee029c3fe3b28225bf67aa35f0647/ruff-0.12.11-py3-none-win_amd64.whl", hash = "sha256:a3283325960307915b6deb3576b96919ee89432ebd9c48771ca12ee8afe4a0fd", size = 13046600, upload-time = "2025-08-28T13:59:04.751Z" },
1873
- { url = "https://files.pythonhosted.org/packages/84/a8/001d4a7c2b37623a3fd7463208267fb906df40ff31db496157549cfd6e72/ruff-0.12.11-py3-none-win_arm64.whl", hash = "sha256:bae4d6e6a2676f8fb0f98b74594a048bae1b944aab17e9f5d504062303c6dbea", size = 12135290, upload-time = "2025-08-28T13:59:06.933Z" },
1852
+ version = "0.13.2"
1853
+ source = { registry = "https://pypi.org/simple" }
1854
+ sdist = { url = "https://files.pythonhosted.org/packages/02/df/8d7d8c515d33adfc540e2edf6c6021ea1c5a58a678d8cfce9fae59aabcab/ruff-0.13.2.tar.gz", hash = "sha256:cb12fffd32fb16d32cef4ed16d8c7cdc27ed7c944eaa98d99d01ab7ab0b710ff", size = 5416417, upload-time = "2025-09-25T14:54:09.936Z" }
1855
+ wheels = [
1856
+ { url = "https://files.pythonhosted.org/packages/6e/84/5716a7fa4758e41bf70e603e13637c42cfb9dbf7ceb07180211b9bbf75ef/ruff-0.13.2-py3-none-linux_armv6l.whl", hash = "sha256:3796345842b55f033a78285e4f1641078f902020d8450cade03aad01bffd81c3", size = 12343254, upload-time = "2025-09-25T14:53:27.784Z" },
1857
+ { url = "https://files.pythonhosted.org/packages/9b/77/c7042582401bb9ac8eff25360e9335e901d7a1c0749a2b28ba4ecb239991/ruff-0.13.2-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:ff7e4dda12e683e9709ac89e2dd436abf31a4d8a8fc3d89656231ed808e231d2", size = 13040891, upload-time = "2025-09-25T14:53:31.38Z" },
1858
+ { url = "https://files.pythonhosted.org/packages/c6/15/125a7f76eb295cb34d19c6778e3a82ace33730ad4e6f28d3427e134a02e0/ruff-0.13.2-py3-none-macosx_11_0_arm64.whl", hash = "sha256:c75e9d2a2fafd1fdd895d0e7e24b44355984affdde1c412a6f6d3f6e16b22d46", size = 12243588, upload-time = "2025-09-25T14:53:33.543Z" },
1859
+ { url = "https://files.pythonhosted.org/packages/9e/eb/0093ae04a70f81f8be7fd7ed6456e926b65d238fc122311293d033fdf91e/ruff-0.13.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cceac74e7bbc53ed7d15d1042ffe7b6577bf294611ad90393bf9b2a0f0ec7cb6", size = 12491359, upload-time = "2025-09-25T14:53:35.892Z" },
1860
+ { url = "https://files.pythonhosted.org/packages/43/fe/72b525948a6956f07dad4a6f122336b6a05f2e3fd27471cea612349fedb9/ruff-0.13.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6ae3f469b5465ba6d9721383ae9d49310c19b452a161b57507764d7ef15f4b07", size = 12162486, upload-time = "2025-09-25T14:53:38.171Z" },
1861
+ { url = "https://files.pythonhosted.org/packages/6a/e3/0fac422bbbfb2ea838023e0d9fcf1f30183d83ab2482800e2cb892d02dfe/ruff-0.13.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f8f9e3cd6714358238cd6626b9d43026ed19c0c018376ac1ef3c3a04ffb42d8", size = 13871203, upload-time = "2025-09-25T14:53:41.943Z" },
1862
+ { url = "https://files.pythonhosted.org/packages/6b/82/b721c8e3ec5df6d83ba0e45dcf00892c4f98b325256c42c38ef136496cbf/ruff-0.13.2-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:c6ed79584a8f6cbe2e5d7dbacf7cc1ee29cbdb5df1172e77fbdadc8bb85a1f89", size = 14929635, upload-time = "2025-09-25T14:53:43.953Z" },
1863
+ { url = "https://files.pythonhosted.org/packages/c4/a0/ad56faf6daa507b83079a1ad7a11694b87d61e6bf01c66bd82b466f21821/ruff-0.13.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aed130b2fde049cea2019f55deb939103123cdd191105f97a0599a3e753d61b0", size = 14338783, upload-time = "2025-09-25T14:53:46.205Z" },
1864
+ { url = "https://files.pythonhosted.org/packages/47/77/ad1d9156db8f99cd01ee7e29d74b34050e8075a8438e589121fcd25c4b08/ruff-0.13.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1887c230c2c9d65ed1b4e4cfe4d255577ea28b718ae226c348ae68df958191aa", size = 13355322, upload-time = "2025-09-25T14:53:48.164Z" },
1865
+ { url = "https://files.pythonhosted.org/packages/64/8b/e87cfca2be6f8b9f41f0bb12dc48c6455e2d66df46fe61bb441a226f1089/ruff-0.13.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5bcb10276b69b3cfea3a102ca119ffe5c6ba3901e20e60cf9efb53fa417633c3", size = 13354427, upload-time = "2025-09-25T14:53:50.486Z" },
1866
+ { url = "https://files.pythonhosted.org/packages/7f/df/bf382f3fbead082a575edb860897287f42b1b3c694bafa16bc9904c11ed3/ruff-0.13.2-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:afa721017aa55a555b2ff7944816587f1cb813c2c0a882d158f59b832da1660d", size = 13537637, upload-time = "2025-09-25T14:53:52.887Z" },
1867
+ { url = "https://files.pythonhosted.org/packages/51/70/1fb7a7c8a6fc8bd15636288a46e209e81913b87988f26e1913d0851e54f4/ruff-0.13.2-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:1dbc875cf3720c64b3990fef8939334e74cb0ca65b8dbc61d1f439201a38101b", size = 12340025, upload-time = "2025-09-25T14:53:54.88Z" },
1868
+ { url = "https://files.pythonhosted.org/packages/4c/27/1e5b3f1c23ca5dd4106d9d580e5c13d9acb70288bff614b3d7b638378cc9/ruff-0.13.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:5b939a1b2a960e9742e9a347e5bbc9b3c3d2c716f86c6ae273d9cbd64f193f22", size = 12133449, upload-time = "2025-09-25T14:53:57.089Z" },
1869
+ { url = "https://files.pythonhosted.org/packages/2d/09/b92a5ccee289f11ab128df57d5911224197d8d55ef3bd2043534ff72ca54/ruff-0.13.2-py3-none-musllinux_1_2_i686.whl", hash = "sha256:50e2d52acb8de3804fc5f6e2fa3ae9bdc6812410a9e46837e673ad1f90a18736", size = 13051369, upload-time = "2025-09-25T14:53:59.124Z" },
1870
+ { url = "https://files.pythonhosted.org/packages/89/99/26c9d1c7d8150f45e346dc045cc49f23e961efceb4a70c47dea0960dea9a/ruff-0.13.2-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:3196bc13ab2110c176b9a4ae5ff7ab676faaa1964b330a1383ba20e1e19645f2", size = 13523644, upload-time = "2025-09-25T14:54:01.622Z" },
1871
+ { url = "https://files.pythonhosted.org/packages/f7/00/e7f1501e81e8ec290e79527827af1d88f541d8d26151751b46108978dade/ruff-0.13.2-py3-none-win32.whl", hash = "sha256:7c2a0b7c1e87795fec3404a485096bcd790216c7c146a922d121d8b9c8f1aaac", size = 12245990, upload-time = "2025-09-25T14:54:03.647Z" },
1872
+ { url = "https://files.pythonhosted.org/packages/ee/bd/d9f33a73de84fafd0146c6fba4f497c4565fe8fa8b46874b8e438869abc2/ruff-0.13.2-py3-none-win_amd64.whl", hash = "sha256:17d95fb32218357c89355f6f6f9a804133e404fc1f65694372e02a557edf8585", size = 13324004, upload-time = "2025-09-25T14:54:06.05Z" },
1873
+ { url = "https://files.pythonhosted.org/packages/c3/12/28fa2f597a605884deb0f65c1b1ae05111051b2a7030f5d8a4ff7f4599ba/ruff-0.13.2-py3-none-win_arm64.whl", hash = "sha256:da711b14c530412c827219312b7d7fbb4877fb31150083add7e8c5336549cea7", size = 12484437, upload-time = "2025-09-25T14:54:08.022Z" },
1874
1874
  ]
1875
1875
 
1876
1876
  [[package]]
@@ -1884,14 +1884,14 @@ wheels = [
1884
1884
 
1885
1885
  [[package]]
1886
1886
  name = "slack-bolt"
1887
- version = "1.24.0"
1887
+ version = "1.25.0"
1888
1888
  source = { registry = "https://pypi.org/simple" }
1889
1889
  dependencies = [
1890
1890
  { name = "slack-sdk" },
1891
1891
  ]
1892
- sdist = { url = "https://files.pythonhosted.org/packages/06/af/95750d5c7f56be5266e6e4eb6b44f689423f44f0d2e2fa222e2c4c808305/slack_bolt-1.24.0.tar.gz", hash = "sha256:203249338454d3c8d096a6a1f4ebe09f48da2f572268835d1c5ed2a64eae898d", size = 131100, upload-time = "2025-08-27T18:51:40.026Z" }
1892
+ sdist = { url = "https://files.pythonhosted.org/packages/5a/0e/1231e1e89ffadeb0b8dcb8da63a22731139c14b7787ac289616238641fa4/slack_bolt-1.25.0.tar.gz", hash = "sha256:7e299854a24ba9c4700a7ca2cd54ab8e50a474502732a0a641ea232731ce24b4", size = 130673, upload-time = "2025-09-09T19:47:15.503Z" }
1893
1893
  wheels = [
1894
- { url = "https://files.pythonhosted.org/packages/ee/31/61985f6fe279e247789040f1c726a6b09e4c0388f1ba7265b1705956fed7/slack_bolt-1.24.0-py2.py3-none-any.whl", hash = "sha256:10245bac8b6768434885cc6e896a91daf815f1f566e83c0ddb6ad846d838248e", size = 230046, upload-time = "2025-08-27T18:51:38.326Z" },
1894
+ { url = "https://files.pythonhosted.org/packages/58/6f/0e443e94914f20a8ce643048e31664bc9eb3080149fe966a76444fdc3cf3/slack_bolt-1.25.0-py2.py3-none-any.whl", hash = "sha256:d0b765c20bcd4bb7bd5e5966a19d49785153081573359a08892ad065f0a7b3dc", size = 229685, upload-time = "2025-09-09T19:47:14.19Z" },
1895
1895
  ]
1896
1896
 
1897
1897
  [[package]]