fastapi-startkit 0.20.0__tar.gz → 0.22.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 (359) hide show
  1. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/PKG-INFO +4 -1
  2. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/pyproject.toml +6 -1
  3. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/.DS_Store +0 -0
  4. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/__init__.py +1 -0
  5. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/application.py +6 -0
  6. fastapi_startkit-0.22.0/src/fastapi_startkit/console/__init__.py +7 -0
  7. fastapi_startkit-0.20.0/src/fastapi_startkit/console.py → fastapi_startkit-0.22.0/src/fastapi_startkit/console/application.py +11 -4
  8. fastapi_startkit-0.22.0/src/fastapi_startkit/console/command.py +14 -0
  9. {fastapi_startkit-0.20.0/src/fastapi_startkit/commands → fastapi_startkit-0.22.0/src/fastapi_startkit/console}/publish_command.py +1 -1
  10. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/exceptions/__init__.py +1 -0
  11. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/exceptions/exceptions.py +6 -0
  12. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/__init__.py +0 -1
  13. fastapi_startkit-0.22.0/src/fastapi_startkit/fastapi/__init__.py +5 -0
  14. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/fastapi/commands/serve_command.py +1 -1
  15. fastapi_startkit-0.22.0/src/fastapi_startkit/fastapi/exceptions.py +70 -0
  16. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/fastapi/providers/fastapi_provider.py +10 -1
  17. fastapi_startkit-0.22.0/src/fastapi_startkit/fastapi/requests/model.py +34 -0
  18. fastapi_startkit-0.22.0/src/fastapi_startkit/helpers/app.py +9 -0
  19. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/inertia/middleware.py +1 -1
  20. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/inertia/provider.py +2 -14
  21. fastapi_startkit-0.22.0/src/fastapi_startkit/masoniteorm/__init__.py +8 -0
  22. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/commands/DBMigrateCommand.py +32 -22
  23. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/commands/DBSeedCommand.py +1 -1
  24. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/commands/MakeMigrationCommand.py +1 -1
  25. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/commands/MakeModelCommand.py +1 -1
  26. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/commands/MakeModelDocstringCommand.py +1 -1
  27. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/commands/MakeObserverCommand.py +1 -1
  28. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/commands/MakeSeedCommand.py +1 -1
  29. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/commands/MigrateFreshCommand.py +14 -4
  30. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/commands/MigrateRefreshCommand.py +15 -14
  31. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/commands/MigrateResetCommand.py +15 -14
  32. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/commands/MigrateRollbackCommand.py +17 -20
  33. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/commands/MigrateStatusCommand.py +18 -15
  34. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/commands/ShellCommand.py +1 -1
  35. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/commands/stubs/create_migration.stub +1 -1
  36. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/config/database.py +1 -1
  37. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/connections/connection.py +18 -7
  38. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/connections/manager.py +2 -2
  39. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/connections/postgres_connection.py +8 -17
  40. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/facades/DB.py +15 -3
  41. fastapi_startkit-0.22.0/src/fastapi_startkit/masoniteorm/migrations/Migration.py +11 -0
  42. fastapi_startkit-0.20.0/src/fastapi_startkit/masoniteorm/migrations/Migration.py → fastapi_startkit-0.22.0/src/fastapi_startkit/masoniteorm/migrations/Migrator.py +35 -27
  43. fastapi_startkit-0.22.0/src/fastapi_startkit/masoniteorm/migrations/__init__.py +4 -0
  44. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/models/MigrationModel.py +1 -1
  45. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/models/builder.py +46 -23
  46. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/models/model.py +19 -5
  47. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/providers/DatabaseProvider.py +3 -3
  48. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/query/grammars/BaseGrammar.py +35 -0
  49. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/query/grammars/PostgresGrammar.py +16 -8
  50. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/testing/transaction.py +5 -2
  51. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/providers/app_provider.py +1 -1
  52. fastapi_startkit-0.22.0/src/fastapi_startkit/storage/__init__.py +3 -0
  53. fastapi_startkit-0.22.0/src/fastapi_startkit/storage/config/__init__.py +33 -0
  54. fastapi_startkit-0.22.0/src/fastapi_startkit/storage/config/storage.py +30 -0
  55. fastapi_startkit-0.22.0/src/fastapi_startkit/storage/drivers/__init__.py +3 -0
  56. fastapi_startkit-0.22.0/src/fastapi_startkit/storage/drivers/fake.py +69 -0
  57. fastapi_startkit-0.22.0/src/fastapi_startkit/storage/drivers/local.py +133 -0
  58. fastapi_startkit-0.22.0/src/fastapi_startkit/storage/drivers/s3.py +203 -0
  59. fastapi_startkit-0.22.0/src/fastapi_startkit/storage/file.py +30 -0
  60. fastapi_startkit-0.22.0/src/fastapi_startkit/storage/filestream.py +18 -0
  61. fastapi_startkit-0.22.0/src/fastapi_startkit/storage/providers/provider.py +59 -0
  62. fastapi_startkit-0.22.0/src/fastapi_startkit/storage/storage.py +185 -0
  63. fastapi_startkit-0.20.0/src/fastapi_startkit/commands/__init__.py +0 -1
  64. fastapi_startkit-0.20.0/src/fastapi_startkit/facades/Storage.py +0 -5
  65. fastapi_startkit-0.20.0/src/fastapi_startkit/facades/Storage.pyi +0 -12
  66. fastapi_startkit-0.20.0/src/fastapi_startkit/fastapi/__init__.py +0 -4
  67. fastapi_startkit-0.20.0/src/fastapi_startkit/fastapi/exceptions.py +0 -28
  68. fastapi_startkit-0.20.0/src/fastapi_startkit/masoniteorm/__init__.py +0 -3
  69. fastapi_startkit-0.20.0/src/fastapi_startkit/masoniteorm/commands/Command.py +0 -6
  70. fastapi_startkit-0.20.0/src/fastapi_startkit/masoniteorm/commands/Entry.py +0 -43
  71. fastapi_startkit-0.20.0/src/fastapi_startkit/masoniteorm/migrations/__init__.py +0 -1
  72. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/carbon/__init__.py +0 -0
  73. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/carbon/carbon.py +0 -0
  74. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/collection/__init__.py +0 -0
  75. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/collection/collection.py +0 -0
  76. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/config/__init__.py +0 -0
  77. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/config/app.py +0 -0
  78. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/configuration/Configuration.py +0 -0
  79. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/configuration/__init__.py +0 -0
  80. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/configuration/config.py +0 -0
  81. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/configuration/helpers.py +0 -0
  82. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/configuration/providers/ConfigurationProvider.py +0 -0
  83. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/configuration/providers/__init__.py +0 -0
  84. /fastapi_startkit-0.20.0/src/fastapi_startkit/masoniteorm/commands/CanOverrideConfig.py → /fastapi_startkit-0.22.0/src/fastapi_startkit/console/can_override_config.py +0 -0
  85. /fastapi_startkit-0.20.0/src/fastapi_startkit/masoniteorm/commands/CanOverrideOptionsDefault.py → /fastapi_startkit-0.22.0/src/fastapi_startkit/console/can_override_default_options.py +0 -0
  86. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/container/__init__.py +0 -0
  87. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/container/container.py +0 -0
  88. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/environment/__init__.py +0 -0
  89. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/environment/environment.py +0 -0
  90. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/exceptions/handler.py +0 -0
  91. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/exceptions.backup/DD.py +0 -0
  92. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/exceptions.backup/ExceptionHandler.py +0 -0
  93. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/exceptions.backup/__init__.py +0 -0
  94. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/exceptions.backup/exceptionite/__init__.py +0 -0
  95. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/exceptions.backup/exceptionite/blocks.py +0 -0
  96. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/exceptions.backup/exceptionite/controllers.py +0 -0
  97. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/exceptions.backup/exceptionite/solutions.py +0 -0
  98. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/exceptions.backup/exceptionite/tabs.py +0 -0
  99. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/exceptions.backup/handlers/DumpExceptionHandler.py +0 -0
  100. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/exceptions.backup/handlers/HttpExceptionHandler.py +0 -0
  101. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/exceptions.backup/handlers/ModelNotFoundHandler.py +0 -0
  102. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Auth.py +0 -0
  103. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Auth.pyi +0 -0
  104. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Broadcast.py +0 -0
  105. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Cache.py +0 -0
  106. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Config.py +0 -0
  107. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Config.pyi +0 -0
  108. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Dump.py +0 -0
  109. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Dump.pyi +0 -0
  110. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Facade.py +0 -0
  111. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Gate.py +0 -0
  112. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Gate.pyi +0 -0
  113. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Hash.py +0 -0
  114. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Hash.pyi +0 -0
  115. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Inertia.py +0 -0
  116. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Loader.py +0 -0
  117. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Loader.pyi +0 -0
  118. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Mail.py +0 -0
  119. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Mail.pyi +0 -0
  120. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Notification.py +0 -0
  121. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Notification.pyi +0 -0
  122. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Queue.py +0 -0
  123. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Queue.pyi +0 -0
  124. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/RateLimiter.py +0 -0
  125. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/RateLimiter.pyi +0 -0
  126. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Request.py +0 -0
  127. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Request.pyi +0 -0
  128. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Response.py +0 -0
  129. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Response.pyi +0 -0
  130. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Session.py +0 -0
  131. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Session.pyi +0 -0
  132. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Url.py +0 -0
  133. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Url.pyi +0 -0
  134. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/View.py +0 -0
  135. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/View.pyi +0 -0
  136. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Vite.py +0 -0
  137. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/facades/Vite.pyi +0 -0
  138. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/fastapi/commands/__init__.py +0 -0
  139. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/fastapi/routers/router.py +0 -0
  140. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/fastapi/testing/__init__.py +0 -0
  141. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/fastapi/testing/test_case.py +0 -0
  142. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/helpers/dataclass.py +0 -0
  143. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/helpers/string.py +0 -0
  144. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/inertia/__init__.py +0 -0
  145. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/inertia/constant.py +0 -0
  146. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/inertia/context.py +0 -0
  147. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/inertia/inertia.py +0 -0
  148. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/inertia/props/props.py +0 -0
  149. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/loader/Loader.py +0 -0
  150. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/loader/__init__.py +0 -0
  151. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/ChannelFactory.py +0 -0
  152. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/__init__.py +0 -0
  153. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/channels/BaseChannel.py +0 -0
  154. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/channels/DailyChannel.py +0 -0
  155. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/channels/MultiBaseChannel.py +0 -0
  156. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/channels/SingleChannel.py +0 -0
  157. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/channels/SlackChannel.py +0 -0
  158. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/channels/StackChannel.py +0 -0
  159. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/channels/SyslogChannel.py +0 -0
  160. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/channels/TerminalChannel.py +0 -0
  161. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/channels/__init__.py +0 -0
  162. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/config/__init__.py +0 -0
  163. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/config/channels.py +0 -0
  164. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/config/logging.py +0 -0
  165. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/drivers/BaseDriver.py +0 -0
  166. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/drivers/LogSingleDriver.py +0 -0
  167. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/drivers/LogSlackDriver.py +0 -0
  168. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/drivers/LogSyslogDriver.py +0 -0
  169. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/drivers/LogTerminalDriver.py +0 -0
  170. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/drivers/__init__.py +0 -0
  171. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/factory.py +0 -0
  172. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/handler.py +0 -0
  173. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/listeners.py +0 -0
  174. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/logger.py +0 -0
  175. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/managers/LoggingManager.py +0 -0
  176. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/managers/__init__.py +0 -0
  177. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/providers/__init__.py +0 -0
  178. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/logging/providers/log_provider.py +0 -0
  179. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/collection/Collection.py +0 -0
  180. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/collection/__init__.py +0 -0
  181. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/commands/__init__.py +0 -0
  182. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/commands/stubs/create_seed.stub +0 -0
  183. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/commands/stubs/model.stub +0 -0
  184. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/commands/stubs/observer.stub +0 -0
  185. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/commands/stubs/table_migration.stub +0 -0
  186. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/config/__init__.py +0 -0
  187. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/config/config.py +0 -0
  188. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/connections/factory.py +0 -0
  189. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/connections/mysql_connection.py +0 -0
  190. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/connections/sqlite_connection.py +0 -0
  191. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/expressions/__init__.py +0 -0
  192. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/expressions/expressions.py +0 -0
  193. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/facades/Schema.py +0 -0
  194. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/facades/__init__.py +0 -0
  195. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/factory/__init__.py +0 -0
  196. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/factory/factory.py +0 -0
  197. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/helpers/__init__.py +0 -0
  198. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/helpers/misc.py +0 -0
  199. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/models/__init__.py +0 -0
  200. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/models/attribute.py +0 -0
  201. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/models/caster.py +0 -0
  202. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/models/fields.py +0 -0
  203. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/models/observer.py +0 -0
  204. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/models/pivot.py +0 -0
  205. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/models/registry.py +0 -0
  206. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/models/relationship.py +0 -0
  207. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/observers/ObservesEvents.py +0 -0
  208. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/observers/__init__.py +0 -0
  209. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/pagination/BasePaginator.py +0 -0
  210. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/pagination/LengthAwarePaginator.py +0 -0
  211. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/pagination/SimplePaginator.py +0 -0
  212. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/pagination/__init__.py +0 -0
  213. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/providers/__init__.py +0 -0
  214. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/query/EagerLoadMixin.py +0 -0
  215. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/query/EagerRelation.py +0 -0
  216. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/query/__init__.py +0 -0
  217. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/query/grammars/MSSQLGrammar.py +0 -0
  218. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/query/grammars/MySQLGrammar.py +0 -0
  219. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/query/grammars/SQLiteGrammar.py +0 -0
  220. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/query/grammars/__init__.py +0 -0
  221. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/query/processors/MSSQLPostProcessor.py +0 -0
  222. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/query/processors/MySQLPostProcessor.py +0 -0
  223. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/query/processors/PostgresPostProcessor.py +0 -0
  224. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/query/processors/SQLitePostProcessor.py +0 -0
  225. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/query/processors/__init__.py +0 -0
  226. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/query/support.py +0 -0
  227. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/relationships/BaseRelationship.py +0 -0
  228. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/relationships/BelongsTo.py +0 -0
  229. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/relationships/BelongsToMany.py +0 -0
  230. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/relationships/HasMany.py +0 -0
  231. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/relationships/HasManyThrough.py +0 -0
  232. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/relationships/HasOne.py +0 -0
  233. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/relationships/HasOneThrough.py +0 -0
  234. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/relationships/MorphMany.py +0 -0
  235. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/relationships/MorphOne.py +0 -0
  236. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/relationships/MorphTo.py +0 -0
  237. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/relationships/MorphToMany.py +0 -0
  238. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/relationships/__init__.py +0 -0
  239. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/schema/Blueprint.py +0 -0
  240. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/schema/Column.py +0 -0
  241. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/schema/ColumnDiff.py +0 -0
  242. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/schema/Constraint.py +0 -0
  243. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/schema/ForeignKeyConstraint.py +0 -0
  244. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/schema/Index.py +0 -0
  245. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/schema/Table.py +0 -0
  246. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/schema/TableDiff.py +0 -0
  247. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/schema/__init__.py +0 -0
  248. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/schema/platforms/MSSQLPlatform.py +0 -0
  249. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/schema/platforms/MySQLPlatform.py +0 -0
  250. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/schema/platforms/Platform.py +0 -0
  251. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/schema/platforms/PostgresPlatform.py +0 -0
  252. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/schema/platforms/SQLitePlatform.py +0 -0
  253. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/schema/platforms/__init__.py +0 -0
  254. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/schema/schema.py +0 -0
  255. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/seeds/Seeder.py +0 -0
  256. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/seeds/__init__.py +0 -0
  257. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/stubs/create-migration.html +0 -0
  258. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/stubs/table-migration.html +0 -0
  259. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm/testing/__init__.py +0 -0
  260. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/.pytest_cache/.gitignore +0 -0
  261. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/.pytest_cache/CACHEDIR.TAG +0 -0
  262. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/.pytest_cache/README.md +0 -0
  263. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/.pytest_cache/v/cache/lastfailed +0 -0
  264. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/.pytest_cache/v/cache/nodeids +0 -0
  265. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/__init__.py +0 -0
  266. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/config/database.py +0 -0
  267. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/config.py +0 -0
  268. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/exceptions.py +0 -0
  269. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/factories/Factory.py +0 -0
  270. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/factories/__init__.py +0 -0
  271. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/schema/Schema.py +0 -0
  272. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/scopes/BaseScope.py +0 -0
  273. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/scopes/SoftDeleteScope.py +0 -0
  274. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/scopes/SoftDeletesMixin.py +0 -0
  275. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/scopes/UUIDPrimaryKeyMixin.py +0 -0
  276. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/scopes/UUIDPrimaryKeyScope.py +0 -0
  277. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/scopes/__init__.py +0 -0
  278. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/scopes/scope.py +0 -0
  279. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/testing/BaseTestCaseSelectGrammar.py +0 -0
  280. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/testing/Database.py +0 -0
  281. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/testing/TestCase.py +0 -0
  282. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/testing/__init__.py +0 -0
  283. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/User.py +0 -0
  284. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/connections/test_base_connections.py +0 -0
  285. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/eagers/test_eager.py +0 -0
  286. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/factories/test_factories.py +0 -0
  287. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/integrations/config/__init__.py +0 -0
  288. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/integrations/config/database.py +0 -0
  289. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/integrations/databases/migrations/2026_01_01_000000_create_users_table.py +0 -0
  290. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/integrations/model.py +0 -0
  291. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/integrations/test_model.py +0 -0
  292. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/models/test_models.py +0 -0
  293. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/builder/test_mssql_query_builder.py +0 -0
  294. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/builder/test_mssql_query_builder_relationships.py +0 -0
  295. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_delete_grammar.py +0 -0
  296. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_insert_grammar.py +0 -0
  297. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_qmark.py +0 -0
  298. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_select_grammar.py +0 -0
  299. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_update_grammar.py +0 -0
  300. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/schema/test_mssql_schema_builder.py +0 -0
  301. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/schema/test_mssql_schema_builder_alter.py +0 -0
  302. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_mysql_builder_transaction.py +0 -0
  303. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_query_builder.py +0 -0
  304. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_query_builder_scopes.py +0 -0
  305. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_transactions.py +0 -0
  306. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/connections/test_mysql_connection_selects.py +0 -0
  307. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_delete_grammar.py +0 -0
  308. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_insert_grammar.py +0 -0
  309. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_qmark.py +0 -0
  310. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_select_grammar.py +0 -0
  311. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_update_grammar.py +0 -0
  312. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/model/test_accessors_and_mutators.py +0 -0
  313. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/model/test_model.py +0 -0
  314. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_belongs_to_many.py +0 -0
  315. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_has_many_through.py +0 -0
  316. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_has_one_through.py +0 -0
  317. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_relationships.py +0 -0
  318. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/schema/test_mysql_schema_builder.py +0 -0
  319. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/schema/test_mysql_schema_builder_alter.py +0 -0
  320. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/scopes/test_can_use_global_scopes.py +0 -0
  321. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/scopes/test_can_use_scopes.py +0 -0
  322. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/scopes/test_soft_delete.py +0 -0
  323. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/builder/test_postgres_query_builder.py +0 -0
  324. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/builder/test_postgres_transaction.py +0 -0
  325. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_delete_grammar.py +0 -0
  326. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_insert_grammar.py +0 -0
  327. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_select_grammar.py +0 -0
  328. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_update_grammar.py +0 -0
  329. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/relationships/test_postgres_relationships.py +0 -0
  330. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/schema/test_postgres_schema_builder.py +0 -0
  331. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/schema/test_postgres_schema_builder_alter.py +0 -0
  332. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/scopes/test_default_global_scopes.py +0 -0
  333. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/seeds/test_seeds.py +0 -0
  334. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/masoniteorm.backup/tests/utils.py +0 -0
  335. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/providers/Provider.py +0 -0
  336. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/providers/__init__.py +0 -0
  337. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/testing/__init__.py +0 -0
  338. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/testing/test_case.py +0 -0
  339. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/utils/__init__.py +0 -0
  340. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/utils/collections.py +0 -0
  341. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/utils/console.py +0 -0
  342. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/utils/data/mime.types +0 -0
  343. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/utils/filesystem.py +0 -0
  344. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/utils/http.py +0 -0
  345. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/utils/location.py +0 -0
  346. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/utils/str.py +0 -0
  347. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/utils/structures.py +0 -0
  348. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/utils/time.py +0 -0
  349. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/vite/__init__.py +0 -0
  350. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/vite/config/vite.py +0 -0
  351. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/vite/exceptions.py +0 -0
  352. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/vite/providers/provider.py +0 -0
  353. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/vite/stubs/package.json +0 -0
  354. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/vite/stubs/resources/css/app.css +0 -0
  355. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/vite/stubs/resources/js/app.ts +0 -0
  356. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/vite/stubs/templates/index.html +0 -0
  357. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/vite/stubs/tsconfig.json +0 -0
  358. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.0}/src/fastapi_startkit/vite/stubs/vite.config.ts +0 -0
  359. {fastapi_startkit-0.20.0 → fastapi_startkit-0.22.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.20.0
3
+ Version: 0.22.0
4
4
  Summary: Fastapi Starter kit components
5
5
  Author: Bedram Tamang
6
6
  Author-email: Bedram Tamang <tmgbedu@gmail.com>
@@ -15,6 +15,8 @@ Requires-Dist: faker>=40.13.0 ; extra == 'database'
15
15
  Requires-Dist: sqlalchemy[asyncio]>=2.0.38 ; extra == 'database'
16
16
  Requires-Dist: fastapi[standard]>=0.124.4,<0.125.0 ; extra == 'fastapi'
17
17
  Requires-Dist: itsdangerous>=2.2.0 ; extra == 'fastapi'
18
+ Requires-Dist: jinja2>=3.1 ; extra == 'inertia'
19
+ Requires-Dist: markupsafe>=2.0 ; extra == 'inertia'
18
20
  Requires-Dist: aiomysql>=0.2.0 ; extra == 'mysql'
19
21
  Requires-Dist: asyncpg>=0.29.0 ; extra == 'postgres'
20
22
  Requires-Dist: aiosqlite>=0.22.1 ; extra == 'sqlite'
@@ -22,6 +24,7 @@ Requires-Dist: jinja2>=3.1 ; extra == 'vite'
22
24
  Requires-Python: >=3.12, <4.0
23
25
  Provides-Extra: database
24
26
  Provides-Extra: fastapi
27
+ Provides-Extra: inertia
25
28
  Provides-Extra: mysql
26
29
  Provides-Extra: postgres
27
30
  Provides-Extra: sqlite
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "fastapi-startkit"
3
- version = "0.20.0"
3
+ version = "0.22.0"
4
4
  description = "Fastapi Starter kit components"
5
5
  authors = [
6
6
  {name = "Bedram Tamang", email = "tmgbedu@gmail.com"}
@@ -42,6 +42,11 @@ vite=[
42
42
  "jinja2>=3.1",
43
43
  ]
44
44
 
45
+ inertia = [
46
+ "jinja2>=3.1",
47
+ "markupsafe>=2.0",
48
+ ]
49
+
45
50
  [dependency-groups]
46
51
  dev = [
47
52
  "dumpdie>=1.5.0",
@@ -1,4 +1,5 @@
1
1
  from .application import Application
2
+ from .console import ConsoleApplication
2
3
  from .configuration.config import Config
3
4
 
4
5
  __all__ = ["Application", "Config"]
@@ -112,6 +112,12 @@ class Application(Container, Generic[TConfig]):
112
112
  def use_base_path(self, path: str):
113
113
  return self.base_path / path
114
114
 
115
+ def storage_path(self, path: str = "") -> str:
116
+ return str(self.base_path / "storage" / path)
117
+
118
+ def public_path(self, path: str = "") -> str:
119
+ return str(self.base_path / "public" / path)
120
+
115
121
  def get(self, path: str, **kwargs) -> Callable:
116
122
  return self.fastapi.get(path, **kwargs)
117
123
 
@@ -0,0 +1,7 @@
1
+ from .application import ConsoleApplication
2
+ from .command import Command
3
+
4
+ __all__ = [
5
+ "ConsoleApplication",
6
+ "Command"
7
+ ]
@@ -1,19 +1,26 @@
1
+ from typing import TYPE_CHECKING
2
+
1
3
  from cleo.application import Application as BaseApplication
2
4
  from cleo.io.io import IO
3
- from fastapi_startkit.application import Application
5
+
6
+ if TYPE_CHECKING:
7
+ from fastapi_startkit.application import Application
4
8
 
5
9
 
6
10
  class ConsoleApplication(BaseApplication):
7
- def __init__(self, app: Application):
11
+ def __init__(self, app: "Application"):
8
12
  super().__init__()
9
13
  self.app = app
10
14
 
11
15
  # Register commands from Application
12
16
  for command in self.app.commands:
13
17
  if isinstance(command, type):
14
- self.add(command())
18
+ instance = command()
15
19
  else:
16
- self.add(command)
20
+ instance = command
21
+
22
+ instance.set_container(self.app)
23
+ self.add(instance)
17
24
 
18
25
  def render_error(self, error: Exception, io: IO) -> None:
19
26
  self.app.exception_manager.report(error)
@@ -0,0 +1,14 @@
1
+ from typing import TYPE_CHECKING
2
+
3
+ from .can_override_config import CanOverrideConfig
4
+ from .can_override_default_options import CanOverrideOptionsDefault
5
+
6
+ if TYPE_CHECKING:
7
+ from fastapi_startkit import Application
8
+
9
+
10
+ class Command(CanOverrideOptionsDefault, CanOverrideConfig):
11
+ container: "Application"
12
+
13
+ def set_container(self, container: "Application") -> None:
14
+ self.container = container
@@ -2,7 +2,7 @@ import os
2
2
  import shutil
3
3
  from typing import TYPE_CHECKING
4
4
 
5
- from cleo.commands.command import Command
5
+ from fastapi_startkit.console import Command
6
6
  from cleo.helpers import option
7
7
  from fastapi_startkit.helpers.string import Str
8
8
 
@@ -27,6 +27,7 @@ from .exceptions import (
27
27
  InvalidPackageName,
28
28
  LoaderNotFound,
29
29
  QueueException,
30
+ ValidationException,
30
31
  AmbiguousError,
31
32
  MethodNotAllowedException,
32
33
  ModelNotFoundException,
@@ -216,3 +216,9 @@ class InvalidPackageName(Exception):
216
216
 
217
217
  class LoaderNotFound(Exception):
218
218
  pass
219
+
220
+
221
+ class ValidationException(Exception):
222
+ def __init__(self, errors: dict):
223
+ super().__init__("The given data was invalid.")
224
+ self.errors = errors
@@ -11,7 +11,6 @@ from .Auth import Auth
11
11
  from .Config import Config
12
12
  from .Loader import Loader
13
13
  from .Notification import Notification
14
- from .Storage import Storage
15
14
  from .Dump import Dump
16
15
  from .Queue import Queue
17
16
  from .Cache import Cache
@@ -0,0 +1,5 @@
1
+ from .providers.fastapi_provider import FastAPIProvider
2
+ from .routers.router import Router
3
+ from .requests.model import RequestModel
4
+
5
+ __all__ = ["FastAPIProvider", "Router", "RequestModel"]
@@ -1,4 +1,4 @@
1
- from cleo.commands.command import Command
1
+ from fastapi_startkit.console.command import Command
2
2
  from cleo.helpers import option
3
3
 
4
4
 
@@ -0,0 +1,70 @@
1
+ class HTTPExceptionHandler:
2
+ """
3
+ The base exception handler for FastAPI applications.
4
+ """
5
+
6
+ async def render(self, request, exc):
7
+ import traceback
8
+ from fastapi.responses import JSONResponse
9
+ from fastapi_startkit.container import Container
10
+
11
+ app = Container.instance()
12
+ if app.is_debug():
13
+ tb = exc.__traceback__
14
+ frames = traceback.extract_tb(tb)
15
+ content = {
16
+ "message": str(exc),
17
+ "exception": f"{type(exc).__module__}.{type(exc).__qualname__}",
18
+ "file": frames[-1].filename if frames else None,
19
+ "line": frames[-1].lineno if frames else None,
20
+ "trace": [
21
+ {"file": f.filename, "line": f.lineno, "function": f.name}
22
+ for f in frames
23
+ ],
24
+ }
25
+ else:
26
+ content = {"message": "Server Error"}
27
+
28
+ return JSONResponse(status_code=500, content=content)
29
+
30
+
31
+ class ValidationExceptionHandler:
32
+ """
33
+ Handles RequestValidationError with content negotiation.
34
+
35
+ JSON requests (API clients) receive a 422 Unprocessable Entity response.
36
+ Non-JSON requests (browser/Inertia) have errors flashed to the session
37
+ and are redirected back to the referring page.
38
+ """
39
+
40
+ def report(self, exc) -> None:
41
+ pass
42
+
43
+ async def render(self, request, exc):
44
+ accept = request.headers.get("accept", "")
45
+ content_type = request.headers.get("content-type", "")
46
+
47
+ wants_json = (
48
+ "application/json" in accept
49
+ or content_type.startswith("application/json")
50
+ )
51
+
52
+ errors = {}
53
+ for err in exc.errors():
54
+ field = ".".join(str(x) for x in err["loc"][1:])
55
+ errors.setdefault(field, []).append(err["msg"])
56
+
57
+ if wants_json:
58
+ from fastapi.responses import JSONResponse
59
+
60
+ return JSONResponse(status_code=422, content={"errors": errors})
61
+
62
+ if "session" in request.scope:
63
+ request.session["errors"] = errors
64
+
65
+ from starlette.responses import RedirectResponse
66
+
67
+ return RedirectResponse(
68
+ url=request.headers.get("referer", "/"),
69
+ status_code=303,
70
+ )
@@ -1,4 +1,4 @@
1
- from fastapi_startkit.fastapi.exceptions import HTTPExceptionHandler
1
+ from fastapi_startkit.fastapi.exceptions import HTTPExceptionHandler, ValidationExceptionHandler
2
2
  from fastapi import FastAPI
3
3
 
4
4
  from fastapi_startkit.fastapi.commands import ServeCommand
@@ -21,10 +21,19 @@ class FastAPIProvider(Provider):
21
21
 
22
22
  def _register_exception_handlers(self):
23
23
  """Wire exception_manager as a catch-all handler for all exceptions."""
24
+ from fastapi import HTTPException
25
+ from fastapi.exceptions import RequestValidationError
26
+
24
27
  exception_manager = self.app.exception_manager
25
28
  exception_manager.register_handler(Exception, HTTPExceptionHandler())
29
+ exception_manager.register_handler(HTTPException, HTTPExceptionHandler())
30
+ exception_manager.register_handler(RequestValidationError, ValidationExceptionHandler())
26
31
 
27
32
  async def handler(request, exc):
28
33
  return await exception_manager.handle(exc, {"request": request})
29
34
 
35
+ # FastAPI registers its own handlers for these two types internally,
36
+ # so they must be overridden explicitly
37
+ self.app.fastapi.add_exception_handler(HTTPException, handler)
38
+ self.app.fastapi.add_exception_handler(RequestValidationError, handler)
30
39
  self.app.fastapi.add_exception_handler(Exception, handler)
@@ -0,0 +1,34 @@
1
+ import inspect
2
+
3
+ from fastapi import Form
4
+ from fastapi.params import Query as QueryParam
5
+ from pydantic import BaseModel
6
+
7
+
8
+ class RequestModel(BaseModel):
9
+ @classmethod
10
+ def __pydantic_init_subclass__(cls, **kwargs):
11
+ super().__pydantic_init_subclass__(**kwargs)
12
+
13
+ params = []
14
+ for name, field in cls.model_fields.items():
15
+ if isinstance(field, QueryParam):
16
+ default = field
17
+ elif field.is_required():
18
+ default = Form(...)
19
+ else:
20
+ default = Form(default=field.default)
21
+
22
+ params.append(
23
+ inspect.Parameter(
24
+ name,
25
+ inspect.Parameter.POSITIONAL_OR_KEYWORD,
26
+ default=default,
27
+ annotation=field.annotation,
28
+ )
29
+ )
30
+
31
+ cls.__signature__ = inspect.Signature(params)
32
+
33
+ def validated(self) -> dict:
34
+ return {k: v for k, v in self.model_dump().items() if v}
@@ -0,0 +1,9 @@
1
+ def storage_path(path: str = "") -> str:
2
+ """Get the path to the storage directory."""
3
+ from fastapi_startkit.application import app
4
+ return app().storage_path(path)
5
+
6
+ def public_path(path: str = "") -> str:
7
+ """Get the path to the public directory."""
8
+ from fastapi_startkit.application import app
9
+ return app().public_path(path)
@@ -94,7 +94,7 @@ class InertiaMiddleware(BaseHTTPMiddleware):
94
94
  def resolve_validation_errors(request: Request) -> dict:
95
95
  if "session" not in request.scope:
96
96
  return {}
97
- return request.session.get("errors", {})
97
+ return request.session.pop("errors", {})
98
98
 
99
99
  @staticmethod
100
100
  def reflash(request: Request) -> None:
@@ -1,4 +1,5 @@
1
1
  import json
2
+ from markupsafe import Markup
2
3
  from fastapi_startkit.providers import Provider
3
4
  from .inertia import Inertia
4
5
  from .middleware import InertiaMiddleware
@@ -8,33 +9,20 @@ class InertiaProvider(Provider):
8
9
  provider_key = "inertia"
9
10
 
10
11
  def register(self) -> None:
11
- """Bind the Inertia class to the container."""
12
12
  self.app.bind("inertia", Inertia)
13
13
 
14
14
  def boot(self) -> None:
15
- """Configure template globals and middleware."""
16
- # 1. Register Middleware
17
- # We add it to the FastAPI instance via the application helper
18
15
  self.app.add_middleware(InertiaMiddleware)
19
16
 
20
- # 2. Register Template Globals
21
17
  if self.app.has("templates"):
22
18
  templates = self.app.make("templates")
23
19
 
24
- try:
25
- from markupsafe import Markup
26
- except ImportError:
27
- Markup = str
28
-
29
20
  def inertia_helper(page):
30
- """Jinja2 helper to render the root div for Inertia."""
31
21
  encoded_page = json.dumps(page)
32
- # Ensure single quotes are used for the attribute to avoid conflict with JSON double quotes
33
22
  return Markup(
34
23
  f'<script data-page="app" type="application/json">{encoded_page}</script><div id="app"></div>'
35
24
  )
36
25
 
37
26
  templates.env.globals["inertia"] = inertia_helper
38
-
39
- # Also share the inertia instance itself if needed
40
27
  templates.env.globals["Inertia"] = self.app.make("inertia")
28
+
@@ -0,0 +1,8 @@
1
+ from .config.config import MySQLConfig, PostgresConfig, SQLiteConfig
2
+ from .facades import DB
3
+ from .migrations.Migration import Migration
4
+ from .migrations.Migrator import Migrator
5
+ from .models import Model
6
+ from .providers import DatabaseProvider
7
+
8
+ __all__ = ["DatabaseProvider", "PostgresConfig", "MySQLConfig", "SQLiteConfig", "Model", "DB", "Migration", "Migrator"]
@@ -1,7 +1,10 @@
1
1
  import os
2
- from .Command import Command
2
+
3
3
  from cleo.helpers import option
4
4
 
5
+ from fastapi_startkit.console import Command
6
+ from fastapi_startkit.masoniteorm.migrations.Migrator import Migrator
7
+
5
8
 
6
9
  class DBMigrateCommand(Command):
7
10
  name = "db:migrate"
@@ -28,12 +31,6 @@ class DBMigrateCommand(Command):
28
31
  flag=True,
29
32
  description="Force migrations without prompt in production",
30
33
  ),
31
- option(
32
- "show",
33
- "s",
34
- flag=True,
35
- description="Shows the output of SQL for migrations that would be running",
36
- ),
37
34
  option(
38
35
  "directory",
39
36
  "d",
@@ -49,29 +46,42 @@ class DBMigrateCommand(Command):
49
46
  return asyncio.run(self.handle_async())
50
47
 
51
48
  async def handle_async(self):
52
- from ..migrations import Migration
49
+ self.confirm_to_proceed()
53
50
 
54
- # prompt user for confirmation in production
55
- if os.getenv("APP_ENV") == "production" and not self.option("force"):
56
- answer = ""
57
- while answer not in ["y", "n"]:
58
- answer = input(
59
- "Do you want to run migrations in PRODUCTION ? (y/n)\n"
60
- ).lower()
61
- if answer != "y":
62
- self.info("Migrations cancelled")
63
- exit(0)
64
- migration = Migration(
51
+ directory = self.resolve_migration_path()
52
+
53
+ migration = Migrator(
65
54
  command_class=self,
66
55
  connection=self.option("connection"),
67
- migration_directory=self.option("directory"),
56
+ migration_directory=directory,
68
57
  )
58
+
69
59
  await migration.create_table_if_not_exists()
70
60
  if not await migration.get_unran_migrations():
71
61
  self.info("Nothing To Migrate!")
72
62
  return
73
63
 
74
64
  migration_name = self.option("migration")
75
- show_output = self.option("show")
76
65
 
77
- await migration.migrate(migration=migration_name, output=show_output)
66
+ await migration.migrate(migration=migration_name)
67
+
68
+ def resolve_migration_path(self) -> str:
69
+ path = self.option('directory')
70
+
71
+ config = self.container.make('config').get('database.migrations')
72
+ default_directory = config.get('directory')
73
+
74
+ migration_directory = path or default_directory
75
+ return self.container.use_base_path(migration_directory)
76
+
77
+ def confirm_to_proceed(self) -> None:
78
+ # prompt user for confirmation in production
79
+ if os.getenv("APP_ENV") == "production" and not self.option("force"):
80
+ answer = ""
81
+ while answer not in ["y", "n"]:
82
+ answer = input(
83
+ "Do you want to run migrations in PRODUCTION ? (y/n)\n"
84
+ ).lower()
85
+ if answer != "y":
86
+ self.info("Migrations cancelled")
87
+ exit(0)
@@ -1,7 +1,7 @@
1
1
  from cleo.helpers import argument, option
2
2
  from inflection import camelize, underscore
3
3
 
4
- from .Command import Command
4
+ from fastapi_startkit.console import Command
5
5
 
6
6
 
7
7
  class DBSeedCommand(Command):
@@ -4,7 +4,7 @@ import pathlib
4
4
  from inflection import tableize
5
5
  from cleo.helpers import argument, option
6
6
  from fastapi_startkit.helpers.string import Str
7
- from .Command import Command
7
+ from fastapi_startkit.console import Command
8
8
 
9
9
 
10
10
  class MakeMigrationCommand(Command):
@@ -1,7 +1,7 @@
1
1
  import os
2
2
  import pathlib
3
3
  from inflection import camelize, tableize, underscore
4
- from .Command import Command
4
+ from fastapi_startkit.console import Command
5
5
  from cleo.helpers import argument, option
6
6
 
7
7
 
@@ -1,6 +1,6 @@
1
1
  from cleo.helpers import argument, option
2
2
  from ..config import load_config
3
- from .Command import Command
3
+ from fastapi_startkit.console import Command
4
4
 
5
5
 
6
6
  class MakeModelDocstringCommand(Command):
@@ -2,7 +2,7 @@ from cleo.helpers import argument, option
2
2
  import os
3
3
  import pathlib
4
4
  from inflection import camelize, underscore
5
- from .Command import Command
5
+ from fastapi_startkit.console import Command
6
6
 
7
7
 
8
8
  class MakeObserverCommand(Command):
@@ -2,7 +2,7 @@ from cleo.helpers import argument, option
2
2
  import os
3
3
  import pathlib
4
4
  from inflection import camelize, underscore
5
- from .Command import Command
5
+ from fastapi_startkit.console import Command
6
6
 
7
7
 
8
8
  class MakeSeedCommand(Command):
@@ -1,5 +1,6 @@
1
1
  from cleo.helpers import option
2
- from .Command import Command
2
+ from fastapi_startkit.console import Command
3
+ from fastapi_startkit.masoniteorm.migrations.Migrator import Migrator
3
4
 
4
5
 
5
6
  class MigrateFreshCommand(Command):
@@ -49,12 +50,12 @@ class MigrateFreshCommand(Command):
49
50
  return asyncio.run(self.handle_async())
50
51
 
51
52
  async def handle_async(self):
52
- from ..migrations import Migration
53
+ directory = self.resolve_migration_path()
53
54
 
54
- migration = Migration(
55
+ migration = Migrator(
55
56
  command_class=self,
56
57
  connection=self.option("connection"),
57
- migration_directory=self.option("directory"),
58
+ migration_directory=directory,
58
59
  )
59
60
 
60
61
  await migration.fresh(ignore_fk=not self.option("no-fk"))
@@ -69,3 +70,12 @@ class MigrateFreshCommand(Command):
69
70
  "seed:run",
70
71
  f"{self.option('seed')} --directory {self.option('seed-directory')} --connection {self.option('connection')}",
71
72
  )
73
+
74
+ def resolve_migration_path(self) -> str:
75
+ path = self.option('directory')
76
+
77
+ config = self.container.make('config').get('database.migrations')
78
+ default_directory = config.get('directory')
79
+
80
+ migration_directory = path or default_directory
81
+ return self.container.use_base_path(migration_directory)
@@ -1,9 +1,10 @@
1
1
  from cleo.helpers import option
2
- from .Command import Command
2
+ from fastapi_startkit.console import Command
3
+ from fastapi_startkit.masoniteorm.migrations.Migrator import Migrator
3
4
 
4
5
 
5
6
  class MigrateRefreshCommand(Command):
6
- name = "migrate:refresh"
7
+ name = "db:migrate:refresh"
7
8
  description = "Refresh migrations."
8
9
 
9
10
  options = [
@@ -21,13 +22,6 @@ class MigrateRefreshCommand(Command):
21
22
  default="default",
22
23
  description="The connection you want to run migrations on",
23
24
  ),
24
- option(
25
- "schema",
26
- None,
27
- flag=False,
28
- default=None,
29
- description="Sets the schema to be migrated",
30
- ),
31
25
  option(
32
26
  "directory",
33
27
  "d",
@@ -57,14 +51,12 @@ class MigrateRefreshCommand(Command):
57
51
  return asyncio.run(self.handle_async())
58
52
 
59
53
  async def handle_async(self):
60
- from ..migrations import Migration
54
+ directory = self.resolve_migration_path()
61
55
 
62
- migration = Migration(
56
+ migration = Migrator(
63
57
  command_class=self,
64
58
  connection=self.option("connection"),
65
- migration_directory=self.option("directory"),
66
- config_path=self.option("config"),
67
- schema=self.option("schema"),
59
+ migration_directory=directory,
68
60
  )
69
61
 
70
62
  await migration.refresh(self.option("migration"))
@@ -79,3 +71,12 @@ class MigrateRefreshCommand(Command):
79
71
  "seed:run",
80
72
  f"{self.option('seed')} --directory {self.option('seed-directory')} --connection {self.option('connection')}",
81
73
  )
74
+
75
+ def resolve_migration_path(self) -> str:
76
+ path = self.option('directory')
77
+
78
+ config = self.container.make('config').get('database.migrations')
79
+ default_directory = config.get('directory')
80
+
81
+ migration_directory = path or default_directory
82
+ return self.container.use_base_path(migration_directory)