DefStream-RabbitMQ 0.1.23__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 (359) hide show
  1. defstream_rabbitmq-0.1.23/.dev/scripts/editable_view.py +287 -0
  2. defstream_rabbitmq-0.1.23/.dev/scripts/tests/__init__.py +0 -0
  3. defstream_rabbitmq-0.1.23/.dev/scripts/tests/test_editable_view.py +496 -0
  4. defstream_rabbitmq-0.1.23/.distribution-target +1 -0
  5. defstream_rabbitmq-0.1.23/.github/ISSUE_TEMPLATE/01.feature.yml +37 -0
  6. defstream_rabbitmq-0.1.23/.github/ISSUE_TEMPLATE/02.bug.yml +62 -0
  7. defstream_rabbitmq-0.1.23/.github/ISSUE_TEMPLATE/03.fix.yml +55 -0
  8. defstream_rabbitmq-0.1.23/.github/ISSUE_TEMPLATE/04.task.yml +38 -0
  9. defstream_rabbitmq-0.1.23/.github/ISSUE_TEMPLATE/config.yml +1 -0
  10. defstream_rabbitmq-0.1.23/.github/PULL_REQUEST_TEMPLATE.md +24 -0
  11. defstream_rabbitmq-0.1.23/.github/scripts/build_backend.py +138 -0
  12. defstream_rabbitmq-0.1.23/.github/scripts/build_distributions.py +64 -0
  13. defstream_rabbitmq-0.1.23/.github/scripts/check_distributions.py +598 -0
  14. defstream_rabbitmq-0.1.23/.github/scripts/create-issues-from-reviews.mjs +564 -0
  15. defstream_rabbitmq-0.1.23/.github/scripts/create-pr-from-issue.mjs +529 -0
  16. defstream_rabbitmq-0.1.23/.github/scripts/prepare_upload.py +104 -0
  17. defstream_rabbitmq-0.1.23/.github/scripts/tests/__init__.py +0 -0
  18. defstream_rabbitmq-0.1.23/.github/scripts/tests/create-issues-from-reviews.test.mjs +636 -0
  19. defstream_rabbitmq-0.1.23/.github/scripts/tests/create-pr-from-issue.test.mjs +975 -0
  20. defstream_rabbitmq-0.1.23/.github/scripts/tests/test_build_backend.py +120 -0
  21. defstream_rabbitmq-0.1.23/.github/scripts/tests/test_distributions.py +117 -0
  22. defstream_rabbitmq-0.1.23/.github/scripts/tests/test_release.py +239 -0
  23. defstream_rabbitmq-0.1.23/.github/workflows/ci.yml +492 -0
  24. defstream_rabbitmq-0.1.23/.github/workflows/create-issues-from-reviews.yml +55 -0
  25. defstream_rabbitmq-0.1.23/.github/workflows/create-pr-from-issue.yml +78 -0
  26. defstream_rabbitmq-0.1.23/.gitignore +56 -0
  27. defstream_rabbitmq-0.1.23/LICENSE +674 -0
  28. defstream_rabbitmq-0.1.23/PKG-INFO +92 -0
  29. defstream_rabbitmq-0.1.23/README.en.md +75 -0
  30. defstream_rabbitmq-0.1.23/README.md +75 -0
  31. defstream_rabbitmq-0.1.23/README.setup.md +61 -0
  32. defstream_rabbitmq-0.1.23/build/RabbitMQ/DefStream_RabbitMQ.egg-info/SOURCES.txt +355 -0
  33. defstream_rabbitmq-0.1.23/docs/Contracts.en.md +175 -0
  34. defstream_rabbitmq-0.1.23/docs/Contracts.md +168 -0
  35. defstream_rabbitmq-0.1.23/docs/GettingStarted.en.md +184 -0
  36. defstream_rabbitmq-0.1.23/docs/GettingStarted.md +182 -0
  37. defstream_rabbitmq-0.1.23/docs/LifecycleHooks.en.md +216 -0
  38. defstream_rabbitmq-0.1.23/docs/LifecycleHooks.md +212 -0
  39. defstream_rabbitmq-0.1.23/docs/Operations.en.md +191 -0
  40. defstream_rabbitmq-0.1.23/docs/Operations.md +182 -0
  41. defstream_rabbitmq-0.1.23/docs/Packaging.en.md +78 -0
  42. defstream_rabbitmq-0.1.23/docs/Packaging.md +78 -0
  43. defstream_rabbitmq-0.1.23/docs/README.en.md +39 -0
  44. defstream_rabbitmq-0.1.23/docs/README.md +39 -0
  45. defstream_rabbitmq-0.1.23/docs/RabbitMQ.en.md +385 -0
  46. defstream_rabbitmq-0.1.23/docs/RabbitMQ.md +372 -0
  47. defstream_rabbitmq-0.1.23/docs/Redis.en.md +235 -0
  48. defstream_rabbitmq-0.1.23/docs/Redis.md +230 -0
  49. defstream_rabbitmq-0.1.23/docs/Tasks.en.md +174 -0
  50. defstream_rabbitmq-0.1.23/docs/Tasks.md +172 -0
  51. defstream_rabbitmq-0.1.23/instructions/CODE.instructions.md +32 -0
  52. defstream_rabbitmq-0.1.23/instructions/DOCS.instructions.md +55 -0
  53. defstream_rabbitmq-0.1.23/instructions/README.instructions.md +36 -0
  54. defstream_rabbitmq-0.1.23/issues/bug/16/IMPLEMENTS.md +32 -0
  55. defstream_rabbitmq-0.1.23/issues/bug/16/ISSUE.md +19 -0
  56. defstream_rabbitmq-0.1.23/issues/bug/16/README.md +12 -0
  57. defstream_rabbitmq-0.1.23/issues/bug/16/REQUIREMENTS.md +25 -0
  58. defstream_rabbitmq-0.1.23/issues/feature/1/IMPLEMENTS.md +73 -0
  59. defstream_rabbitmq-0.1.23/issues/feature/1/README.md +74 -0
  60. defstream_rabbitmq-0.1.23/issues/feature/1/REQUIREMENTS.md +134 -0
  61. defstream_rabbitmq-0.1.23/issues/feature/1/TASK.md +40 -0
  62. defstream_rabbitmq-0.1.23/issues/feature/1/ci.refs.json +4 -0
  63. defstream_rabbitmq-0.1.23/issues/feature/46/CHANGELOG.md +26 -0
  64. defstream_rabbitmq-0.1.23/issues/feature/46/IMPLEMENTS.md +35 -0
  65. defstream_rabbitmq-0.1.23/issues/feature/46/PLAN.md +111 -0
  66. defstream_rabbitmq-0.1.23/issues/feature/46/README.md +75 -0
  67. defstream_rabbitmq-0.1.23/issues/feature/46/REQUIREMENTS.md +119 -0
  68. defstream_rabbitmq-0.1.23/issues/feature/46/TASKS.md +26 -0
  69. defstream_rabbitmq-0.1.23/issues/feature/46/implements/1793274693488.md +9 -0
  70. defstream_rabbitmq-0.1.23/issues/feature/46/implements/1793275218996.md +7 -0
  71. defstream_rabbitmq-0.1.23/issues/feature/46/implements/1793275899489.md +7 -0
  72. defstream_rabbitmq-0.1.23/issues/feature/46/implements/1793276075771.md +5 -0
  73. defstream_rabbitmq-0.1.23/issues/feature/46/implements/1793276518340.md +7 -0
  74. defstream_rabbitmq-0.1.23/issues/feature/46/implements/1793277364116.md +12 -0
  75. defstream_rabbitmq-0.1.23/issues/feature/46/implements/1793278267422.md +10 -0
  76. defstream_rabbitmq-0.1.23/issues/feature/46/implements/1793278764701.md +9 -0
  77. defstream_rabbitmq-0.1.23/issues/feature/46/implements/1793279849390.md +7 -0
  78. defstream_rabbitmq-0.1.23/issues/feature/46/tasks/1793272872217.md +7 -0
  79. defstream_rabbitmq-0.1.23/issues/feature/46/tasks/1793274121654.md +11 -0
  80. defstream_rabbitmq-0.1.23/issues/feature/46/tasks/1793274231988.md +7 -0
  81. defstream_rabbitmq-0.1.23/issues/feature/46/tasks/1793275218995.md +11 -0
  82. defstream_rabbitmq-0.1.23/issues/feature/46/tasks/1793275501812.md +27 -0
  83. defstream_rabbitmq-0.1.23/issues/feature/46/tasks/1793275955973.md +13 -0
  84. defstream_rabbitmq-0.1.23/issues/feature/46/tasks/1793276099601.md +7 -0
  85. defstream_rabbitmq-0.1.23/issues/feature/46/tasks/1793276518341.md +16 -0
  86. defstream_rabbitmq-0.1.23/issues/feature/46/tasks/1793277424063.md +24 -0
  87. defstream_rabbitmq-0.1.23/issues/feature/46/tasks/1793278267423.md +18 -0
  88. defstream_rabbitmq-0.1.23/issues/feature/46/tasks/1793278764702.md +21 -0
  89. defstream_rabbitmq-0.1.23/issues/feature/46/tasks/1793279849391.md +10 -0
  90. defstream_rabbitmq-0.1.23/issues/feature/47/CHANGELOG.md +25 -0
  91. defstream_rabbitmq-0.1.23/issues/feature/47/IMPLEMENTS.md +22 -0
  92. defstream_rabbitmq-0.1.23/issues/feature/47/PLAN.md +27 -0
  93. defstream_rabbitmq-0.1.23/issues/feature/47/README.md +72 -0
  94. defstream_rabbitmq-0.1.23/issues/feature/47/REQUIREMENTS.md +101 -0
  95. defstream_rabbitmq-0.1.23/issues/feature/47/TASKS.md +17 -0
  96. defstream_rabbitmq-0.1.23/issues/feature/47/implements/1793271568985.md +10 -0
  97. defstream_rabbitmq-0.1.23/issues/feature/47/implements/1793272077065.md +10 -0
  98. defstream_rabbitmq-0.1.23/issues/feature/47/tasks/1793271236067.md +9 -0
  99. defstream_rabbitmq-0.1.23/issues/feature/47/tasks/1793271384432.md +8 -0
  100. defstream_rabbitmq-0.1.23/issues/feature/47/tasks/1793271506089.md +8 -0
  101. defstream_rabbitmq-0.1.23/issues/feature/47/tasks/1793271819682.md +35 -0
  102. defstream_rabbitmq-0.1.23/issues/feature/47/tasks/1793272077066.md +14 -0
  103. defstream_rabbitmq-0.1.23/issues/feature/8/IMPLEMENTS.md +106 -0
  104. defstream_rabbitmq-0.1.23/issues/feature/8/README.md +40 -0
  105. defstream_rabbitmq-0.1.23/issues/feature/8/REQUIREMENTS.md +168 -0
  106. defstream_rabbitmq-0.1.23/issues/feature/8/ci.refs.json +4 -0
  107. defstream_rabbitmq-0.1.23/issues/fix/10/IMPLEMENTS.md +150 -0
  108. defstream_rabbitmq-0.1.23/issues/fix/10/README.md +44 -0
  109. defstream_rabbitmq-0.1.23/issues/fix/10/REQUIREMENTS.md +88 -0
  110. defstream_rabbitmq-0.1.23/issues/fix/13/README.md +31 -0
  111. defstream_rabbitmq-0.1.23/issues/fix/21/IMPLEMENTS.md +38 -0
  112. defstream_rabbitmq-0.1.23/issues/fix/21/ISSUE.md +17 -0
  113. defstream_rabbitmq-0.1.23/issues/fix/21/README.md +44 -0
  114. defstream_rabbitmq-0.1.23/issues/fix/21/REQUIREMENTS.md +68 -0
  115. defstream_rabbitmq-0.1.23/issues/fix/24/IMPLEMENTS.md +25 -0
  116. defstream_rabbitmq-0.1.23/issues/fix/24/ISSUE.md +14 -0
  117. defstream_rabbitmq-0.1.23/issues/fix/24/README.md +7 -0
  118. defstream_rabbitmq-0.1.23/issues/fix/24/REQUIREMENTS.md +48 -0
  119. defstream_rabbitmq-0.1.23/issues/fix/25/IMPLEMENTS.md +61 -0
  120. defstream_rabbitmq-0.1.23/issues/fix/25/ISSUE.md +13 -0
  121. defstream_rabbitmq-0.1.23/issues/fix/25/README.md +38 -0
  122. defstream_rabbitmq-0.1.23/issues/fix/25/REQUIREMENTS.md +107 -0
  123. defstream_rabbitmq-0.1.23/issues/fix/25/TASK.md +38 -0
  124. defstream_rabbitmq-0.1.23/issues/fix/26/IMPLEMENTS.md +34 -0
  125. defstream_rabbitmq-0.1.23/issues/fix/26/ISSUE.md +13 -0
  126. defstream_rabbitmq-0.1.23/issues/fix/26/README.md +5 -0
  127. defstream_rabbitmq-0.1.23/issues/fix/26/REQUIREMENTS.md +59 -0
  128. defstream_rabbitmq-0.1.23/issues/fix/29/ISSUE.md +13 -0
  129. defstream_rabbitmq-0.1.23/issues/fix/29/README.md +5 -0
  130. defstream_rabbitmq-0.1.23/issues/fix/29/REQUIREMENTS.md +48 -0
  131. defstream_rabbitmq-0.1.23/issues/fix/29/TASK.md +26 -0
  132. defstream_rabbitmq-0.1.23/issues/fix/3/IMPLEMENTS.md +232 -0
  133. defstream_rabbitmq-0.1.23/issues/fix/3/README.md +94 -0
  134. defstream_rabbitmq-0.1.23/issues/fix/3/REQUIREMENTS.md +78 -0
  135. defstream_rabbitmq-0.1.23/issues/fix/3/ci.refs.json +4 -0
  136. defstream_rabbitmq-0.1.23/issues/fix/41/CHANGELOG.md +21 -0
  137. defstream_rabbitmq-0.1.23/issues/fix/41/IMPLEMENTS.md +31 -0
  138. defstream_rabbitmq-0.1.23/issues/fix/41/PLAN.md +22 -0
  139. defstream_rabbitmq-0.1.23/issues/fix/41/README.md +113 -0
  140. defstream_rabbitmq-0.1.23/issues/fix/41/REQUIREMENTS.md +33 -0
  141. defstream_rabbitmq-0.1.23/issues/fix/41/TASKS.md +24 -0
  142. defstream_rabbitmq-0.1.23/issues/fix/41/implements/1793257519898.md +27 -0
  143. defstream_rabbitmq-0.1.23/issues/fix/41/implements/1793257826069.md +33 -0
  144. defstream_rabbitmq-0.1.23/issues/fix/41/tasks/1793256929057.md +9 -0
  145. defstream_rabbitmq-0.1.23/issues/fix/41/tasks/1793256990072.md +26 -0
  146. defstream_rabbitmq-0.1.23/issues/fix/41/tasks/1793257216492.md +30 -0
  147. defstream_rabbitmq-0.1.23/issues/fix/41/tasks/1793257519899.md +33 -0
  148. defstream_rabbitmq-0.1.23/issues/fix/41/tasks/1793257826068.md +42 -0
  149. defstream_rabbitmq-0.1.23/issues/fix/43/CHANGELOG.md +5 -0
  150. defstream_rabbitmq-0.1.23/issues/fix/43/IMPLEMENTS.md +16 -0
  151. defstream_rabbitmq-0.1.23/issues/fix/43/PLAN.md +67 -0
  152. defstream_rabbitmq-0.1.23/issues/fix/43/README.md +35 -0
  153. defstream_rabbitmq-0.1.23/issues/fix/43/REQUIREMENTS.md +59 -0
  154. defstream_rabbitmq-0.1.23/issues/fix/43/TASKS.md +3 -0
  155. defstream_rabbitmq-0.1.23/issues/fix/43/implements/1793260818660.md +7 -0
  156. defstream_rabbitmq-0.1.23/issues/fix/43/implements/1793261447018.md +7 -0
  157. defstream_rabbitmq-0.1.23/issues/fix/43/tasks/1793260818661.md +14 -0
  158. defstream_rabbitmq-0.1.23/issues/fix/43/tasks/1793261447019.md +7 -0
  159. defstream_rabbitmq-0.1.23/issues/fix/43/tasks/1793262314955.md +7 -0
  160. defstream_rabbitmq-0.1.23/issues/fix/50/CHANGELOG.md +5 -0
  161. defstream_rabbitmq-0.1.23/issues/fix/50/IMPLEMENTS.md +8 -0
  162. defstream_rabbitmq-0.1.23/issues/fix/50/PLAN.md +15 -0
  163. defstream_rabbitmq-0.1.23/issues/fix/50/README.md +36 -0
  164. defstream_rabbitmq-0.1.23/issues/fix/50/REQUIREMENTS.md +23 -0
  165. defstream_rabbitmq-0.1.23/issues/fix/50/TASKS.md +8 -0
  166. defstream_rabbitmq-0.1.23/issues/fix/50/implements/1793282630353.md +7 -0
  167. defstream_rabbitmq-0.1.23/issues/fix/50/tasks/1793282630354.md +12 -0
  168. defstream_rabbitmq-0.1.23/issues/fix/53/CHANGELOG.md +29 -0
  169. defstream_rabbitmq-0.1.23/issues/fix/53/IMPLEMENTS.md +50 -0
  170. defstream_rabbitmq-0.1.23/issues/fix/53/PLAN.md +32 -0
  171. defstream_rabbitmq-0.1.23/issues/fix/53/README.md +90 -0
  172. defstream_rabbitmq-0.1.23/issues/fix/53/REQUIREMENTS.md +42 -0
  173. defstream_rabbitmq-0.1.23/issues/fix/53/TASKS.md +65 -0
  174. defstream_rabbitmq-0.1.23/issues/fix/53/implements/1793294516720.md +7 -0
  175. defstream_rabbitmq-0.1.23/issues/fix/53/implements/1793295445979.md +7 -0
  176. defstream_rabbitmq-0.1.23/issues/fix/53/implements/1793295838896.md +7 -0
  177. defstream_rabbitmq-0.1.23/issues/fix/53/implements/1793296500296.md +5 -0
  178. defstream_rabbitmq-0.1.23/issues/fix/53/implements/1793299630936.md +13 -0
  179. defstream_rabbitmq-0.1.23/issues/fix/53/implements/1793301537859.md +9 -0
  180. defstream_rabbitmq-0.1.23/issues/fix/53/implements/1793301829543.md +7 -0
  181. defstream_rabbitmq-0.1.23/issues/fix/53/implements/1793302547669.md +7 -0
  182. defstream_rabbitmq-0.1.23/issues/fix/53/implements/1793327181557.md +10 -0
  183. defstream_rabbitmq-0.1.23/issues/fix/53/implements/1793329241422.md +9 -0
  184. defstream_rabbitmq-0.1.23/issues/fix/53/implements/1793516005517.md +11 -0
  185. defstream_rabbitmq-0.1.23/issues/fix/53/implements/1793516879583.md +5 -0
  186. defstream_rabbitmq-0.1.23/issues/fix/53/implements/1793517548589.md +5 -0
  187. defstream_rabbitmq-0.1.23/issues/fix/53/implements/1793518878753.md +7 -0
  188. defstream_rabbitmq-0.1.23/issues/fix/53/tasks/1793294230195.md +7 -0
  189. defstream_rabbitmq-0.1.23/issues/fix/53/tasks/1793295445976.md +9 -0
  190. defstream_rabbitmq-0.1.23/issues/fix/53/tasks/1793295838893.md +16 -0
  191. defstream_rabbitmq-0.1.23/issues/fix/53/tasks/1793296500299.md +3 -0
  192. defstream_rabbitmq-0.1.23/issues/fix/53/tasks/1793297795667.md +9 -0
  193. defstream_rabbitmq-0.1.23/issues/fix/53/tasks/1793299630939.md +15 -0
  194. defstream_rabbitmq-0.1.23/issues/fix/53/tasks/1793301829546.md +22 -0
  195. defstream_rabbitmq-0.1.23/issues/fix/53/tasks/1793302844699.md +15 -0
  196. defstream_rabbitmq-0.1.23/issues/fix/53/tasks/1793327181558.md +14 -0
  197. defstream_rabbitmq-0.1.23/issues/fix/53/tasks/1793327685707.md +10 -0
  198. defstream_rabbitmq-0.1.23/issues/fix/53/tasks/1793328011412.md +7 -0
  199. defstream_rabbitmq-0.1.23/issues/fix/53/tasks/1793329241423.md +9 -0
  200. defstream_rabbitmq-0.1.23/issues/fix/53/tasks/1793516005518.md +11 -0
  201. defstream_rabbitmq-0.1.23/issues/fix/53/tasks/1793516879584.md +9 -0
  202. defstream_rabbitmq-0.1.23/issues/fix/53/tasks/1793517548590.md +9 -0
  203. defstream_rabbitmq-0.1.23/issues/fix/53/tasks/1793518878754.md +11 -0
  204. defstream_rabbitmq-0.1.23/issues/fix/6/IMPLEMENTS.md +134 -0
  205. defstream_rabbitmq-0.1.23/issues/fix/6/README.md +58 -0
  206. defstream_rabbitmq-0.1.23/issues/fix/6/REQUIREMENTS.md +241 -0
  207. defstream_rabbitmq-0.1.23/issues/task/18/IMPLEMENTS.md +96 -0
  208. defstream_rabbitmq-0.1.23/issues/task/18/README.md +37 -0
  209. defstream_rabbitmq-0.1.23/issues/task/18/REQUIREMENTS.md +59 -0
  210. defstream_rabbitmq-0.1.23/issues/task/32/IMPLEMENTS.md +107 -0
  211. defstream_rabbitmq-0.1.23/issues/task/32/ISSUE.md +105 -0
  212. defstream_rabbitmq-0.1.23/issues/task/32/PLAN.md +164 -0
  213. defstream_rabbitmq-0.1.23/issues/task/32/README.md +19 -0
  214. defstream_rabbitmq-0.1.23/issues/task/32/REQUIREMENTS.md +168 -0
  215. defstream_rabbitmq-0.1.23/issues/task/32/TASK.md +36 -0
  216. defstream_rabbitmq-0.1.23/issues/task/34/CHANGELOG.md +3 -0
  217. defstream_rabbitmq-0.1.23/issues/task/34/IMPLEMENTS.md +26 -0
  218. defstream_rabbitmq-0.1.23/issues/task/34/PLAN.md +38 -0
  219. defstream_rabbitmq-0.1.23/issues/task/34/README.md +51 -0
  220. defstream_rabbitmq-0.1.23/issues/task/34/REQUIREMENTS.md +73 -0
  221. defstream_rabbitmq-0.1.23/issues/task/36/CHANGELOG.md +5 -0
  222. defstream_rabbitmq-0.1.23/issues/task/36/IMPLEMENTS.md +35 -0
  223. defstream_rabbitmq-0.1.23/issues/task/36/PLAN.md +58 -0
  224. defstream_rabbitmq-0.1.23/issues/task/36/README.md +49 -0
  225. defstream_rabbitmq-0.1.23/issues/task/36/REQUIREMENTS.md +78 -0
  226. defstream_rabbitmq-0.1.23/issues/task/38/CHANGELOG.md +9 -0
  227. defstream_rabbitmq-0.1.23/issues/task/38/IMPLEMENTS.md +27 -0
  228. defstream_rabbitmq-0.1.23/issues/task/38/PLAN.md +24 -0
  229. defstream_rabbitmq-0.1.23/issues/task/38/README.md +55 -0
  230. defstream_rabbitmq-0.1.23/issues/task/38/REQUIREMENTS.md +38 -0
  231. defstream_rabbitmq-0.1.23/issues/task/38/TASKS.md +10 -0
  232. defstream_rabbitmq-0.1.23/issues/task/38/docs/CopilotReviewIssues.md +76 -0
  233. defstream_rabbitmq-0.1.23/issues/task/38/docs/CopilotReviewIssuesSetup.md +56 -0
  234. defstream_rabbitmq-0.1.23/issues/task/38/implements/1793291844133.md +10 -0
  235. defstream_rabbitmq-0.1.23/issues/task/38/tasks/1793291844134.md +24 -0
  236. defstream_rabbitmq-0.1.23/issues/task/38/tasks/1793292234123.md +5 -0
  237. defstream_rabbitmq-0.1.23/issues/task/57/CHANGELOG.md +3 -0
  238. defstream_rabbitmq-0.1.23/issues/task/57/IMPLEMENTS.md +13 -0
  239. defstream_rabbitmq-0.1.23/issues/task/57/PLAN.md +22 -0
  240. defstream_rabbitmq-0.1.23/issues/task/57/README.md +56 -0
  241. defstream_rabbitmq-0.1.23/issues/task/57/REQUIREMENTS.md +30 -0
  242. defstream_rabbitmq-0.1.23/issues/task/57/TASKS.md +12 -0
  243. defstream_rabbitmq-0.1.23/issues/task/57/implements/1793395003714.md +5 -0
  244. defstream_rabbitmq-0.1.23/issues/task/57/tasks/1793395003713.md +7 -0
  245. defstream_rabbitmq-0.1.23/issues/task/57/tasks/1793395058100.md +7 -0
  246. defstream_rabbitmq-0.1.23/pyproject.toml +4 -0
  247. defstream_rabbitmq-0.1.23/samples/Broker/RabbitMQ/Sample.RPC.py +191 -0
  248. defstream_rabbitmq-0.1.23/samples/Broker/RabbitMQ/Sample.Stream.py +102 -0
  249. defstream_rabbitmq-0.1.23/samples/Broker/RabbitMQ/Sample.py +150 -0
  250. defstream_rabbitmq-0.1.23/samples/Broker/Redis/Sample.Stream.py +87 -0
  251. defstream_rabbitmq-0.1.23/samples/Broker/Redis/Sample.py +76 -0
  252. defstream_rabbitmq-0.1.23/samples/Broker/Sample.py +268 -0
  253. defstream_rabbitmq-0.1.23/samples/Worker/RabbitMQ/Client.py +85 -0
  254. defstream_rabbitmq-0.1.23/samples/Worker/RabbitMQ/Tasks.py +185 -0
  255. defstream_rabbitmq-0.1.23/samples/Worker/RabbitMQ/Worker.py +128 -0
  256. defstream_rabbitmq-0.1.23/samples/Worker/Redis/Sample.py +188 -0
  257. defstream_rabbitmq-0.1.23/samples/Worker/Sample.py +273 -0
  258. defstream_rabbitmq-0.1.23/setup.cfg +4 -0
  259. defstream_rabbitmq-0.1.23/setup.py +297 -0
  260. defstream_rabbitmq-0.1.23/src/Broker/Configuration.py +17 -0
  261. defstream_rabbitmq-0.1.23/src/Broker/Connection.py +141 -0
  262. defstream_rabbitmq-0.1.23/src/Broker/Consumer.py +59 -0
  263. defstream_rabbitmq-0.1.23/src/Broker/Errors.py +14 -0
  264. defstream_rabbitmq-0.1.23/src/Broker/Event.py +35 -0
  265. defstream_rabbitmq-0.1.23/src/Broker/Implements/RabbitMQ/Configuration.py +49 -0
  266. defstream_rabbitmq-0.1.23/src/Broker/Implements/RabbitMQ/Connection.py +550 -0
  267. defstream_rabbitmq-0.1.23/src/Broker/Implements/RabbitMQ/Consumer.py +416 -0
  268. defstream_rabbitmq-0.1.23/src/Broker/Implements/RabbitMQ/Event.py +146 -0
  269. defstream_rabbitmq-0.1.23/src/Broker/Implements/RabbitMQ/Exchange.py +277 -0
  270. defstream_rabbitmq-0.1.23/src/Broker/Implements/RabbitMQ/Queue.py +321 -0
  271. defstream_rabbitmq-0.1.23/src/Broker/Implements/RabbitMQ/Serializer.py +75 -0
  272. defstream_rabbitmq-0.1.23/src/Broker/Implements/RabbitMQ/Stream.py +181 -0
  273. defstream_rabbitmq-0.1.23/src/Broker/Implements/RabbitMQ/Subscription.py +90 -0
  274. defstream_rabbitmq-0.1.23/src/Broker/Implements/RabbitMQ/__init__.py +45 -0
  275. defstream_rabbitmq-0.1.23/src/Broker/Implements/Redis/Configuration.py +59 -0
  276. defstream_rabbitmq-0.1.23/src/Broker/Implements/Redis/Connection.py +265 -0
  277. defstream_rabbitmq-0.1.23/src/Broker/Implements/Redis/Consumer.py +368 -0
  278. defstream_rabbitmq-0.1.23/src/Broker/Implements/Redis/Event.py +212 -0
  279. defstream_rabbitmq-0.1.23/src/Broker/Implements/Redis/Queue.py +284 -0
  280. defstream_rabbitmq-0.1.23/src/Broker/Implements/Redis/Serializer.py +48 -0
  281. defstream_rabbitmq-0.1.23/src/Broker/Implements/Redis/Subscription.py +46 -0
  282. defstream_rabbitmq-0.1.23/src/Broker/Implements/Redis/__init__.py +29 -0
  283. defstream_rabbitmq-0.1.23/src/Broker/Implements/__init__.py +1 -0
  284. defstream_rabbitmq-0.1.23/src/Broker/Priority.py +26 -0
  285. defstream_rabbitmq-0.1.23/src/Broker/Protocol.py +54 -0
  286. defstream_rabbitmq-0.1.23/src/Broker/__init__.py +55 -0
  287. defstream_rabbitmq-0.1.23/src/Descriptor/DataObject.py +409 -0
  288. defstream_rabbitmq-0.1.23/src/Descriptor/Types.py +248 -0
  289. defstream_rabbitmq-0.1.23/src/Descriptor/Value.py +188 -0
  290. defstream_rabbitmq-0.1.23/src/Descriptor/__init__.py +172 -0
  291. defstream_rabbitmq-0.1.23/src/Inspector/Extension.py +69 -0
  292. defstream_rabbitmq-0.1.23/src/Inspector/Extensions/Metrics.py +316 -0
  293. defstream_rabbitmq-0.1.23/src/Inspector/Extensions/Ping.py +107 -0
  294. defstream_rabbitmq-0.1.23/src/Inspector/Extensions/Play.html +373 -0
  295. defstream_rabbitmq-0.1.23/src/Inspector/Extensions/Play.py +415 -0
  296. defstream_rabbitmq-0.1.23/src/Inspector/Extensions/Specifications.py +176 -0
  297. defstream_rabbitmq-0.1.23/src/Inspector/Extensions/Status.html +206 -0
  298. defstream_rabbitmq-0.1.23/src/Inspector/Extensions/Status.py +124 -0
  299. defstream_rabbitmq-0.1.23/src/Inspector/Extensions/__init__.py +13 -0
  300. defstream_rabbitmq-0.1.23/src/Inspector/Inspector.py +357 -0
  301. defstream_rabbitmq-0.1.23/src/Inspector/Response.py +14 -0
  302. defstream_rabbitmq-0.1.23/src/Inspector/__init__.py +9 -0
  303. defstream_rabbitmq-0.1.23/src/Validator/Pattern.py +36 -0
  304. defstream_rabbitmq-0.1.23/src/Validator/Patterns/Array.py +30 -0
  305. defstream_rabbitmq-0.1.23/src/Validator/Patterns/Common.py +92 -0
  306. defstream_rabbitmq-0.1.23/src/Validator/Patterns/Compare.py +180 -0
  307. defstream_rabbitmq-0.1.23/src/Validator/Patterns/Condition.py +60 -0
  308. defstream_rabbitmq-0.1.23/src/Validator/Patterns/DataObject.py +93 -0
  309. defstream_rabbitmq-0.1.23/src/Validator/Patterns/DateTime.py +111 -0
  310. defstream_rabbitmq-0.1.23/src/Validator/Patterns/Number.py +43 -0
  311. defstream_rabbitmq-0.1.23/src/Validator/Patterns/Object.py +158 -0
  312. defstream_rabbitmq-0.1.23/src/Validator/Patterns/Size.py +110 -0
  313. defstream_rabbitmq-0.1.23/src/Validator/Patterns/String.py +92 -0
  314. defstream_rabbitmq-0.1.23/src/Validator/Patterns/Type.py +355 -0
  315. defstream_rabbitmq-0.1.23/src/Validator/Patterns/__init__.py +137 -0
  316. defstream_rabbitmq-0.1.23/src/Validator/Validate.py +29 -0
  317. defstream_rabbitmq-0.1.23/src/Validator/Validator.py +30 -0
  318. defstream_rabbitmq-0.1.23/src/Validator/__init__.py +11 -0
  319. defstream_rabbitmq-0.1.23/src/Worker/Executor.py +525 -0
  320. defstream_rabbitmq-0.1.23/src/Worker/Message.py +180 -0
  321. defstream_rabbitmq-0.1.23/src/Worker/Pool.py +282 -0
  322. defstream_rabbitmq-0.1.23/src/Worker/Run.py +357 -0
  323. defstream_rabbitmq-0.1.23/src/Worker/Specification.py +87 -0
  324. defstream_rabbitmq-0.1.23/src/Worker/Startup.py +174 -0
  325. defstream_rabbitmq-0.1.23/src/Worker/Worker.py +571 -0
  326. defstream_rabbitmq-0.1.23/src/Worker/__init__.py +47 -0
  327. defstream_rabbitmq-0.1.23/src/__init__.py +0 -0
  328. defstream_rabbitmq-0.1.23/tests/_support.py +48 -0
  329. defstream_rabbitmq-0.1.23/tests/test_broker_packaging.py +186 -0
  330. defstream_rabbitmq-0.1.23/tests/test_descriptor.py +547 -0
  331. defstream_rabbitmq-0.1.23/tests/test_inspector.py +919 -0
  332. defstream_rabbitmq-0.1.23/tests/test_inspector_logging.py +204 -0
  333. defstream_rabbitmq-0.1.23/tests/test_inspector_play.py +932 -0
  334. defstream_rabbitmq-0.1.23/tests/test_lifecycle_hooks.py +457 -0
  335. defstream_rabbitmq-0.1.23/tests/test_logging.py +337 -0
  336. defstream_rabbitmq-0.1.23/tests/test_pool_callbacks.py +123 -0
  337. defstream_rabbitmq-0.1.23/tests/test_process_signals.py +188 -0
  338. defstream_rabbitmq-0.1.23/tests/test_protocol_contracts.py +492 -0
  339. defstream_rabbitmq-0.1.23/tests/test_rabbitmq_broker_methods.py +141 -0
  340. defstream_rabbitmq-0.1.23/tests/test_rabbitmq_integration.py +144 -0
  341. defstream_rabbitmq-0.1.23/tests/test_rabbitmq_logging.py +510 -0
  342. defstream_rabbitmq-0.1.23/tests/test_rabbitmq_priorities.py +444 -0
  343. defstream_rabbitmq-0.1.23/tests/test_rabbitmq_rpc.py +456 -0
  344. defstream_rabbitmq-0.1.23/tests/test_rabbitmq_rpc_integration.py +241 -0
  345. defstream_rabbitmq-0.1.23/tests/test_rabbitmq_timeouts.py +278 -0
  346. defstream_rabbitmq-0.1.23/tests/test_rabbitmq_worker.py +304 -0
  347. defstream_rabbitmq-0.1.23/tests/test_redis.py +300 -0
  348. defstream_rabbitmq-0.1.23/tests/test_redis_integration.py +325 -0
  349. defstream_rabbitmq-0.1.23/tests/test_redis_logging.py +359 -0
  350. defstream_rabbitmq-0.1.23/tests/test_runner_hooks.py +215 -0
  351. defstream_rabbitmq-0.1.23/tests/test_specifications.py +1025 -0
  352. defstream_rabbitmq-0.1.23/tests/test_status.py +447 -0
  353. defstream_rabbitmq-0.1.23/tests/test_status_ui.cjs +161 -0
  354. defstream_rabbitmq-0.1.23/tests/test_task_messages.py +712 -0
  355. defstream_rabbitmq-0.1.23/tests/test_task_priorities.py +398 -0
  356. defstream_rabbitmq-0.1.23/tests/test_validator_patterns.py +62 -0
  357. defstream_rabbitmq-0.1.23/tests/test_worker.py +498 -0
  358. defstream_rabbitmq-0.1.23/tests/test_worker_recovery.py +842 -0
  359. defstream_rabbitmq-0.1.23/tests/test_worker_startup.py +401 -0
