sycommon-python-lib 0.2.5a24__tar.gz → 0.2.5a25__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 (291) hide show
  1. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/PKG-INFO +1 -1
  2. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/pyproject.toml +1 -1
  3. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/mqlistener_config.py +2 -0
  4. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/rabbitmq_client.py +125 -14
  5. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +4 -0
  6. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +2 -1
  7. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon_python_lib.egg-info/PKG-INFO +1 -1
  8. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/README.md +0 -0
  9. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/setup.cfg +0 -0
  10. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/__init__.py +0 -0
  11. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/cli.py +0 -0
  12. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/core/__init__.py +0 -0
  13. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/core/console.py +0 -0
  14. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/core/models.py +0 -0
  15. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/core/project.py +0 -0
  16. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/core/utils.py +0 -0
  17. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/__init__.py +0 -0
  18. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/README.md.tpl +0 -0
  19. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/__init__.py +0 -0
  20. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/agent/__init__.py.tpl +0 -0
  21. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/agent/main_agent.py.tpl +0 -0
  22. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/agent/nodes/__init__.py.tpl +0 -0
  23. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/agent/nodes/example_node.py.tpl +0 -0
  24. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/agent/states/__init__.py.tpl +0 -0
  25. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/agent/states/agent_state.py.tpl +0 -0
  26. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/api/__init__.py.tpl +0 -0
  27. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/api/query.py.tpl +0 -0
  28. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/api/sse/__init__.py.tpl +0 -0
  29. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/api/sse/agent.py.tpl +0 -0
  30. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/app.py.tpl +0 -0
  31. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/client/__init__.py.tpl +0 -0
  32. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/db/__init__.py.tpl +0 -0
  33. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/db/model/__init__.py.tpl +0 -0
  34. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/db/model/entity.py.tpl +0 -0
  35. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/db/service.py.tpl +0 -0
  36. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/model/__init__.py.tpl +0 -0
  37. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/model/parse.py.tpl +0 -0
  38. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/tools/__init__.py.tpl +0 -0
  39. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/tools/mq.py.tpl +0 -0
  40. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/.env.tpl +0 -0
  41. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/.gitignore.tpl +0 -0
  42. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/Dockerfile.tpl +0 -0
  43. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/README.md.tpl +0 -0
  44. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/__init__.py +0 -0
  45. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/app.py.tpl +0 -0
  46. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/app.yaml.tpl +0 -0
  47. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/client/FileServiceClient.py.tpl +0 -0
  48. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/client/__init__.py.tpl +0 -0
  49. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/model/__init__.py.tpl +0 -0
  50. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/model/file_info.py.tpl +0 -0
  51. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/requirements.txt.tpl +0 -0
  52. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/cli/README.md.tpl +0 -0
  53. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/cli/__init__.py +0 -0
  54. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/cli/app.py.tpl +0 -0
  55. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/cli/commands/__init__.py.tpl +0 -0
  56. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/cli/commands/hello.py.tpl +0 -0
  57. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/cli/pyproject.toml.tpl +0 -0
  58. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/cli/tools/__init__.py.tpl +0 -0
  59. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/README.md.tpl +0 -0
  60. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/__init__.py +0 -0
  61. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/api/__init__.py.tpl +0 -0
  62. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/api/echo.py.tpl +0 -0
  63. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/api/sse/__init__.py.tpl +0 -0
  64. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/api/sse/echo.py.tpl +0 -0
  65. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/app.py.tpl +0 -0
  66. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/client/__init__.py.tpl +0 -0
  67. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/model/__init__.py.tpl +0 -0
  68. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/tools/__init__.py.tpl +0 -0
  69. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/tools/mq.py.tpl +0 -0
  70. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/nexus/__init__.py +0 -0
  71. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/__init__.py +0 -0
  72. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/__main__.py +0 -0
  73. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/agents/__init__.py +0 -0
  74. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/agents/factory.py +0 -0
  75. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/agents/prompts.py +0 -0
  76. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/__init__.py +0 -0
  77. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/browser.py +0 -0
  78. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/capabilities/__init__.py +0 -0
  79. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/capabilities/console.py +0 -0
  80. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/capabilities/dom.py +0 -0
  81. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/capabilities/network.py +0 -0
  82. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/capabilities/page_errors.py +0 -0
  83. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/capabilities/performance.py +0 -0
  84. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/capabilities/screenshot.py +0 -0
  85. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/client.py +0 -0
  86. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/protocol.py +0 -0
  87. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/repl.py +0 -0
  88. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/cli.py +0 -0
  89. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/__init__.py +0 -0
  90. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/cdp_cmd.py +0 -0
  91. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/chat_cmd.py +0 -0
  92. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/create_cmd.py +0 -0
  93. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/evaluate_cmd.py +0 -0
  94. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/init_cmd.py +0 -0
  95. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/memory_cmd.py +0 -0
  96. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/resume_cmd.py +0 -0
  97. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/rollback_cmd.py +0 -0
  98. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/run_cmd.py +0 -0
  99. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/core/__init__.py +0 -0
  100. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/core/backend.py +0 -0
  101. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/core/config.py +0 -0
  102. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/core/display.py +0 -0
  103. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/core/git_integration.py +0 -0
  104. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/core/llm.py +0 -0
  105. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/core/state.py +0 -0
  106. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/evaluate/__init__.py +0 -0
  107. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/evaluate/api_evaluator.py +0 -0
  108. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/memory/__init__.py +0 -0
  109. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/memory/compressor.py +0 -0
  110. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/memory/full.py +0 -0
  111. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/memory/hot.py +0 -0
  112. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/memory/manager.py +0 -0
  113. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/memory/warm.py +0 -0
  114. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/mode/__init__.py +0 -0
  115. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/mode/create.py +0 -0
  116. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/mode/optimize.py +0 -0
  117. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/models/__init__.py +0 -0
  118. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/models/config_models.py +0 -0
  119. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/__init__.py +0 -0
  120. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/baseline_tests.py +0 -0
  121. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/checkpoint.py +0 -0
  122. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/convergence.py +0 -0
  123. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/diagnosis.py +0 -0
  124. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/engine.py +0 -0
  125. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/environment.py +0 -0
  126. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/experience.py +0 -0
  127. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/harness_prompts.py +0 -0
  128. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/history.py +0 -0
  129. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/optimization_logger.py +0 -0
  130. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/pre_validation.py +0 -0
  131. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/reward.py +0 -0
  132. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/strategy_bandit.py +0 -0
  133. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/strategy_generator.py +0 -0
  134. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/strategy_prompts.py +0 -0
  135. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycli/skills/__init__.py +0 -0
  136. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/__init__.py +0 -0
  137. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/__init__.py +0 -0
  138. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/agent_manager.py +0 -0
  139. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/chat_events.py +0 -0
  140. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/deep_agent.py +0 -0
  141. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/mcp/__init__.py +0 -0
  142. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/mcp/models.py +0 -0
  143. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/mcp/tool_loader.py +0 -0
  144. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/multi_agent_team.py +0 -0
  145. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/sandbox/__init__.py +0 -0
  146. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/sandbox/file_ops.py +0 -0
  147. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/sandbox/http_sandbox_backend.py +0 -0
  148. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/sandbox/minio_sync.py +0 -0
  149. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
  150. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/sandbox/sandbox_recovery.py +0 -0
  151. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/sandbox/session.py +0 -0
  152. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/summarization_utils.py +0 -0
  153. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/auth/__init__.py +0 -0
  154. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/auth/ldap_service.py +0 -0
  155. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/auth/oa_cache.py +0 -0
  156. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/auth/oa_crypto.py +0 -0
  157. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/auth/oa_service.py +0 -0
  158. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/auth/wecom_ldap_service.py +0 -0
  159. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/Config.py +0 -0
  160. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/DatabaseConfig.py +0 -0
  161. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/ElasticsearchConfig.py +0 -0
  162. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/EmbeddingConfig.py +0 -0
  163. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/LLMConfig.py +0 -0
  164. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/LangfuseConfig.py +0 -0
  165. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/MQConfig.py +0 -0
  166. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/PgConfig.py +0 -0
  167. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/RedisConfig.py +0 -0
  168. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/RerankerConfig.py +0 -0
  169. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/SentryConfig.py +0 -0
  170. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/XxlJobConfig.py +0 -0
  171. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/__init__.py +0 -0
  172. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/database/async_base_db_service.py +0 -0
  173. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/database/async_database_service.py +0 -0
  174. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/database/base_db_service.py +0 -0
  175. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/database/database_service.py +0 -0
  176. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/database/elasticsearch_service.py +0 -0
  177. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/database/pg_checkpoint_service.py +0 -0
  178. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/database/redis_service.py +0 -0
  179. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/database/token_usage_db_service.py +0 -0
  180. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/health/__init__.py +0 -0
  181. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/health/health_check.py +0 -0
  182. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/health/metrics.py +0 -0
  183. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/health/ping.py +0 -0
  184. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/heartbeat_process/__init__.py +0 -0
  185. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
  186. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
  187. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
  188. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/__init__.py +0 -0
  189. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/embedding.py +0 -0
  190. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/get_llm.py +0 -0
  191. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/llm_logger.py +0 -0
  192. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/llm_tokens.py +0 -0
  193. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
  194. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
  195. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/output_fixing_runnable.py +0 -0
  196. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/struct_token.py +0 -0
  197. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/sy_langfuse.py +0 -0
  198. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/tiktoken_cache/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
  199. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/tiktoken_cache/fb374d419588a4632f3f557e76b4b70aebbca790 +0 -0
  200. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/token_usage_es_service.py +0 -0
  201. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
  202. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/usage_token.py +0 -0
  203. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/logging/__init__.py +0 -0
  204. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/logging/async_sql_logger.py +0 -0
  205. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/logging/kafka_log.py +0 -0
  206. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/logging/logger_levels.py +0 -0
  207. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/logging/logger_wrapper.py +0 -0
  208. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/logging/process_logger.py +0 -0
  209. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/logging/sql_logger.py +0 -0
  210. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/mcp_server/__init__.py +0 -0
  211. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/mcp_server/server.py +0 -0
  212. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/__init__.py +0 -0
  213. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/context.py +0 -0
  214. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/cors.py +0 -0
  215. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/docs.py +0 -0
  216. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/exception.py +0 -0
  217. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/middleware.py +0 -0
  218. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/monitor_memory.py +0 -0
  219. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/mq.py +0 -0
  220. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/sandbox.py +0 -0
  221. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/timeout.py +0 -0
  222. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/token_tracking.py +0 -0
  223. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/tool_result_truncation.py +0 -0
  224. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/traceid.py +0 -0
  225. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/__init__.py +0 -0
  226. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/base_http.py +0 -0
  227. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/log.py +0 -0
  228. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/mcp_server_config.py +0 -0
  229. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/mqmsg_model.py +0 -0
  230. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/mqsend_config.py +0 -0
  231. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/sandbox.py +0 -0
  232. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/sso_user.py +0 -0
  233. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/token_usage.py +0 -0
  234. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/token_usage_mysql.py +0 -0
  235. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/xxljob_handler_config.py +0 -0
  236. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/notice/__init__.py +0 -0
  237. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/notice/uvicorn_monitor.py +0 -0
  238. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/notice/wecom_message.py +0 -0
  239. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
  240. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
  241. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
  242. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
  243. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
  244. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
  245. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/sentry/__init__.py +0 -0
  246. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/sentry/sy_sentry.py +0 -0
  247. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/services.py +0 -0
  248. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/sse/__init__.py +0 -0
  249. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/sse/event.py +0 -0
  250. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/sse/sse.py +0 -0
  251. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/__init__.py +0 -0
  252. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/example.py +0 -0
  253. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/example2.py +0 -0
  254. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/feign.py +0 -0
  255. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/feign_client.py +0 -0
  256. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/nacos_client_base.py +0 -0
  257. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/nacos_config_manager.py +0 -0
  258. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
  259. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/nacos_service.py +0 -0
  260. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
  261. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/nacos_service_registration.py +0 -0
  262. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/param.py +0 -0
  263. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/deep_agent_server.py +0 -0
  264. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_consumer_recovery.py +0 -0
  265. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_deep_agent.py +0 -0
  266. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_dynamic_max_tokens.py +0 -0
  267. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_email.py +0 -0
  268. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_encoding_cache.py +0 -0
  269. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_mcp_server.py +0 -0
  270. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_minimax_reasoning.py +0 -0
  271. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_mq.py +0 -0
  272. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_oa_login.py +0 -0
  273. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_real_summarization.py +0 -0
  274. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_summarization_config.py +0 -0
  275. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_summarization_real.py +0 -0
  276. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/tools/__init__.py +0 -0
  277. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/tools/async_utils.py +0 -0
  278. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/tools/docs.py +0 -0
  279. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/tools/env.py +0 -0
  280. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/tools/merge_headers.py +0 -0
  281. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/tools/snowflake.py +0 -0
  282. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/tools/syemail.py +0 -0
  283. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/tools/timing.py +0 -0
  284. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/xxljob/__init__.py +0 -0
  285. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon/xxljob/xxljob_service.py +0 -0
  286. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon_python_lib.egg-info/SOURCES.txt +0 -0
  287. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
  288. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
  289. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon_python_lib.egg-info/requires.txt +0 -0
  290. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
  291. {sycommon_python_lib-0.2.5a24 → sycommon_python_lib-0.2.5a25}/tests/test_sycli.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.5a24
