fastapi-startkit 0.54.0__tar.gz → 0.55.0__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 (344) hide show
  1. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/PKG-INFO +1 -1
  2. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/pyproject.toml +1 -1
  3. fastapi_startkit-0.55.0/src/fastapi_startkit/masoniteorm/connections/connection.py +212 -0
  4. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/connections/postgres_connection.py +0 -3
  5. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/schema/Blueprint.py +3 -2
  6. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/testing/transaction.py +4 -2
  7. fastapi_startkit-0.54.0/src/fastapi_startkit/masoniteorm/connections/connection.py +0 -151
  8. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/README.md +0 -0
  9. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/.DS_Store +0 -0
  10. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/__init__.py +0 -0
  11. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/ai/__init__.py +0 -0
  12. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/ai/agent.py +0 -0
  13. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/ai/ai.py +0 -0
  14. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/ai/audio.py +0 -0
  15. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/ai/audio_factory.py +0 -0
  16. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/ai/config/ai.py +0 -0
  17. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/ai/config/config.py +0 -0
  18. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/ai/decorators.py +0 -0
  19. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/ai/document.py +0 -0
  20. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/ai/image.py +0 -0
  21. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/ai/image_factory.py +0 -0
  22. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/ai/judge.py +0 -0
  23. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/ai/lab.py +0 -0
  24. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/ai/pipeline.py +0 -0
  25. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/ai/providers/__init__.py +0 -0
  26. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/ai/providers/ai_provider.py +0 -0
  27. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/ai/recording.py +0 -0
  28. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/ai/runner.py +0 -0
  29. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/ai/state.py +0 -0
  30. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/ai/testing.py +0 -0
  31. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/ai/tinker.py +0 -0
  32. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/ai/types.py +0 -0
  33. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/application.py +0 -0
  34. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/broadcasting/__init__.py +0 -0
  35. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/broadcasting/auth.py +0 -0
  36. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/broadcasting/channels.py +0 -0
  37. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/broadcasting/config.py +0 -0
  38. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/broadcasting/drivers/__init__.py +0 -0
  39. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/broadcasting/drivers/log_driver.py +0 -0
  40. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/broadcasting/drivers/reverb_driver.py +0 -0
  41. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/broadcasting/event.py +0 -0
  42. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/broadcasting/helpers.py +0 -0
  43. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/broadcasting/manager.py +0 -0
  44. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/broadcasting/provider.py +0 -0
  45. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/broadcasting/reverb/__init__.py +0 -0
  46. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/broadcasting/reverb/channel_manager.py +0 -0
  47. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/broadcasting/reverb/connection.py +0 -0
  48. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/broadcasting/reverb/server.py +0 -0
  49. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/broadcasting/stubs/__init__.py +0 -0
  50. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/broadcasting/stubs/channels.py +0 -0
  51. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/carbon/__init__.py +0 -0
  52. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/carbon/carbon.py +0 -0
  53. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/config/__init__.py +0 -0
  54. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/config/app.py +0 -0
  55. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/configuration/Configuration.py +0 -0
  56. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/configuration/__init__.py +0 -0
  57. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/configuration/config.py +0 -0
  58. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/configuration/helpers.py +0 -0
  59. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/configuration/providers/ConfigurationProvider.py +0 -0
  60. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/configuration/providers/__init__.py +0 -0
  61. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/console/__init__.py +0 -0
  62. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/console/application.py +0 -0
  63. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/console/can_override_config.py +0 -0
  64. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/console/can_override_default_options.py +0 -0
  65. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/console/command.py +0 -0
  66. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/console/publish_command.py +0 -0
  67. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/container/__init__.py +0 -0
  68. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/container/container.py +0 -0
  69. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/environment/__init__.py +0 -0
  70. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/environment/environment.py +0 -0
  71. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/events/__init__.py +0 -0
  72. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/events/dispatcher.py +0 -0
  73. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/events/fake.py +0 -0
  74. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/events/helpers.py +0 -0
  75. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/events/listener.py +0 -0
  76. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/events/provider.py +0 -0
  77. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/exceptions/__init__.py +0 -0
  78. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/exceptions/exceptions.py +0 -0
  79. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/exceptions/handler.py +0 -0
  80. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/AI.py +0 -0
  81. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/AI.pyi +0 -0
  82. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Cache.py +0 -0
  83. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Config.py +0 -0
  84. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Config.pyi +0 -0
  85. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Dump.py +0 -0
  86. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Dump.pyi +0 -0
  87. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Event.py +0 -0
  88. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Event.pyi +0 -0
  89. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Facade.py +0 -0
  90. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Gate.py +0 -0
  91. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Gate.pyi +0 -0
  92. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Hash.py +0 -0
  93. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Hash.pyi +0 -0
  94. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Loader.py +0 -0
  95. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Loader.pyi +0 -0
  96. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Mail.py +0 -0
  97. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Mail.pyi +0 -0
  98. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Notification.py +0 -0
  99. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Notification.pyi +0 -0
  100. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Queue.py +0 -0
  101. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Queue.pyi +0 -0
  102. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/RateLimiter.py +0 -0
  103. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/RateLimiter.pyi +0 -0
  104. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Request.py +0 -0
  105. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Request.pyi +0 -0
  106. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Response.py +0 -0
  107. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Response.pyi +0 -0
  108. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Session.py +0 -0
  109. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Session.pyi +0 -0
  110. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Url.py +0 -0
  111. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Url.pyi +0 -0
  112. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/View.py +0 -0
  113. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/View.pyi +0 -0
  114. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Vite.py +0 -0
  115. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/Vite.pyi +0 -0
  116. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/facades/__init__.py +0 -0
  117. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/fastapi/__init__.py +0 -0
  118. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/fastapi/commands/__init__.py +0 -0
  119. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/fastapi/commands/serve_command.py +0 -0
  120. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/fastapi/config/__init__.py +0 -0
  121. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/fastapi/config/fastapi.py +0 -0
  122. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/fastapi/events.py +0 -0
  123. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/fastapi/exceptions.py +0 -0
  124. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/fastapi/middleware.py +0 -0
  125. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/fastapi/providers/fastapi_provider.py +0 -0
  126. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/fastapi/requests/model.py +0 -0
  127. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/fastapi/routers/router.py +0 -0
  128. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/fastapi/testing/__init__.py +0 -0
  129. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/fastapi/testing/assertable_json.py +0 -0
  130. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/fastapi/testing/test_case.py +0 -0
  131. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/fastapi/testing/test_response.py +0 -0
  132. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/foundation/app_provider.py +0 -0
  133. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/inertia/__init__.py +0 -0
  134. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/inertia/constant.py +0 -0
  135. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/inertia/context.py +0 -0
  136. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/inertia/inertia.py +0 -0
  137. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/inertia/middleware.py +0 -0
  138. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/inertia/props/props.py +0 -0
  139. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/inertia/provider.py +0 -0
  140. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/jsonapi/__init__.py +0 -0
  141. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/jsonapi/response.py +0 -0
  142. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/loader/Loader.py +0 -0
  143. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/loader/__init__.py +0 -0
  144. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/ChannelFactory.py +0 -0
  145. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/__init__.py +0 -0
  146. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/channels/BaseChannel.py +0 -0
  147. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/channels/DailyChannel.py +0 -0
  148. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/channels/MultiBaseChannel.py +0 -0
  149. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/channels/SingleChannel.py +0 -0
  150. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/channels/SlackChannel.py +0 -0
  151. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/channels/StackChannel.py +0 -0
  152. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/channels/SyslogChannel.py +0 -0
  153. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/channels/TerminalChannel.py +0 -0
  154. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/channels/__init__.py +0 -0
  155. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/config/__init__.py +0 -0
  156. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/config/channels.py +0 -0
  157. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/config/logging.py +0 -0
  158. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/drivers/BaseDriver.py +0 -0
  159. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/drivers/LogSingleDriver.py +0 -0
  160. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/drivers/LogSlackDriver.py +0 -0
  161. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/drivers/LogSyslogDriver.py +0 -0
  162. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/drivers/LogTerminalDriver.py +0 -0
  163. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/drivers/__init__.py +0 -0
  164. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/factory.py +0 -0
  165. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/file.py +0 -0
  166. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/handler.py +0 -0
  167. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/listeners.py +0 -0
  168. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/logger.py +0 -0
  169. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/managers/LoggingManager.py +0 -0
  170. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/managers/__init__.py +0 -0
  171. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/providers/__init__.py +0 -0
  172. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/logging/providers/log_provider.py +0 -0
  173. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/__init__.py +0 -0
  174. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/collection/Collection.py +0 -0
  175. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/collection/__init__.py +0 -0
  176. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/commands/DBMigrateCommand.py +0 -0
  177. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/commands/DBSeedCommand.py +0 -0
  178. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/commands/MakeMigrationCommand.py +0 -0
  179. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/commands/MakeModelCommand.py +0 -0
  180. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/commands/MakeModelDocstringCommand.py +0 -0
  181. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/commands/MakeObserverCommand.py +0 -0
  182. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/commands/MakeSeedCommand.py +0 -0
  183. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/commands/MigrateFreshCommand.py +0 -0
  184. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/commands/MigrateRefreshCommand.py +0 -0
  185. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/commands/MigrateResetCommand.py +0 -0
  186. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/commands/MigrateRollbackCommand.py +0 -0
  187. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/commands/MigrateStatusCommand.py +0 -0
  188. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/commands/ShellCommand.py +0 -0
  189. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/commands/__init__.py +0 -0
  190. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/commands/stubs/create_migration.stub +0 -0
  191. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/commands/stubs/create_seed.stub +0 -0
  192. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/commands/stubs/model.stub +0 -0
  193. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/commands/stubs/observer.stub +0 -0
  194. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/commands/stubs/table_migration.stub +0 -0
  195. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/config/__init__.py +0 -0
  196. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/config/config.py +0 -0
  197. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/config/database.py +0 -0
  198. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/connections/factory.py +0 -0
  199. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/connections/manager.py +0 -0
  200. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/connections/mysql_connection.py +0 -0
  201. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/connections/sqlite_connection.py +0 -0
  202. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/exceptions.py +0 -0
  203. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/expressions/__init__.py +0 -0
  204. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/expressions/expressions.py +0 -0
  205. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/facades/DB.py +0 -0
  206. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/facades/Schema.py +0 -0
  207. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/facades/__init__.py +0 -0
  208. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/factory/__init__.py +0 -0
  209. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/factory/factory.py +0 -0
  210. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/helpers/__init__.py +0 -0
  211. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/helpers/misc.py +0 -0
  212. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/migrations/Migration.py +0 -0
  213. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/migrations/Migrator.py +0 -0
  214. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/migrations/__init__.py +0 -0
  215. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/models/MigrationModel.py +0 -0
  216. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/models/__init__.py +0 -0
  217. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/models/attribute.py +0 -0
  218. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/models/builder.py +0 -0
  219. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/models/caster.py +0 -0
  220. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/models/fields.py +0 -0
  221. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/models/model.py +0 -0
  222. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/models/observer.py +0 -0
  223. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/models/pivot.py +0 -0
  224. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/models/registry.py +0 -0
  225. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/models/relationship.py +0 -0
  226. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/observers/ObservesEvents.py +0 -0
  227. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/observers/__init__.py +0 -0
  228. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/pagination/BasePaginator.py +0 -0
  229. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/pagination/LengthAwarePaginator.py +0 -0
  230. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/pagination/SimplePaginator.py +0 -0
  231. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/pagination/__init__.py +0 -0
  232. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/providers/DatabaseProvider.py +0 -0
  233. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/providers/__init__.py +0 -0
  234. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/query/EagerLoadMixin.py +0 -0
  235. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/query/EagerRelation.py +0 -0
  236. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/query/__init__.py +0 -0
  237. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/query/grammars/BaseGrammar.py +0 -0
  238. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/query/grammars/MSSQLGrammar.py +0 -0
  239. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/query/grammars/MySQLGrammar.py +0 -0
  240. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/query/grammars/PostgresGrammar.py +0 -0
  241. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/query/grammars/SQLiteGrammar.py +0 -0
  242. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/query/grammars/__init__.py +0 -0
  243. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/query/processors/MSSQLPostProcessor.py +0 -0
  244. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/query/processors/MySQLPostProcessor.py +0 -0
  245. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/query/processors/PostgresPostProcessor.py +0 -0
  246. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/query/processors/SQLitePostProcessor.py +0 -0
  247. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/query/processors/__init__.py +0 -0
  248. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/query/support.py +0 -0
  249. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/relationships/BaseRelationship.py +0 -0
  250. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/relationships/BelongsTo.py +0 -0
  251. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/relationships/BelongsToMany.py +0 -0
  252. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/relationships/HasMany.py +0 -0
  253. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/relationships/HasManyThrough.py +0 -0
  254. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/relationships/HasOne.py +0 -0
  255. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/relationships/HasOneThrough.py +0 -0
  256. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/relationships/MorphMany.py +0 -0
  257. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/relationships/MorphOne.py +0 -0
  258. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/relationships/MorphTo.py +0 -0
  259. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/relationships/MorphToMany.py +0 -0
  260. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/relationships/__init__.py +0 -0
  261. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/schema/Column.py +0 -0
  262. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/schema/ColumnDiff.py +0 -0
  263. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/schema/Constraint.py +0 -0
  264. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/schema/ForeignKeyConstraint.py +0 -0
  265. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/schema/Index.py +0 -0
  266. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/schema/Table.py +0 -0
  267. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/schema/TableDiff.py +0 -0
  268. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/schema/__init__.py +0 -0
  269. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/schema/platforms/MSSQLPlatform.py +0 -0
  270. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/schema/platforms/MySQLPlatform.py +0 -0
  271. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/schema/platforms/Platform.py +0 -0
  272. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/schema/platforms/PostgresPlatform.py +0 -0
  273. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/schema/platforms/SQLitePlatform.py +0 -0
  274. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/schema/platforms/__init__.py +0 -0
  275. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/schema/schema.py +0 -0
  276. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/seeders/Seeder.py +0 -0
  277. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/seeders/__init__.py +0 -0
  278. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/stubs/create-migration.html +0 -0
  279. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/stubs/table-migration.html +0 -0
  280. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/masoniteorm/testing/__init__.py +0 -0
  281. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/mcp/__init__.py +0 -0
  282. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/mcp/argument.py +0 -0
  283. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/mcp/prompt.py +0 -0
  284. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/mcp/protocol.py +0 -0
  285. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/mcp/providers/__init__.py +0 -0
  286. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/mcp/providers/mcp_provider.py +0 -0
  287. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/mcp/request.py +0 -0
  288. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/mcp/resource.py +0 -0
  289. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/mcp/response.py +0 -0
  290. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/mcp/server.py +0 -0
  291. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/mcp/tool.py +0 -0
  292. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/process/__init__.py +0 -0
  293. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/process/exception.py +0 -0
  294. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/process/fake.py +0 -0
  295. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/process/process.py +0 -0
  296. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/process/result.py +0 -0
  297. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/py.typed +0 -0
  298. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/skills/__init__.py +0 -0
  299. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/skills/adapters/__init__.py +0 -0
  300. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/skills/adapters/base.py +0 -0
  301. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/skills/adapters/claude.py +0 -0
  302. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/skills/adapters/gemini.py +0 -0
  303. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/skills/commands/__init__.py +0 -0
  304. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/skills/commands/skills.py +0 -0
  305. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/skills/parser.py +0 -0
  306. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/skills/provider.py +0 -0
  307. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/skills/registry.py +0 -0
  308. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/skills/stubs/.ai/fastapi-startkit/database/SKILL.md +0 -0
  309. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/skills/stubs/.ai/fastapi-startkit/fastapi/SKILL.md +0 -0
  310. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/skills/stubs/.ai/fastapi-startkit/inertia/SKILL.md +0 -0
  311. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/storage/__init__.py +0 -0
  312. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/storage/config/__init__.py +0 -0
  313. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/storage/config/storage.py +0 -0
  314. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/storage/data/mime.types +0 -0
  315. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/storage/drivers/__init__.py +0 -0
  316. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/storage/drivers/fake.py +0 -0
  317. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/storage/drivers/local.py +0 -0
  318. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/storage/drivers/s3.py +0 -0
  319. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/storage/file.py +0 -0
  320. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/storage/filestream.py +0 -0
  321. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/storage/helper.py +0 -0
  322. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/storage/providers/provider.py +0 -0
  323. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/storage/storage.py +0 -0
  324. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/support/__init__.py +0 -0
  325. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/support/collection.py +0 -0
  326. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/support/dataclass.py +0 -0
  327. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/support/providers/__init__.py +0 -0
  328. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/support/providers/provider.py +0 -0
  329. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/support/string.py +0 -0
  330. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/support/structures.py +0 -0
  331. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/support/uri.py +0 -0
  332. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/testing/__init__.py +0 -0
  333. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/testing/test_case.py +0 -0
  334. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/vite/__init__.py +0 -0
  335. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/vite/config/vite.py +0 -0
  336. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/vite/exceptions.py +0 -0
  337. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/vite/providers/provider.py +0 -0
  338. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/vite/stubs/package.json +0 -0
  339. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/vite/stubs/resources/css/app.css +0 -0
  340. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/vite/stubs/resources/js/app.ts +0 -0
  341. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/vite/stubs/resources/templates/index.html +0 -0
  342. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/vite/stubs/tsconfig.json +0 -0
  343. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/vite/stubs/vite.config.ts +0 -0
  344. {fastapi_startkit-0.54.0 → fastapi_startkit-0.55.0}/src/fastapi_startkit/vite/vite.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: fastapi-startkit
3
- Version: 0.54.0
3
+ Version: 0.55.0
4
4
  Summary: A modular, provider-driven framework for building async Python web applications with FastAPI — bundling a service container, configuration system, an async-first ORM, facades, and a Cleo-powered console.
5
5
  Keywords: fastapi,framework,async,web,asgi,orm,sqlalchemy,pydantic,ioc-container,dependency-injection,service-provider,cli,console,configuration,microservices,starter-kit,boilerplate
6
6
  Author: Bedram Tamang
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "fastapi-startkit"
3
- version = "0.54.0"
3
+ version = "0.55.0"
4
4
  description = "A modular, provider-driven framework for building async Python web applications with FastAPI — bundling a service container, configuration system, an async-first ORM, facades, and a Cleo-powered console."
5
5
  readme = "README.md"
6
6
  keywords = [
@@ -0,0 +1,212 @@
1
+ from __future__ import annotations
2
+
3
+ from contextvars import ContextVar, Token
4
+ from types import TracebackType
5
+ from typing import TYPE_CHECKING
6
+
7
+ from sqlalchemy import text
8
+ from sqlalchemy.ext.asyncio import AsyncConnection, AsyncEngine, AsyncTransaction
9
+
10
+ from fastapi_startkit.masoniteorm.models.builder import QueryBuilder
11
+
12
+ if TYPE_CHECKING:
13
+ from typing import Self
14
+
15
+
16
+ class Transaction:
17
+ def __init__(self, owner: Connection):
18
+ self.owner = owner
19
+ self.connection: AsyncConnection | None = None
20
+ self.transaction: AsyncTransaction | None = None
21
+ self._token: Token[AsyncConnection | None] | None = None
22
+ self._owns_connection = False
23
+
24
+ async def __aenter__(self) -> Self:
25
+ connection = self.owner.connection
26
+ if connection is None:
27
+ connection = await self.owner.engine.connect()
28
+ self._owns_connection = True
29
+ self.connection = connection
30
+ self._token = self.owner._connection_context.set(connection)
31
+
32
+ try:
33
+ if connection.in_transaction():
34
+ self.transaction = await connection.begin_nested()
35
+ else:
36
+ self.transaction = await connection.begin()
37
+ except BaseException:
38
+ self.owner._connection_context.reset(self._token)
39
+ if self._owns_connection:
40
+ await connection.close()
41
+ raise
42
+ return self
43
+
44
+ async def __aexit__(
45
+ self,
46
+ exc_type: type[BaseException] | None,
47
+ exc_value: BaseException | None,
48
+ traceback: TracebackType | None,
49
+ ) -> None:
50
+ assert self.connection is not None
51
+ assert self.transaction is not None
52
+ assert self._token is not None
53
+ try:
54
+ await self.transaction.__aexit__(exc_type, exc_value, traceback)
55
+ finally:
56
+ self.owner._connection_context.reset(self._token)
57
+ if self._owns_connection:
58
+ await self.connection.close()
59
+
60
+ async def commit(self) -> None:
61
+ assert self.transaction is not None
62
+ await self.transaction.commit()
63
+
64
+ async def rollback(self) -> None:
65
+ assert self.transaction is not None
66
+ await self.transaction.rollback()
67
+
68
+
69
+ class Connection:
70
+ def __init__(self, engine: AsyncEngine, config: dict):
71
+ self.config = config
72
+ self.engine: AsyncEngine = engine
73
+ self._connection_context: ContextVar[AsyncConnection | None] = ContextVar(
74
+ f"masoniteorm_connection_{id(self)}", default=None
75
+ )
76
+
77
+ @property
78
+ def connection(self) -> AsyncConnection | None:
79
+ return self._connection_context.get()
80
+
81
+ @property
82
+ def transactions(self) -> list[AsyncTransaction]:
83
+ connection = self.connection
84
+ if connection is None:
85
+ return []
86
+ nested = connection.get_nested_transaction()
87
+ root = connection.get_transaction()
88
+ return [transaction for transaction in (root, nested) if transaction is not None]
89
+
90
+ def transaction(self) -> Transaction:
91
+ return Transaction(self)
92
+
93
+ def query(self) -> QueryBuilder:
94
+ return QueryBuilder(
95
+ connection=self,
96
+ grammar=self.get_query_grammar(),
97
+ processor=self.get_post_processor(),
98
+ )
99
+
100
+ async def get_connection(self) -> AsyncConnection:
101
+ return self.connection or await self.engine.connect()
102
+
103
+ def get_query_grammar(cls):
104
+ pass
105
+
106
+ def get_post_processor(self):
107
+ pass
108
+
109
+ async def begin_transaction(self) -> None:
110
+ connection = self.connection
111
+ if connection is None:
112
+ connection = await self.engine.connect()
113
+ self._connection_context.set(connection)
114
+ if connection.in_transaction():
115
+ await connection.begin_nested()
116
+ else:
117
+ await connection.begin()
118
+
119
+ async def commit_transaction(self) -> None:
120
+ connection = self.connection
121
+ if connection is None or not connection.in_transaction():
122
+ raise RuntimeError("No active transaction to commit")
123
+ nested = connection.get_nested_transaction()
124
+ if nested is not None:
125
+ await nested.commit()
126
+ else:
127
+ transaction = connection.get_transaction()
128
+ assert transaction is not None
129
+ await transaction.commit()
130
+ await self._release_connection(connection)
131
+
132
+ async def rollback(self) -> None:
133
+ connection = self.connection
134
+ if connection is None or not connection.in_transaction():
135
+ raise RuntimeError("No active transaction to rollback")
136
+ nested = connection.get_nested_transaction()
137
+ if nested is not None:
138
+ await nested.rollback()
139
+ else:
140
+ transaction = connection.get_transaction()
141
+ assert transaction is not None
142
+ await transaction.rollback()
143
+ await self._release_connection(connection)
144
+
145
+ async def _release_connection(self, connection: AsyncConnection) -> None:
146
+ await connection.close()
147
+ if self.connection is connection:
148
+ self._connection_context.set(None)
149
+
150
+ async def close(self) -> None:
151
+ connection = self.connection
152
+ if connection is not None:
153
+ await connection.close()
154
+ self._connection_context.set(None)
155
+
156
+ async def reconnect(self) -> None:
157
+ await self.close()
158
+
159
+ @staticmethod
160
+ def sql_alchemy_bindings(query: str, bindings: list | None = None):
161
+ params = {}
162
+ if bindings:
163
+ for i, val in enumerate(bindings):
164
+ name = f"p{i}"
165
+ params[name] = val
166
+ query = query.replace("?", f":{name}", 1)
167
+ return (query, params)
168
+
169
+ async def run(self, query: str, bindings: list | None = None):
170
+ query, params = self.sql_alchemy_bindings(query, bindings)
171
+ return await self._execute(query, params)
172
+
173
+ async def execute(self, query: str, bindings: list | None = None):
174
+ query, params = self.sql_alchemy_bindings(query, bindings)
175
+ return await self._execute(query, params)
176
+
177
+ async def _execute(self, query: str, bindings: dict):
178
+ connection = self.connection
179
+ if connection is not None:
180
+ return await connection.execute(text(query), bindings or {})
181
+ async with self.engine.begin() as operation_connection:
182
+ return await operation_connection.execute(text(query), bindings or {})
183
+
184
+ async def insert(self, query: str, bindings: list | None = None) -> int | None:
185
+ result = await self.execute(query, bindings)
186
+ return getattr(result, "lastrowid", None)
187
+
188
+ async def insert_get_id(self, query: str, bindings: list | None = None) -> int | None:
189
+ result = await self.execute(query, bindings)
190
+ return getattr(result, "lastrowid", None)
191
+
192
+ async def update(self, query: str, bindings: list | None = None) -> int:
193
+ result = await self.execute(query, bindings)
194
+ return result.rowcount # type: ignore[return-value]
195
+
196
+ async def delete(self, query: str, bindings: list | None = None) -> int:
197
+ result = await self.execute(query, bindings)
198
+ return result.rowcount # type: ignore[return-value]
199
+
200
+ async def select(self, query: str, bindings: list | None = None) -> list[dict]:
201
+ result = await self.run(query, bindings)
202
+ return result.mappings().all()
203
+
204
+ async def select_one(self, query: str, bindings: list | None = None) -> dict | None:
205
+ result = await self.run(query, bindings)
206
+ row = result.fetchone()
207
+ return dict(zip(result.keys(), row)) if row else None
208
+
209
+ async def statement(self, query: str, bindings: list | None = None) -> bool:
210
+ query, params = self.sql_alchemy_bindings(query, bindings)
211
+ await self._execute(query, params)
212
+ return True
@@ -10,9 +10,6 @@ class PostgresConnection(Connection):
10
10
  async def insert_get_id(self, query: str, bindings: list | None = None) -> int | None:
11
11
  result = await self.run(query, bindings)
12
12
  row = result.fetchone()
13
- if not self.transactions:
14
- conn = await self.get_connection()
15
- await conn.commit()
16
13
  return row[0] if row is not None else None
17
14
 
18
15
  @classmethod
@@ -736,8 +736,9 @@ class Blueprint:
736
736
 
737
737
  sql = await self.to_sql()
738
738
  if isinstance(sql, list):
739
- for q in sql:
740
- await self.connection.statement(q, ())
739
+ async with self.connection.transaction():
740
+ for q in sql:
741
+ await self.connection.statement(q, ())
741
742
  return
742
743
  return await self.connection.statement(sql, ())
743
744
 
@@ -3,10 +3,12 @@ class DatabaseTransaction:
3
3
  from fastapi_startkit.masoniteorm.models import Model
4
4
 
5
5
  self.connection = Model.db_manager.connection(None)
6
- await self.connection.begin_transaction()
6
+ self.transaction = self.connection.transaction()
7
+ await self.transaction.__aenter__()
7
8
 
8
9
  async def asyncStopTestRun(self):
9
- await self.connection.rollback()
10
+ await self.transaction.rollback()
11
+ await self.transaction.__aexit__(None, None, None)
10
12
 
11
13
 
12
14
  class RefreshDatabase(DatabaseTransaction):
@@ -1,151 +0,0 @@
1
- from typing import List
2
-
3
- from sqlalchemy import text
4
- from sqlalchemy.ext.asyncio import AsyncConnection, AsyncEngine, AsyncTransaction
5
-
6
- from fastapi_startkit.masoniteorm.models.builder import QueryBuilder
7
-
8
-
9
- class Connection:
10
- def __init__(self, engine: AsyncEngine, config: dict):
11
- self.config = config
12
- self.engine: AsyncEngine = engine
13
- self.connection: AsyncConnection | None = None
14
- self.transactions: List[AsyncTransaction] = []
15
-
16
- def query(self) -> "QueryBuilder":
17
- return QueryBuilder(
18
- connection=self,
19
- grammar=self.get_query_grammar(),
20
- processor=self.get_post_processor(),
21
- )
22
-
23
- async def get_connection(self) -> AsyncConnection:
24
- if self.connection is None:
25
- self.connection = await self.engine.connect()
26
-
27
- assert self.connection is not None
28
- return self.connection
29
-
30
- def get_query_grammar(cls):
31
- pass
32
-
33
- def get_post_processor(self):
34
- pass
35
-
36
- async def begin_transaction(self) -> None:
37
- connection = await self.get_connection()
38
-
39
- if not self.transactions:
40
- transaction = await connection.begin()
41
- else:
42
- transaction = await connection.begin_nested()
43
-
44
- self.transactions.append(transaction)
45
-
46
- async def commit_transaction(self) -> None:
47
- if not self.transactions:
48
- raise RuntimeError("No active transaction to commit")
49
-
50
- transaction = self.transactions.pop()
51
- await transaction.commit()
52
-
53
- await self._maybe_cleanup()
54
-
55
- async def rollback(self) -> None:
56
- if not self.transactions:
57
- raise RuntimeError("No active transaction to rollback")
58
-
59
- transaction = self.transactions.pop()
60
- await transaction.rollback()
61
-
62
- await self._maybe_cleanup()
63
-
64
- async def close(self) -> None:
65
- if self.connection is not None:
66
- await self.connection.close()
67
- self.connection = None
68
- self.transactions = []
69
-
70
- async def reconnect(self) -> None:
71
- await self.close()
72
-
73
- @staticmethod
74
- def sql_alchemy_bindings(query: str, bindings: list | None = None):
75
- params = {}
76
- if bindings:
77
- for i, val in enumerate(bindings):
78
- name = f"p{i}"
79
- params[name] = val
80
- query = query.replace("?", f":{name}", 1)
81
- return (query, params)
82
-
83
- async def run(self, query: str, bindings: list | None = None):
84
- query, bindings = self.sql_alchemy_bindings(query, bindings)
85
-
86
- conn = await self.get_connection()
87
- result = await conn.execute(text(query), bindings or {})
88
-
89
- if not self.transactions:
90
- await conn.commit()
91
-
92
- return result
93
-
94
- async def execute(self, query: str, bindings: list | None = None):
95
- query, bindings = self.sql_alchemy_bindings(query, bindings)
96
-
97
- conn = await self.get_connection()
98
- result = await conn.execute(text(query), bindings or {})
99
-
100
- if not self.transactions:
101
- await conn.commit()
102
-
103
- return result
104
-
105
- async def insert(self, query: str, bindings: list | None = None) -> int | None:
106
- result = await self.execute(query, bindings)
107
-
108
- return getattr(result, "lastrowid", None)
109
-
110
- async def insert_get_id(self, query: str, bindings: list | None = None) -> int | None:
111
- result = await self.execute(query, bindings)
112
- return getattr(result, "lastrowid", None)
113
-
114
- async def update(self, query: str, bindings: list | None = None) -> int:
115
- result = await self.execute(query, bindings)
116
-
117
- return result.rowcount # type: ignore[return-value]
118
-
119
- async def delete(self, query: str, bindings: list | None = None) -> int:
120
- result = await self.execute(query, bindings)
121
- return result.rowcount # type: ignore[return-value]
122
-
123
- async def select(self, query: str, bindings: list | None = None) -> list[dict]:
124
- result = await self.run(query, bindings)
125
-
126
- return result.mappings().all()
127
-
128
- async def select_one(self, query: str, bindings: list | None = None) -> dict | None:
129
- result = await self.run(query, bindings)
130
- row = result.fetchone()
131
- result_dict = dict(zip(result.keys(), row)) if row else None
132
- if not self.transactions and self.connection is not None:
133
- await self.connection.commit()
134
- return result_dict
135
-
136
- async def statement(self, query: str, bindings: list | None = None) -> bool:
137
- query, bindings = self.sql_alchemy_bindings(query, bindings)
138
-
139
- conn = await self.get_connection()
140
- await conn.execute(text(query), bindings or {})
141
-
142
- # Only commit if NOT inside a transaction
143
- if not self.transactions:
144
- await conn.commit()
145
-
146
- return True
147
-
148
- async def _maybe_cleanup(self):
149
- if not self.transactions and self.connection:
150
- await self.connection.close()
151
- self.connection = None