Skip to content

Commit b01c506

Browse files
committed
[SAM-260011]: feat: refactor imports and enhance configuration management
1 parent db5ef31 commit b01c506

12 files changed

Lines changed: 62 additions & 31 deletions

File tree

.vscode/settings.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,9 @@
1-
{}
1+
{
2+
"python-envs.pythonProjects": [
3+
{
4+
"path": "",
5+
"envManager": "ms-python.python:poetry",
6+
"packageManager": "ms-python.python:poetry"
7+
}
8+
]
9+
}

pyproject.toml

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,19 +28,14 @@ mongo = ["pymongo"]
2828
[tool.poetry]
2929
packages = [
3030
{ include = "sample", from = "src" },
31-
{ include = "features", from = "src" },
32-
{ include = "utils", from = "src" },
33-
{ include = "api", from = "src" },
34-
{ include = "db", from = "src" },
35-
{ include = "templates", from = "." },
3631
{ include = "assets", from = "." },
3732
]
38-
33+
include = [{ path = "templates/**/*", format = ["sdist", "wheel"] }]
3934
exclude = ["src/**/__pycache__", "tests", "docs", "*.log"]
4035

4136
[project.scripts]
4237
sample = "sample.cli:cli"
43-
lint = "utils.lint:main"
38+
lint = "sample.utils.lint:main"
4439

4540

4641
[tool.poetry.group.dev.dependencies]

src/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
from utils._version import get_version
1+
from sample.utils._version import get_version
22

33
__version__ = get_version()

src/sample/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
from utils._version import get_version
1+
from sample.utils._version import get_version
22

33
__version__ = get_version()

src/sample/__main__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
from contextlib import asynccontextmanager
33
from pathlib import Path
44

5-
from db.connection import connect_db
65
from fastapi import FastAPI, Request
76
from fastapi.responses import HTMLResponse
87
from fastapi.staticfiles import StaticFiles
98
from fastapi.templating import Jinja2Templates
10-
from utils.constants import PORT
9+
from sample.db.connection import connect_db
10+
from sample.utils.constants import PORT
1111

1212
from . import __version__
1313

src/sample/api/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
from utils._version import get_version
1+
from sample.utils._version import get_version
22

33
__version__ = get_version()

src/sample/api/fast_api.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1+
import logging
2+
13
from fastapi import APIRouter, FastAPI, HTTPException, Request
24
from fastapi.responses import HTMLResponse, JSONResponse
35
from pydantic import BaseModel
6+
from sample.db.connection import connect_db
7+
from sample.utils.constants import API_PREFIX, GREETING
8+
from sample.utils.helper import normalize_name
49
from starlette.exceptions import HTTPException as StarletteHTTPException
5-
from utils.constants import API_PREFIX, GREETING
6-
from utils.helper import normalize_name
710

811
from . import __version__
912

@@ -139,8 +142,15 @@ async def chrome_devtools_probe():
139142
def start():
140143
import uvicorn
141144

145+
try:
146+
_ = connect_db()
147+
except Exception:
148+
logging.warning(
149+
"⚠️ Could not connect to the database. Please check database configuration."
150+
)
151+
142152
print(f"🧵 {__version__}\n")
143-
uvicorn.run("api.fast_api:app", host="127.0.0.1", port=5000, reload=True)
153+
uvicorn.run("sample.api.fast_api:app", host="127.0.0.1", port=5000, reload=True)
144154

145155

146156
if __name__ == "__main__":

src/sample/cli.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,6 @@ def dev():
2424
@cli.command()
2525
def api():
2626
"""Run the Sample FastAPI backend."""
27-
from api.fast_api import start
27+
from sample.api.fast_api import start
2828

2929
start()

src/sample/db/connection.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import io
22
from datetime import datetime
33

4-
from utils.constants import MONGO_CONFIG
4+
from sample.utils.constants import MONGO_CONFIG
55

66
_mongo_client = None
77
_db = None
@@ -28,7 +28,6 @@ def connect_db():
2828
try:
2929
uri = MONGO_CONFIG["MONGODB_URI"]
3030
name = MONGO_CONFIG["DATABASE_NAME"]
31-
print("Mongo URI =", repr(uri))
3231

3332
_mongo_client = MongoClient(uri, serverSelectionTimeoutMS=3000)
3433
# Force an actual connection attempt

src/sample/utils/config.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import os
2+
3+
from dotenv import load_dotenv
4+
5+
6+
def load_env():
7+
env = os.getenv("ENV", "development")
8+
9+
file_map = {
10+
"production": ".env.production",
11+
"development": ".env.development",
12+
}
13+
14+
load_dotenv(file_map.get(env, ".env.development"), override=True)
15+
return env

0 commit comments

Comments
 (0)