fastapi-startkit 0.24.0__tar.gz → 0.26.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 (354) hide show
  1. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/PKG-INFO +1 -1
  2. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/pyproject.toml +1 -1
  3. fastapi_startkit-0.26.0/src/fastapi_startkit/masoniteorm/__init__.py +32 -0
  4. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/commands/stubs/table_migration.stub +1 -1
  5. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/models/attribute.py +4 -1
  6. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/models/caster.py +92 -5
  7. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/models/fields.py +13 -0
  8. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/schema/Blueprint.py +4 -8
  9. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/schema/platforms/MySQLPlatform.py +2 -2
  10. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/schema/platforms/PostgresPlatform.py +2 -2
  11. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/schema/platforms/SQLitePlatform.py +2 -2
  12. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/schema/schema.py +42 -0
  13. fastapi_startkit-0.26.0/src/fastapi_startkit/storage/__init__.py +6 -0
  14. fastapi_startkit-0.24.0/src/fastapi_startkit/masoniteorm/__init__.py +0 -8
  15. fastapi_startkit-0.24.0/src/fastapi_startkit/storage/__init__.py +0 -3
  16. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/.DS_Store +0 -0
  17. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/__init__.py +0 -0
  18. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/application.py +0 -0
  19. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/carbon/__init__.py +0 -0
  20. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/carbon/carbon.py +0 -0
  21. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/collection/__init__.py +0 -0
  22. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/collection/collection.py +0 -0
  23. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/config/__init__.py +0 -0
  24. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/config/app.py +0 -0
  25. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/configuration/Configuration.py +0 -0
  26. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/configuration/__init__.py +0 -0
  27. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/configuration/config.py +0 -0
  28. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/configuration/helpers.py +0 -0
  29. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/configuration/providers/ConfigurationProvider.py +0 -0
  30. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/configuration/providers/__init__.py +0 -0
  31. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/console/__init__.py +0 -0
  32. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/console/application.py +0 -0
  33. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/console/can_override_config.py +0 -0
  34. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/console/can_override_default_options.py +0 -0
  35. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/console/command.py +0 -0
  36. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/console/publish_command.py +0 -0
  37. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/container/__init__.py +0 -0
  38. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/container/container.py +0 -0
  39. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/environment/__init__.py +0 -0
  40. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/environment/environment.py +0 -0
  41. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/exceptions/__init__.py +0 -0
  42. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/exceptions/exceptions.py +0 -0
  43. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/exceptions/handler.py +0 -0
  44. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/exceptions.backup/DD.py +0 -0
  45. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/exceptions.backup/ExceptionHandler.py +0 -0
  46. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/exceptions.backup/__init__.py +0 -0
  47. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/exceptions.backup/exceptionite/__init__.py +0 -0
  48. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/exceptions.backup/exceptionite/blocks.py +0 -0
  49. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/exceptions.backup/exceptionite/controllers.py +0 -0
  50. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/exceptions.backup/exceptionite/solutions.py +0 -0
  51. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/exceptions.backup/exceptionite/tabs.py +0 -0
  52. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/exceptions.backup/handlers/DumpExceptionHandler.py +0 -0
  53. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/exceptions.backup/handlers/HttpExceptionHandler.py +0 -0
  54. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/exceptions.backup/handlers/ModelNotFoundHandler.py +0 -0
  55. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Auth.py +0 -0
  56. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Auth.pyi +0 -0
  57. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Broadcast.py +0 -0
  58. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Cache.py +0 -0
  59. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Config.py +0 -0
  60. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Config.pyi +0 -0
  61. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Dump.py +0 -0
  62. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Dump.pyi +0 -0
  63. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Facade.py +0 -0
  64. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Gate.py +0 -0
  65. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Gate.pyi +0 -0
  66. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Hash.py +0 -0
  67. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Hash.pyi +0 -0
  68. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Inertia.py +0 -0
  69. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Loader.py +0 -0
  70. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Loader.pyi +0 -0
  71. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Mail.py +0 -0
  72. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Mail.pyi +0 -0
  73. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Notification.py +0 -0
  74. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Notification.pyi +0 -0
  75. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Queue.py +0 -0
  76. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Queue.pyi +0 -0
  77. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/RateLimiter.py +0 -0
  78. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/RateLimiter.pyi +0 -0
  79. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Request.py +0 -0
  80. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Request.pyi +0 -0
  81. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Response.py +0 -0
  82. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Response.pyi +0 -0
  83. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Session.py +0 -0
  84. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Session.pyi +0 -0
  85. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Url.py +0 -0
  86. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Url.pyi +0 -0
  87. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/View.py +0 -0
  88. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/View.pyi +0 -0
  89. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Vite.py +0 -0
  90. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/Vite.pyi +0 -0
  91. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/facades/__init__.py +0 -0
  92. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/fastapi/__init__.py +0 -0
  93. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/fastapi/commands/__init__.py +0 -0
  94. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/fastapi/commands/serve_command.py +0 -0
  95. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/fastapi/config/__init__.py +0 -0
  96. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/fastapi/config/fastapi.py +0 -0
  97. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/fastapi/exceptions.py +0 -0
  98. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/fastapi/providers/fastapi_provider.py +0 -0
  99. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/fastapi/requests/model.py +0 -0
  100. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/fastapi/routers/router.py +0 -0
  101. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/fastapi/testing/__init__.py +0 -0
  102. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/fastapi/testing/test_case.py +0 -0
  103. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/helpers/app.py +0 -0
  104. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/helpers/dataclass.py +0 -0
  105. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/helpers/string.py +0 -0
  106. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/inertia/__init__.py +0 -0
  107. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/inertia/constant.py +0 -0
  108. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/inertia/context.py +0 -0
  109. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/inertia/inertia.py +0 -0
  110. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/inertia/middleware.py +0 -0
  111. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/inertia/props/props.py +0 -0
  112. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/inertia/provider.py +0 -0
  113. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/loader/Loader.py +0 -0
  114. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/loader/__init__.py +0 -0
  115. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/ChannelFactory.py +0 -0
  116. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/__init__.py +0 -0
  117. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/channels/BaseChannel.py +0 -0
  118. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/channels/DailyChannel.py +0 -0
  119. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/channels/MultiBaseChannel.py +0 -0
  120. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/channels/SingleChannel.py +0 -0
  121. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/channels/SlackChannel.py +0 -0
  122. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/channels/StackChannel.py +0 -0
  123. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/channels/SyslogChannel.py +0 -0
  124. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/channels/TerminalChannel.py +0 -0
  125. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/channels/__init__.py +0 -0
  126. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/config/__init__.py +0 -0
  127. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/config/channels.py +0 -0
  128. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/config/logging.py +0 -0
  129. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/drivers/BaseDriver.py +0 -0
  130. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/drivers/LogSingleDriver.py +0 -0
  131. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/drivers/LogSlackDriver.py +0 -0
  132. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/drivers/LogSyslogDriver.py +0 -0
  133. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/drivers/LogTerminalDriver.py +0 -0
  134. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/drivers/__init__.py +0 -0
  135. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/factory.py +0 -0
  136. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/handler.py +0 -0
  137. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/listeners.py +0 -0
  138. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/logger.py +0 -0
  139. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/managers/LoggingManager.py +0 -0
  140. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/managers/__init__.py +0 -0
  141. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/providers/__init__.py +0 -0
  142. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/logging/providers/log_provider.py +0 -0
  143. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/collection/Collection.py +0 -0
  144. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/collection/__init__.py +0 -0
  145. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/commands/DBMigrateCommand.py +0 -0
  146. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/commands/DBSeedCommand.py +0 -0
  147. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/commands/MakeMigrationCommand.py +0 -0
  148. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/commands/MakeModelCommand.py +0 -0
  149. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/commands/MakeModelDocstringCommand.py +0 -0
  150. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/commands/MakeObserverCommand.py +0 -0
  151. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/commands/MakeSeedCommand.py +0 -0
  152. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/commands/MigrateFreshCommand.py +0 -0
  153. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/commands/MigrateRefreshCommand.py +0 -0
  154. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/commands/MigrateResetCommand.py +0 -0
  155. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/commands/MigrateRollbackCommand.py +0 -0
  156. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/commands/MigrateStatusCommand.py +0 -0
  157. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/commands/ShellCommand.py +0 -0
  158. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/commands/__init__.py +0 -0
  159. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/commands/stubs/create_migration.stub +0 -0
  160. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/commands/stubs/create_seed.stub +0 -0
  161. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/commands/stubs/model.stub +0 -0
  162. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/commands/stubs/observer.stub +0 -0
  163. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/config/__init__.py +0 -0
  164. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/config/config.py +0 -0
  165. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/config/database.py +0 -0
  166. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/connections/connection.py +0 -0
  167. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/connections/factory.py +0 -0
  168. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/connections/manager.py +0 -0
  169. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/connections/mysql_connection.py +0 -0
  170. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/connections/postgres_connection.py +0 -0
  171. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/connections/sqlite_connection.py +0 -0
  172. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/expressions/__init__.py +0 -0
  173. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/expressions/expressions.py +0 -0
  174. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/facades/DB.py +0 -0
  175. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/facades/Schema.py +0 -0
  176. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/facades/__init__.py +0 -0
  177. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/factory/__init__.py +0 -0
  178. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/factory/factory.py +0 -0
  179. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/helpers/__init__.py +0 -0
  180. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/helpers/misc.py +0 -0
  181. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/migrations/Migration.py +0 -0
  182. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/migrations/Migrator.py +0 -0
  183. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/migrations/__init__.py +0 -0
  184. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/models/MigrationModel.py +0 -0
  185. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/models/__init__.py +0 -0
  186. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/models/builder.py +0 -0
  187. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/models/model.py +0 -0
  188. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/models/observer.py +0 -0
  189. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/models/pivot.py +0 -0
  190. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/models/registry.py +0 -0
  191. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/models/relationship.py +0 -0
  192. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/observers/ObservesEvents.py +0 -0
  193. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/observers/__init__.py +0 -0
  194. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/pagination/BasePaginator.py +0 -0
  195. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/pagination/LengthAwarePaginator.py +0 -0
  196. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/pagination/SimplePaginator.py +0 -0
  197. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/pagination/__init__.py +0 -0
  198. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/providers/DatabaseProvider.py +0 -0
  199. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/providers/__init__.py +0 -0
  200. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/query/EagerLoadMixin.py +0 -0
  201. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/query/EagerRelation.py +0 -0
  202. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/query/__init__.py +0 -0
  203. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/query/grammars/BaseGrammar.py +0 -0
  204. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/query/grammars/MSSQLGrammar.py +0 -0
  205. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/query/grammars/MySQLGrammar.py +0 -0
  206. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/query/grammars/PostgresGrammar.py +0 -0
  207. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/query/grammars/SQLiteGrammar.py +0 -0
  208. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/query/grammars/__init__.py +0 -0
  209. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/query/processors/MSSQLPostProcessor.py +0 -0
  210. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/query/processors/MySQLPostProcessor.py +0 -0
  211. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/query/processors/PostgresPostProcessor.py +0 -0
  212. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/query/processors/SQLitePostProcessor.py +0 -0
  213. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/query/processors/__init__.py +0 -0
  214. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/query/support.py +0 -0
  215. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/relationships/BaseRelationship.py +0 -0
  216. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/relationships/BelongsTo.py +0 -0
  217. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/relationships/BelongsToMany.py +0 -0
  218. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/relationships/HasMany.py +0 -0
  219. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/relationships/HasManyThrough.py +0 -0
  220. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/relationships/HasOne.py +0 -0
  221. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/relationships/HasOneThrough.py +0 -0
  222. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/relationships/MorphMany.py +0 -0
  223. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/relationships/MorphOne.py +0 -0
  224. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/relationships/MorphTo.py +0 -0
  225. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/relationships/MorphToMany.py +0 -0
  226. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/relationships/__init__.py +0 -0
  227. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/schema/Column.py +0 -0
  228. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/schema/ColumnDiff.py +0 -0
  229. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/schema/Constraint.py +0 -0
  230. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/schema/ForeignKeyConstraint.py +0 -0
  231. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/schema/Index.py +0 -0
  232. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/schema/Table.py +0 -0
  233. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/schema/TableDiff.py +0 -0
  234. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/schema/__init__.py +0 -0
  235. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/schema/platforms/MSSQLPlatform.py +0 -0
  236. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/schema/platforms/Platform.py +0 -0
  237. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/schema/platforms/__init__.py +0 -0
  238. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/seeds/Seeder.py +0 -0
  239. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/seeds/__init__.py +0 -0
  240. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/stubs/create-migration.html +0 -0
  241. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/stubs/table-migration.html +0 -0
  242. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/testing/__init__.py +0 -0
  243. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm/testing/transaction.py +0 -0
  244. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/.pytest_cache/.gitignore +0 -0
  245. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/.pytest_cache/CACHEDIR.TAG +0 -0
  246. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/.pytest_cache/README.md +0 -0
  247. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/.pytest_cache/v/cache/lastfailed +0 -0
  248. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/.pytest_cache/v/cache/nodeids +0 -0
  249. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/__init__.py +0 -0
  250. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/config/database.py +0 -0
  251. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/config.py +0 -0
  252. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/exceptions.py +0 -0
  253. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/factories/Factory.py +0 -0
  254. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/factories/__init__.py +0 -0
  255. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/schema/Schema.py +0 -0
  256. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/scopes/BaseScope.py +0 -0
  257. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/scopes/SoftDeleteScope.py +0 -0
  258. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/scopes/SoftDeletesMixin.py +0 -0
  259. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/scopes/UUIDPrimaryKeyMixin.py +0 -0
  260. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/scopes/UUIDPrimaryKeyScope.py +0 -0
  261. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/scopes/__init__.py +0 -0
  262. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/scopes/scope.py +0 -0
  263. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/testing/BaseTestCaseSelectGrammar.py +0 -0
  264. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/testing/Database.py +0 -0
  265. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/testing/TestCase.py +0 -0
  266. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/testing/__init__.py +0 -0
  267. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/User.py +0 -0
  268. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/connections/test_base_connections.py +0 -0
  269. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/eagers/test_eager.py +0 -0
  270. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/factories/test_factories.py +0 -0
  271. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/integrations/config/__init__.py +0 -0
  272. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/integrations/config/database.py +0 -0
  273. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/integrations/databases/migrations/2026_01_01_000000_create_users_table.py +0 -0
  274. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/integrations/model.py +0 -0
  275. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/integrations/test_model.py +0 -0
  276. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/models/test_models.py +0 -0
  277. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/builder/test_mssql_query_builder.py +0 -0
  278. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/builder/test_mssql_query_builder_relationships.py +0 -0
  279. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_delete_grammar.py +0 -0
  280. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_insert_grammar.py +0 -0
  281. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_qmark.py +0 -0
  282. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_select_grammar.py +0 -0
  283. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_update_grammar.py +0 -0
  284. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/schema/test_mssql_schema_builder.py +0 -0
  285. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/schema/test_mssql_schema_builder_alter.py +0 -0
  286. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_mysql_builder_transaction.py +0 -0
  287. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_query_builder.py +0 -0
  288. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_query_builder_scopes.py +0 -0
  289. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_transactions.py +0 -0
  290. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/connections/test_mysql_connection_selects.py +0 -0
  291. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_delete_grammar.py +0 -0
  292. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_insert_grammar.py +0 -0
  293. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_qmark.py +0 -0
  294. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_select_grammar.py +0 -0
  295. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_update_grammar.py +0 -0
  296. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/model/test_accessors_and_mutators.py +0 -0
  297. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/model/test_model.py +0 -0
  298. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_belongs_to_many.py +0 -0
  299. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_has_many_through.py +0 -0
  300. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_has_one_through.py +0 -0
  301. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_relationships.py +0 -0
  302. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/schema/test_mysql_schema_builder.py +0 -0
  303. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/schema/test_mysql_schema_builder_alter.py +0 -0
  304. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/scopes/test_can_use_global_scopes.py +0 -0
  305. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/scopes/test_can_use_scopes.py +0 -0
  306. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/scopes/test_soft_delete.py +0 -0
  307. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/builder/test_postgres_query_builder.py +0 -0
  308. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/builder/test_postgres_transaction.py +0 -0
  309. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_delete_grammar.py +0 -0
  310. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_insert_grammar.py +0 -0
  311. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_select_grammar.py +0 -0
  312. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_update_grammar.py +0 -0
  313. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/relationships/test_postgres_relationships.py +0 -0
  314. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/schema/test_postgres_schema_builder.py +0 -0
  315. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/schema/test_postgres_schema_builder_alter.py +0 -0
  316. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/scopes/test_default_global_scopes.py +0 -0
  317. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/seeds/test_seeds.py +0 -0
  318. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/masoniteorm.backup/tests/utils.py +0 -0
  319. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/providers/Provider.py +0 -0
  320. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/providers/__init__.py +0 -0
  321. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/providers/app_provider.py +0 -0
  322. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/storage/config/__init__.py +0 -0
  323. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/storage/config/storage.py +0 -0
  324. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/storage/drivers/__init__.py +0 -0
  325. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/storage/drivers/fake.py +0 -0
  326. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/storage/drivers/local.py +0 -0
  327. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/storage/drivers/s3.py +0 -0
  328. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/storage/file.py +0 -0
  329. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/storage/filestream.py +0 -0
  330. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/storage/providers/provider.py +0 -0
  331. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/storage/storage.py +0 -0
  332. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/testing/__init__.py +0 -0
  333. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/testing/test_case.py +0 -0
  334. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/utils/__init__.py +0 -0
  335. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/utils/collections.py +0 -0
  336. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/utils/console.py +0 -0
  337. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/utils/data/mime.types +0 -0
  338. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/utils/filesystem.py +0 -0
  339. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/utils/http.py +0 -0
  340. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/utils/location.py +0 -0
  341. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/utils/str.py +0 -0
  342. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/utils/structures.py +0 -0
  343. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/utils/time.py +0 -0
  344. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/vite/__init__.py +0 -0
  345. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/vite/config/vite.py +0 -0
  346. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/vite/exceptions.py +0 -0
  347. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/vite/providers/provider.py +0 -0
  348. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/vite/stubs/package.json +0 -0
  349. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/vite/stubs/resources/css/app.css +0 -0
  350. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/vite/stubs/resources/js/app.ts +0 -0
  351. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/vite/stubs/templates/index.html +0 -0
  352. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/vite/stubs/tsconfig.json +0 -0
  353. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.0}/src/fastapi_startkit/vite/stubs/vite.config.ts +0 -0
  354. {fastapi_startkit-0.24.0 → fastapi_startkit-0.26.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.24.0
3
+ Version: 0.26.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.24.0"
3
+ version = "0.26.0"
4
4
  description = "Fastapi Starter kit components"
5
5
  authors = [
6
6
  {name = "Bedram Tamang", email = "tmgbedu@gmail.com"}
@@ -0,0 +1,32 @@
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 .models.fields import CreatedAtField, DateTimeField, Field, ModelField, UpdatedAtField
7
+ from .providers import DatabaseProvider
8
+ from .relationships import BelongsTo, BelongsToMany, HasMany, HasManyThrough, HasOne, HasOneThrough, MorphTo
9
+
10
+ __all__ = [
11
+ "DatabaseProvider",
12
+ "PostgresConfig",
13
+ "MySQLConfig",
14
+ "SQLiteConfig",
15
+ "Model",
16
+ "DB",
17
+ "Migration",
18
+ "Migrator",
19
+ "ModelField",
20
+ "DateTimeField",
21
+ "CreatedAtField",
22
+ "UpdatedAtField",
23
+ "Field",
24
+ # Relationships
25
+ "HasOne",
26
+ "BelongsTo",
27
+ "HasMany",
28
+ "HasManyThrough",
29
+ "BelongsToMany",
30
+ "HasOneThrough",
31
+ "MorphTo",
32
+ ]
@@ -1,6 +1,6 @@
1
1
  """__MIGRATION_NAME__ Migration."""
2
2
 
3
- from fastapi_startkit.masoniteorm.migrations import Migration
3
+ from fastapi_startkit.masoniteorm import Migration
4
4
 
5
5
 
6
6
  class __MIGRATION_NAME__(Migration):
@@ -105,4 +105,7 @@ class Attribute:
105
105
  }
106
106
 
107
107
  def get_attributes_for_insert(self) -> dict:
108
- return {**self._attributes, **self._dirty_attributes}
108
+ # _dirty_attributes already went through set_attribute (casts applied on assignment).
109
+ # _attributes is set raw via new_model_instance, so apply set casts here.
110
+ casted = {k: self.caster.set(k, v) for k, v in self._attributes.items()}
111
+ return {**casted, **self._dirty_attributes}
@@ -111,6 +111,66 @@ class DecimalCast(BaseCast):
111
111
  return str(value)
112
112
 
113
113
 
114
+ class TimeCast(BaseCast):
115
+ """Casts a value to datetime.time; stored as HH:MM:SS string"""
116
+
117
+ def get(self, value):
118
+ if not value:
119
+ return None
120
+ if isinstance(value, datetime.time):
121
+ return value
122
+ return datetime.time.fromisoformat(str(value))
123
+
124
+ def set(self, value):
125
+ if not value:
126
+ return None
127
+ if isinstance(value, datetime.time):
128
+ return value.strftime("%H:%M:%S")
129
+ return str(value)
130
+
131
+
132
+ class TimeDeltaCast(BaseCast):
133
+ """Casts a value to datetime.timedelta; stored as total seconds"""
134
+
135
+ def get(self, value):
136
+ if value is None:
137
+ return None
138
+ if isinstance(value, datetime.timedelta):
139
+ return value
140
+ return datetime.timedelta(seconds=float(value))
141
+
142
+ def set(self, value):
143
+ if value is None:
144
+ return None
145
+ if isinstance(value, datetime.timedelta):
146
+ return value.total_seconds()
147
+ return float(value)
148
+
149
+
150
+ @dataclass
151
+ class ModelCast(BaseCast):
152
+ model_class: type = field(default=None)
153
+
154
+ def get(self, value):
155
+ if value is None:
156
+ return None
157
+ if isinstance(value, self.model_class):
158
+ return value
159
+ data = json.loads(value) if isinstance(value, str) else value
160
+ return self.model_class(**data)
161
+
162
+ def set(self, value) -> Optional[str]:
163
+ if value is None:
164
+ return None
165
+ if isinstance(value, self.model_class):
166
+ if hasattr(value, "model_dump_json"):
167
+ return value.model_dump_json()
168
+ return json.dumps(value.__dict__)
169
+ if isinstance(value, dict):
170
+ return json.dumps(value)
171
+ return value
172
+
173
+
114
174
  class Caster:
115
175
  casts = {}
116
176
 
@@ -121,6 +181,8 @@ class Caster:
121
181
  "float": FloatCast,
122
182
  "date": DateCast,
123
183
  "decimal": DecimalCast,
184
+ "time": TimeCast,
185
+ "timedelta": TimeDeltaCast,
124
186
  }
