2024-11-16 01:48:15 -05:00
|
|
|
import uvicorn
|
2025-02-07 21:08:40 -05:00
|
|
|
import argparse
|
2024-11-16 01:48:15 -05:00
|
|
|
from dotenv import load_dotenv
|
2024-11-22 18:56:22 -05:00
|
|
|
from core.config import get_settings
|
2025-01-30 16:03:46 -05:00
|
|
|
from core.logging_config import setup_logging
|
2024-11-16 01:48:15 -05:00
|
|
|
|
2024-11-16 14:37:01 -05:00
|
|
|
|
2024-11-16 01:48:15 -05:00
|
|
|
def main():
|
2025-02-07 21:08:40 -05:00
|
|
|
# Parse command line arguments
|
|
|
|
parser = argparse.ArgumentParser(description="Start the DataBridge server")
|
|
|
|
parser.add_argument(
|
|
|
|
"--log",
|
|
|
|
choices=["debug", "info", "warning", "error"],
|
|
|
|
default="info",
|
|
|
|
help="Set the logging level",
|
|
|
|
)
|
|
|
|
args = parser.parse_args()
|
|
|
|
|
|
|
|
# Set up logging first with specified level
|
|
|
|
setup_logging(log_level=args.log.upper())
|
2025-01-30 16:03:46 -05:00
|
|
|
|
2024-11-16 01:48:15 -05:00
|
|
|
# Load environment variables from .env file
|
|
|
|
load_dotenv()
|
|
|
|
|
2024-11-22 18:56:22 -05:00
|
|
|
# Load settings (this will validate all required env vars)
|
|
|
|
settings = get_settings()
|
2024-11-16 01:48:15 -05:00
|
|
|
|
|
|
|
# Start server
|
|
|
|
uvicorn.run(
|
|
|
|
"core.api:app",
|
2024-11-22 18:56:22 -05:00
|
|
|
host=settings.HOST,
|
|
|
|
port=settings.PORT,
|
2024-12-17 21:40:38 -05:00
|
|
|
loop="asyncio",
|
2025-02-07 21:08:40 -05:00
|
|
|
log_level=args.log,
|
2024-11-22 18:56:22 -05:00
|
|
|
# reload=settings.RELOAD
|
2024-11-16 01:48:15 -05:00
|
|
|
)
|
|
|
|
|
2024-11-22 18:56:22 -05:00
|
|
|
|
2024-11-16 01:48:15 -05:00
|
|
|
if __name__ == "__main__":
|
2024-11-16 14:37:01 -05:00
|
|
|
main()
|