Skip to content

Migrated pydantic to V3 #10

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 19 additions & 7 deletions whisper_cpp_python/server/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,28 +17,40 @@

"""
import os
import uvicorn
import uvicorn
import argparse
from typing import get_type_hints

from whisper_cpp_python.server.app import create_app, Settings

if __name__ == "__main__":

parser = argparse.ArgumentParser()
for name, field in Settings.__fields__.items():
description = field.field_info.description

for name, field in Settings.model_fields.items():

# Get field type
field_type = get_type_hints(Settings)[name]

description = field.description
if field.default is not None and description is not None:
description += f" (default: {field.default})"

parser.add_argument(
f"--{name}",
dest=name,
type=field.type_,
help=description,
type=field_type, # Use field type here
help=description
)

args = parser.parse_args()

settings = Settings(**{k: v for k, v in vars(args).items() if v is not None})

app = create_app(settings=settings)

uvicorn.run(
app, host=os.getenv("HOST", "localhost"), port=int(os.getenv("PORT", 8001))
)
app,
host=os.getenv("HOST", "localhost"),
port=int(os.getenv("PORT", 8001))
)
4 changes: 3 additions & 1 deletion whisper_cpp_python/server/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@

from fastapi import Depends, FastAPI, APIRouter, File, Body
from fastapi.middleware.cors import CORSMiddleware
from pydantic import BaseModel, BaseSettings, Field

from pydantic import BaseModel, Field
from pydantic_settings import BaseSettings
from sse_starlette.sse import EventSourceResponse


Expand Down