125
187
 
126
188
  IGNORE_CASTS = ["caster", "db_manager"]
@@ -156,21 +218,26 @@ class Caster:
156
218
  annotations = {
157
219
  k: v for k, v in annotations.items() if k not in cls.IGNORE_CASTS
158
220
  }
159
- from .fields import FieldDescriptor
221
+ from .fields import ModelField, FieldDescriptor
160
222
 
161
223
  # 1. Collect all potential fields (annotations + descriptors)
162
224
  all_field_names = set(annotations.keys())
163
225
  descriptors = {}
164
- for name, attr in cls.__dict__.items():
165
- if isinstance(attr, FieldDescriptor):
226
+ for name, attr in model.__dict__.items():
227
+ if isinstance(attr, (FieldDescriptor, ModelField)):
166
228
  all_field_names.add(name)
167
229
  descriptors[name] = attr
168
230
 
169
231
  casts = {}
170
232
  for field_name in all_field_names:
171
- # 2. Get Type Hint and FieldInfo
172
233
  typ = annotations.get(field_name) or "str"
173
234
  descriptor = descriptors.get(field_name, None)
235
+
236
+ # AttributeField: use the type annotation as the model class
237
+ if isinstance(descriptor, ModelField):
238
+ casts[field_name] = ModelCast(model_class=typ)
239
+ continue
240
+
174
241
  field_info = (
175
242
  descriptor.field_info
176
243
  if isinstance(descriptor, FieldDescriptor)
@@ -204,12 +271,29 @@ class Caster:
204
271
  or t is Carbon
205
272
  ):
