jameszokah commited on
Commit
857bebe
·
1 Parent(s): fe51676

Update Dockerfile and application imports: modify PYTHONPATH in Dockerfile and run script to include additional app directory, enhance model imports in audiobook_routes.py and migrations/env.py, and add missing imports in main.py.

Browse files
Dockerfile CHANGED
@@ -6,7 +6,7 @@ ENV PYTHONUNBUFFERED=1 \
6
  PYTHONDONTWRITEBYTECODE=1 \
7
  PIP_NO_CACHE_DIR=1 \
8
  PIP_DISABLE_PIP_VERSION_CHECK=1 \
9
- PYTHONPATH=/app
10
 
11
  # Create and set working directory
12
  WORKDIR /app
 
6
  PYTHONDONTWRITEBYTECODE=1 \
7
  PIP_NO_CACHE_DIR=1 \
8
  PIP_DISABLE_PIP_VERSION_CHECK=1 \
9
+ PYTHONPATH=/app:/app/app
10
 
11
  # Create and set working directory
12
  WORKDIR /app
app/api/audiobook_routes.py CHANGED
@@ -3,13 +3,15 @@ Audiobook creation routes for the CSM-1B TTS API.
3
  """
4
  import os
5
  import uuid
 
 
6
  import logging
7
  from datetime import datetime
8
  from typing import Optional, List
9
  from fastapi import APIRouter, Request, HTTPException, BackgroundTasks, UploadFile, File, Form, Depends
10
  from fastapi.responses import FileResponse, JSONResponse
11
  from sqlalchemy.orm import Session
12
- from app.models.database import Audiobook, AudiobookStatus, AudiobookChunk
13
  from app.services.storage import storage
14
  from app.db import get_db
15
  import torchaudio
 
3
  """
4
  import os
5
  import uuid
6
+ import json
7
+ import shutil
8
  import logging
9
  from datetime import datetime
10
  from typing import Optional, List
11
  from fastapi import APIRouter, Request, HTTPException, BackgroundTasks, UploadFile, File, Form, Depends
12
  from fastapi.responses import FileResponse, JSONResponse
13
  from sqlalchemy.orm import Session
14
+ from app.app.models.database import Audiobook, AudiobookStatus, AudiobookChunk, TextChunk
15
  from app.services.storage import storage
16
  from app.db import get_db
17
  import torchaudio
app/main.py CHANGED
@@ -18,6 +18,7 @@ from fastapi.middleware.cors import CORSMiddleware
18
  from fastapi.responses import RedirectResponse, FileResponse
19
  from fastapi.staticfiles import StaticFiles
20
  from app.api.routes import router as api_router
 
21
 
22
  # Setup logging
23
  os.makedirs("logs", exist_ok=True)
 
18
  from fastapi.responses import RedirectResponse, FileResponse
19
  from fastapi.staticfiles import StaticFiles
20
  from app.api.routes import router as api_router
21
+ from app.app.models.database import Base, get_db
22
 
23
  # Setup logging
24
  os.makedirs("logs", exist_ok=True)
migrations/env.py CHANGED
@@ -14,16 +14,12 @@ if app_dir not in sys.path:
14
 
15
  # Import your models here
16
  try:
17
- from app.models import Base, Audiobook, TextChunk, AudiobookStatus
18
  except ImportError as e:
19
- # Try alternate import path
20
- try:
21
- from app.app.models import Base, Audiobook, TextChunk, AudiobookStatus
22
- except ImportError as e2:
23
- raise Exception(
24
- f"Failed to import models. PYTHONPATH: {os.environ.get('PYTHONPATH')}, "
25
- f"sys.path: {sys.path}, Error: {str(e)}, Secondary error: {str(e2)}"
26
- )
27
 
28
  # this is the Alembic Config object
29
  config = context.config
 
14
 
15
  # Import your models here
16
  try:
17
+ from app.app.models.database import Base, Audiobook, TextChunk, AudiobookStatus
18
  except ImportError as e:
19
+ raise Exception(
20
+ f"Failed to import models. PYTHONPATH: {os.environ.get('PYTHONPATH')}, "
21
+ f"sys.path: {sys.path}, Error: {str(e)}"
22
+ )
 
 
 
 
23
 
24
  # this is the Alembic Config object
25
  config = context.config
scripts/run.sh CHANGED
@@ -8,8 +8,8 @@ export WORKERS=${WORKERS:-1}
8
  export LOG_LEVEL=${LOG_LEVEL:-"info"}
9
  export DATABASE_URL=${DATABASE_URL:-"sqlite:///app/storage/audiobooks.db"}
10
 
11
- # Set Python path to include the app directory
12
- export PYTHONPATH="/app:${PYTHONPATH:-}"
13
 
14
  # Create storage directories if they don't exist
15
  mkdir -p /app/storage/audio
@@ -50,7 +50,7 @@ fi
50
 
51
  # Run database migrations
52
  echo "Running database migrations..."
53
- PYTHONPATH="/app:${PYTHONPATH:-}" alembic upgrade head || {
54
  echo "Warning: Database migration failed. This might be expected for first run."
55
  echo "Continuing with application startup..."
56
  }
 
8
  export LOG_LEVEL=${LOG_LEVEL:-"info"}
9
  export DATABASE_URL=${DATABASE_URL:-"sqlite:///app/storage/audiobooks.db"}
10
 
11
+ # Set Python path to include both app directories
12
+ export PYTHONPATH="/app:/app/app:${PYTHONPATH:-}"
13
 
14
  # Create storage directories if they don't exist
15
  mkdir -p /app/storage/audio
 
50
 
51
  # Run database migrations
52
  echo "Running database migrations..."
53
+ PYTHONPATH="/app:/app/app:${PYTHONPATH:-}" alembic upgrade head || {
54
  echo "Warning: Database migration failed. This might be expected for first run."
55
  echo "Continuing with application startup..."
56
  }