Skip to content

Commit f0d943f

Browse files
models/public: Remove default None for name and size fields
- Changed `name` and `size` in the font style model from `Optional` to required fields. - Simplified downstream usage by ensuring these fields are always defined. examples/extract_text: Simplify font formatting logic - Updated `_format_font` to remove conditional checks for `None` values, as `name` and `size` are now guaranteed to be present in the font style model. Assisted-by: Codex
1 parent 4aec962 commit f0d943f

2 files changed

Lines changed: 8 additions & 16 deletions

File tree

examples/extract_text/extract_pdf_text_example.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,10 @@ def _format_color(word: ExtractedTextWord) -> str:
5151

5252
def _format_font(word: ExtractedTextWord) -> str:
5353
style = word.style
54-
if style is None or style.font is None:
54+
if style is None:
5555
return "—"
5656
font = style.font
57-
name = font.name or "Unknown"
58-
size = f"{font.size:.1f} pt" if font.size is not None else "Unknown size"
59-
return f"{name} ({size})"
57+
return f"{font.name} ({font.size:.1f} pt)"
6058

6159

6260
def _build_word_table(document: ExtractedTextDocument) -> Table:

src/pdfrest/models/public.py

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -519,19 +519,13 @@ class ExtractedTextWordFont(BaseModel):
519519
model_config = ConfigDict(extra="allow")
520520

521521
name: Annotated[
522-
str | None,
523-
Field(
524-
description="Reported font face name.",
525-
default=None,
526-
),
527-
] = None
522+
str,
523+
Field(description="Reported font face name."),
524+
]
528525
size: Annotated[
529-
float | None,
530-
Field(
531-
description="Font size in points.",
532-
default=None,
533-
),
534-
] = None
526+
float,
527+
Field(description="Font size in points."),
528+
]
535529

536530

537531
class ExtractedTextWordStyle(BaseModel):

0 commit comments

Comments
 (0)