206
273
  return "date"
274
+ if t is datetime.time:
275
+ return "time"
276
+ if t is datetime.timedelta:
277
+ return "timedelta"
207
278
  if isinstance(t, type):
208
279
  if issubclass(t, Enum) or hasattr(t, "get") or hasattr(t, "set"):
209
280
  return t
210
281
 
211
282
  return "str"
212
283
 
284
+ @staticmethod
285
+ def _apply_default(cast: "BaseCast"):
286
+ """Return the Field default/default_factory value, or None if none is set."""
287
+ from pydantic_core import PydanticUndefined
288
+
289
+ if cast.config is None:
290
+ return None
291
+ if cast.config.default is not PydanticUndefined:
292
+ return cast.config.default
293
+ if cast.config.default_factory is not None:
294
+ return cast.config.default_factory()
295
+ return None
296
+
213
297
  def get(self, attribute: str, value: Any) -> Any:
214
298
  if attribute not in self.casts:
215
299
  return value
@@ -220,7 +304,10 @@ class Caster:
220
304
  return str(value) if value is not None else None
221
305
 
222
306
  if isinstance(cast, BaseCast):
223
- return cast.get(value)
307
+ result = cast.get(value)
308
+ if result is None:
309
+ result = self._apply_default(cast)
310
+ return result
224
311
 
