springbootAI 2.3.5__tar.gz → 2.3.7__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 (348) hide show
  1. {springbootai-2.3.5 → springbootai-2.3.7}/CHANGELOG.md +16 -0
  2. {springbootai-2.3.5/springbootAI.egg-info → springbootai-2.3.7}/PKG-INFO +12 -11
  3. {springbootai-2.3.5 → springbootai-2.3.7}/README.md +11 -10
  4. {springbootai-2.3.5 → springbootai-2.3.7}/pyproject.toml +1 -1
  5. {springbootai-2.3.5 → springbootai-2.3.7/springbootAI.egg-info}/PKG-INFO +12 -11
  6. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/__init__.py +1 -1
  7. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/ai/__init__.py +1 -1
  8. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/csv/__init__.py +1 -1
  9. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/data/__init__.py +1 -1
  10. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/datasource/__init__.py +1 -1
  11. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/excel/__init__.py +1 -1
  12. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/i18n/__init__.py +1 -1
  13. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/__init__.py +1 -1
  14. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/__init__.py +1 -1
  15. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/version.py +1 -1
  16. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/test/__init__.py +1 -1
  17. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/tx/__init__.py +1 -1
  18. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/utils/banner.py +2 -2
  19. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/validation/__init__.py +1 -1
  20. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/websocket/__init__.py +1 -1
  21. {springbootai-2.3.5 → springbootai-2.3.7}/LICENSE +0 -0
  22. {springbootai-2.3.5 → springbootai-2.3.7}/MANIFEST.in +0 -0
  23. {springbootai-2.3.5 → springbootai-2.3.7}/SECURITY.md +0 -0
  24. {springbootai-2.3.5 → springbootai-2.3.7}/requirements-ai.txt +0 -0
  25. {springbootai-2.3.5 → springbootai-2.3.7}/requirements-langgraph.txt +0 -0
  26. {springbootai-2.3.5 → springbootai-2.3.7}/requirements-mcp.txt +0 -0
  27. {springbootai-2.3.5 → springbootai-2.3.7}/requirements.txt +0 -0
  28. {springbootai-2.3.5 → springbootai-2.3.7}/setup.cfg +0 -0
  29. {springbootai-2.3.5 → springbootai-2.3.7}/setup.py +0 -0
  30. {springbootai-2.3.5 → springbootai-2.3.7}/springbootAI.egg-info/SOURCES.txt +0 -0
  31. {springbootai-2.3.5 → springbootai-2.3.7}/springbootAI.egg-info/dependency_links.txt +0 -0
  32. {springbootai-2.3.5 → springbootai-2.3.7}/springbootAI.egg-info/entry_points.txt +0 -0
  33. {springbootai-2.3.5 → springbootai-2.3.7}/springbootAI.egg-info/requires.txt +0 -0
  34. {springbootai-2.3.5 → springbootai-2.3.7}/springbootAI.egg-info/top_level.txt +0 -0
  35. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/ai/advisors.py +0 -0
  36. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/ai/annotation_runtime.py +0 -0
  37. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/ai/annotations.py +0 -0
  38. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/ai/autoconfig.py +0 -0
  39. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/ai/core.py +0 -0
  40. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/ai/etl.py +0 -0
  41. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/ai/memory.py +0 -0
  42. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/ai/observability.py +0 -0
  43. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/ai/providers.py +0 -0
  44. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/ai/resilience.py +0 -0
  45. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/ai/tools.py +0 -0
  46. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/ai/vectorstore.py +0 -0
  47. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/annotations/__init__.py +0 -0
  48. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/annotations/batch.py +0 -0
  49. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/annotations/cache.py +0 -0
  50. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/annotations/cloud.py +0 -0
  51. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/annotations/conditional.py +0 -0
  52. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/annotations/core.py +0 -0
  53. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/annotations/data.py +0 -0
  54. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/annotations/enterprise.py +0 -0
  55. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/annotations/langchain.py +0 -0
  56. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/annotations/langgraph.py +0 -0
  57. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/annotations/lombok.py +0 -0
  58. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/annotations/messaging.py +0 -0
  59. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/annotations/security.py +0 -0
  60. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/aop/__init__.py +0 -0
  61. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/aop/aspect.py +0 -0
  62. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/aop/cloud_aop.py +0 -0
  63. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/aop/comprehensive_aop.py +0 -0
  64. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/aop/method_interceptor.py +0 -0
  65. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/aop/proxy_factory.py +0 -0
  66. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/batch/__init__.py +0 -0
  67. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/cli/__init__.py +0 -0
  68. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/cli/main.py +0 -0
  69. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/cli/scaffold.py +0 -0
  70. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/cloud/__init__.py +0 -0
  71. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/cloud/bus.py +0 -0
  72. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/cloud/config_center.py +0 -0
  73. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/cloud/discovery.py +0 -0
  74. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/cloud/feign.py +0 -0
  75. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/cloud/gateway.py +0 -0
  76. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/cloud/load_balancer.py +0 -0
  77. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/cloud/nacos_config.py +0 -0
  78. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/cloud/seata.py +0 -0
  79. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/cloud/seata_at_proxy.py +0 -0
  80. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/cloud/seata_bridge.py +0 -0
  81. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/cloud/sentinel.py +0 -0
  82. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/cloud/tracer.py +0 -0
  83. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/cloud/transaction_store.py +0 -0
  84. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/config/__init__.py +0 -0
  85. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/config/binding.py +0 -0
  86. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/config/config_loader.py +0 -0
  87. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/config/spring-configuration-metadata.json +0 -0
  88. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/context/__init__.py +0 -0
  89. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/context/application_context.py +0 -0
  90. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/context/bean_definition.py +0 -0
  91. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/context/bean_factory.py +0 -0
  92. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/context/lifecycle.py +0 -0
  93. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/context/registry.py +0 -0
  94. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/context/scanner.py +0 -0
  95. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/core/__init__.py +0 -0
  96. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/core/graceful_shutdown.py +0 -0
  97. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/core/typing_utils.py +0 -0
  98. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/csv/annotations.py +0 -0
  99. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/csv/converters.py +0 -0
  100. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/csv/easy_csv.py +0 -0
  101. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/csv/exceptions.py +0 -0
  102. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/csv/reader.py +0 -0
  103. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/csv/writer.py +0 -0
  104. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/data/page.py +0 -0
  105. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/data/repository.py +0 -0
  106. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/data/rest.py +0 -0
  107. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/data/specification.py +0 -0
  108. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/datasource/annotations.py +0 -0
  109. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/datasource/context.py +0 -0
  110. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/datasource/dynamic.py +0 -0
  111. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/devtools.py +0 -0
  112. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/event/__init__.py +0 -0
  113. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/event/publisher.py +0 -0
  114. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/excel/annotations.py +0 -0
  115. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/excel/converters.py +0 -0
  116. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/excel/easy_excel.py +0 -0
  117. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/excel/exceptions.py +0 -0
  118. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/excel/reader.py +0 -0
  119. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/excel/style.py +0 -0
  120. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/excel/writer.py +0 -0
  121. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/i18n/accessor.py +0 -0
  122. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/i18n/auto_config.py +0 -0
  123. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/i18n/holder.py +0 -0
  124. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/i18n/locale.py +0 -0
  125. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/i18n/locale_resolver.py +0 -0
  126. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/i18n/message_source.py +0 -0
  127. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/i18n/middleware.py +0 -0
  128. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/i18n/properties.py +0 -0
  129. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/i18n/sources.py +0 -0
  130. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/adapters.py +0 -0
  131. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/agents/__init__.py +0 -0
  132. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/agents/services.py +0 -0
  133. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/annotations.py +0 -0
  134. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/autoconfig.py +0 -0
  135. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/callbacks/__init__.py +0 -0
  136. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/callbacks/handlers.py +0 -0
  137. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/chains/__init__.py +0 -0
  138. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/chains/services.py +0 -0
  139. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/core.py +0 -0
  140. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/indexes/__init__.py +0 -0
  141. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/indexes/index.py +0 -0
  142. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/loaders/__init__.py +0 -0
  143. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/loaders/loaders.py +0 -0
  144. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/memory/__init__.py +0 -0
  145. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/memory/memory.py +0 -0
  146. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/parsers/__init__.py +0 -0
  147. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/parsers/parsers.py +0 -0
  148. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/partners.py +0 -0
  149. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/prompts/__init__.py +0 -0
  150. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/prompts/templates.py +0 -0
  151. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/retrievers/__init__.py +0 -0
  152. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/retrievers/retrievers.py +0 -0
  153. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/tools/__init__.py +0 -0
  154. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/tools/tools.py +0 -0
  155. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/utilities/__init__.py +0 -0
  156. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/utilities/utils.py +0 -0
  157. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/vectorstores/__init__.py +0 -0
  158. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langchain/vectorstores/stores.py +0 -0
  159. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langgraph/__init__.py +0 -0
  160. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langgraph/annotation_runtime.py +0 -0
  161. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langgraph/annotations.py +0 -0
  162. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langgraph/autoconfig.py +0 -0
  163. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langgraph/checkpoint.py +0 -0
  164. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langgraph/config.py +0 -0
  165. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/langgraph/runtime.py +0 -0
  166. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/logging/__init__.py +0 -0
  167. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/logging/loguru_logger.py +0 -0
  168. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/main.py +0 -0
  169. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/mcp/__init__.py +0 -0
  170. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/mcp/annotation_runtime.py +0 -0
  171. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/mcp/annotations.py +0 -0
  172. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/mcp/autoconfig.py +0 -0
  173. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/mcp/client.py +0 -0
  174. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/mcp/config.py +0 -0
  175. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/mcp/server.py +0 -0
  176. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/messaging/__init__.py +0 -0
  177. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/messaging/kafka.py +0 -0
  178. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/messaging/rabbitmq.py +0 -0
  179. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/monitoring/__init__.py +0 -0
  180. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/monitoring/admin_client.py +0 -0
  181. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/monitoring/prometheus.py +0 -0
  182. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/__init__.py +0 -0
  183. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/database.py +0 -0
  184. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/ddl_auto.py +0 -0
  185. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/migration.py +0 -0
  186. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/mybatis_integration.py +0 -0
  187. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/annotations/__init__.py +0 -0
  188. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/annotations/annotations.py +0 -0
  189. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/cache/__init__.py +0 -0
  190. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/cache/cache.py +0 -0
  191. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/cache/redis_cache.py +0 -0
  192. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/circuit_breaker/__init__.py +0 -0
  193. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/circuit_breaker/circuit_breaker.py +0 -0
  194. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/configuration.py +0 -0
  195. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/core/__init__.py +0 -0
  196. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/core/sql_session.py +0 -0
  197. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/core/sql_session_factory.py +0 -0
  198. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/dialect/__init__.py +0 -0
  199. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/dialect/dialect.py +0 -0
  200. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/dynamic_sql/__init__.py +0 -0
  201. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/dynamic_sql/dynamic_sql.py +0 -0
  202. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/interceptor/__init__.py +0 -0
  203. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/interceptor/interceptor.py +0 -0
  204. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/mapper/__init__.py +0 -0
  205. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/mapper/mapper.py +0 -0
  206. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/metrics/__init__.py +0 -0
  207. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/metrics/metrics.py +0 -0
  208. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/pool/__init__.py +0 -0
  209. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/pool/connection_pool.py +0 -0
  210. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/security/__init__.py +0 -0
  211. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/security/access_control.py +0 -0
  212. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/security/password_encoder.py +0 -0
  213. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/security/sensitive_data_masker.py +0 -0
  214. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/security/sql_injection_detector.py +0 -0
  215. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/transaction/__init__.py +0 -0
  216. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/transaction/transaction.py +0 -0
  217. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/type_handler/__init__.py +0 -0
  218. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/type_handler/type_handler.py +0 -0
  219. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/xml_parser/__init__.py +0 -0
  220. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/orm/pymybatis/xml_parser/xml_parser.py +0 -0
  221. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/retry/__init__.py +0 -0
  222. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/retry/recovery.py +0 -0
  223. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/retry/retry_annotations.py +0 -0
  224. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/retry/retry_decorator.py +0 -0
  225. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/scheduling/__init__.py +0 -0
  226. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/scheduling/scheduler.py +0 -0
  227. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/security/__init__.py +0 -0
  228. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/security/jwt_utils.py +0 -0
  229. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/security/oauth2.py +0 -0
  230. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/security/replay_protection.py +0 -0
  231. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/security/secret_manager.py +0 -0
  232. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/security/security_aop.py +0 -0
  233. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/security/security_context.py +0 -0
  234. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/test/slicing.py +0 -0
  235. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/tracing/__init__.py +0 -0
  236. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/tracing/skywalking.py +0 -0
  237. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/tx/events.py +0 -0
  238. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/tx/synchronization.py +0 -0
  239. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/utils/__init__.py +0 -0
  240. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/utils/bean_utils.py +0 -0
  241. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/utils/logger.py +0 -0
  242. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/utils/redis_client.py +0 -0
  243. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/validation/aop.py +0 -0
  244. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/validation/constraints.py +0 -0
  245. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/validation/exceptions.py +0 -0
  246. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/validation/validator.py +0 -0
  247. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/web/__init__.py +0 -0
  248. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/web/actuator.py +0 -0
  249. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/web/csrf.py +0 -0
  250. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/web/exception_handler.py +0 -0
  251. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/web/hateoas.py +0 -0
  252. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/web/health.py +0 -0
  253. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/web/interceptor.py +0 -0
  254. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/web/request_metrics.py +0 -0
  255. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/web/result.py +0 -0
  256. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/web/swagger.py +0 -0
  257. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/web/web_context.py +0 -0
  258. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/websocket/annotations.py +0 -0
  259. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/websocket/broker.py +0 -0
  260. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/websocket/exceptions.py +0 -0
  261. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/websocket/handler.py +0 -0
  262. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/websocket/router.py +0 -0
  263. {springbootai-2.3.5 → springbootai-2.3.7}/springbootai/websocket/session.py +0 -0
  264. {springbootai-2.3.5 → springbootai-2.3.7}/sql/seata_undo_log.sql +0 -0
  265. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_actuator.py +0 -0
  266. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_actuator_prometheus_admin.py +0 -0
  267. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_ai_annotations.py +0 -0
  268. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_ai_comprehensive.py +0 -0
  269. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_ai_declarative_annotations.py +0 -0
  270. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_ai_module.py +0 -0
  271. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_annotation_combinations.py +0 -0
  272. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_annotations_contract.py +0 -0
  273. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_aop_annotations_full.py +0 -0
  274. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_aop_pointcut_enhancements.py +0 -0
  275. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_audit_time.py +0 -0
  276. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_batch.py +0 -0
  277. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_bean_utils.py +0 -0
  278. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_bus.py +0 -0
  279. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_cache_annotations.py +0 -0
  280. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_cli.py +0 -0
  281. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_cloud_embedded_full.py +0 -0
  282. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_component_init_error.py +0 -0
  283. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_compositional_annotations.py +0 -0
  284. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_conditional_annotations.py +0 -0
  285. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_config_binding.py +0 -0
  286. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_config_center.py +0 -0
  287. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_config_fixes_185.py +0 -0
  288. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_connection_resilience.py +0 -0
  289. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_core.py +0 -0
  290. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_core_annotations_full.py +0 -0
  291. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_csrf.py +0 -0
  292. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_csv_module.py +0 -0
  293. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_data_repository.py +0 -0
  294. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_data_rest.py +0 -0
  295. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_datasource_routing.py +0 -0
  296. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_ddl_auto.py +0 -0
  297. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_declarative_aop_post_authorize_recover.py +0 -0
  298. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_devtools.py +0 -0
  299. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_di_config_event_full.py +0 -0
  300. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_excel_module.py +0 -0
  301. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_hateoas.py +0 -0
  302. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_i18n_module.py +0 -0
  303. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_ioc_lifecycle_enhancements.py +0 -0
  304. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_jpa_version_transient.py +0 -0
  305. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_kafka.py +0 -0
  306. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_langchain_comprehensive.py +0 -0
  307. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_langchain_ext.py +0 -0
  308. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_langchain_module.py +0 -0
  309. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_langgraph_comprehensive.py +0 -0
  310. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_langgraph_module.py +0 -0
  311. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_logging_config.py +0 -0
  312. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_lombok_annotations.py +0 -0
  313. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_mcp_module.py +0 -0
  314. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_metadata.py +0 -0
  315. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_migration.py +0 -0
  316. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_nacos_config.py +0 -0
  317. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_new_annotations.py +0 -0
  318. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_new_features.py +0 -0
  319. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_oauth2.py +0 -0
  320. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_orm_pymybatis_full.py +0 -0
  321. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_production_readiness.py +0 -0
  322. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_pymybatis_configuration_hardening.py +0 -0
  323. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_pymybatis_contract.py +0 -0
  324. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_request_metrics.py +0 -0
  325. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_retry.py +0 -0
  326. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_runtime_configuration_fixes.py +0 -0
  327. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_scaffold_hardening.py +0 -0
  328. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_scheduling.py +0 -0
  329. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_seata_at_proxy.py +0 -0
  330. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_seata_bridge.py +0 -0
  331. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_seata_durable_store.py +0 -0
  332. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_security.py +0 -0
  333. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_security_full.py +0 -0
  334. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_security_hardening.py +0 -0
  335. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_select_page.py +0 -0
  336. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_starter.py +0 -0
  337. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_startup_lifecycle.py +0 -0
  338. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_swagger_module.py +0 -0
  339. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_test_slicing.py +0 -0
  340. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_tracing.py +0 -0
  341. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_transactional_events.py +0 -0
  342. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_validation_module.py +0 -0
  343. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_web_annotations_full.py +0 -0
  344. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_web_file_upload.py +0 -0
  345. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_web_root_mapping.py +0 -0
  346. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_web_security_responses.py +0 -0
  347. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_web_static_files.py +0 -0
  348. {springbootai-2.3.5 → springbootai-2.3.7}/tests/test_websocket_module.py +0 -0
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.3.7] - 2026-08-20
4
+
5
+ ### PyPI 项目说明修正
6
+
7
+ - PyPI 恢复使用完整的 `README.md`,与 GitHub 项目主页保持相同的内容、功能总览图和状态徽章。
8
+ - 撤销 `2.3.6` 中单独维护精简版 PyPI README 的方案,避免两处项目说明内容不一致。
9
+ - 发布版本升级到 `2.3.7`,同步框架主包、扩展模块、PyMyBatis 内嵌版本、README 版本矩阵和打包元数据。
10
+
11
+ ## [2.3.6] - 2026-08-20
12
+
13
+ ### PyPI 展示修复
14
+
15
+ - 新增不含外链图片的 `README_PYPI.md`,作为 PyPI 项目说明,避免外链图片被转换到不可访问的 PyPI Camo 代理后显示为破损图片。
16
+ - GitHub 继续使用包含功能总览图和状态徽章的 `README.md`,两端展示互不影响。
17
+ - 发布版本升级到 `2.3.6`,同步框架主包、扩展模块、PyMyBatis 内嵌版本、README 版本矩阵和打包元数据。
18
+
3
19
  ## [2.3.5] - 2026-08-20
4
20
 
5
21
  ### 文档与发布
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: springbootAI
3
- Version: 2.3.5
3
+ Version: 2.3.7
4
4
  Summary: Spring-style Python framework with Web, ORM, Cloud and AI integrations
5
5
  Author-email: YuConggen <1516933915@qq.com>
6
6
  License-Expression: MIT
@@ -166,6 +166,12 @@ Dynamic: license-file
166
166
  <img src="https://raw.githubusercontent.com/YUCONGGEN/springbootAI/master/doc/images/hero-banner.png" alt="SpringBootAI 功能总览" width="100%" />
167
167
  </p>
168
168
 
169
+ [![PyPI](https://img.shields.io/pypi/v/springbootAI)](https://pypi.org/project/springbootAI/)
170
+ [![Python](https://img.shields.io/pypi/pyversions/springbootAI)](https://pypi.org/project/springbootAI/)
171
+ [![CI](https://github.com/YUCONGGEN/springbootAI/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/YUCONGGEN/springbootAI/actions/workflows/ci.yml)
172
+ [![Security](https://github.com/YUCONGGEN/springbootAI/actions/workflows/security.yml/badge.svg?branch=master)](https://github.com/YUCONGGEN/springbootAI/actions/workflows/security.yml)
173
+ [![License](https://img.shields.io/pypi/l/springbootAI)](https://github.com/YUCONGGEN/springbootAI/blob/master/LICENSE)
174
+
169
175
  ## SpringBootAI 考试认证与证书
170
176
 
171
177
  SpringBootAI 已提供配套的在线考试认证平台,学习者、团队成员和项目使用方可以通过认证考试检验自己对框架核心能力的掌握情况,并在通过考试后获得对应证书。
@@ -198,11 +204,6 @@ SpringBootAI 已提供配套的在线考试认证平台,学习者、团队成
198
204
  | 安全能力 | JWT、密码加密、SQL 注入防护、CSRF、OAuth2、访问控制与常见错误处理 |
199
205
  | AI 生态 | ChatClient、Tools、RAG、Advisor、LangChain、LangGraph、MCP client/server |
200
206
 
201
- [![PyPI](https://img.shields.io/pypi/v/springbootAI)](https://pypi.org/project/springbootAI/)
202
- [![Python](https://img.shields.io/pypi/pyversions/springbootAI)](https://pypi.org/project/springbootAI/)
203
- [![CI](https://github.com/YUCONGGEN/springbootAI/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/YUCONGGEN/springbootAI/actions/workflows/ci.yml)
204
- [![Security](https://github.com/YUCONGGEN/springbootAI/actions/workflows/security.yml/badge.svg?branch=master)](https://github.com/YUCONGGEN/springbootAI/actions/workflows/security.yml)
205
- [![License](https://img.shields.io/pypi/l/springbootAI)](https://github.com/YUCONGGEN/springbootAI/blob/master/LICENSE)
206
207
 
207
208
  SpringBootAI 是一个采用 Spring 风格注解和分层结构的 Python 应用框架。你使用 Python 编写 `@RestController`、`@Service`、`@Mapper` 和 `@Autowired`,框架负责组件扫描、依赖注入、Web 路由、事务切面及生命周期;Web 运行时建立在 FastAPI/Starlette/Uvicorn 之上。
208
209
 
@@ -215,7 +216,7 @@ SpringBootAI 是一个采用 Spring 风格注解和分层结构的 Python 应用
215
216
  | AI 与编排 | 模型调用、Tools、RAG、Chain、状态图、MCP client/server | LangChain / LangGraph / 官方 MCP SDK |
216
217
  | 生产治理 | 健康检查、Prometheus、限流熔断、追踪、Swagger | prometheus-client / OpenTelemetry / OpenAPI |
217
218
 
218
- 当前版本是 `2.3.5`;支持 Python 3.10、3.11 和 3.12,许可证为 MIT。项目仍标记为 Beta。用于公网高并发、合规敏感或支付/订单/库存等核心系统前,必须完成目标数据库、流量模型、故障恢复和安全基线验证。内嵌 Gateway 适合内部路由,不替代公网 Nginx/Kong/WAF;Seata `distributed` 对接官方 TC + TCC 回调;`at` 模式通过 ORM 拦截器自动生成 undo_log 实现自动回滚。
219
+ 当前版本是 `2.3.7`;支持 Python 3.10、3.11 和 3.12,许可证为 MIT。项目仍标记为 Beta。用于公网高并发、合规敏感或支付/订单/库存等核心系统前,必须完成目标数据库、流量模型、故障恢复和安全基线验证。内嵌 Gateway 适合内部路由,不替代公网 Nginx/Kong/WAF;Seata `distributed` 对接官方 TC + TCC 回调;`at` 模式通过 ORM 拦截器自动生成 undo_log 实现自动回滚。
219
220
 
220
221
  [新手指南](https://github.com/YUCONGGEN/springbootAI/blob/master/doc/BEGINNER_GUIDE.md) | [全部文档](https://github.com/YUCONGGEN/springbootAI/tree/master/doc) | [变更日志](https://github.com/YUCONGGEN/springbootAI/blob/master/CHANGELOG.md) | [安全报告](https://github.com/YUCONGGEN/springbootAI/blob/master/SECURITY.md) | [发布检查](https://github.com/YUCONGGEN/springbootAI/blob/master/doc/RELEASE_CHECKLIST.md)
221
222
 
@@ -396,10 +397,10 @@ SpringBootAI 是一个 **Python Web 框架**。它把 Java Spring Boot 的"注
396
397
 
397
398
  | 组件 | 当前版本 |
398
399
  |------|----------|
399
- | `springbootai` 框架 API | 2.3.5 |
400
- | `springbootai.orm.pymybatis` | 2.3.5 |
401
- | `springbootai.ai` AI 模块 | 2.3.5 |
402
- | `springbootai.langchain` LangChain 模块 | 2.3.5 |
400
+ | `springbootai` 框架 API | 2.3.7 |
401
+ | `springbootai.orm.pymybatis` | 2.3.7 |
402
+ | `springbootai.ai` AI 模块 | 2.3.7 |
403
+ | `springbootai.langchain` LangChain 模块 | 2.3.7 |
403
404
  | Python | 3.10+ |
404
405
 
405
406
  ### 1.4 适合什么场景
@@ -4,6 +4,12 @@
4
4
  <img src="https://raw.githubusercontent.com/YUCONGGEN/springbootAI/master/doc/images/hero-banner.png" alt="SpringBootAI 功能总览" width="100%" />
5
5
  </p>
6
6
 
7
+ [![PyPI](https://img.shields.io/pypi/v/springbootAI)](https://pypi.org/project/springbootAI/)
8
+ [![Python](https://img.shields.io/pypi/pyversions/springbootAI)](https://pypi.org/project/springbootAI/)
9
+ [![CI](https://github.com/YUCONGGEN/springbootAI/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/YUCONGGEN/springbootAI/actions/workflows/ci.yml)
10
+ [![Security](https://github.com/YUCONGGEN/springbootAI/actions/workflows/security.yml/badge.svg?branch=master)](https://github.com/YUCONGGEN/springbootAI/actions/workflows/security.yml)
11
+ [![License](https://img.shields.io/pypi/l/springbootAI)](https://github.com/YUCONGGEN/springbootAI/blob/master/LICENSE)
12
+
7
13
  ## SpringBootAI 考试认证与证书
8
14
 
9
15
  SpringBootAI 已提供配套的在线考试认证平台,学习者、团队成员和项目使用方可以通过认证考试检验自己对框架核心能力的掌握情况,并在通过考试后获得对应证书。
@@ -36,11 +42,6 @@ SpringBootAI 已提供配套的在线考试认证平台,学习者、团队成
36
42
  | 安全能力 | JWT、密码加密、SQL 注入防护、CSRF、OAuth2、访问控制与常见错误处理 |
37
43
  | AI 生态 | ChatClient、Tools、RAG、Advisor、LangChain、LangGraph、MCP client/server |
38
44
 
39
- [![PyPI](https://img.shields.io/pypi/v/springbootAI)](https://pypi.org/project/springbootAI/)
40
- [![Python](https://img.shields.io/pypi/pyversions/springbootAI)](https://pypi.org/project/springbootAI/)
41
- [![CI](https://github.com/YUCONGGEN/springbootAI/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/YUCONGGEN/springbootAI/actions/workflows/ci.yml)
42
- [![Security](https://github.com/YUCONGGEN/springbootAI/actions/workflows/security.yml/badge.svg?branch=master)](https://github.com/YUCONGGEN/springbootAI/actions/workflows/security.yml)
43
- [![License](https://img.shields.io/pypi/l/springbootAI)](https://github.com/YUCONGGEN/springbootAI/blob/master/LICENSE)
44
45
 
45
46
  SpringBootAI 是一个采用 Spring 风格注解和分层结构的 Python 应用框架。你使用 Python 编写 `@RestController`、`@Service`、`@Mapper` 和 `@Autowired`,框架负责组件扫描、依赖注入、Web 路由、事务切面及生命周期;Web 运行时建立在 FastAPI/Starlette/Uvicorn 之上。
46
47
 
@@ -53,7 +54,7 @@ SpringBootAI 是一个采用 Spring 风格注解和分层结构的 Python 应用
53
54
  | AI 与编排 | 模型调用、Tools、RAG、Chain、状态图、MCP client/server | LangChain / LangGraph / 官方 MCP SDK |
54
55
  | 生产治理 | 健康检查、Prometheus、限流熔断、追踪、Swagger | prometheus-client / OpenTelemetry / OpenAPI |
55
56
 
56
- 当前版本是 `2.3.5`;支持 Python 3.10、3.11 和 3.12,许可证为 MIT。项目仍标记为 Beta。用于公网高并发、合规敏感或支付/订单/库存等核心系统前,必须完成目标数据库、流量模型、故障恢复和安全基线验证。内嵌 Gateway 适合内部路由,不替代公网 Nginx/Kong/WAF;Seata `distributed` 对接官方 TC + TCC 回调;`at` 模式通过 ORM 拦截器自动生成 undo_log 实现自动回滚。
57
+ 当前版本是 `2.3.7`;支持 Python 3.10、3.11 和 3.12,许可证为 MIT。项目仍标记为 Beta。用于公网高并发、合规敏感或支付/订单/库存等核心系统前,必须完成目标数据库、流量模型、故障恢复和安全基线验证。内嵌 Gateway 适合内部路由,不替代公网 Nginx/Kong/WAF;Seata `distributed` 对接官方 TC + TCC 回调;`at` 模式通过 ORM 拦截器自动生成 undo_log 实现自动回滚。
57
58
 
58
59
  [新手指南](https://github.com/YUCONGGEN/springbootAI/blob/master/doc/BEGINNER_GUIDE.md) | [全部文档](https://github.com/YUCONGGEN/springbootAI/tree/master/doc) | [变更日志](https://github.com/YUCONGGEN/springbootAI/blob/master/CHANGELOG.md) | [安全报告](https://github.com/YUCONGGEN/springbootAI/blob/master/SECURITY.md) | [发布检查](https://github.com/YUCONGGEN/springbootAI/blob/master/doc/RELEASE_CHECKLIST.md)
59
60
 
@@ -234,10 +235,10 @@ SpringBootAI 是一个 **Python Web 框架**。它把 Java Spring Boot 的"注
234
235
 
235
236
  | 组件 | 当前版本 |
236
237
  |------|----------|
237
- | `springbootai` 框架 API | 2.3.5 |
238
- | `springbootai.orm.pymybatis` | 2.3.5 |
239
- | `springbootai.ai` AI 模块 | 2.3.5 |
240
- | `springbootai.langchain` LangChain 模块 | 2.3.5 |
238
+ | `springbootai` 框架 API | 2.3.7 |
239
+ | `springbootai.orm.pymybatis` | 2.3.7 |
240
+ | `springbootai.ai` AI 模块 | 2.3.7 |
241
+ | `springbootai.langchain` LangChain 模块 | 2.3.7 |
241
242
  | Python | 3.10+ |
242
243
 
243
244
  ### 1.4 适合什么场景
@@ -12,7 +12,7 @@ build-backend = "setuptools.build_meta"
12
12
  [project]
13
13
  # Distribution name: springbootAI (pip install springbootAI); import package: springbootai.
14
14
  name = "springbootAI"
15
- version = "2.3.5"
15
+ version = "2.3.7"
16
16
  description = "Spring-style Python framework with Web, ORM, Cloud and AI integrations"
17
17
  readme = "README.md"
18
18
  license = "MIT"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: springbootAI
3
- Version: 2.3.5
3
+ Version: 2.3.7
4
4
  Summary: Spring-style Python framework with Web, ORM, Cloud and AI integrations
5
5
  Author-email: YuConggen <1516933915@qq.com>
6
6
  License-Expression: MIT
@@ -166,6 +166,12 @@ Dynamic: license-file
166
166
  <img src="https://raw.githubusercontent.com/YUCONGGEN/springbootAI/master/doc/images/hero-banner.png" alt="SpringBootAI 功能总览" width="100%" />
167
167
  </p>
168
168
 
169
+ [![PyPI](https://img.shields.io/pypi/v/springbootAI)](https://pypi.org/project/springbootAI/)
170
+ [![Python](https://img.shields.io/pypi/pyversions/springbootAI)](https://pypi.org/project/springbootAI/)
171
+ [![CI](https://github.com/YUCONGGEN/springbootAI/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/YUCONGGEN/springbootAI/actions/workflows/ci.yml)
172
+ [![Security](https://github.com/YUCONGGEN/springbootAI/actions/workflows/security.yml/badge.svg?branch=master)](https://github.com/YUCONGGEN/springbootAI/actions/workflows/security.yml)
173
+ [![License](https://img.shields.io/pypi/l/springbootAI)](https://github.com/YUCONGGEN/springbootAI/blob/master/LICENSE)
174
+
169
175
  ## SpringBootAI 考试认证与证书
170
176
 
171
177
  SpringBootAI 已提供配套的在线考试认证平台,学习者、团队成员和项目使用方可以通过认证考试检验自己对框架核心能力的掌握情况,并在通过考试后获得对应证书。
@@ -198,11 +204,6 @@ SpringBootAI 已提供配套的在线考试认证平台,学习者、团队成
198
204
  | 安全能力 | JWT、密码加密、SQL 注入防护、CSRF、OAuth2、访问控制与常见错误处理 |
199
205
  | AI 生态 | ChatClient、Tools、RAG、Advisor、LangChain、LangGraph、MCP client/server |
200
206
 
201
- [![PyPI](https://img.shields.io/pypi/v/springbootAI)](https://pypi.org/project/springbootAI/)
202
- [![Python](https://img.shields.io/pypi/pyversions/springbootAI)](https://pypi.org/project/springbootAI/)
203
- [![CI](https://github.com/YUCONGGEN/springbootAI/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/YUCONGGEN/springbootAI/actions/workflows/ci.yml)
204
- [![Security](https://github.com/YUCONGGEN/springbootAI/actions/workflows/security.yml/badge.svg?branch=master)](https://github.com/YUCONGGEN/springbootAI/actions/workflows/security.yml)
205
- [![License](https://img.shields.io/pypi/l/springbootAI)](https://github.com/YUCONGGEN/springbootAI/blob/master/LICENSE)
206
207
 
207
208
  SpringBootAI 是一个采用 Spring 风格注解和分层结构的 Python 应用框架。你使用 Python 编写 `@RestController`、`@Service`、`@Mapper` 和 `@Autowired`,框架负责组件扫描、依赖注入、Web 路由、事务切面及生命周期;Web 运行时建立在 FastAPI/Starlette/Uvicorn 之上。
208
209
 
@@ -215,7 +216,7 @@ SpringBootAI 是一个采用 Spring 风格注解和分层结构的 Python 应用
215
216
  | AI 与编排 | 模型调用、Tools、RAG、Chain、状态图、MCP client/server | LangChain / LangGraph / 官方 MCP SDK |
216
217
  | 生产治理 | 健康检查、Prometheus、限流熔断、追踪、Swagger | prometheus-client / OpenTelemetry / OpenAPI |
217
218
 
218
- 当前版本是 `2.3.5`;支持 Python 3.10、3.11 和 3.12,许可证为 MIT。项目仍标记为 Beta。用于公网高并发、合规敏感或支付/订单/库存等核心系统前,必须完成目标数据库、流量模型、故障恢复和安全基线验证。内嵌 Gateway 适合内部路由,不替代公网 Nginx/Kong/WAF;Seata `distributed` 对接官方 TC + TCC 回调;`at` 模式通过 ORM 拦截器自动生成 undo_log 实现自动回滚。
219
+ 当前版本是 `2.3.7`;支持 Python 3.10、3.11 和 3.12,许可证为 MIT。项目仍标记为 Beta。用于公网高并发、合规敏感或支付/订单/库存等核心系统前,必须完成目标数据库、流量模型、故障恢复和安全基线验证。内嵌 Gateway 适合内部路由,不替代公网 Nginx/Kong/WAF;Seata `distributed` 对接官方 TC + TCC 回调;`at` 模式通过 ORM 拦截器自动生成 undo_log 实现自动回滚。
219
220
 
220
221
  [新手指南](https://github.com/YUCONGGEN/springbootAI/blob/master/doc/BEGINNER_GUIDE.md) | [全部文档](https://github.com/YUCONGGEN/springbootAI/tree/master/doc) | [变更日志](https://github.com/YUCONGGEN/springbootAI/blob/master/CHANGELOG.md) | [安全报告](https://github.com/YUCONGGEN/springbootAI/blob/master/SECURITY.md) | [发布检查](https://github.com/YUCONGGEN/springbootAI/blob/master/doc/RELEASE_CHECKLIST.md)
221
222
 
@@ -396,10 +397,10 @@ SpringBootAI 是一个 **Python Web 框架**。它把 Java Spring Boot 的"注
396
397
 
397
398
  | 组件 | 当前版本 |
398
399
  |------|----------|
399
- | `springbootai` 框架 API | 2.3.5 |
400
- | `springbootai.orm.pymybatis` | 2.3.5 |
401
- | `springbootai.ai` AI 模块 | 2.3.5 |
402
- | `springbootai.langchain` LangChain 模块 | 2.3.5 |
400
+ | `springbootai` 框架 API | 2.3.7 |
401
+ | `springbootai.orm.pymybatis` | 2.3.7 |
402
+ | `springbootai.ai` AI 模块 | 2.3.7 |
403
+ | `springbootai.langchain` LangChain 模块 | 2.3.7 |
403
404
  | Python | 3.10+ |
404
405
 
405
406
  ### 1.4 适合什么场景
@@ -19,7 +19,7 @@ from .config import *
19
19
  from .utils import *
20
20
  from .main import create_app, run, SpringApplication, run_cli
21
21
 
22
- __version__ = "2.3.5"
22
+ __version__ = "2.3.7"
23
23
  __author__ = "yuconggen"
24
24
  __license__ = "MIT"
25
25
 
@@ -54,7 +54,7 @@ from springbootai.ai.observability import AIMetrics, ai_metrics
54
54
  from springbootai.ai.autoconfig import AIProperties, bind_ai_config, configure_ai
55
55
  from springbootai.ai.annotation_runtime import ContentModerationError
56
56
 
57
- __version__ = "2.3.5"
57
+ __version__ = "2.3.7"
58
58
 
59
59
  __all__ = [
60
60
  # core
@@ -33,7 +33,7 @@ from .reader import CsvReader
33
33
  from .writer import CsvWriter
34
34
  from .easy_csv import EasyCsv, read_csv, write_csv
35
35
 
36
- __version__ = "2.3.5"
36
+ __version__ = "2.3.7"
37
37
 
38
38
  __all__ = [
39
39
  # 异常
@@ -39,7 +39,7 @@ from springbootai.data.repository import (
39
39
  get_data_repository_entity,
40
40
  )
41
41
 
42
- __version__ = "2.3.5"
42
+ __version__ = "2.3.7"
43
43
 
44
44
  __all__ = [
45
45
  # 分页/排序
@@ -43,7 +43,7 @@ from .annotations import (
43
43
  ds_route_decorator, ds_decorator_factory, apply_ds_annotations, is_slave_placeholder,
44
44
  )
45
45
 
46
- __version__ = "2.3.5"
46
+ __version__ = "2.3.7"
47
47
 
48
48
  __all__ = [
49
49
  "DataSourceContextHolder",
@@ -33,7 +33,7 @@ from .reader import ExcelReader
33
33
  from .writer import ExcelWriter
34
34
  from .easy_excel import EasyExcel, read_excel, write_excel
35
35
 
36
- __version__ = "2.3.5"
36
+ __version__ = "2.3.7"
37
37
 
38
38
  __all__ = [
39
39
  # 异常
@@ -65,7 +65,7 @@ from .properties import load_properties, parse_properties
65
65
  from .middleware import LocaleResolverMiddleware, get_request_locale
66
66
  from .auto_config import MessageSourceAutoConfiguration, configure_message_source
67
67
 
68
- __version__ = "2.3.5"
68
+ __version__ = "2.3.7"
69
69
 
70
70
  __all__ = [
71
71
  # Locale
@@ -90,7 +90,7 @@ from springbootai.langchain.annotations import (
90
90
  bind_langchain_client,
91
91
  )
92
92
 
93
- __version__ = "2.3.5"
93
+ __version__ = "2.3.7"
94
94
 
95
95
  __all__ = [
96
96
  # core
@@ -34,7 +34,7 @@ from .security import SensitiveDataMasker, SQLInjectionDetector
34
34
  from .interceptor import Interceptor
35
35
  from .type_handler import TypeHandler
36
36
 
37
- __version__ = "2.3.5"
37
+ __version__ = "2.3.7"
38
38
  __author__ = "PyMyBatis Team"
39
39
 
40
40
  # 基础导出列表
@@ -2,7 +2,7 @@
2
2
  PyMyBatis版本信息
3
3
  """
4
4
 
5
- __version__ = '2.3.5'
5
+ __version__ = '2.3.7'
6
6
  __author__ = 'PyMyBatis Team'
7
7
  __email__ = 'dev@pymybatis.org'
8
8
  __license__ = 'MIT'
@@ -34,7 +34,7 @@
34
34
  """
35
35
  from .slicing import TestPool, SpringBootTest, WebMvcTest, DataJpaTest
36
36
 
37
- __version__ = "2.3.5"
37
+ __version__ = "2.3.7"
38
38
 
39
39
  __all__ = [
40
40
  "TestPool",
@@ -39,7 +39,7 @@ from .synchronization import (
39
39
  )
40
40
  from .events import TransactionalEventListener, TransactionalEventPublisher
41
41
 
42
- __version__ = "2.3.5"
42
+ __version__ = "2.3.7"
43
43
 
44
44
  __all__ = [
45
45
  "TransactionPhase",
@@ -5,9 +5,9 @@ def _default_version() -> str:
5
5
  # 读取 spring 包的 __version__,避免每次发版都要修改本文件
6
6
  try:
7
7
  import springbootai # noqa: WPS433 (局部导入避免循环依赖)
8
- return getattr(spring, "__version__", "2.3.5")
8
+ return getattr(spring, "__version__", "2.3.7")
9
9
  except Exception: # pragma: no cover - 极端情况下兜底
10
- return "2.3.5"
10
+ return "2.3.7"
11
11
 
12
12
 
13
13
  class BannerPrinter:
@@ -34,7 +34,7 @@ from .constraints import (
34
34
  from .validator import BeanValidator
35
35
  from .aop import BeanValidate, bean_validate_decorator
36
36
 
37
- __version__ = "2.3.5"
37
+ __version__ = "2.3.7"
38
38
 
39
39
  __all__ = [
40
40
  # 异常
@@ -63,7 +63,7 @@ from .broker import (
63
63
  )
64
64
  from .router import WebSocketRouter, MessageEndpointDispatcher, install_websocket_routes
65
65
 
66
- __version__ = "2.3.5"
66
+ __version__ = "2.3.7"
67
67
 
68
68
  __all__ = [
69
69
  # 异常
File without changes
File without changes
File without changes
File without changes
File without changes