first commit
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
#!/usr/bin/env python3
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
ROOT_DIR = Path(__file__).resolve().parent
|
||||
REQUIREMENTS = ROOT_DIR / "requirements.txt"
|
||||
EXPORT_DIR = ROOT_DIR / "exports"
|
||||
|
||||
|
||||
def install_requirements() -> None:
|
||||
if not REQUIREMENTS.exists():
|
||||
raise SystemExit("Brak pliku requirements.txt")
|
||||
subprocess.check_call([sys.executable, "-m", "pip", "install", "-r", str(REQUIREMENTS)])
|
||||
|
||||
|
||||
def parse_args() -> argparse.Namespace:
|
||||
parser = argparse.ArgumentParser(description="Lokalne uruchamianie symulatora kredytu bez Dockera.")
|
||||
parser.add_argument("--host", default="127.0.0.1", help="Adres hosta, domyślnie 127.0.0.1")
|
||||
parser.add_argument("--port", type=int, default=8047, help="Port, domyślnie 8047")
|
||||
parser.add_argument("--no-reload", action="store_true", help="Wyłącz auto-reload podczas developmentu")
|
||||
parser.add_argument("--install", action="store_true", help="Zainstaluj zależności z requirements.txt przed startem")
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def main() -> None:
|
||||
args = parse_args()
|
||||
os.chdir(ROOT_DIR)
|
||||
EXPORT_DIR.mkdir(parents=True, exist_ok=True)
|
||||
os.environ.setdefault("MORTGAGE_EXPORT_DIR", str(EXPORT_DIR))
|
||||
|
||||
if args.install:
|
||||
install_requirements()
|
||||
|
||||
try:
|
||||
import uvicorn
|
||||
except ModuleNotFoundError:
|
||||
print("Brak zależności. Uruchom:")
|
||||
print(" python dev.py --install")
|
||||
print("albo:")
|
||||
print(" python -m pip install -r requirements.txt")
|
||||
raise SystemExit(1)
|
||||
|
||||
print(f"Start: http://{args.host}:{args.port}")
|
||||
uvicorn.run(
|
||||
"app.main:app",
|
||||
host=args.host,
|
||||
port=args.port,
|
||||
reload=not args.no_reload,
|
||||
app_dir=str(ROOT_DIR),
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user