Skip to content

Commit 2281ad8

Browse files
committed
DEV: Add reload option
1 parent 86e55df commit 2281ad8

File tree

2 files changed

+20
-8
lines changed

2 files changed

+20
-8
lines changed

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ dev = [
4444
"pytest-mock",
4545
"pytest-xdist",
4646
"ruff",
47+
"watchfiles",
4748
]
4849

4950
[project.urls]

src/fmu_settings_api/__main__.py

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,14 @@ async def health_check() -> Ok:
4343
return Ok()
4444

4545

46-
def run_server(
46+
def run_server( # noqa PLR0913
4747
*,
4848
host: str = "127.0.0.1",
4949
port: int = 8001,
5050
frontend_host: str | None = None,
5151
frontend_port: int | None = None,
5252
token: str | None = None,
53+
reload: bool = False,
5354
) -> None:
5455
"""Starts the API server."""
5556
if token:
@@ -73,13 +74,23 @@ def signal_handler(signum: int, frame: FrameType | None) -> None:
7374
signal.signal(signal.SIGINT, signal_handler)
7475
signal.signal(signal.SIGTERM, signal_handler)
7576

76-
server_config = uvicorn.Config(app=app, host=host, port=port)
77-
server = uvicorn.Server(server_config)
78-
79-
try:
80-
asyncio.run(server.serve())
81-
except KeyboardInterrupt:
82-
sys.exit(0)
77+
if reload:
78+
uvicorn.run(
79+
app="fmu_settings_api.__main__:app",
80+
host=host,
81+
port=port,
82+
reload=True,
83+
reload_dirs=["src"],
84+
reload_includes=[".env"],
85+
)
86+
else:
87+
server_config = uvicorn.Config(app=app, host=host, port=port)
88+
server = uvicorn.Server(server_config)
89+
90+
try:
91+
asyncio.run(server.serve())
92+
except KeyboardInterrupt:
93+
sys.exit(0)
8394

8495

8596
if __name__ == "__main__":

0 commit comments

Comments
 (0)