fastapi-startkit 0.42.0__tar.gz → 0.44.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.
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/PKG-INFO +1 -1
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/pyproject.toml +1 -1
- fastapi_startkit-0.44.0/src/fastapi_startkit/environment/__init__.py +1 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/environment/environment.py +18 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/fastapi/commands/serve_command.py +32 -18
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/fastapi/config/fastapi.py +1 -8
- fastapi_startkit-0.44.0/src/fastapi_startkit/support/__init__.py +5 -0
- fastapi_startkit-0.44.0/src/fastapi_startkit/support/uri.py +220 -0
- fastapi_startkit-0.42.0/src/fastapi_startkit/environment/__init__.py +0 -1
- fastapi_startkit-0.42.0/src/fastapi_startkit/support/__init__.py +0 -4
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/.DS_Store +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/ai/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/ai/agent.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/ai/audio.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/ai/audio_factory.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/ai/config.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/ai/decorators.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/ai/document.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/ai/image.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/ai/image_factory.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/ai/providers/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/ai/providers/ai_provider.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/ai/response.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/application.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/broadcasting/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/broadcasting/auth.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/broadcasting/channels.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/broadcasting/config.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/broadcasting/drivers/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/broadcasting/drivers/log_driver.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/broadcasting/drivers/reverb_driver.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/broadcasting/event.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/broadcasting/helpers.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/broadcasting/manager.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/broadcasting/provider.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/broadcasting/reverb/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/broadcasting/reverb/channel_manager.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/broadcasting/reverb/connection.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/broadcasting/reverb/server.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/broadcasting/stubs/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/broadcasting/stubs/channels.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/carbon/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/carbon/carbon.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/config/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/config/app.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/configuration/Configuration.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/configuration/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/configuration/config.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/configuration/helpers.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/configuration/providers/ConfigurationProvider.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/configuration/providers/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/console/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/console/application.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/console/can_override_config.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/console/can_override_default_options.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/console/command.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/console/publish_command.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/container/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/container/container.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/exceptions/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/exceptions/exceptions.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/exceptions/handler.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/AI.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/AI.pyi +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Cache.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Config.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Config.pyi +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Dump.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Dump.pyi +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Facade.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Gate.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Gate.pyi +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Hash.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Hash.pyi +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Loader.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Loader.pyi +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Mail.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Mail.pyi +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Notification.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Notification.pyi +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Queue.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Queue.pyi +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/RateLimiter.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/RateLimiter.pyi +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Request.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Request.pyi +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Response.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Response.pyi +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Session.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Session.pyi +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Url.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Url.pyi +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/View.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/View.pyi +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Vite.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Vite.pyi +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/fastapi/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/fastapi/commands/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/fastapi/config/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/fastapi/exceptions.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/fastapi/providers/fastapi_provider.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/fastapi/requests/model.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/fastapi/routers/router.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/fastapi/testing/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/fastapi/testing/test_case.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/helpers/app.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/helpers/dataclass.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/inertia/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/inertia/constant.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/inertia/context.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/inertia/inertia.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/inertia/middleware.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/inertia/props/props.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/inertia/provider.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/jsonapi/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/jsonapi/response.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/loader/Loader.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/loader/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/ChannelFactory.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/channels/BaseChannel.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/channels/DailyChannel.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/channels/MultiBaseChannel.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/channels/SingleChannel.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/channels/SlackChannel.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/channels/StackChannel.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/channels/SyslogChannel.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/channels/TerminalChannel.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/channels/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/config/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/config/channels.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/config/logging.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/drivers/BaseDriver.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/drivers/LogSingleDriver.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/drivers/LogSlackDriver.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/drivers/LogSyslogDriver.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/drivers/LogTerminalDriver.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/drivers/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/factory.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/file.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/handler.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/listeners.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/logger.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/managers/LoggingManager.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/managers/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/providers/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/logging/providers/log_provider.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/collection/Collection.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/collection/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/commands/DBMigrateCommand.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/commands/DBSeedCommand.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/commands/MakeMigrationCommand.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/commands/MakeModelCommand.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/commands/MakeModelDocstringCommand.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/commands/MakeObserverCommand.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/commands/MakeSeedCommand.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/commands/MigrateFreshCommand.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/commands/MigrateRefreshCommand.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/commands/MigrateResetCommand.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/commands/MigrateRollbackCommand.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/commands/MigrateStatusCommand.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/commands/ShellCommand.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/commands/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/commands/stubs/create_migration.stub +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/commands/stubs/create_seed.stub +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/commands/stubs/model.stub +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/commands/stubs/observer.stub +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/commands/stubs/table_migration.stub +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/config/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/config/config.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/config/database.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/connections/connection.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/connections/factory.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/connections/manager.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/connections/mysql_connection.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/connections/postgres_connection.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/connections/sqlite_connection.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/exceptions.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/expressions/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/expressions/expressions.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/facades/DB.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/facades/Schema.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/facades/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/factory/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/factory/factory.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/helpers/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/helpers/misc.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/migrations/Migration.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/migrations/Migrator.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/migrations/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/models/MigrationModel.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/models/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/models/attribute.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/models/builder.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/models/caster.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/models/fields.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/models/model.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/models/observer.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/models/pivot.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/models/registry.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/models/relationship.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/observers/ObservesEvents.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/observers/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/pagination/BasePaginator.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/pagination/LengthAwarePaginator.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/pagination/SimplePaginator.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/pagination/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/providers/DatabaseProvider.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/providers/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/query/EagerLoadMixin.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/query/EagerRelation.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/query/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/query/grammars/BaseGrammar.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/query/grammars/MSSQLGrammar.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/query/grammars/MySQLGrammar.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/query/grammars/PostgresGrammar.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/query/grammars/SQLiteGrammar.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/query/grammars/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/query/processors/MSSQLPostProcessor.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/query/processors/MySQLPostProcessor.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/query/processors/PostgresPostProcessor.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/query/processors/SQLitePostProcessor.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/query/processors/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/query/support.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/relationships/BaseRelationship.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/relationships/BelongsTo.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/relationships/BelongsToMany.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/relationships/HasMany.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/relationships/HasManyThrough.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/relationships/HasOne.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/relationships/HasOneThrough.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/relationships/MorphMany.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/relationships/MorphOne.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/relationships/MorphTo.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/relationships/MorphToMany.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/relationships/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/schema/Blueprint.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/schema/Column.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/schema/ColumnDiff.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/schema/Constraint.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/schema/ForeignKeyConstraint.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/schema/Index.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/schema/Table.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/schema/TableDiff.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/schema/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/schema/platforms/MSSQLPlatform.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/schema/platforms/MySQLPlatform.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/schema/platforms/Platform.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/schema/platforms/PostgresPlatform.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/schema/platforms/SQLitePlatform.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/schema/platforms/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/schema/schema.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/seeds/Seeder.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/seeds/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/stubs/create-migration.html +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/stubs/table-migration.html +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/testing/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm/testing/transaction.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/.pytest_cache/.gitignore +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/.pytest_cache/CACHEDIR.TAG +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/.pytest_cache/README.md +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/.pytest_cache/v/cache/lastfailed +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/.pytest_cache/v/cache/nodeids +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/config/database.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/config.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/exceptions.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/factories/Factory.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/factories/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/schema/Schema.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/scopes/BaseScope.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/scopes/SoftDeleteScope.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/scopes/SoftDeletesMixin.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/scopes/UUIDPrimaryKeyMixin.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/scopes/UUIDPrimaryKeyScope.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/scopes/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/scopes/scope.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/testing/BaseTestCaseSelectGrammar.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/testing/Database.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/testing/TestCase.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/testing/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/User.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/connections/test_base_connections.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/eagers/test_eager.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/models/test_models.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/builder/test_mssql_query_builder.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/builder/test_mssql_query_builder_relationships.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_delete_grammar.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_insert_grammar.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_qmark.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_select_grammar.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/grammar/test_mssql_update_grammar.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/schema/test_mssql_schema_builder.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mssql/schema/test_mssql_schema_builder_alter.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_mysql_builder_transaction.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_query_builder.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_query_builder_scopes.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/builder/test_transactions.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/connections/test_mysql_connection_selects.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_delete_grammar.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_insert_grammar.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_qmark.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_select_grammar.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/grammar/test_mysql_update_grammar.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/model/test_accessors_and_mutators.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/model/test_model.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_belongs_to_many.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_has_many_through.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_has_one_through.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/relationships/test_relationships.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/schema/test_mysql_schema_builder.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/schema/test_mysql_schema_builder_alter.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/scopes/test_can_use_global_scopes.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/scopes/test_can_use_scopes.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/mysql/scopes/test_soft_delete.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/builder/test_postgres_query_builder.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/builder/test_postgres_transaction.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_delete_grammar.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_insert_grammar.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_select_grammar.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/grammar/test_update_grammar.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/relationships/test_postgres_relationships.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/schema/test_postgres_schema_builder.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/postgres/schema/test_postgres_schema_builder_alter.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/scopes/test_default_global_scopes.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/seeds/test_seeds.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/masoniteorm.backup/tests/utils.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/mcp/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/mcp/argument.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/mcp/prompt.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/mcp/protocol.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/mcp/providers/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/mcp/providers/mcp_provider.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/mcp/request.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/mcp/resource.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/mcp/response.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/mcp/server.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/mcp/tool.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/process/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/process/exception.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/process/fake.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/process/process.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/process/result.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/providers/Provider.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/providers/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/providers/app_provider.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/skills/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/skills/adapters/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/skills/adapters/base.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/skills/adapters/claude.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/skills/adapters/gemini.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/skills/commands/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/skills/commands/skills.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/skills/parser.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/skills/provider.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/skills/registry.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/skills/stubs/.ai/fastapi-startkit/database/SKILL.md +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/skills/stubs/.ai/fastapi-startkit/fastapi/SKILL.md +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/storage/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/storage/config/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/storage/config/storage.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/storage/data/mime.types +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/storage/drivers/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/storage/drivers/fake.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/storage/drivers/local.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/storage/drivers/s3.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/storage/file.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/storage/filestream.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/storage/helper.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/storage/providers/provider.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/storage/storage.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/support/collection.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/support/string.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/testing/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/testing/test_case.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/utils/structures.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/vite/__init__.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/vite/config/vite.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/vite/exceptions.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/vite/providers/provider.py +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/vite/stubs/package.json +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/vite/stubs/resources/css/app.css +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/vite/stubs/resources/js/app.ts +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/vite/stubs/templates/index.html +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/vite/stubs/tsconfig.json +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/vite/stubs/vite.config.ts +0 -0
- {fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/vite/vite.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .environment import env, value
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/environment/environment.py
RENAMED
|
@@ -87,3 +87,21 @@ def env(value, default="", cast=True):
|
|
|
87
87
|
return True
|
|
88
88
|
else:
|
|
89
89
|
return env_var
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
def value(env_var, default=""):
|
|
93
|
+
if env_var == "":
|
|
94
|
+
env_var = default
|
|
95
|
+
|
|
96
|
+
if isinstance(env_var, bool):
|
|
97
|
+
return env_var
|
|
98
|
+
elif env_var is None:
|
|
99
|
+
return None
|
|
100
|
+
elif isinstance(env_var, int) or (isinstance(env_var, str) and env_var.isnumeric()):
|
|
101
|
+
return int(env_var)
|
|
102
|
+
elif env_var in ("false", "False"):
|
|
103
|
+
return False
|
|
104
|
+
elif env_var in ("true", "True"):
|
|
105
|
+
return True
|
|
106
|
+
else:
|
|
107
|
+
return env_var
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
from fastapi_startkit.console.command import Command
|
|
2
1
|
from cleo.helpers import option
|
|
3
2
|
|
|
3
|
+
from fastapi_startkit import Config
|
|
4
|
+
from fastapi_startkit.console.command import Command
|
|
5
|
+
from fastapi_startkit.environment import value as cast_value
|
|
6
|
+
from fastapi_startkit.support import Uri, Uriable
|
|
7
|
+
|
|
4
8
|
|
|
5
9
|
class ServeCommand(Command):
|
|
6
10
|
name = "serve"
|
|
@@ -37,48 +41,58 @@ class ServeCommand(Command):
|
|
|
37
41
|
),
|
|
38
42
|
]
|
|
39
43
|
|
|
44
|
+
def resolve_option(self, key: str, default: str | int | None = None):
|
|
45
|
+
value = self.option(key) or Config.get(f"fastapi.{key}", default)
|
|
46
|
+
|
|
47
|
+
return cast_value(value)
|
|
48
|
+
|
|
49
|
+
def resolve_url(self) -> Uriable:
|
|
50
|
+
host = self.option("host") or Config.get("fastapi.app_url", "http://127.0.0.1:8000")
|
|
51
|
+
port = self.option("port")
|
|
52
|
+
|
|
53
|
+
if host and not host.startswith("http"):
|
|
54
|
+
host = f"http://{host}"
|
|
55
|
+
|
|
56
|
+
uri = Uri.of(host)
|
|
57
|
+
|
|
58
|
+
return uri.with_port(port) if port else uri
|
|
59
|
+
|
|
40
60
|
def handle(self):
|
|
41
61
|
import uvicorn
|
|
62
|
+
|
|
42
63
|
from fastapi_startkit import Config
|
|
43
64
|
from fastapi_startkit.container import Container
|
|
44
65
|
|
|
45
66
|
# Resolve server settings: CLI flag > fastapi config > uvicorn default (None)
|
|
46
|
-
cfg_host = Config.get("fastapi.host", "127.0.0.1")
|
|
47
|
-
cfg_port = Config.get("fastapi.port", 8000)
|
|
48
|
-
cfg_reload = Config.get("fastapi.reload", True)
|
|
49
67
|
cfg_reload_dirs = Config.get("fastapi.reload_dirs") or None
|
|
50
68
|
cfg_reload_excludes = Config.get("fastapi.reload_excludes") or None
|
|
51
69
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
reload = cfg_reload if self.option("reload") is None else self.option("reload")
|
|
55
|
-
app = self.option("app")
|
|
56
|
-
|
|
57
|
-
exist = self.is_app_exist()
|
|
70
|
+
url = self.resolve_url()
|
|
71
|
+
reload = self.resolve_option("reload", True)
|
|
58
72
|
|
|
59
73
|
kwargs = {
|
|
60
|
-
"host": host,
|
|
61
|
-
"port": port,
|
|
74
|
+
"host": url.host(),
|
|
75
|
+
"port": url.port(),
|
|
62
76
|
"reload": reload,
|
|
63
77
|
"ws": "websockets-sansio",
|
|
64
78
|
}
|
|
65
79
|
|
|
66
|
-
if
|
|
80
|
+
if self.is_app_exist():
|
|
67
81
|
kwargs.update(
|
|
68
82
|
{
|
|
69
|
-
"app": app,
|
|
83
|
+
"app": self.option("app"),
|
|
70
84
|
"factory": True,
|
|
71
85
|
}
|
|
72
86
|
)
|
|
73
|
-
if cfg_reload_dirs is not None:
|
|
87
|
+
if cfg_reload_dirs is not None and reload:
|
|
74
88
|
kwargs["reload_dirs"] = cfg_reload_dirs
|
|
75
|
-
if cfg_reload_excludes is not None:
|
|
89
|
+
if cfg_reload_excludes is not None and reload:
|
|
76
90
|
kwargs["reload_excludes"] = cfg_reload_excludes
|
|
77
91
|
|
|
78
|
-
self.line(f"<info>Starting Uvicorn server on {host}:{port} [{app}]...</info>")
|
|
92
|
+
self.line(f"<info>Starting Uvicorn server on {url.host()}:{url.port()} [{self.option('app')}]...</info>")
|
|
79
93
|
|
|
80
94
|
else:
|
|
81
|
-
self.line(f"<info>Starting Uvicorn server on {host}:{port}...</info>")
|
|
95
|
+
self.line(f"<info>Starting Uvicorn server on {url.host()}:{url.port()}...</info>")
|
|
82
96
|
kwargs.update({"app": Container.instance().fastapi, "reload": False})
|
|
83
97
|
|
|
84
98
|
try:
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/fastapi/config/fastapi.py
RENAMED
|
@@ -5,14 +5,7 @@ from fastapi_startkit.environment import env
|
|
|
5
5
|
|
|
6
6
|
@dataclasses.dataclass
|
|
7
7
|
class FastAPIConfig:
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
All fields can be overridden via environment variables or by publishing a
|
|
11
|
-
``config/fastapi.py`` file in the application root.
|
|
12
|
-
"""
|
|
13
|
-
|
|
14
|
-
host: str = dataclasses.field(default_factory=lambda: env("APP_HOST", "127.0.0.1"))
|
|
15
|
-
port: int = dataclasses.field(default_factory=lambda: env("APP_PORT", 8000))
|
|
8
|
+
app_url: str = dataclasses.field(default_factory=lambda: env("APP_URL", "http://127.0.0.1:8000"))
|
|
16
9
|
reload: bool = dataclasses.field(default_factory=lambda: env("APP_RELOAD", True))
|
|
17
10
|
reload_dirs: list | None = None
|
|
18
11
|
reload_excludes: list = dataclasses.field(
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
"""Fluent URI parser and builder — fastapi_startkit.support.uri.
|
|
2
|
+
|
|
3
|
+
Usage::
|
|
4
|
+
|
|
5
|
+
from fastapi_startkit.support.uri import Uri
|
|
6
|
+
|
|
7
|
+
url = (
|
|
8
|
+
Uri.of("https://example.com/api/users?page=1&sort=asc")
|
|
9
|
+
.with_path("/api/posts")
|
|
10
|
+
.add_query("page", 2)
|
|
11
|
+
.remove_query("sort")
|
|
12
|
+
.with_fragment("results")
|
|
13
|
+
.get()
|
|
14
|
+
)
|
|
15
|
+
# "https://example.com/api/posts?page=2#results"
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
from __future__ import annotations
|
|
19
|
+
|
|
20
|
+
from typing import Any
|
|
21
|
+
from urllib.parse import ParseResult, parse_qs, urlencode, urlparse, urlunparse
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class Uriable:
|
|
25
|
+
"""Fluent URI builder returned by :meth:`Uri.of`.
|
|
26
|
+
|
|
27
|
+
Every mutating method returns a *new* ``Uriable`` so the original is
|
|
28
|
+
not modified (value-object semantics).
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
def __init__(
|
|
32
|
+
self,
|
|
33
|
+
parsed: ParseResult,
|
|
34
|
+
query: dict[str, list[str]] | None = None,
|
|
35
|
+
) -> None:
|
|
36
|
+
self._parsed = parsed
|
|
37
|
+
# Maintain query params as ``dict[str, list[str]]`` — same format as
|
|
38
|
+
# ``urllib.parse.parse_qs``. We keep this separately so round-tripping
|
|
39
|
+
# through urlencode/parse_qs stays consistent.
|
|
40
|
+
self._query: dict[str, list[str]] = (
|
|
41
|
+
query if query is not None else parse_qs(parsed.query, keep_blank_values=True)
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
# ------------------------------------------------------------------
|
|
45
|
+
# Internal helpers
|
|
46
|
+
# ------------------------------------------------------------------
|
|
47
|
+
|
|
48
|
+
def _build_netloc(self, hostname: str | None = None, port: int | None = ...) -> str: # type: ignore[assignment]
|
|
49
|
+
"""Reconstruct the ``netloc`` component preserving auth information."""
|
|
50
|
+
hostname = hostname if hostname is not None else (self._parsed.hostname or "")
|
|
51
|
+
port = self._parsed.port if port is ... else port
|
|
52
|
+
|
|
53
|
+
netloc = hostname
|
|
54
|
+
if port:
|
|
55
|
+
netloc = f"{netloc}:{port}"
|
|
56
|
+
|
|
57
|
+
username = self._parsed.username
|
|
58
|
+
password = self._parsed.password
|
|
59
|
+
if username:
|
|
60
|
+
auth = f"{username}:{password}@" if password else f"{username}@"
|
|
61
|
+
netloc = auth + netloc
|
|
62
|
+
|
|
63
|
+
return netloc
|
|
64
|
+
|
|
65
|
+
def _rebuild(self, **overrides: Any) -> Uriable:
|
|
66
|
+
"""Return a new ``Uriable`` with selective component overrides."""
|
|
67
|
+
new_query: dict[str, list[str]] = overrides.pop("query", self._query)
|
|
68
|
+
|
|
69
|
+
new_parsed = ParseResult(
|
|
70
|
+
scheme=overrides.get("scheme", self._parsed.scheme),
|
|
71
|
+
netloc=overrides.get("netloc", self._parsed.netloc),
|
|
72
|
+
path=overrides.get("path", self._parsed.path),
|
|
73
|
+
params=overrides.get("params", self._parsed.params),
|
|
74
|
+
query=urlencode(new_query, doseq=True),
|
|
75
|
+
fragment=overrides.get("fragment", self._parsed.fragment),
|
|
76
|
+
)
|
|
77
|
+
return Uriable(new_parsed, new_query)
|
|
78
|
+
|
|
79
|
+
# ------------------------------------------------------------------
|
|
80
|
+
# Read accessors
|
|
81
|
+
# ------------------------------------------------------------------
|
|
82
|
+
|
|
83
|
+
def scheme(self) -> str:
|
|
84
|
+
"""Return the URI scheme (e.g. ``'https'``)."""
|
|
85
|
+
return self._parsed.scheme
|
|
86
|
+
|
|
87
|
+
def host(self) -> str:
|
|
88
|
+
"""Return the hostname without port (e.g. ``'example.com'``)."""
|
|
89
|
+
return self._parsed.hostname or ""
|
|
90
|
+
|
|
91
|
+
def port(self) -> int | None:
|
|
92
|
+
"""Return the port number, or ``None`` if not explicitly set."""
|
|
93
|
+
return self._parsed.port
|
|
94
|
+
|
|
95
|
+
def path(self) -> str:
|
|
96
|
+
"""Return the path component (e.g. ``'/api/users'``)."""
|
|
97
|
+
return self._parsed.path
|
|
98
|
+
|
|
99
|
+
def query(self) -> dict[str, list[str]]:
|
|
100
|
+
"""Return all query parameters as ``{key: [value, ...]}``."""
|
|
101
|
+
return dict(self._query)
|
|
102
|
+
|
|
103
|
+
def query_param(self, key: str, default: Any = None) -> str | None:
|
|
104
|
+
"""Return the *first* value for ``key``, or *default* if absent."""
|
|
105
|
+
values = self._query.get(key)
|
|
106
|
+
return values[0] if values else default
|
|
107
|
+
|
|
108
|
+
def fragment(self) -> str:
|
|
109
|
+
"""Return the fragment (hash) component, without the leading ``#``."""
|
|
110
|
+
return self._parsed.fragment
|
|
111
|
+
|
|
112
|
+
def get(self) -> str:
|
|
113
|
+
"""Return the fully assembled URI string."""
|
|
114
|
+
return urlunparse(self._parsed)
|
|
115
|
+
|
|
116
|
+
# ------------------------------------------------------------------
|
|
117
|
+
# Fluent mutators — each returns a new Uriable
|
|
118
|
+
# ------------------------------------------------------------------
|
|
119
|
+
|
|
120
|
+
def with_scheme(self, scheme: str) -> Uriable:
|
|
121
|
+
"""Replace the scheme (e.g. ``'http'`` → ``'https'``)."""
|
|
122
|
+
return self._rebuild(scheme=scheme)
|
|
123
|
+
|
|
124
|
+
def with_host(self, host: str) -> Uriable:
|
|
125
|
+
"""Replace the hostname, preserving port and authentication info."""
|
|
126
|
+
netloc = self._build_netloc(hostname=host)
|
|
127
|
+
return self._rebuild(netloc=netloc)
|
|
128
|
+
|
|
129
|
+
def with_port(self, port: int | None) -> Uriable:
|
|
130
|
+
"""Set (or clear) the port, preserving hostname and auth."""
|
|
131
|
+
netloc = self._build_netloc(port=port)
|
|
132
|
+
return self._rebuild(netloc=netloc)
|
|
133
|
+
|
|
134
|
+
def with_path(self, path: str) -> Uriable:
|
|
135
|
+
"""Replace the entire path component."""
|
|
136
|
+
return self._rebuild(path=path)
|
|
137
|
+
|
|
138
|
+
def append_path(self, segment: str) -> Uriable:
|
|
139
|
+
"""Append *segment* to the current path, handling trailing slashes."""
|
|
140
|
+
base = self._parsed.path.rstrip("/")
|
|
141
|
+
segment = segment.lstrip("/")
|
|
142
|
+
return self._rebuild(path=f"{base}/{segment}")
|
|
143
|
+
|
|
144
|
+
def with_query(self, params: dict[str, Any]) -> Uriable:
|
|
145
|
+
"""Replace *all* query parameters with the supplied mapping."""
|
|
146
|
+
new_query: dict[str, list[str]] = {}
|
|
147
|
+
for key, value in params.items():
|
|
148
|
+
if isinstance(value, (list, tuple)):
|
|
149
|
+
new_query[key] = [str(v) for v in value]
|
|
150
|
+
else:
|
|
151
|
+
new_query[key] = [str(value)]
|
|
152
|
+
return self._rebuild(query=new_query)
|
|
153
|
+
|
|
154
|
+
def add_query(self, key: str, value: Any) -> Uriable:
|
|
155
|
+
"""Add or replace a single query parameter."""
|
|
156
|
+
new_query = dict(self._query)
|
|
157
|
+
new_query[key] = [str(value)]
|
|
158
|
+
return self._rebuild(query=new_query)
|
|
159
|
+
|
|
160
|
+
def remove_query(self, key: str) -> Uriable:
|
|
161
|
+
"""Remove a query parameter (no-op if absent)."""
|
|
162
|
+
new_query = {k: v for k, v in self._query.items() if k != key}
|
|
163
|
+
return self._rebuild(query=new_query)
|
|
164
|
+
|
|
165
|
+
def with_fragment(self, fragment: str) -> Uriable:
|
|
166
|
+
"""Set the fragment (hash), without the leading ``#``."""
|
|
167
|
+
return self._rebuild(fragment=fragment)
|
|
168
|
+
|
|
169
|
+
def without_fragment(self) -> Uriable:
|
|
170
|
+
"""Remove the fragment component."""
|
|
171
|
+
return self._rebuild(fragment="")
|
|
172
|
+
|
|
173
|
+
def without_query(self) -> Uriable:
|
|
174
|
+
"""Remove all query parameters."""
|
|
175
|
+
return self._rebuild(query={})
|
|
176
|
+
|
|
177
|
+
# ------------------------------------------------------------------
|
|
178
|
+
# Dunder helpers
|
|
179
|
+
# ------------------------------------------------------------------
|
|
180
|
+
|
|
181
|
+
def __str__(self) -> str:
|
|
182
|
+
return self.get()
|
|
183
|
+
|
|
184
|
+
def __repr__(self) -> str:
|
|
185
|
+
return f"Uriable({self.get()!r})"
|
|
186
|
+
|
|
187
|
+
def __eq__(self, other: object) -> bool:
|
|
188
|
+
if isinstance(other, Uriable):
|
|
189
|
+
return self.get() == other.get()
|
|
190
|
+
if isinstance(other, str):
|
|
191
|
+
return self.get() == other
|
|
192
|
+
return NotImplemented
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
class Uri:
|
|
196
|
+
"""Static factory and utility for fluent URI manipulation.
|
|
197
|
+
|
|
198
|
+
Example::
|
|
199
|
+
|
|
200
|
+
from fastapi_startkit.support.uri import Uri
|
|
201
|
+
|
|
202
|
+
uri = Uri.of("https://api.example.com/v1/users?active=true")
|
|
203
|
+
new_uri = (
|
|
204
|
+
uri.append_path("search")
|
|
205
|
+
.add_query("q", "alice")
|
|
206
|
+
.with_scheme("http")
|
|
207
|
+
.get()
|
|
208
|
+
)
|
|
209
|
+
# "http://api.example.com/v1/users/search?active=true&q=alice"
|
|
210
|
+
"""
|
|
211
|
+
|
|
212
|
+
@classmethod
|
|
213
|
+
def of(cls, url: str) -> Uriable:
|
|
214
|
+
"""Parse *url* and return a fluent :class:`Uriable` builder."""
|
|
215
|
+
return Uriable(urlparse(url))
|
|
216
|
+
|
|
217
|
+
@classmethod
|
|
218
|
+
def parse(cls, url: str) -> Uriable:
|
|
219
|
+
"""Alias for :meth:`of`."""
|
|
220
|
+
return cls.of(url)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
from .environment import env
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/ai/audio_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/ai/image_factory.py
RENAMED
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/ai/providers/__init__.py
RENAMED
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/ai/providers/ai_provider.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/broadcasting/__init__.py
RENAMED
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/broadcasting/auth.py
RENAMED
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/broadcasting/channels.py
RENAMED
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/broadcasting/config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/broadcasting/event.py
RENAMED
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/broadcasting/helpers.py
RENAMED
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/broadcasting/manager.py
RENAMED
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/broadcasting/provider.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/configuration/__init__.py
RENAMED
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/configuration/config.py
RENAMED
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/configuration/helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/console/__init__.py
RENAMED
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/console/application.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/console/publish_command.py
RENAMED
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/container/__init__.py
RENAMED
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/container/container.py
RENAMED
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/exceptions/__init__.py
RENAMED
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/exceptions/exceptions.py
RENAMED
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/exceptions/handler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Notification.py
RENAMED
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Notification.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/RateLimiter.py
RENAMED
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/RateLimiter.pyi
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Request.pyi
RENAMED
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Response.py
RENAMED
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Response.pyi
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/Session.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/facades/__init__.py
RENAMED
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/fastapi/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/fastapi/config/__init__.py
RENAMED
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/fastapi/exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/fastapi/requests/model.py
RENAMED
|
File without changes
|
{fastapi_startkit-0.42.0 → fastapi_startkit-0.44.0}/src/fastapi_startkit/fastapi/routers/router.py
RENAMED
|
File without changes
|