11import hashlib
22from dataclasses import asdict
3- from typing import Any , Dict , List , Mapping
3+ from typing import Any , Dict , List , Mapping , Optional
44
55import jsonschema
66from fastapi import APIRouter , Depends , HTTPException
3232
3333
3434def safe_build_source (
35- manifest_dict : Mapping [str , Any ], config_dict : Mapping [str , Any ]
35+ manifest_dict : Mapping [str , Any ],
36+ config_dict : Mapping [str , Any ],
37+ page_limit : Optional [int ] = None ,
38+ slice_limit : Optional [int ] = None ,
3639) -> ManifestDeclarativeSource :
3740 """Wrapper around build_source that converts ValidationError to HTTPException."""
3841 try :
39- return build_source (manifest_dict , config_dict )
42+ return build_source (manifest_dict , config_dict , page_limit , slice_limit )
4043 except jsonschema .exceptions .ValidationError as e :
4144 raise HTTPException (status_code = 400 , detail = f"Invalid manifest: { e .message } " )
4245
@@ -55,7 +58,9 @@ def test_read(request: StreamTestReadRequest) -> StreamRead:
5558 """
5659 config_dict = request .config .model_dump ()
5760
58- source = safe_build_source (request .manifest .model_dump (), config_dict )
61+ source = safe_build_source (
62+ request .manifest .model_dump (), config_dict , request .page_limit , request .slice_limit
63+ )
5964 catalog = build_catalog (request .stream_name )
6065 state = [AirbyteStateMessageSerializer .load (state ) for state in request .state ]
6166
0 commit comments