middha commited on
Commit
b4c63a9
Β·
verified Β·
1 Parent(s): c82fd8d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -30
app.py CHANGED
@@ -1,56 +1,53 @@
1
- import logging
2
  import os
3
  import shutil
4
- from datetime import datetime, timedelta
5
-
6
- from flask import (
7
- Flask, render_template, request, redirect,
8
- url_for, flash, jsonify, Response
9
- )
10
  from flask_sqlalchemy import SQLAlchemy
11
  from flask_migrate import Migrate
12
- from sqlalchemy.exc import SQLAlchemyError
13
- from sqlalchemy import or_
14
- import pandas as pd
15
  from dotenv import load_dotenv
16
- from openai import OpenAI
17
 
18
- # ─── 1) Load environment variables ────────────────────────────────────────────
19
  load_dotenv()
20
 
21
- # ─── 2) Configure logging to stdout ──────────────────────────────────────────
22
  logging.basicConfig(
23
  level=logging.INFO,
24
  format="[%(asctime)s] %(levelname)s in %(module)s: %(message)s"
25
  )
26
  logger = logging.getLogger()
27
 
28
- # ─── 3) Flask application setup ──────────────────────────────────────────────
29
- app = Flask(__name__)
 
 
 
 
 
 
 
 
30
  app.logger.handlers = logger.handlers
31
  app.logger.setLevel(logger.level)
32
 
33
- # ─── 4) OpenAI client setup ──────────────────────────────────────────────────
34
- OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
35
- if not OPENAI_API_KEY:
36
- app.logger.warning("OPENAI_API_KEY is not set in the environment")
37
-
38
- # ─── 5) Copy bundled DB into writable volume on first run ────────────────────
39
- #SRC = os.path.join(os.getcwd(), "instance", "jobs.db") # your committed copy
40
- #DST = "/mnt/data/jobs.db" # writable on HF Spaces
41
- #if os.path.exists(SRC) and not os.path.exists(DST):
42
- # shutil.copy(SRC, DST)
43
 
44
- # ─── 6) Database configuration ───────────────────────────────────────────────
45
- # Four slashes β†’ absolute path
46
- app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///jobs.db"
47
- app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
48
- app.secret_key = os.getenv("SECRET_KEY", "your_secret_key_here")
 
49
 
 
50
  db = SQLAlchemy(app)
51
  migrate = Migrate(app, db)
52
 
53
 
 
54
  # ─── 6) Models ────────────────────────────────────────────────────────────────
55
  class Job(db.Model):
56
  id = db.Column(db.Integer, primary_key=True)
 
 
1
  import os
2
  import shutil
3
+ import logging
4
+ from flask import Flask
 
 
 
 
5
  from flask_sqlalchemy import SQLAlchemy
6
  from flask_migrate import Migrate
 
 
 
7
  from dotenv import load_dotenv
 
8
 
9
+ # ─── 1) Load env vars ──────────────────────────────────────────────────────────
10
  load_dotenv()
11
 
12
+ # ─── 2) Logging to stdout ─────────────────────────────────────────────────────
13
  logging.basicConfig(
14
  level=logging.INFO,
15
  format="[%(asctime)s] %(levelname)s in %(module)s: %(message)s"
16
  )
17
  logger = logging.getLogger()
18
 
19
+ # ─── 3) Create a writable instance folder ────────────────────────────────────
20
+ INSTANCE_DIR = "/mnt/data/instance"
21
+ os.makedirs(INSTANCE_DIR, exist_ok=True)
22
+
23
+ # ─── 4) Flask setup with custom instance_path ────────────────────────────────
24
+ app = Flask(
25
+ __name__,
26
+ instance_path=INSTANCE_DIR,
27
+ instance_relative_config=True
28
+ )
29
  app.logger.handlers = logger.handlers
30
  app.logger.setLevel(logger.level)
31
 
32
+ # ─── 5) Copy your committed DB into that folder on first run ────────────────
33
+ SRC = os.path.join(os.getcwd(), "instance", "jobs.db")
34
+ DST = os.path.join(INSTANCE_DIR, "jobs.db")
35
+ if os.path.exists(SRC) and not os.path.exists(DST):
36
+ shutil.copy(SRC, DST)
 
 
 
 
 
37
 
38
+ # ─── 6) Database config ───────────────────────────────────────────────────────
39
+ app.config.update(
40
+ SQLALCHEMY_DATABASE_URI=f"sqlite:///{DST}",
41
+ SQLALCHEMY_TRACK_MODIFICATIONS=False,
42
+ SECRET_KEY=os.getenv("SECRET_KEY", "your_secret_key_here")
43
+ )
44
 
45
+ # ─── 7) Init extensions ──────────────────────────────────────────────────────
46
  db = SQLAlchemy(app)
47
  migrate = Migrate(app, db)
48
 
49
 
50
+
51
  # ─── 6) Models ────────────────────────────────────────────────────────────────
52
  class Job(db.Model):
53
  id = db.Column(db.Integer, primary_key=True)