Files
Saurav Panda e6b92bec56 test(filesystem): make PDF assertions wrap-proof and cover the append path
Whole-line matching broke on any content long enough to wrap, so compare
against a whitespace-collapsed blob instead and check leftover header
markers separately against the rendered lines. Verified against headers
and body lines that wrap over 2-3 lines.

Add an append regression: append_file re-renders the whole document, so
put the markup that trips ReportLab in the appended half to exercise
that path on its own. Both PDF tests fail without the escape fix.

Also condense the stale three-line comment above the render loop.
2026-08-24 12:38:16 -07:00
..

Codebase Structure

The code structure inspired by https://github.com/Netflix/dispatch.

Very good structure on how to make a scalable codebase is also in this repo.

Just a brief document about how we should structure our backend codebase.

Code Structure

src/
/<service name>/
models.py
services.py
prompts.py
views.py
utils.py
routers.py

    	/_<subservice name>/

Service.py

Always a single file, except if it becomes too long - more than ~500 lines, split it into _subservices

Views.py

Always split the views into two parts

# All
...

# Requests
...

# Responses
...

If too long → split into multiple files

Prompts.py

Single file; if too long → split into multiple files (one prompt per file or so)

Routers.py

Never split into more than one file