sycommon-python-lib 0.2.1a14__tar.gz → 0.2.1a16__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 (165) hide show
  1. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/PKG-INFO +3 -3
  2. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/pyproject.toml +3 -3
  3. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/synacos/feign.py +49 -4
  4. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/synacos/feign_client.py +41 -16
  5. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon_python_lib.egg-info/PKG-INFO +3 -3
  6. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon_python_lib.egg-info/requires.txt +2 -2
  7. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/README.md +0 -0
  8. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/setup.cfg +0 -0
  9. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/command/__init__.py +0 -0
  10. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/command/cli.py +0 -0
  11. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/command/core/__init__.py +0 -0
  12. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/command/core/console.py +0 -0
  13. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/command/core/models.py +0 -0
  14. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/command/core/project.py +0 -0
  15. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/command/core/utils.py +0 -0
  16. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/command/templates/__init__.py +0 -0
  17. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/command/templates/agent/__init__.py +0 -0
  18. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/command/templates/base/__init__.py +0 -0
  19. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/command/templates/web/__init__.py +0 -0
  20. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/__init__.py +0 -0
  21. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/__init__.py +0 -0
  22. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/examples/01_basic_agent.py +0 -0
  23. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/examples/02_tool_agent.py +0 -0
  24. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/examples/03_structured_output.py +0 -0
  25. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/examples/04_memory_agent.py +0 -0
  26. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/examples/05_streaming.py +0 -0
  27. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/examples/06_multi_agent.py +0 -0
  28. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/examples/07_skills_agent.py +0 -0
  29. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/examples/08_middleware.py +0 -0
  30. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/examples/09_interrupt.py +0 -0
  31. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/examples/10_custom_llm.py +0 -0
  32. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/examples/11_complex_workflow.py +0 -0
  33. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/examples/12_batch_processing.py +0 -0
  34. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/examples/__init__.py +0 -0
  35. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/examples/middleware/01_basic_monitoring.py +0 -0
  36. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/examples/middleware/02_permission_control.py +0 -0
  37. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/examples/middleware/03_tool_skill_filter.py +0 -0
  38. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/examples/middleware/04_caching_retry.py +0 -0
  39. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/examples/middleware/05_sanitization.py +0 -0
  40. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/examples/middleware/06_tracking.py +0 -0
  41. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/examples/middleware/07_advanced.py +0 -0
  42. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/examples/middleware/08_progressive_skills.py +0 -0
  43. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/examples/middleware/__init__.py +0 -0
  44. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/examples/middleware/override_examples.py +0 -0
  45. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/examples/virtual_employee_demo.py +0 -0
  46. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/exports.py +0 -0
  47. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/get_agent.py +0 -0
  48. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/sandbox/__init__.py +0 -0
  49. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/sandbox/file_ops.py +0 -0
  50. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/sandbox/http_sandbox_backend.py +0 -0
  51. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
  52. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/sandbox/session.py +0 -0
  53. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/skills/__init__.py +0 -0
  54. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/skills/examples/faq_handler/scripts/search.py +0 -0
  55. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/skills/exports.py +0 -0
  56. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/agent/virtual_employee.py +0 -0
  57. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/config/Config.py +0 -0
  58. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/config/DatabaseConfig.py +0 -0
  59. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/config/ElasticsearchConfig.py +0 -0
  60. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/config/EmbeddingConfig.py +0 -0
  61. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/config/LLMConfig.py +0 -0
  62. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/config/LangfuseConfig.py +0 -0
  63. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/config/MQConfig.py +0 -0
  64. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/config/RedisConfig.py +0 -0
  65. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/config/RerankerConfig.py +0 -0
  66. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/config/SentryConfig.py +0 -0
  67. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/config/__init__.py +0 -0
  68. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/database/async_base_db_service.py +0 -0
  69. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/database/async_database_service.py +0 -0
  70. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/database/base_db_service.py +0 -0
  71. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/database/database_service.py +0 -0
  72. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/database/elasticsearch_service.py +0 -0
  73. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/database/redis_service.py +0 -0
  74. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/database/token_usage_db_service.py +0 -0
  75. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/health/__init__.py +0 -0
  76. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/health/health_check.py +0 -0
  77. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/health/metrics.py +0 -0
  78. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/health/ping.py +0 -0
  79. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/heartbeat_process/__init__.py +0 -0
  80. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
  81. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
  82. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
  83. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/llm/__init__.py +0 -0
  84. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/llm/embedding.py +0 -0
  85. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/llm/get_llm.py +0 -0
  86. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/llm/llm_logger.py +0 -0
  87. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/llm/llm_tokens.py +0 -0
  88. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
  89. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
  90. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/llm/output_fixing_runnable.py +0 -0
  91. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/llm/struct_token.py +0 -0
  92. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/llm/sy_langfuse.py +0 -0
  93. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/llm/token_usage_es_service.py +0 -0
  94. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
  95. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/llm/usage_token.py +0 -0
  96. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/logging/__init__.py +0 -0
  97. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/logging/async_sql_logger.py +0 -0
  98. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/logging/kafka_log.py +0 -0
  99. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/logging/logger_levels.py +0 -0
  100. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/logging/logger_wrapper.py +0 -0
  101. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/logging/process_logger.py +0 -0
  102. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/logging/sql_logger.py +0 -0
  103. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/middleware/__init__.py +0 -0
  104. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/middleware/context.py +0 -0
  105. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/middleware/cors.py +0 -0
  106. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/middleware/docs.py +0 -0
  107. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/middleware/exception.py +0 -0
  108. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/middleware/middleware.py +0 -0
  109. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/middleware/monitor_memory.py +0 -0
  110. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/middleware/mq.py +0 -0
  111. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/middleware/sandbox.py +0 -0
  112. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/middleware/timeout.py +0 -0
  113. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/middleware/traceid.py +0 -0
  114. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/models/__init__.py +0 -0
  115. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/models/base_http.py +0 -0
  116. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/models/log.py +0 -0
  117. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/models/mqlistener_config.py +0 -0
  118. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/models/mqmsg_model.py +0 -0
  119. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/models/mqsend_config.py +0 -0
  120. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/models/sso_user.py +0 -0
  121. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/models/token_usage.py +0 -0
  122. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/models/token_usage_mysql.py +0 -0
  123. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/notice/__init__.py +0 -0
  124. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/notice/uvicorn_monitor.py +0 -0
  125. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
  126. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/rabbitmq/rabbitmq_client.py +0 -0
  127. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
  128. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
  129. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -0
  130. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
  131. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
  132. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
  133. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +0 -0
  134. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/sentry/__init__.py +0 -0
  135. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/sentry/sy_sentry.py +0 -0
  136. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/services.py +0 -0
  137. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/sse/__init__.py +0 -0
  138. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/sse/event.py +0 -0
  139. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/sse/sse.py +0 -0
  140. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/synacos/__init__.py +0 -0
  141. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/synacos/example.py +0 -0
  142. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/synacos/example2.py +0 -0
  143. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/synacos/nacos_client_base.py +0 -0
  144. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/synacos/nacos_config_manager.py +0 -0
  145. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
  146. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/synacos/nacos_service.py +0 -0
  147. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
  148. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/synacos/nacos_service_registration.py +0 -0
  149. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/synacos/param.py +0 -0
  150. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/tests/deep_agent_server.py +0 -0
  151. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/tests/test_deep_agent.py +0 -0
  152. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/tests/test_email.py +0 -0
  153. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/tests/test_mq.py +0 -0
  154. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/tools/__init__.py +0 -0
  155. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/tools/async_utils.py +0 -0
  156. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/tools/docs.py +0 -0
  157. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/tools/env.py +0 -0
  158. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/tools/merge_headers.py +0 -0
  159. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/tools/snowflake.py +0 -0
  160. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/tools/syemail.py +0 -0
  161. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon/tools/timing.py +0 -0
  162. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon_python_lib.egg-info/SOURCES.txt +0 -0
  163. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
  164. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
  165. {sycommon_python_lib-0.2.1a14 → sycommon_python_lib-0.2.1a16}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.1a14
3
+ Version: 0.2.1a16
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
7
- Requires-Dist: aio-pika>=9.6.1
7
+ Requires-Dist: aio-pika>=9.6.2
8
8
  Requires-Dist: aiohttp>=3.13.3
9
9
  Requires-Dist: aiomysql>=0.3.2
10
10
  Requires-Dist: anyio>=4.12.1
@@ -30,7 +30,7 @@ Requires-Dist: pyyaml>=6.0.3
30
30
  Requires-Dist: redis>=7.3.0
31
31
  Requires-Dist: sentry-sdk[fastapi]>=2.55.0
32
32
  Requires-Dist: sqlalchemy[asyncio]>=2.0.48
33
- Requires-Dist: starlette>=0.52.1
33
+ Requires-Dist: starlette[full]>=1.0.0
34
34
  Requires-Dist: tiktoken>=0.12.0
35
35
  Requires-Dist: uvicorn>=0.42.0
36
36
 
@@ -1,11 +1,11 @@
1
1
  [project]
2
2
  name = "sycommon-python-lib"
3
- version = "0.2.1a14"
3
+ version = "0.2.1a16"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
7
7
  dependencies = [
8
- "aio-pika>=9.6.1",
8
+ "aio-pika>=9.6.2",
9
9
  "aiohttp>=3.13.3",
10
10
  "aiomysql>=0.3.2",
11
11
  "anyio>=4.12.1",
@@ -31,7 +31,7 @@ dependencies = [
31
31
  "redis>=7.3.0",
32
32
  "sentry-sdk[fastapi]>=2.55.0",
33
33
  "sqlalchemy[asyncio]>=2.0.48",
34
- "starlette>=0.52.1",
34
+ "starlette[full]>=1.0.0",
35
35
  "tiktoken>=0.12.0",
36
36
  "uvicorn>=0.42.0",
37
37
  ]
@@ -92,7 +92,39 @@ atexit.register(_sync_close_feign_sessions)
92
92
 
93
93
 
94
94
  async def feign(service_name, api_path, method='GET', params=None, headers=None, file_path=None,
95
- path_params=None, body=None, files=None, form_data=None, timeout=None):
95
+ path_params=None, body=None, files=None, form_data=None, timeout=None, max_retries=3):
96
+ """
97
+ feign 函数,显式设置JSON请求的Content-Type头
98
+ 注意:此函数使用全局Session实现连接复用,适用于简单场景
99
+ 推荐使用 @feign_client 装饰器获得更好的类型支持和参数管理
100
+
101
+ Args:
102
+ max_retries: 最大重试次数(针对网络中断等临时错误),默认3次
103
+ """
104
+ for attempt in range(max_retries):
105
+ try:
106
+ return await _feign_internal(
107
+ service_name, api_path, method, params, headers, file_path,
108
+ path_params, body, files, form_data, timeout
109
+ )
110
+ except aiohttp.ClientPayloadError as e:
111
+ if attempt < max_retries - 1:
112
+ SYLogger.warning(
113
+ f"nacos:请求中断,准备重试 {attempt + 2}/{max_retries} server: {service_name} path: {api_path}")
114
+ await asyncio.sleep(1) # 等待1秒后重试
115
+ else:
116
+ SYLogger.error(
117
+ f"nacos:请求失败,已重试{max_retries}次 server: {service_name} path: {api_path} error:{e}")
118
+ return None
119
+ except Exception as e:
120
+ # 非payload错误直接抛出,由内部处理
121
+ raise
122
+
123
+ return None
124
+
125
+
126
+ async def _feign_internal(service_name, api_path, method='GET', params=None, headers=None, file_path=None,
127
+ path_params=None, body=None, files=None, form_data=None, timeout=None):
96
128
  """
97
129
  feign 函数,显式设置JSON请求的Content-Type头
98
130
  注意:此函数使用全局Session实现连接复用,适用于简单场景
@@ -195,6 +227,9 @@ async def feign(service_name, api_path, method='GET', params=None, headers=None,
195
227
  timeout=timeout
196
228
  ) as response:
197
229
  return await _handle_feign_response(response, service_name, api_path)
230
+ except aiohttp.ClientPayloadError:
231
+ # 载荷传输错误(如连接中断),抛出让外层重试
232
+ raise
198
233
  except aiohttp.ClientError as e:
199
234
  SYLogger.error(
200
235
  f"nacos:请求服务接口时出错ClientError server: {service_name} path: {api_path} error:{e}")
@@ -232,10 +267,17 @@ async def _handle_feign_response(response, service_name: str, api_path: str):
232
267
  response_body = await response.text(encoding='gbk')
233
268
  else:
234
269
  # 其他类型(PDF、图片、octet-stream等):按文件流(二进制)读取
235
- binary_data = await response.read()
270
+ # 使用流式读取,避免大文件内存溢出
271
+ buffer = io.BytesIO()
272
+ total_size = 0
273
+ chunk_size = 64 * 1024 # 64KB chunks
274
+ async for chunk in response.content.iter_chunked(chunk_size):
275
+ buffer.write(chunk)
276
+ total_size += len(chunk)
277
+ buffer.seek(0) # 重置指针到开头
236
278
  SYLogger.info(
237
- f"按文件流处理响应,类型:{content_type},大小:{len(binary_data)/1024:.2f}KB")
238
- return io.BytesIO(binary_data) # 返回BytesIO,支持read()
279
+ f"按文件流处理响应,类型:{content_type},大小:{total_size/1024:.2f}KB")
280
+ return buffer # 返回BytesIO,支持read()
239
281
  return response_body
240
282
  else:
241
283
  # 非200状态:统一读取响应体(兼容文本/二进制错误信息)
@@ -257,6 +299,9 @@ async def _handle_feign_response(response, service_name: str, api_path: str):
257
299
  "data": response_body
258
300
  }
259
301
 
302
+ except aiohttp.ClientPayloadError:
303
+ # 载荷传输错误(如连接中断),抛出让外层重试
304
+ raise
260
305
  except Exception as e:
261
306
  import traceback
262
307
  error_detail = f"处理响应异常: {str(e)}\n{traceback.format_exc()}"
@@ -101,7 +101,8 @@ def feign_client(
101
101
  service_name: str,
102
102
  path_prefix: str = "",
103
103
  default_timeout: Optional[float] = None,
104
- default_headers: Optional[Dict[str, str]] = None
104
+ default_headers: Optional[Dict[str, str]] = None,
105
+ max_retries: int = 3
105
106
  ):
106
107
  default_headers = default_headers or {}
107
108
  default_headers = {k.lower(): v for k, v in default_headers.items()}
@@ -117,6 +118,7 @@ def feign_client(
117
118
  self.default_headers = {
118
119
  k.lower(): v for k, v in default_headers.copy().items()}
119
120
  self.nacos_manager: Optional[NacosService] = None
121
+ self.max_retries = max_retries
120
122
 
121
123
  def __getattr__(self, name: str):
122
124
  if not hasattr(cls, name):
@@ -166,20 +168,36 @@ def feign_client(
166
168
  method, param_meta, bound_args, is_upload, method_headers
167
169
  )
168
170
 
169
- async with session.request(
170
- method=method,
171
- url=url,
172
- headers=headers,
173
- params=query_params,
174
- cookies=cookies,
175
- json=request_data if not (is_upload or isinstance(
176
- request_data, aiohttp.FormData)) else None,
177
- data=request_data if is_upload or isinstance(
178
- request_data, aiohttp.FormData) else None,
179
- timeout=timeout
180
- ) as response:
181
- # 处理响应(支持 Pydantic 模型解析)
182
- return await self._handle_response(response, resp_model)
171
+ # 添加重试机制
172
+ last_error = None
173
+ for attempt in range(self.max_retries):
174
+ try:
175
+ async with session.request(
176
+ method=method,
177
+ url=url,
178
+ headers=headers,
179
+ params=query_params,
180
+ cookies=cookies,
181
+ json=request_data if not (is_upload or isinstance(
182
+ request_data, aiohttp.FormData)) else None,
183
+ data=request_data if is_upload or isinstance(
184
+ request_data, aiohttp.FormData) else None,
185
+ timeout=timeout
186
+ ) as response:
187
+ # 处理响应(支持 Pydantic 模型解析)
188
+ return await self._handle_response(response, resp_model)
189
+ except aiohttp.ClientPayloadError as e:
190
+ last_error = e
191
+ if attempt < self.max_retries - 1:
192
+ SYLogger.warning(
193
+ f"请求中断,准备重试 {attempt + 2}/{self.max_retries} url: {url}")
194
+ await asyncio.sleep(1) # 等待1秒后重试
195
+ else:
196
+ SYLogger.error(
197
+ f"请求失败,已重试{self.max_retries}次 url: {url} error:{e}")
198
+ raise
199
+
200
+ raise last_error
183
201
 
184
202
  return wrapper
185
203
 
@@ -368,7 +386,14 @@ def feign_client(
368
386
  return resp_model(** json_data) # 用响应数据初始化模型
369
387
  return json_data
370
388
  else:
371
- return io.BytesIO(await response.read())
389
+ # 流式读取文件,避免大文件内存溢出
390
+ buffer = io.BytesIO()
391
+ total_size = 0
392
+ async for chunk in response.content.iter_chunked(64 * 1024):
393
+ buffer.write(chunk)
394
+ total_size += len(chunk)
395
+ buffer.seek(0)
396
+ return buffer
372
397
  else:
373
398
  error_msg = await response.text()
374
399
  SYLogger.error(f"请求失败 [{status}]: {error_msg}")
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.1a14
3
+ Version: 0.2.1a16
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
7
- Requires-Dist: aio-pika>=9.6.1
7
+ Requires-Dist: aio-pika>=9.6.2
8
8
  Requires-Dist: aiohttp>=3.13.3
9
9
  Requires-Dist: aiomysql>=0.3.2
10
10
  Requires-Dist: anyio>=4.12.1
@@ -30,7 +30,7 @@ Requires-Dist: pyyaml>=6.0.3
30
30
  Requires-Dist: redis>=7.3.0
31
31
  Requires-Dist: sentry-sdk[fastapi]>=2.55.0
32
32
  Requires-Dist: sqlalchemy[asyncio]>=2.0.48
33
- Requires-Dist: starlette>=0.52.1
33
+ Requires-Dist: starlette[full]>=1.0.0
34
34
  Requires-Dist: tiktoken>=0.12.0
35
35
  Requires-Dist: uvicorn>=0.42.0
36
36
 
@@ -1,4 +1,4 @@
1
- aio-pika>=9.6.1
1
+ aio-pika>=9.6.2
2
2
  aiohttp>=3.13.3
3
3
  aiomysql>=0.3.2
4
4
  anyio>=4.12.1
@@ -24,6 +24,6 @@ pyyaml>=6.0.3
24
24
  redis>=7.3.0
25
25
  sentry-sdk[fastapi]>=2.55.0
26
26
  sqlalchemy[asyncio]>=2.0.48
27
- starlette>=0.52.1
27
+ starlette[full]>=1.0.0
28
28
  tiktoken>=0.12.0
29
29
  uvicorn>=0.42.0