225
312
  if isinstance(cast, type):
226
313
  if issubclass(cast, Enum):
@@ -41,6 +41,19 @@ def Field(*args, **kwargs) -> Any:
41
41
  return FieldDescriptor(BaseField(*args, **kwargs))
42
42
 
43
43
 
44
+ class ModelField:
45
+ def __set_name__(self, owner, name):
46
+ self.name = name
47
+
48
+ def __get__(self, instance, owner):
49
+ if instance is None:
50
+ return self
51
+ return instance.get_attribute(self.name)
52
+
53
+ def __set__(self, instance, value):
54
+ instance.set_attribute(self.name, value)
55
+
56
+
44
57
  class DateTimeField:
45
58
  def __init__(self, fmt: str = "YYYY-MM-DD HH:mm:ss", tz: str = "UTC"):
46
59
  self.format = fmt
@@ -743,7 +743,7 @@ class Blueprint:
743
743
  self._last_column = _columns
744
744
  return self
745
745
 
746
- def to_sql(self):
746
+ async def to_sql(self):
747
747
  """Compiles the blueprint class into a sql statement.
748
748
 
749
749
  Returns:
@@ -754,13 +754,10 @@ class Blueprint:
754
754
  elif self._action == "create_table_if_not_exists":
755
755
  return self.platform().compile_create_sql(self.table, if_not_exists=True)
756
756
  else:
757
- if not self._dry and self.table.from_table is None:
758
- # get current table schema
759
- table = self.platform().get_current_schema(
757
+ if self.table.from_table is None:
758
+ self.table.from_table = await self.platform().get_current_schema(
760
759
  self.connection, self.table.name, schema=self.schema
761
760
  )
762
- self.table.from_table = table
763
-
764
761
  return self.platform().compile_alter_sql(self.table)
765
762
 
766
763
  def __enter__(self):
@@ -781,12 +778,11 @@ class Blueprint:
781
778
  async def __aenter__(self):
782
779
  return self
783
780
 
784
- # TODO: review
785
781
  async def __aexit__(self, exc_type, exc_value, exc_traceback):
786
782
  if self._dry:
787
783
  return
788
784
 
789
- sql = self.to_sql()
785
+ sql = await self.to_sql()
790
786
  if isinstance(sql, list):
791
787
  for q in sql:
792
788
  await self.connection.statement(q, ())
@@ -435,10 +435,10 @@ class MySQLPlatform(Platform):
435
435
  def compile_get_all_tables(self, database, schema=None):
436
436
  return f"SELECT table_name FROM information_schema.tables WHERE table_schema = '{database}'"
437
437
 
438
- def get_current_schema(self, connection, table_name, schema=None):
438
+ async def get_current_schema(self, connection, table_name, schema=None):
439
439
  table = Table(table_name)
440
440
  sql = f"DESCRIBE {table_name}"
441
- result = connection.query(sql, ())
441
+ result = await connection.select(sql, ())
442
442
  reversed_type_map = {v: k for k, v in self.type_map.items()}
443
443
 
444
444
  for column in result:
@@ -492,7 +492,7 @@ class PostgresPlatform(Platform):
492
492
  def compile_get_all_tables(self, database=None, schema=None):
493
493
  return f"SELECT table_name FROM information_schema.tables WHERE table_schema = '{schema or 'public'}' AND table_catalog = '{database}' AND table_type = 'BASE TABLE'"
494
494
 
495
- def get_current_schema(self, connection, table_name, schema=None):
495
+ async def get_current_schema(self, connection, table_name, schema=None):
496
496
  sql = self.table_information_string().format(
497
497
  table=table_name, schema=schema or "public"
498
498
  )
@@ -501,7 +501,7 @@ class PostgresPlatform(Platform):
501
501
  reversed_type_map.update(self.table_info_map)
502
502
  table = Table(table_name)
503
503
 
504
- result = connection.query(sql, ())
504
+ result = await connection.select(sql, ())
505
505
  for column in result:
506
506
  column_type = reversed_type_map.get(column["data_type"].upper())
507
507
 
@@ -367,13 +367,13 @@ class SQLitePlatform(Platform):
367
367
 
368
368
  return names
369
369
 
370
- def get_current_schema(self, connection, table_name, schema=None):
370
+ async def get_current_schema(self, connection, table_name, schema=None):
371
371
  sql = f"PRAGMA table_info({table_name})"
372
372
 
373
373
  reversed_type_map = {v: k for k, v in self.type_map.items()}
374
374
  table = Table(table_name)
375
375
 
376
- result = connection.query(sql, ())
376
+ result = await connection.select(sql, ())
377
377
  for column in result:
378
378
  column_type = self.get_column_type(
379
379
  reversed_type_map, column["type"].upper()
@@ -4,6 +4,48 @@ from fastapi_startkit.masoniteorm.schema.TableDiff import TableDiff
4
4
 
5
5
 
6
6
  class Schema:
7
+ _type_hints_map = {
8
+ "string": str,
9
+ "char": str,
10
+ "big_increments": int,
11
+ "integer": int,
12
+ "big_integer": int,
13
+ "tiny_integer": int,
14
+ "small_integer": int,
15
+ "medium_integer": int,
16
+ "integer_unsigned": int,
17
+ "big_integer_unsigned": int,
18
+ "tiny_integer_unsigned": int,
19
+ "small_integer_unsigned": int,
20
+ "medium_integer_unsigned": int,
21
+ "increments": int,
22
+ "uuid": str,
23
+ "binary": bytes,
24
+ "boolean": bool,
25
+ "decimal": float,
26
+ "double": float,
27
+ "enum": str,
28
+ "text": str,
29
+ "tiny_text": str,
30
+ "float": float,
31
+ "geometry": str,
32
+ "json": dict,
33
+ "jsonb": bytes,
34
+ "inet": str,
35
+ "cidr": str,
36
+ "macaddr": str,
37
+ "long_text": str,
38
+ "point": str,
39
+ "time": str,
40
+ "timestamp": str,
41
+ "date": str,
42
+ "year": str,
43
+ "datetime": str,
44
+ "tiny_increments": int,
45
+ "unsigned": int,
46
+ "unsigned_integer": int,
47
+ }
48
+
7
49
  def __init__(self, manager) -> None:
8
50
  self._manager = manager
9
51
  self._connection = None
@@ -0,0 +1,6 @@
1
+ from .storage import Storage
2
+ from .config import S3Config, LocalDiskConfig, PublicDiskConfig
3
+ from .drivers.fake import FakeDriver
4
+ from .providers.provider import StorageProvider
5
+
6
+ __all__ = ["Storage", "S3Config", "LocalDiskConfig", "PublicDiskConfig", "FakeDriver", "StorageProvider"]
@@ -1,8 +0,0 @@
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,3 +0,0 @@
1
- from .storage import Storage
2
- from .config import S3Config, LocalDiskConfig, PublicDiskConfig
3
- from .drivers.fake import FakeDriver