fix: default to None for optional pydantic fields (#45)

closes #44

Co-authored-by: msramalho <19508417+msramalho@users.noreply.github.com>
This commit is contained in:
Felix Spöttel
2023-08-05 16:54:51 +02:00
committed by GitHub
parent f25dbae580
commit f0d687f40b
6 changed files with 18 additions and 8 deletions

4
.gitignore vendored
View File

@@ -169,3 +169,7 @@ whisperbox-transcribe.sqlite*
# ruff
.ruff_cache
# other private files
/data
.env.prod

View File

@@ -18,8 +18,8 @@ test:
pytest
run:
docker compose -f docker-compose.base.yml -f docker-compose.prod.yml build -d
docker compose -f docker-compose.base.yml -f docker-compose.prod.yml up --remove-orphans
docker compose -f docker-compose.base.yml -f docker-compose.prod.yml build
docker compose -f docker-compose.base.yml -f docker-compose.prod.yml up -d --remove-orphans
stop:
docker compose -f docker-compose.base.yml -f docker-compose.prod.yml down

View File

@@ -41,10 +41,11 @@ class JobConfig(BaseModel):
"""(JSON) Configuration for a job."""
language: str | None = Field(
default=None,
description=(
"Spoken language in the media file. "
"While optional, this can improve output."
)
),
)
@@ -52,11 +53,13 @@ class JobMeta(BaseModel):
"""(JSON) Metadata relating to a job's execution."""
error: str | None = Field(
description="Will contain a descriptive error message if processing failed."
default=None,
description="Will contain a descriptive error message if processing failed.",
)
task_id: uuid.UUID | None = Field(
description="Internal celery id of this job submission."
default=None,
description="Internal celery id of this job submission.",
)

View File

@@ -47,7 +47,8 @@ def mock_job(db_session):
job = models.Job(
url="https://example.com",
type=models.JobType.transcript,
status=models.JobStatus.create,
status=models.JobStatus.processing,
meta={"task_id": "5c790c76-2cc1-4e91-a305-443df55a4a4c"},
)
db_session.add(job)
db_session.flush()

View File

@@ -33,6 +33,8 @@ class Job(WithDbFields):
class Artifact(WithDbFields):
"""A transcription artifact."""
job_id: UUID
data: ArtifactData
type: ArtifactType

View File

@@ -47,7 +47,7 @@ def app_factory(
response_model=list[dtos.Job],
summary="Get metadata for all jobs",
)
def get_transcripts(
def get_jobs(
session: DatabaseSession,
type: dtos.JobType | None = None,
) -> list[models.Job]:
@@ -65,7 +65,7 @@ def app_factory(
response_model=dtos.Job,
summary="Get metadata for one job",
)
def get_transcript(
def get_job(
session: DatabaseSession,
id: UUID = Path(),
) -> models.Job | None: