fastapi-startkit 0.28.0__tar.gz → 0.29.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 (356) hide show
  1. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/PKG-INFO +1 -1
  2. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/pyproject.toml +26 -1
  3. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/console/publish_command.py +1 -1
  4. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/__init__.py +0 -2
  5. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/loader/Loader.py +1 -2
  6. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/channels/DailyChannel.py +4 -3
  7. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/channels/SingleChannel.py +1 -1
  8. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/channels/SyslogChannel.py +1 -1
  9. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/drivers/LogTerminalDriver.py +13 -3
  10. fastapi_startkit-0.29.0/src/fastapi_startkit/logging/file.py +13 -0
  11. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/collection/Collection.py +1 -1
  12. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/commands/MakeMigrationCommand.py +1 -1
  13. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/models/model.py +104 -0
  14. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/providers/Provider.py +1 -1
  15. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/storage/drivers/local.py +1 -1
  16. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/storage/drivers/s3.py +1 -1
  17. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/storage/file.py +1 -1
  18. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/storage/filestream.py +1 -1
  19. fastapi_startkit-0.29.0/src/fastapi_startkit/storage/helper.py +33 -0
  20. fastapi_startkit-0.29.0/src/fastapi_startkit/support/__init__.py +4 -0
  21. {fastapi_startkit-0.28.0/src/fastapi_startkit/collection → fastapi_startkit-0.29.0/src/fastapi_startkit/support}/collection.py +10 -1
  22. fastapi_startkit-0.28.0/src/fastapi_startkit/collection/__init__.py +0 -1
  23. fastapi_startkit-0.28.0/src/fastapi_startkit/exceptions.backup/DD.py +0 -38
  24. fastapi_startkit-0.28.0/src/fastapi_startkit/exceptions.backup/ExceptionHandler.py +0 -70
  25. fastapi_startkit-0.28.0/src/fastapi_startkit/exceptions.backup/__init__.py +0 -38
  26. fastapi_startkit-0.28.0/src/fastapi_startkit/exceptions.backup/exceptionite/blocks.py +0 -101
  27. fastapi_startkit-0.28.0/src/fastapi_startkit/exceptions.backup/exceptionite/controllers.py +0 -13
  28. fastapi_startkit-0.28.0/src/fastapi_startkit/exceptions.backup/exceptionite/solutions.py +0 -66
  29. fastapi_startkit-0.28.0/src/fastapi_startkit/exceptions.backup/exceptionite/tabs.py +0 -19
  30. fastapi_startkit-0.28.0/src/fastapi_startkit/exceptions.backup/handlers/DumpExceptionHandler.py +0 -102
  31. fastapi_startkit-0.28.0/src/fastapi_startkit/exceptions.backup/handlers/HttpExceptionHandler.py +0 -26
  32. fastapi_startkit-0.28.0/src/fastapi_startkit/exceptions.backup/handlers/ModelNotFoundHandler.py +0 -11
  33. fastapi_startkit-0.28.0/src/fastapi_startkit/facades/Auth.py +0 -5
  34. fastapi_startkit-0.28.0/src/fastapi_startkit/facades/Auth.pyi +0 -32
  35. fastapi_startkit-0.28.0/src/fastapi_startkit/facades/Inertia.py +0 -5
  36. fastapi_startkit-0.28.0/src/fastapi_startkit/masoniteorm/helpers/__init__.py +0 -0
  37. fastapi_startkit-0.28.0/src/fastapi_startkit/masoniteorm/query/__init__.py +0 -0
  38. fastapi_startkit-0.28.0/src/fastapi_startkit/masoniteorm.backup/tests/factories/test_factories.py +0 -66
  39. fastapi_startkit-0.28.0/src/fastapi_startkit/masoniteorm.backup/tests/integrations/config/database.py +0 -119
  40. fastapi_startkit-0.28.0/src/fastapi_startkit/masoniteorm.backup/tests/integrations/databases/migrations/2026_01_01_000000_create_users_table.py +0 -29
  41. fastapi_startkit-0.28.0/src/fastapi_startkit/masoniteorm.backup/tests/integrations/model.py +0 -57
  42. fastapi_startkit-0.28.0/src/fastapi_startkit/masoniteorm.backup/tests/integrations/test_model.py +0 -70
  43. fastapi_startkit-0.28.0/src/fastapi_startkit/utils/__init__.py +0 -0
  44. fastapi_startkit-0.28.0/src/fastapi_startkit/utils/collections.py +0 -543
  45. fastapi_startkit-0.28.0/src/fastapi_startkit/utils/console.py +0 -39
  46. fastapi_startkit-0.28.0/src/fastapi_startkit/utils/filesystem.py +0 -100
  47. fastapi_startkit-0.28.0/src/fastapi_startkit/utils/http.py +0 -100
  48. fastapi_startkit-0.28.0/src/fastapi_startkit/utils/location.py +0 -91
  49. fastapi_startkit-0.28.0/src/fastapi_startkit/utils/str.py +0 -116
  50. fastapi_startkit-0.28.0/src/fastapi_startkit/utils/time.py +0 -59
  51. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/.DS_Store +0 -0
  52. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/__init__.py +0 -0
  53. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/application.py +0 -0
  54. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/carbon/__init__.py +0 -0
  55. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/carbon/carbon.py +0 -0
  56. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/config/__init__.py +0 -0
  57. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/config/app.py +0 -0
  58. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/configuration/Configuration.py +0 -0
  59. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/configuration/__init__.py +0 -0
  60. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/configuration/config.py +0 -0
  61. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/configuration/helpers.py +0 -0
  62. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/configuration/providers/ConfigurationProvider.py +0 -0
  63. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/configuration/providers/__init__.py +0 -0
  64. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/console/__init__.py +0 -0
  65. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/console/application.py +0 -0
  66. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/console/can_override_config.py +0 -0
  67. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/console/can_override_default_options.py +0 -0
  68. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/console/command.py +0 -0
  69. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/container/__init__.py +0 -0
  70. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/container/container.py +0 -0
  71. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/environment/__init__.py +0 -0
  72. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/environment/environment.py +0 -0
  73. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/exceptions/__init__.py +0 -0
  74. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/exceptions/exceptions.py +0 -0
  75. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/exceptions/handler.py +0 -0
  76. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Broadcast.py +0 -0
  77. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Cache.py +0 -0
  78. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Config.py +0 -0
  79. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Config.pyi +0 -0
  80. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Dump.py +0 -0
  81. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Dump.pyi +0 -0
  82. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Facade.py +0 -0
  83. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Gate.py +0 -0
  84. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Gate.pyi +0 -0
  85. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Hash.py +0 -0
  86. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Hash.pyi +0 -0
  87. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Loader.py +0 -0
  88. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Loader.pyi +0 -0
  89. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Mail.py +0 -0
  90. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Mail.pyi +0 -0
  91. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Notification.py +0 -0
  92. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Notification.pyi +0 -0
  93. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Queue.py +0 -0
  94. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Queue.pyi +0 -0
  95. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/RateLimiter.py +0 -0
  96. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/RateLimiter.pyi +0 -0
  97. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Request.py +0 -0
  98. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Request.pyi +0 -0
  99. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Response.py +0 -0
  100. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Response.pyi +0 -0
  101. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Session.py +0 -0
  102. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Session.pyi +0 -0
  103. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Url.py +0 -0
  104. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Url.pyi +0 -0
  105. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/View.py +0 -0
  106. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/View.pyi +0 -0
  107. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Vite.py +0 -0
  108. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/facades/Vite.pyi +0 -0
  109. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/fastapi/__init__.py +0 -0
  110. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/fastapi/commands/__init__.py +0 -0
  111. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/fastapi/commands/serve_command.py +0 -0
  112. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/fastapi/config/__init__.py +0 -0
  113. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/fastapi/config/fastapi.py +0 -0
  114. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/fastapi/exceptions.py +0 -0
  115. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/fastapi/providers/fastapi_provider.py +0 -0
  116. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/fastapi/requests/model.py +0 -0
  117. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/fastapi/routers/router.py +0 -0
  118. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/fastapi/testing/__init__.py +0 -0
  119. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/fastapi/testing/test_case.py +0 -0
  120. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/helpers/app.py +0 -0
  121. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/helpers/dataclass.py +0 -0
  122. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/inertia/__init__.py +0 -0
  123. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/inertia/constant.py +0 -0
  124. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/inertia/context.py +0 -0
  125. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/inertia/inertia.py +0 -0
  126. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/inertia/middleware.py +0 -0
  127. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/inertia/props/props.py +0 -0
  128. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/inertia/provider.py +0 -0
  129. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/loader/__init__.py +0 -0
  130. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/ChannelFactory.py +0 -0
  131. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/__init__.py +0 -0
  132. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/channels/BaseChannel.py +0 -0
  133. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/channels/MultiBaseChannel.py +0 -0
  134. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/channels/SlackChannel.py +0 -0
  135. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/channels/StackChannel.py +0 -0
  136. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/channels/TerminalChannel.py +0 -0
  137. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/channels/__init__.py +0 -0
  138. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/config/__init__.py +0 -0
  139. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/config/channels.py +0 -0
  140. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/config/logging.py +0 -0
  141. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/drivers/BaseDriver.py +0 -0
  142. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/drivers/LogSingleDriver.py +0 -0
  143. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/drivers/LogSlackDriver.py +0 -0
  144. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/drivers/LogSyslogDriver.py +0 -0
  145. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/drivers/__init__.py +0 -0
  146. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/factory.py +0 -0
  147. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/handler.py +0 -0
  148. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/listeners.py +0 -0
  149. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/logger.py +0 -0
  150. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/managers/LoggingManager.py +0 -0
  151. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/managers/__init__.py +0 -0
  152. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/providers/__init__.py +0 -0
  153. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/logging/providers/log_provider.py +0 -0
  154. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/__init__.py +0 -0
  155. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/collection/__init__.py +0 -0
  156. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/commands/DBMigrateCommand.py +0 -0
  157. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/commands/DBSeedCommand.py +0 -0
  158. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/commands/MakeModelCommand.py +0 -0
  159. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/commands/MakeModelDocstringCommand.py +0 -0
  160. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/commands/MakeObserverCommand.py +0 -0
  161. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/commands/MakeSeedCommand.py +0 -0
  162. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/commands/MigrateFreshCommand.py +0 -0
  163. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/commands/MigrateRefreshCommand.py +0 -0
  164. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/commands/MigrateResetCommand.py +0 -0
  165. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/commands/MigrateRollbackCommand.py +0 -0
  166. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/commands/MigrateStatusCommand.py +0 -0
  167. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/commands/ShellCommand.py +0 -0
  168. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/commands/__init__.py +0 -0
  169. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/commands/stubs/create_migration.stub +0 -0
  170. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/commands/stubs/create_seed.stub +0 -0
  171. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/commands/stubs/model.stub +0 -0
  172. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/commands/stubs/observer.stub +0 -0
  173. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/commands/stubs/table_migration.stub +0 -0
  174. {fastapi_startkit-0.28.0/src/fastapi_startkit/exceptions.backup/exceptionite → fastapi_startkit-0.29.0/src/fastapi_startkit/masoniteorm/config}/__init__.py +0 -0
  175. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/config/config.py +0 -0
  176. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/config/database.py +0 -0
  177. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/connections/connection.py +0 -0
  178. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/connections/factory.py +0 -0
  179. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/connections/manager.py +0 -0
  180. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/connections/mysql_connection.py +0 -0
  181. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/connections/postgres_connection.py +0 -0
  182. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/connections/sqlite_connection.py +0 -0
  183. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/exceptions.py +0 -0
  184. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/expressions/__init__.py +0 -0
  185. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/expressions/expressions.py +0 -0
  186. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/facades/DB.py +0 -0
  187. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/facades/Schema.py +0 -0
  188. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/facades/__init__.py +0 -0
  189. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/factory/__init__.py +0 -0
  190. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/factory/factory.py +0 -0
  191. {fastapi_startkit-0.28.0/src/fastapi_startkit/masoniteorm.backup/tests/integrations/config → fastapi_startkit-0.29.0/src/fastapi_startkit/masoniteorm/helpers}/__init__.py +0 -0
  192. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/helpers/misc.py +0 -0
  193. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/migrations/Migration.py +0 -0
  194. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/migrations/Migrator.py +0 -0
  195. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/migrations/__init__.py +0 -0
  196. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/models/MigrationModel.py +0 -0
  197. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/models/__init__.py +0 -0
  198. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/models/attribute.py +0 -0
  199. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/models/builder.py +0 -0
  200. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/models/caster.py +0 -0
  201. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/models/fields.py +0 -0
  202. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/models/observer.py +0 -0
  203. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/models/pivot.py +0 -0
  204. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/models/registry.py +0 -0
  205. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/models/relationship.py +0 -0
  206. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/observers/ObservesEvents.py +0 -0
  207. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/observers/__init__.py +0 -0
  208. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/pagination/BasePaginator.py +0 -0
  209. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/pagination/LengthAwarePaginator.py +0 -0
  210. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/pagination/SimplePaginator.py +0 -0
  211. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/pagination/__init__.py +0 -0
  212. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/providers/DatabaseProvider.py +0 -0
  213. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/providers/__init__.py +0 -0
  214. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/query/EagerLoadMixin.py +0 -0
  215. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/query/EagerRelation.py +0 -0
  216. {fastapi_startkit-0.28.0/src/fastapi_startkit/masoniteorm/config → fastapi_startkit-0.29.0/src/fastapi_startkit/masoniteorm/query}/__init__.py +0 -0
  217. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/query/grammars/BaseGrammar.py +0 -0
  218. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/query/grammars/MSSQLGrammar.py +0 -0
  219. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/query/grammars/MySQLGrammar.py +0 -0
  220. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/query/grammars/PostgresGrammar.py +0 -0
  221. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/query/grammars/SQLiteGrammar.py +0 -0
  222. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/query/grammars/__init__.py +0 -0
  223. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/query/processors/MSSQLPostProcessor.py +0 -0
  224. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/query/processors/MySQLPostProcessor.py +0 -0
  225. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/query/processors/PostgresPostProcessor.py +0 -0
  226. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/query/processors/SQLitePostProcessor.py +0 -0
  227. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/query/processors/__init__.py +0 -0
  228. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/query/support.py +0 -0
  229. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/relationships/BaseRelationship.py +0 -0
  230. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/relationships/BelongsTo.py +0 -0
  231. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/relationships/BelongsToMany.py +0 -0
  232. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/relationships/HasMany.py +0 -0
  233. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/relationships/HasManyThrough.py +0 -0
  234. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/relationships/HasOne.py +0 -0
  235. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/relationships/HasOneThrough.py +0 -0
  236. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/relationships/MorphMany.py +0 -0
  237. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/relationships/MorphOne.py +0 -0
  238. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/relationships/MorphTo.py +0 -0
  239. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/relationships/MorphToMany.py +0 -0
  240. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/relationships/__init__.py +0 -0
  241. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/schema/Blueprint.py +0 -0
  242. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/schema/Column.py +0 -0
  243. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/schema/ColumnDiff.py +0 -0
  244. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/schema/Constraint.py +0 -0
  245. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/schema/ForeignKeyConstraint.py +0 -0
  246. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/schema/Index.py +0 -0
  247. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/schema/Table.py +0 -0
  248. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/schema/TableDiff.py +0 -0
  249. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/schema/__init__.py +0 -0
  250. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/schema/platforms/MSSQLPlatform.py +0 -0
  251. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/schema/platforms/MySQLPlatform.py +0 -0
  252. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/schema/platforms/Platform.py +0 -0
  253. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/schema/platforms/PostgresPlatform.py +0 -0
  254. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/schema/platforms/SQLitePlatform.py +0 -0
  255. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/schema/platforms/__init__.py +0 -0
  256. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/schema/schema.py +0 -0
  257. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/seeds/Seeder.py +0 -0
  258. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/seeds/__init__.py +0 -0
  259. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/stubs/create-migration.html +0 -0
  260. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/stubs/table-migration.html +0 -0
  261. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/testing/__init__.py +0 -0
  262. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm/testing/transaction.py +0 -0
  263. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/.pytest_cache/.gitignore +0 -0
  264. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/.pytest_cache/CACHEDIR.TAG +0 -0
  265. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/.pytest_cache/README.md +0 -0
  266. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/.pytest_cache/v/cache/lastfailed +0 -0
  267. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/.pytest_cache/v/cache/nodeids +0 -0
  268. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/__init__.py +0 -0
  269. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/config/database.py +0 -0
  270. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/config.py +0 -0
  271. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/exceptions.py +0 -0
  272. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/factories/Factory.py +0 -0
  273. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/factories/__init__.py +0 -0
  274. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/schema/Schema.py +0 -0
  275. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/scopes/BaseScope.py +0 -0
  276. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/scopes/SoftDeleteScope.py +0 -0
  277. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/scopes/SoftDeletesMixin.py +0 -0
  278. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/scopes/UUIDPrimaryKeyMixin.py +0 -0
  279. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/scopes/UUIDPrimaryKeyScope.py +0 -0
  280. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/scopes/__init__.py +0 -0
  281. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/scopes/scope.py +0 -0
  282. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/testing/BaseTestCaseSelectGrammar.py +0 -0
  283. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/testing/Database.py +0 -0
  284. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/testing/TestCase.py +0 -0
  285. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/testing/__init__.py +0 -0
  286. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/User.py +0 -0
  287. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/connections/test_base_connections.py +0 -0
  288. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/eagers/test_eager.py +0 -0
  289. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/models/test_models.py +0 -0
  290. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/builder/test_mssql_query_builder.py +0 -0
  291. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/builder/test_mssql_query_builder_relationships.py +0 -0
  292. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_delete_grammar.py +0 -0
  293. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_insert_grammar.py +0 -0
  294. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_qmark.py +0 -0
  295. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_select_grammar.py +0 -0
  296. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_update_grammar.py +0 -0
  297. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/schema/test_mssql_schema_builder.py +0 -0
  298. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/schema/test_mssql_schema_builder_alter.py +0 -0
  299. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_mysql_builder_transaction.py +0 -0
  300. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_query_builder.py +0 -0
  301. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_query_builder_scopes.py +0 -0
  302. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_transactions.py +0 -0
  303. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/connections/test_mysql_connection_selects.py +0 -0
  304. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_delete_grammar.py +0 -0
  305. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_insert_grammar.py +0 -0
  306. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_qmark.py +0 -0
  307. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_select_grammar.py +0 -0
  308. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_update_grammar.py +0 -0
  309. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/model/test_accessors_and_mutators.py +0 -0
  310. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/model/test_model.py +0 -0
  311. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_belongs_to_many.py +0 -0
  312. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_has_many_through.py +0 -0
  313. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_has_one_through.py +0 -0
  314. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_relationships.py +0 -0
  315. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/schema/test_mysql_schema_builder.py +0 -0
  316. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/schema/test_mysql_schema_builder_alter.py +0 -0
  317. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/scopes/test_can_use_global_scopes.py +0 -0
  318. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/scopes/test_can_use_scopes.py +0 -0
  319. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/scopes/test_soft_delete.py +0 -0
  320. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/builder/test_postgres_query_builder.py +0 -0
  321. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/builder/test_postgres_transaction.py +0 -0
  322. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_delete_grammar.py +0 -0
  323. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_insert_grammar.py +0 -0
  324. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_select_grammar.py +0 -0
  325. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_update_grammar.py +0 -0
  326. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/relationships/test_postgres_relationships.py +0 -0
  327. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/schema/test_postgres_schema_builder.py +0 -0
  328. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/schema/test_postgres_schema_builder_alter.py +0 -0
  329. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/scopes/test_default_global_scopes.py +0 -0
  330. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/seeds/test_seeds.py +0 -0
  331. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/masoniteorm.backup/tests/utils.py +0 -0
  332. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/providers/__init__.py +0 -0
  333. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/providers/app_provider.py +0 -0
  334. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/storage/__init__.py +0 -0
  335. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/storage/config/__init__.py +0 -0
  336. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/storage/config/storage.py +0 -0
  337. {fastapi_startkit-0.28.0/src/fastapi_startkit/utils → fastapi_startkit-0.29.0/src/fastapi_startkit/storage}/data/mime.types +0 -0
  338. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/storage/drivers/__init__.py +0 -0
  339. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/storage/drivers/fake.py +0 -0
  340. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/storage/providers/provider.py +0 -0
  341. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/storage/storage.py +0 -0
  342. {fastapi_startkit-0.28.0/src/fastapi_startkit/helpers → fastapi_startkit-0.29.0/src/fastapi_startkit/support}/string.py +0 -0
  343. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/testing/__init__.py +0 -0
  344. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/testing/test_case.py +0 -0
  345. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/utils/structures.py +0 -0
  346. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/vite/__init__.py +0 -0
  347. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/vite/config/vite.py +0 -0
  348. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/vite/exceptions.py +0 -0
  349. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/vite/providers/provider.py +0 -0
  350. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/vite/stubs/package.json +0 -0
  351. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/vite/stubs/resources/css/app.css +0 -0
  352. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/vite/stubs/resources/js/app.ts +0 -0
  353. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/vite/stubs/templates/index.html +0 -0
  354. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/vite/stubs/tsconfig.json +0 -0
  355. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.0}/src/fastapi_startkit/vite/stubs/vite.config.ts +0 -0
  356. {fastapi_startkit-0.28.0 → fastapi_startkit-0.29.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.28.0
3
+ Version: 0.29.0
4
4
  Summary: Fastapi Starter kit components
5
5
  Author: Bedram Tamang
6
6
  Author-email: Bedram Tamang <tmgbedu@gmail.com>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "fastapi-startkit"
3
- version = "0.28.0"
3
+ version = "0.29.0"
4
4
  description = "Fastapi Starter kit components"
5
5
  authors = [
6
6
  {name = "Bedram Tamang", email = "tmgbedu@gmail.com"}
@@ -52,6 +52,7 @@ dev = [
52
52
  "dumpdie>=1.5.0",
53
53
  "pytest>=9.0.3",
54
54
  "pytest-asyncio>=1.3.0",
55
+ "pytest-cov>=6.0.0",
55
56
  "ruff>=0.9.0",
56
57
  "twine>=6.2.0",
57
58
  "itsdangerous>=2.2.0",
@@ -75,6 +76,30 @@ fixable = ["F401"]
75
76
 
76
77
  [tool.pytest.ini_options]
77
78
  asyncio_mode = "auto"
79
+ norecursedirs = ["masoniteorm.backup", ".venv", "dist", "build", "__pycache__"]
80
+
81
+ [tool.coverage.run]
82
+ source = ["src/fastapi_startkit"]
83
+ omit = [
84
+ "*/tests/*",
85
+ "*/migrations/*",
86
+ "*/__init__.py",
87
+ "*.pyi",
88
+ ]
89
+
90
+ [tool.coverage.report]
91
+ show_missing = true
92
+ skip_covered = false
93
+ fail_under = 50
94
+ exclude_lines = [
95
+ "pragma: no cover",
96
+ "if TYPE_CHECKING:",
97
+ "raise NotImplementedError",
98
+ "@abstractmethod",
99
+ ]
100
+
101
+ [tool.coverage.html]
102
+ directory = "htmlcov"
78
103
 
79
104
  [build-system]
80
105
  requires = ["uv_build >= 0.10.10, <0.11.0"]
@@ -4,7 +4,7 @@ from typing import TYPE_CHECKING
4
4
 
5
5
  from fastapi_startkit.console import Command
6
6
  from cleo.helpers import option
7
- from fastapi_startkit.helpers.string import Str
7
+ from fastapi_startkit.support import Str
8
8
 
9
9
  if TYPE_CHECKING:
10
10
  from fastapi_startkit.application import Application
@@ -7,7 +7,6 @@ from .Url import Url
7
7
  from .Session import Session
8
8
  from .View import View
9
9
  from .Gate import Gate
10
- from .Auth import Auth
11
10
  from .Config import Config
12
11
  from .Loader import Loader
13
12
  from .Notification import Notification
@@ -16,4 +15,3 @@ from .Queue import Queue
16
15
  from .Cache import Cache
17
16
  from .RateLimiter import RateLimiter
18
17
  from .Broadcast import Broadcast
19
- from .Inertia import Inertia
@@ -4,7 +4,6 @@ import inspect
4
4
  import pkgutil
5
5
 
6
6
  from ..exceptions import LoaderNotFound
7
- from ..utils.str import as_filepath
8
7
  from ..utils.structures import load
9
8
 
10
9
 
@@ -18,7 +17,7 @@ class Loader:
18
17
  files_or_directories = [files_or_directories]
19
18
 
20
19
  _modules = {}
21
- module_paths = list(map(as_filepath, files_or_directories))
20
+ module_paths = list(map(lambda p: p.replace(".", "/"), files_or_directories))
22
21
  for module_loader, name, _ in pkgutil.iter_modules(module_paths):
23
22
  module = load(
24
23
  f"{module_loader.path}/{name}.py",
@@ -1,8 +1,9 @@
1
- from ..factory import DriverFactory
2
- from fastapi_startkit.facades import Config
3
- from fastapi_startkit.utils.filesystem import make_directory
4
1
  import os
2
+
3
+ from fastapi_startkit.facades import Config
5
4
  from .BaseChannel import BaseChannel
5
+ from ..factory import DriverFactory
6
+ from ..file import make_directory
6
7
 
7
8
 
8
9
  class DailyChannel(BaseChannel):
@@ -1,6 +1,6 @@
1
1
  from ..factory import DriverFactory
2
2
  from fastapi_startkit.facades import Config
3
- from fastapi_startkit.utils.filesystem import make_directory
3
+ from ..file import make_directory
4
4
  from .BaseChannel import BaseChannel
5
5
 
6
6
 
@@ -1,6 +1,6 @@
1
1
  from ..factory import DriverFactory
2
2
  from fastapi_startkit.facades import Config
3
- from fastapi_startkit.utils.filesystem import make_directory
3
+ from ..file import make_directory
4
4
  from .BaseChannel import BaseChannel
5
5
 
6
6
 
@@ -1,8 +1,18 @@
1
- # from logging import Logger
1
+ from .BaseDriver import BaseDriver
2
2
 
3
- from fastapi_startkit.utils.console import HasColoredOutput
4
3
 
5
- from .BaseDriver import BaseDriver
4
+ class HasColoredOutput:
5
+ def success(self, message):
6
+ print("\033[92m {0} \033[0m".format(message))
7
+
8
+ def warning(self, message):
9
+ print("\033[93m {0} \033[0m".format(message))
10
+
11
+ def danger(self, message):
12
+ print("\033[91m {0} \033[0m".format(message))
13
+
14
+ def info(self, message):
15
+ return self.success(message)
6
16
 
7
17
 
8
18
  class LogTerminalDriver(BaseDriver, HasColoredOutput):
@@ -0,0 +1,13 @@
1
+ import os
2
+
3
+
4
+ def make_directory(directory):
5
+ """Create a directory at the given path for a file if it does not exist"""
6
+ if not os.path.isfile(directory):
7
+ if not os.path.exists(os.path.dirname(directory)):
8
+ # Create the path to the model if it does not exist
9
+ os.makedirs(os.path.dirname(directory))
10
+
11
+ return True
12
+
13
+ return False
@@ -1,4 +1,4 @@
1
- from fastapi_startkit.collection import Collection as BaseCollection
1
+ from fastapi_startkit.support.collection import Collection as BaseCollection
2
2
 
3
3
 
4
4
  class Collection(BaseCollection):
@@ -3,7 +3,7 @@ import os
3
3
  import pathlib
4
4
  from inflection import tableize
5
5
  from cleo.helpers import argument, option
6
- from fastapi_startkit.helpers.string import Str
6
+ from fastapi_startkit.support import Str
7
7
  from fastapi_startkit.console import Command
8
8
 
9
9
 
@@ -91,6 +91,110 @@ class Model(Attribute, Relationship, ObservesEvents):
91
91
  def with_(cls, *eagers) -> "QueryBuilder":
92
92
  return cls.query().with_(*eagers)
93
93
 
94
+ @classmethod
95
+ def where(cls, column, *args) -> "QueryBuilder":
96
+ return cls.query().where(column, *args)
97
+
98
+ @classmethod
99
+ def or_where(cls, column, *args) -> "QueryBuilder":
100
+ return cls.query().or_where(column, *args)
101
+
102
+ @classmethod
103
+ def where_null(cls, column: str) -> "QueryBuilder":
104
+ return cls.query().where_null(column)
105
+
106
+ @classmethod
107
+ def where_not_null(cls, column: str) -> "QueryBuilder":
108
+ return cls.query().where_not_null(column)
109
+
110
+ @classmethod
111
+ def where_in(cls, column: str, values) -> "QueryBuilder":
112
+ return cls.query().where_in(column, values)
113
+
114
+ @classmethod
115
+ def where_not_in(cls, column: str, values) -> "QueryBuilder":
116
+ return cls.query().where_not_in(column, values)
117
+
118
+ @classmethod
119
+ def select(cls, *args) -> "QueryBuilder":
120
+ return cls.query().select(*args)
121
+
122
+ @classmethod
123
+ def limit(cls, limit: int) -> "QueryBuilder":
124
+ return cls.query().limit(limit)
125
+
126
+ @classmethod
127
+ def offset(cls, offset: int) -> "QueryBuilder":
128
+ return cls.query().offset(offset)
129
+
130
+ @classmethod
131
+ def order_by(cls, column: str, direction: str = "asc") -> "QueryBuilder":
132
+ return cls.query().order_by(column, direction)
133
+
134
+ @classmethod
135
+ def order_by_raw(cls, expression: str) -> "QueryBuilder":
136
+ return cls.query().order_by_raw(expression)
137
+
138
+ @classmethod
139
+ def latest(cls, column: str = "created_at") -> "QueryBuilder":
140
+ return cls.query().latest(column)
141
+
142
+ @classmethod
143
+ def oldest(cls, column: str = "created_at") -> "QueryBuilder":
144
+ return cls.query().oldest(column)
145
+
146
+ @classmethod
147
+ def group_by(cls, column: str) -> "QueryBuilder":
148
+ return cls.query().group_by(column)
149
+
150
+ @classmethod
151
+ def group_by_raw(cls, expression: str) -> "QueryBuilder":
152
+ return cls.query().group_by_raw(expression)
153
+
154
+ @classmethod
155
+ def having(cls, column: str, equality: str, value) -> "QueryBuilder":
156
+ return cls.query().having(column, equality, value)
157
+
158
+ @classmethod
159
+ def between(cls, column: str, low, high) -> "QueryBuilder":
160
+ return cls.query().between(column, low, high)
161
+
162
+ @classmethod
163
+ def not_between(cls, column: str, low, high) -> "QueryBuilder":
164
+ return cls.query().not_between(column, low, high)
165
+
166
+ @classmethod
167
+ def distinct(cls) -> "QueryBuilder":
168
+ return cls.query().distinct()
169
+
170
+ @classmethod
171
+ def join(cls, table: str, column1: str, equality: str, column2: str, clause: str = "join") -> "QueryBuilder":
172
+ return cls.query().join(table, column1, equality, column2, clause)
173
+
174
+ @classmethod
175
+ def left_join(cls, table: str, column1: str, equality: str, column2: str) -> "QueryBuilder":
176
+ return cls.query().left_join(table, column1, equality, column2)
177
+
178
+ @classmethod
179
+ def right_join(cls, table: str, column1: str, equality: str, column2: str) -> "QueryBuilder":
180
+ return cls.query().right_join(table, column1, equality, column2)
181
+
182
+ @classmethod
183
+ def where_column(cls, column1: str, column2: str) -> "QueryBuilder":
184
+ return cls.query().where_column(column1, column2)
185
+
186
+ @classmethod
187
+ def when(cls, condition, callback) -> "QueryBuilder":
188
+ return cls.query().when(condition, callback)
189
+
190
+ @classmethod
191
+ def where_exists(cls, builder: "QueryBuilder") -> "QueryBuilder":
192
+ return cls.query().where_exists(builder)
193
+
194
+ @classmethod
195
+ def or_where_exists(cls, builder: "QueryBuilder") -> "QueryBuilder":
196
+ return cls.query().or_where_exists(builder)
197
+
94
198
  @classmethod
95
199
  def where_has(cls, relation: str, callback=None) -> "QueryBuilder":
96
200
  return cls.query().where_has(relation, callback)
@@ -1,6 +1,6 @@
1
1
  from typing import TYPE_CHECKING
2
2
 
3
- from fastapi_startkit.helpers.string import Str
3
+ from fastapi_startkit.support import Str
4
4
 
5
5
  from fastapi_startkit.helpers.dataclass import Dataclass
6
6
 
@@ -5,7 +5,7 @@ from shutil import copyfile, move
5
5
 
6
6
  from ..filestream import FileStream
7
7
  from ..file import File
8
- from ...utils.filesystem import get_extension
8
+ from ..helper import get_extension
9
9
 
10
10
 
11
11
  class LocalDriver:
@@ -2,7 +2,7 @@ import os
2
2
  import uuid
3
3
 
4
4
  from ..file import File
5
- from ...utils.filesystem import get_extension
5
+ from ..helper import get_extension
6
6
 
7
7
 
8
8
  class S3Driver:
@@ -1,6 +1,6 @@
1
1
  import hashlib
2
2
 
3
- from ..utils.filesystem import get_extension
3
+ from .helper import get_extension
4
4
 
5
5
 
6
6
  class File:
@@ -1,6 +1,6 @@
1
1
  import os
2
2
 
3
- from ..utils.filesystem import get_extension
3
+ from .helper import get_extension
4
4
 
5
5
 
6
6
  class FileStream:
@@ -0,0 +1,33 @@
1
+ import mimetypes
2
+ import os
3
+ import pathlib
4
+
5
+
6
+ def get_module_dir(module_file):
7
+ return os.path.dirname(os.path.realpath(module_file))
8
+
9
+
10
+ mimetypes.init([os.path.join(get_module_dir(__file__), "data/mime.types")])
11
+
12
+ KNOWN_MIME_TYPES = mimetypes.types_map.keys()
13
+
14
+
15
+ def get_extension(filepath: str, without_dot=False) -> str:
16
+ """Get a file extension from a filepath. If without_dot= True, the prefix will be removed from
17
+ the extension."""
18
+ extension_parts = pathlib.Path(filepath).suffixes
19
+ extension = ""
20
+ if extension_parts:
21
+ # try to join all the parts until only one part to check if it's a known extension
22
+ for i in range(len(extension_parts)):
23
+ try_extension = "".join(extension_parts[i:])
24
+ if try_extension in KNOWN_MIME_TYPES:
25
+ extension = try_extension
26
+ break
27
+ # if no known extension found, return the last part as the extension
28
+ if not extension:
29
+ extension = extension_parts[-1]
30
+
31
+ if without_dot:
32
+ extension = extension[1:]
33
+ return extension
@@ -0,0 +1,4 @@
1
+ from .collection import Collection, collect
2
+ from .string import Str, Stringable
3
+
4
+ __all__ = ["Collection", "collect", "Str", "Stringable"]
@@ -555,7 +555,11 @@ class Collection:
555
555
  ">": operator.gt,
556
556
  ">=": operator.ge,
557
557
  }
558
- return operators[op](str(a), str(b))
558
+ # Use numeric comparison when both values are numeric
559
+ try:
560
+ return operators[op](float(a), float(b))
561
+ except (TypeError, ValueError):
562
+ return operators[op](str(a), str(b))
559
563
 
560
564
  def __iter__(self):
561
565
  for item in self._items:
@@ -611,3 +615,8 @@ class Collection:
611
615
  items = items.all()
612
616
 
613
617
  return items
618
+
619
+
620
+ def collect(items=None) -> Collection:
621
+ """Shortcut to wrap items in a Collection."""
622
+ return Collection(items or [])
@@ -1 +0,0 @@
1
- from .collection import Collection
@@ -1,38 +0,0 @@
1
- import inspect
2
- import warnings
3
-
4
- from .exceptions import DumpException
5
-
6
-
7
- warnings.warn(
8
- "DD class will be removed in Masonite 5. Please use Dump facade instead.",
9
- DeprecationWarning,
10
- )
11
-
12
-
13
- class DD:
14
- def __init__(self, container):
15
- self.app = container
16
-
17
- def die_and_dump(self, *args):
18
- """Dump all provided args and die, ie raise a DumpException."""
19
- self.dump(*args)
20
- raise DumpException
21
-
22
- def dump(self, *args):
23
- """Dump all provided args and let flow continue. This does not raise a DumpException."""
24
- print(
25
- inspect.stack()[1].function,
26
- inspect.stack()[1].filename,
27
- inspect.stack()[1].lineno,
28
- )
29
- if self.app.has("ObjDumpList"):
30
- dump_list = self.app.make("ObjDumpList")
31
- else:
32
- dump_list = []
33
- start = len(dump_list)
34
- for i, obj in enumerate(args):
35
- dump_name = f"ObjDump{start + i}"
36
- self.app.bind(dump_name, obj)
37
- dump_list.append(dump_name)
38
- self.app.bind("ObjDumpList", dump_list)
@@ -1,70 +0,0 @@
1
- class ExceptionHandler:
2
- def __init__(self, application, driver_config=None):
3
- self.application = application
4
- self.drivers = {}
5
- self.driver_config = driver_config or {}
6
- self.options = {}
7
-
8
- def set_options(self, options):
9
- self.options = options
10
- return self
11
-
12
- def add_driver(self, name, driver):
13
- self.drivers.update({name: driver})
14
-
15
- def set_configuration(self, config):
16
- self.driver_config = config
17
- return self
18
-
19
- def get_driver(self, name=None):
20
- if name is None:
21
- return self.drivers[self.driver_config.get("default")]
22
- return self.drivers[name]
23
-
24
- def get_config_options(self, driver=None):
25
- if driver is None:
26
- return self.driver_config[self.driver_config.get("default")]
27
-
28
- return self.driver_config.get(driver, {})
29
-
30
- def handle(self, exception):
31
- response = self.application.make("response")
32
- request = self.application.make("request")
33
-
34
- self.application.make("event").fire(f"masonite.exception.{exception.__class__.__name__}", exception)
35
-
36
- # add headers to response if any
37
- if hasattr(exception, "get_headers"):
38
- headers = exception.get_headers()
39
- response.with_headers(headers)
40
-
41
- # if an exception handler is registered for this exception, use it instead
42
- # add headers to response if any
43
- if hasattr(exception, "get_headers"):
44
- headers = exception.get_headers()
45
- response.with_headers(headers)
46
-
47
- if self.application.has(f"{exception.__class__.__name__}Handler"):
48
- return self.application.make(f"{exception.__class__.__name__}Handler").handle(exception)
49
-
50
- # handle exception in production
51
- if not self.application.is_debug():
52
- # for HTTP error codes (500, 404, 403...) a specific page should be displayed
53
- # if a renderable exception is raised let it be displayed
54
- if hasattr(exception, "is_http_exception") or hasattr(exception, "get_response"):
55
- return self.application.make("HttpExceptionHandler").handle(exception)
56
-
57
- # else fallback to an unknown exception that should be displayed as a 500 error
58
- exception.get_status = lambda: 500
59
- exception.get_response = lambda: str(exception) or "Unknown error"
60
- return self.application.make("HttpExceptionHandler").handle(exception)
61
-
62
- # handle exception in development mode with Exceptionite
63
- exceptionite = self.get_driver("exceptionite")
64
- exceptionite.start(exception)
65
- exceptionite.render("terminal")
66
-
67
- if request.accepts_json():
68
- return response.view(exceptionite.render("json"), status=500)
69
- else:
70
- return response.view(exceptionite.render("web"), status=500)
@@ -1,38 +0,0 @@
1
- from .ExceptionHandler import ExceptionHandler
2
- from .handlers.DumpExceptionHandler import DumpExceptionHandler
3
- from .handlers.HttpExceptionHandler import HttpExceptionHandler
4
- from .handlers.ModelNotFoundHandler import ModelNotFoundHandler
5
- from .DD import DD
6
- from .exceptions import (
7
- AuthorizationException,
8
- InvalidRouteCompileException,
9
- RouteMiddlewareNotFound,
10
- ContainerError,
11
- MissingContainerBindingNotFound,
12
- StrictContainerException,
13
- ResponseError,
14
- InvalidHTTPStatusCode,
15
- RequiredContainerBindingNotFound,
16
- ViewException,
17
- RouteNotFoundException,
18
- DumpException,
19
- InvalidSecretKey,
20
- InvalidCSRFToken,
21
- NotificationException,
22
- InvalidToken,
23
- ProjectLimitReached,
24
- ProjectProviderTimeout,
25
- ProjectProviderHttpError,
26
- ProjectTargetNotEmpty,
27
- MixFileNotFound,
28
- MixManifestNotFound,
29
- InvalidConfigurationLocation,
30
- InvalidConfigurationSetup,
31
- InvalidPackageName,
32
- LoaderNotFound,
33
- QueueException,
34
- AmbiguousError,
35
- MethodNotAllowedException,
36
- ModelNotFoundException,
37
- ThrottleRequestsException,
38
- )
@@ -1,101 +0,0 @@
1
- from exceptionite import Block
2
-
3
- from ... import __version__
4
- from ...helpers import optional
5
- from ...utils.str import get_controller_name
6
-
7
-
8
- def recursive_serializer(data):
9
- if isinstance(data, (int, bool, str, bytes)):
10
- return data
11
- elif isinstance(data, (list, tuple)):
12
- return [recursive_serializer(item) for item in data]
13
- elif isinstance(data, dict):
14
- return {key: recursive_serializer(val) for key, val in data.items()}
15
- elif callable(data):
16
- return str(data)
17
- elif hasattr(data, "serialize"):
18
- return data.serialize()
19
- else:
20
- return str(data)
21
-
22
-
23
- class AppBlock(Block):
24
- id = "application"
25
- name = "Application"
26
- icon = "DesktopComputerIcon"
27
- has_sections = True
28
-
29
- def build(self):
30
- request = self.handler.app.make("request")
31
- route = request.get_route()
32
-
33
- data = {
34
- "Info": {
35
- "Masonite Version": __version__,
36
- "Environment": self.handler.app.environment(),
37
- "Debug": self.handler.app.is_debug(),
38
- }
39
- }
40
-
41
- # add app route data
42
- if route:
43
- data.update(
44
- {
45
- "Route": {
46
- "Controller": get_controller_name(route.controller),
47
- "Name": route.get_name(),
48
- "Middlewares": route.get_middlewares(),
49
- }
50
- }
51
- )
52
-
53
- # add user route data
54
- user = request.user()
55
- if user:
56
- data.update(
57
- {
58
- "User": {
59
- "E-mail": optional(user).email,
60
- "ID": optional(user).id,
61
- }
62
- }
63
- )
64
-
65
- return data
66
-
67
-
68
- class RequestBlock(Block):
69
- id = "request"
70
- name = "Request"
71
- icon = "SwitchHorizontalIcon"
72
- has_sections = True
73
-
74
- def build(self):
75
- request = self.handler.app.make("request")
76
- # serialize inputs (e.g. in case of file)
77
- inputs = {}
78
- for name, value in request.all().items():
79
- inputs[name] = recursive_serializer(value)
80
- return {
81
- "Parameters": {
82
- "Path": request.get_path(),
83
- "Input": inputs or None,
84
- "Request Method": request.get_request_method(),
85
- },
86
- "Headers": request.header_bag.to_dict(),
87
- }
88
-
89
-
90
- class ConfigBlock(Block):
91
- id = "config"
92
- name = "Configuration"
93
- icon = "CogIcon"
94
- has_sections = True
95
-
96
- def build(self):
97
- data = {}
98
- for section, config_data in self.handler.app.make("config").all().items():
99
- section_name = section.title()
100
- data[section_name] = recursive_serializer(config_data)
101
- return data
@@ -1,13 +0,0 @@
1
- from ...request import Request
2
- from ...controllers import Controller
3
- from ...response import Response
4
-
5
-
6
- class ExceptioniteController(Controller):
7
- def run_action(self, request: Request, response: Response):
8
- handler = request.app.make("exception_handler").get_driver("exceptionite")
9
- data = handler.run_action(request.input("action_id"), request.input("options"))
10
- try:
11
- return response.json({"message": "ok", "data": data}, 200)
12
- except: # noqa: E722
13
- return response.json({"message": "An error happened", "data": data}, 400)