3
+ Version: 0.2.5a25
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "sycommon-python-lib"
3
- version = "0.2.5a24"
3
+ version = "0.2.5a25"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -32,6 +32,8 @@ class RabbitMQListenerConfig(BaseModel):
32
32
  auto_delete: bool = Field(False, description="是否自动删除队列")
33
33
  auto_parse_json: bool = Field(True, description="是否自动解析JSON消息")
34
34
  prefetch_count: int = Field(2, description="同时消费并发数(控制MQ预取与handler并发上限)")
35
+ max_priority: Optional[int] = Field(
36
+ None, description="队列支持的最大优先级(对应 x-max-priority)")
35
37
 
36
38
  class Config:
37
39
  """模型配置"""
@@ -42,6 +42,7 @@ class RabbitMQClient:
42
42
  auto_delete: bool = False,
43
43
  auto_parse_json: bool = True,
44
44
  create_if_not_exists: bool = True,
45
+ max_priority: Optional[int] = None,
45
46
  **kwargs,
46
47
  ):
47
48
  self.connection_pool = connection_pool
@@ -60,6 +61,7 @@ class RabbitMQClient:
60
61
  self.auto_delete = auto_delete
61
62
  self.auto_parse_json = auto_parse_json
62
63
  self.create_if_not_exists = create_if_not_exists