@@ -0,0 +1,287 @@
1
+ from errno import (
2
+ EACCES,
3
+ EAGAIN,
4
+ EEXIST,
5
+ ENOTEMPTY,
6
+ EPERM,
7
+ )
8
+ from importlib.metadata import distributions
9
+ from json import (
10
+ dumps,
11
+ loads,
12
+ )
13
+ from os import (
14
+ link,
15
+ symlink,
16
+ )
17
+ from pathlib import Path
18
+ import sys
19
+ from tempfile import TemporaryDirectory
20
+ from time import (
21
+ monotonic,
22
+ sleep,
23
+ )
24
+ from typing import BinaryIO
25
+
26
+
27
+ def relative_path(
28
+ value: str,
29
+ project: str,
30
+ ) -> Path:
31
+ path: Path = Path(value)
32
+ if path.is_absolute() or '..' in path.parts or not path.parts or path.parts[0] != project:
33
+ raise ValueError('Invalid editable product path: {!r}'.format(value))
34
+ return path
35
+
36
+
37
+ def collect_files(
38
+ site: Path,
39
+ project: str,
40
+ names: tuple[str, ...],
41
+ ) -> dict[str, str]:
42
+ selected = {
43
+ dist.metadata['Name']: dist
44
+ for dist in distributions(path=[str(site)])
45
+ if dist.metadata['Name'] in names
46
+ }
47
+ if project not in selected:
48
+ raise RuntimeError('Editable {} requires its core distribution'.format(project))
49
+ core = selected[project]
50
+ if core.read_text('editable-selection.json') is not None:
51
+ conflicts: list[str] = [name for name in selected if name != project]
52
+ if conflicts:
53
+ raise RuntimeError('Remove legacy implementation distributions before using EXTRAS editable selection: {}'.format(
54
+ ', '.join(conflicts),
55
+ ))
56
+ if core.read_text('editable-files.json') is None:
57
+ raise RuntimeError('Install the {} core with pip install -e . before its editable implementations'.format(project))
58
+ files: dict[str, str] = {}
59
+ for name, dist in selected.items():
60
+ if dist.version != core.version:
61
+ raise RuntimeError('Editable distribution version mismatch: {}'.format(name))
62
+ manifest = dist.read_text('editable-files.json')
63
+ if manifest is not None:
64
+ mapping: dict[str, str] = loads(manifest)
65
+ else:
66
+ if dist.files is None:
67
+ raise RuntimeError('Missing installed file record: {}'.format(name))
68
+ mapping = {
69
+ str(path).replace(
70
+ '\\',
71
+ '/',
72
+ ): str(Path(str(dist.locate_file(path))).resolve())
73
+ for path in dist.files
74
+ if path.parts[0] == project and '__pycache__' not in path.parts
75
+ }
76
+ for relative, source in mapping.items():
77
+ relative_path(
78
+ relative,
79
+ project,
80
+ )
81
+ if relative in files:
82
+ raise RuntimeError('Duplicate editable file ownership: {}'.format(relative))
83
+ if not Path(source).is_absolute() or not Path(source).is_file():
84
+ raise FileNotFoundError('Editable source is missing; reinstall its distribution: {}'.format(source))
85
+ files[relative] = source
86
+ return files
87
+
88
+
89
+ def create_link(
90
+ source: Path,
91
+ destination: Path,
92
+ ) -> None:
93
+ try:
94
+ symlink(
95
+ source,
96
+ destination,
97
+ )
98
+ except OSError as error:
99
+ if error.errno not in (
100
+ EACCES,
101
+ EPERM,
102
+ ) and getattr(
103
+ error,
104
+ 'winerror',
105
+ None,
106
+ ) != 1314:
107
+ raise
108
+ link(
109
+ source,
110
+ destination,
111
+ )
112
+ return
113
+
114
+
115
+ def write_state(
116
+ state: Path,
117
+ files: dict[str, str],
118
+ ) -> None:
119
+ temporary: Path = state.with_suffix('.new')
120
+ temporary.write_text(
121
+ dumps(
122
+ files,
123
+ sort_keys=True,
124
+ ),
125
+ encoding='utf-8',
126
+ )
127
+ temporary.replace(state)
128
+ return
129
+
130
+
131
+ def invalidate_bytecode(path: Path) -> None:
132
+ if path.suffix == '.py':
133
+ cache: Path = path.parent / '__pycache__'
134
+ if cache.is_dir():
135
+ for bytecode in cache.glob(path.stem + '.*.pyc'):
136
+ bytecode.unlink()
137
+ return
138
+
139
+
140
+ def refresh(
141
+ view: Path,
142
+ project: str,
143
+ files: dict[str, str],
144
+ ) -> None:
145
+ state: Path = view / 'files.json'
146
+ previous: dict[str, str] = loads(state.read_text(encoding='utf-8')) if state.is_file() else {}
147
+ if files == previous and all(
148
+ (view / relative).is_file() and (view / relative).samefile(source)
149
+ for relative, source in files.items()
150
+ ):
151
+ return
152
+ paths: dict[str, Path] = {}
153
+ for relative in previous.keys() | files.keys():
154
+ paths[relative] = view / relative_path(
155
+ relative,
156
+ project,
157
+ )
158
+ touched: set[Path] = set()
159
+ directories: set[Path] = set()
160
+ # Record ownership before adding links so interrupted refreshes remain recoverable.
161
+ ownership: dict[str, str] = {
162
+ **previous,
163
+ **files,
164
+ }
165
+ if ownership != previous:
166
+ write_state(
167
+ state,
168
+ ownership,
169
+ )
170
+ for relative, source in files.items():
171
+ path: Path = paths[relative]
172
+ if path.is_file() and path.samefile(source):
173
+ continue
174
+ path.parent.mkdir(
175
+ parents=True,
176
+ exist_ok=True,
177
+ )
178
+ with TemporaryDirectory(dir=path.parent) as staging:
179
+ replacement: Path = Path(staging) / path.name
180
+ create_link(
181
+ Path(source),
182
+ replacement,
183
+ )
184
+ invalidate_bytecode(path)
185
+ replacement.replace(path)
186
+ if path.suffix == '.py' and (path.parent / '__pycache__').is_dir():
187
+ directories.add(path.parent / '__pycache__')
188
+ for relative in previous.keys() - files.keys():
189
+ path = paths[relative]
190
+ if path.exists() or path.is_symlink():
191
+ path.unlink()
192
+ touched.add(path)
193
+ directories.update(parent for parent in path.parents if parent != view and view in parent.parents)
194
+ for path in touched:
195
+ invalidate_bytecode(path)
196
+ if path.suffix == '.py':
197
+ cache: Path = path.parent / '__pycache__'
198
+ if cache.is_dir():
199
+ directories.add(cache)
200
+ for directory in sorted(
201
+ directories,
202
+ key=lambda path: len(path.parts),
203
+ reverse=True,
204
+ ):
205
+ if directory.exists():
206
+ try:
207
+ directory.rmdir()
208
+ except OSError as error:
209
+ if error.errno not in (
210
+ ENOTEMPTY,
211
+ EEXIST,
212
+ ):
213
+ raise
214
+ write_state(
215
+ state,
216
+ files,
217
+ )
218
+ return
219
+
220
+
221
+ def acquire_lock(
222
+ stream: BinaryIO,
223
+ path: Path,
224
+ ) -> None:
225
+ deadline: float = monotonic() + 30
226
+ while True:
227
+ try:
228
+ if sys.platform == 'win32':
229
+ from msvcrt import (
230
+ LK_NBLCK,
231
+ locking,
232
+ )
233
+ locking(
234
+ stream.fileno(),
235
+ LK_NBLCK,
236
+ 1,
237
+ )
238
+ else:
239
+ from fcntl import (
240
+ LOCK_EX,
241
+ LOCK_NB,
242
+ flock,
243
+ )
244
+ flock(
245
+ stream.fileno(),
246
+ LOCK_EX | LOCK_NB,
247
+ )
248
+ return
249
+ except OSError as error:
250
+ if error.errno not in (
251
+ EACCES,
252
+ EAGAIN,
253
+ ):
254
+ raise
255
+ if monotonic() >= deadline:
256
+ raise TimeoutError('Editable view is locked: {}'.format(path)) from error
257
+ sleep(0.05)
258
+
259
+
260
+ def activate(
261
+ project: str,
262
+ names: tuple[str, ...],
263
+ ) -> None:
264
+ """Expose only installed files through a static, environment-local import root."""
265
+ site: Path = Path(__file__).resolve().parent
266
+ view: Path = site / ('__editable_{}_view'.format(project.lower()))
267
+ lock: Path = view.with_suffix('.lock')
268
+ with lock.open('a+b') as stream:
269
+ if stream.tell() == 0:
270
+ stream.write(b'\0')
271
+ stream.flush()
272
+ stream.seek(0)
273
+ acquire_lock(
274
+ stream,
275
+ lock,
276
+ )
277
+ view.mkdir(exist_ok=True)
278
+ refresh(
279
+ view,
280
+ project,
281
+ collect_files(
282
+ site,
283
+ project,
284
+ names,
285
+ ),
286
+ )
287
+ return