64
+ self.max_priority = max_priority
63
65
 
64
66
  # 资源状态
65
67
  self._channel: Optional[AbstractChannel] = None
@@ -91,6 +93,97 @@ class RabbitMQClient:
91
93
  except Exception:
92
94
  return False
93
95
 
96
+ async def _try_migrate_queue(self, original_error: Exception) -> bool:
97
+ """尝试迁移队列以支持 x-max-priority。
98
+
99
+ 当队列已存在但参数不匹配(PRECONDITION_FAILED)时,检查队列是否为空,
100
+ 为空则删除重建,否则跳过迁移。
101
+
102
+ Returns:
103
+ True 迁移成功,False 未迁移(需由调用方处理)
104
+ """
105
+ from aiormq.exceptions import ChannelPreconditionFailed
106
+
107
+ if not isinstance(original_error, ChannelPreconditionFailed):
108
+ return False
109
+
110
+ if self.max_priority is None:
111
+ return False
112
+
113
+ try:
114
+ # PRECONDITION_FAILED 会关闭当前 channel,需要用新 channel 检查队列状态
115
+ channel, _ = await self.connection_pool.acquire_channel()
116
+ try:
117
+ queue = await channel.declare_queue(
118
+ name=self.queue_name, passive=True
119
+ )
120
+ if queue.declaration_result:
121
+ message_count = queue.declaration_result.message_count
122
+ consumer_count = queue.declaration_result.consumer_count
123
+ else:
124
+ message_count = 0
125
+ consumer_count = 0
126
+ finally:
127
+ await channel.close()
128
+
129
+ if message_count > 0:
130
+ logger.warning(
131
+ f"队列 '{self.queue_name}' 迁移跳过: "
132
+ f"存在 {message_count} 条消息"
133
+ )
134
+ return False
135
+
136
+ logger.info(
137
+ f"开始迁移队列 '{self.queue_name}',添加 x-max-priority={self.max_priority}")
138
+
139
+ # 删除旧队列
140
+ channel, _ = await self.connection_pool.acquire_channel()
141
+ try:
142
+ await channel.queue_delete(
143
+ queue_name=self.queue_name,
144
+ if_unused=False,
145
+ if_empty=False,
146
+ )
147
+ finally:
148
+ await channel.close()
149
+
150
+ # 清理旧 channel(被 PRECONDITION_FAILED 关闭后残留)
151
+ if self._channel and not self._channel.is_closed:
152
+ try:
153
+ await self._channel.close()
154
+ except Exception:
155
+ pass
156
+ self._channel = None
157
+ self._exchange = None
158
+ self._queue = None
159
+
160
+ # 重建 self._channel(旧 channel 已被 PRECONDITION_FAILED 关闭)
161
+ self._channel, self._channel_conn = await self.connection_pool.acquire_channel()
162
+
163
+ # 重新声明交换机
164
+ self._exchange = await self._channel.declare_exchange(
165
+ name=self.exchange_name,
166
+ type=self.exchange_type,
167
+ durable=self.durable,
168
+ auto_delete=self.auto_delete,
169
+ )
170
+
171
+ # 重新声明带 priority 的队列
172
+ self._queue = await self._channel.declare_queue(
173
+ name=self.queue_name,
174
+ durable=self.durable,
175
+ auto_delete=self.auto_delete,
176
+ arguments={"x-max-priority": self.max_priority},
177
+ )
178
+ await self._queue.bind(exchange=self._exchange, routing_key=self.routing_key)
179
+ logger.info(
180
+ f"队列 '{self.queue_name}' 迁移成功,已添加 x-max-priority={self.max_priority}")
181
+ return True
182
+
183
+ except Exception as migrate_error:
184
+ logger.error(f"队列 '{self.queue_name}' 迁移失败: {migrate_error}")
185
+ return False
186
+
94
187
  async def _rebuild_resources(self) -> None:
95
188
  if not self._channel or self._channel.is_closed:
96
189
  raise RuntimeError("无有效通道,无法重建资源")
@@ -112,26 +205,32 @@ class RabbitMQClient:
112
205
  # 2. 声明队列 (仅消费者需要)
113
206
  # 【核心保留逻辑】只有当 queue_name 存在且符合消费者命名规范时,才初始化队列
114
207
  if self.queue_name and self.queue_name.endswith(f".{self.app_name}"):
208
+ queue_args = {}
209
+ if self.max_priority is not None:
210
+ queue_args["x-max-priority"] = self.max_priority
211
+
115
212
  try:
116
213
  self._queue = await self._channel.declare_queue(
117
214
  name=self.queue_name,
118
215
  durable=self.durable,
119
216
  auto_delete=self.auto_delete,
120
217
  passive=not self.create_if_not_exists,
218
+ arguments=queue_args or None,
121
219
  )
122
220
  await self._queue.bind(exchange=self._exchange, routing_key=self.routing_key)
123
221
  logger.debug(f"队列就绪: {self.queue_name}")
124
222
  except Exception as e:
125
- # === 关键处理逻辑 ===
126
- if self.create_if_not_exists:
127
- # 模式:自动创建。如果失败说明权限不足或服务器限制,属于严重错误
128
- logger.error(f"❌ 无法自动创建队列 '{self.queue_name}': {e}")
129
- raise
130
- else:
131
- # 模式:仅检查。队列不存在是预期内的(如生产者启动时队列未创建),跳过
223
+ if not self.create_if_not_exists:
132
224
  self._queue = None
133
225
  logger.warning(
134
226
  f"⚠️ 队列 '{self.queue_name}' 不存在或无权访问 (Passive模式),跳过绑定。")
227
+ return
228
+
229
+ # 尝试自动迁移:参数不匹配时删除重建
230
+ migrated = await self._try_migrate_queue(e)
231
+ if not migrated:
232
+ # 迁移失败(非参数不匹配 / 队列非空 / 有消费者),抛出原始异常
233
+ raise
135
234
  else:
136
235
  # 不符合命名规范或无队列名,清空队列引用
137
236
  self._queue = None
@@ -145,7 +244,8 @@ class RabbitMQClient:
145
244
  t.cancel()
146
245
  try:
147
246
  await asyncio.wait_for(
148
- asyncio.gather(*self._running_tasks, return_exceptions=True),
247
+ asyncio.gather(*self._running_tasks,
248
+ return_exceptions=True),
149
249
  timeout=5.0
150
250
  )
151
251
  except asyncio.TimeoutError:
@@ -350,16 +450,21 @@ class RabbitMQClient:
350
450
  if not self._queue and self.queue_name and self.queue_name.endswith(f".{self.app_name}"):
351
451
  logger.warning(f"队列对象在消费前为空,尝试强制初始化: {self.queue_name}")
352
452
  try:
453
+ queue_args = {}
454
+ if self.max_priority is not None:
455
+ queue_args["x-max-priority"] = self.max_priority
353
456
  self._queue = await self._channel.declare_queue(
354
457
  name=self.queue_name,
355
458
  durable=self.durable,
356
459
  auto_delete=self.auto_delete,
357
- passive=False, # 强制确保队列存在
460
+ passive=False,
461
+ arguments=queue_args or None,
358
462
  )
359
463
  await self._queue.bind(exchange=self._exchange, routing_key=self.routing_key)
360
464
  except Exception as e:
361
- logger.error(f"强制初始化队列失败: {e}")
362
- raise RuntimeError(f"无法初始化队列 {self.queue_name}")
465
+ migrated = await self._try_migrate_queue(e)
466
+ if not migrated:
467
+ raise RuntimeError(f"无法初始化队列 {self.queue_name}")
363
468
 
364
469
  if not self._queue:
365
470
  raise RuntimeError("未配置队列名或队列初始化失败")
@@ -396,6 +501,7 @@ class RabbitMQClient:
396
501
  content_type: str = "application/json",
397
502
  delivery_mode: DeliveryMode = DeliveryMode.PERSISTENT,
398
503
  retry_count: int = 3,
504
+ priority: Optional[int] = None,
399
505
  ) -> None:
400
506
  if self._closed:
401
507
  raise RuntimeError("客户端已关闭,无法发布消息")
@@ -415,8 +521,11 @@ class RabbitMQClient:
415
521
  logger.error(f"消息体序列化失败: {e}")
416
522
  raise
417
523
 
418
- message = Message(body=body, headers=headers or {},
524
+ msg_kwargs = dict(body=body, headers=headers or {},
419
525
  content_type=content_type, delivery_mode=delivery_mode)
526
+ if priority is not None:
527
+ msg_kwargs["priority"] = priority
528
+ message = Message(**msg_kwargs)
420
529
  last_exception = None
421
530
 
422
531
  for attempt in range(retry_count):
@@ -471,11 +580,13 @@ class RabbitMQClient:
471
580
  logger.info(f"等待 {len(self._running_tasks)} 个后台任务完成...")
472
581
  try:
473
582
  await asyncio.wait_for(
474
- asyncio.gather(*self._running_tasks, return_exceptions=True),
583
+ asyncio.gather(*self._running_tasks,
584
+ return_exceptions=True),
475
585
  timeout=15.0
476
586
  )
477
587
  except asyncio.TimeoutError:
478
- logger.warning(f"等待后台任务超时,剩余 {len(self._running_tasks)} 个任务将被丢弃")
588
+ logger.warning(
589
+ f"等待后台任务超时,剩余 {len(self._running_tasks)} 个任务将被丢弃")
479
590
  self._running_tasks.clear()
480
591
 
481
592
  if self._channel and not self._channel.is_closed:
@@ -183,6 +183,7 @@ class RabbitMQClientManager(RabbitMQCoreService):
183
183
  auto_parse_json=kwargs.get('auto_parse_json', True),
184
184
  create_if_not_exists=create_if_not_exists,
185
185
  prefetch_count=kwargs.get('prefetch_count', 2),
186
+ max_priority=kwargs.get('max_priority'),
186
187
  )
187
188
 
188
189
  # 4. 连接客户端
@@ -238,6 +239,9 @@ class RabbitMQClientManager(RabbitMQCoreService):
238
239
  client.queue_name = input_qn
239
240
 
240
241
  if await client.is_connected:
242
+ # 更新 max_priority(发送器先创建客户端时没有此参数)
243
+ if client_type == "listener" and 'max_priority' in kwargs:
244
+ client.max_priority = kwargs['max_priority']
241
245
  return client
242
246
  else:
243
247
  logger.info(f"客户端 '{client_name}' 连接已断开,重新创建")
@@ -218,7 +218,8 @@ class RabbitMQProducerManager(RabbitMQClientManager):
218
218
  await sender.publish(
219
219
  message_body=mq_message.model_dump_json(),
220
220
  headers=mq_header,
221
- content_type="application/json"
221
+ content_type="application/json",
222
+ priority=kwargs.get('priority')
222
223
  )
223
224
  logger.info(f"消息发送成功 (队列: {queue_name})")
224
225
  except Exception as e:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.5a24
3
+ Version: 0.2.5a25
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown