| 1268 | |
| 1269 | @dataclass |
| 1270 | class _RouterIncludeContext: |
| 1271 | included_router: "APIRouter" |
| 1272 | prefix: str = "" |
| 1273 | tags: list[str | Enum] = field(default_factory=list) |
| 1274 | dependencies: list[params.Depends] = field(default_factory=list) |
| 1275 | default_response_class: type[Response] | DefaultPlaceholder = field( |
| 1276 | default_factory=lambda: Default(JSONResponse) |
| 1277 | ) |
| 1278 | responses: dict[int | str, dict[str, Any]] = field(default_factory=dict) |
| 1279 | callbacks: list[BaseRoute] = field(default_factory=list) |
| 1280 | deprecated: bool | None = None |
| 1281 | include_in_schema: bool = True |
| 1282 | generate_unique_id_function: Callable[[APIRoute], str] | DefaultPlaceholder = field( |
| 1283 | default_factory=lambda: Default(generate_unique_id) |
| 1284 | ) |
| 1285 | strict_content_type: bool | DefaultPlaceholder = field( |
| 1286 | default_factory=lambda: Default(True) |
| 1287 | ) |
| 1288 | dependency_overrides_provider: Any | None = None |
| 1289 | |
| 1290 | @classmethod |
| 1291 | def for_include( |
| 1292 | cls, |
| 1293 | *, |
| 1294 | parent_router: "APIRouter", |
| 1295 | included_router: "APIRouter", |
| 1296 | prefix: str = "", |
| 1297 | tags: list[str | Enum] | None = None, |
| 1298 | dependencies: Sequence[params.Depends] | None = None, |
| 1299 | default_response_class: type[Response] | DefaultPlaceholder = Default( |
| 1300 | JSONResponse |
| 1301 | ), |
| 1302 | responses: dict[int | str, dict[str, Any]] | None = None, |
| 1303 | callbacks: list[BaseRoute] | None = None, |
| 1304 | deprecated: bool | None = None, |
| 1305 | include_in_schema: bool = True, |
| 1306 | generate_unique_id_function: Callable[[APIRoute], str] |
| 1307 | | DefaultPlaceholder = Default(generate_unique_id), |
| 1308 | ) -> "_RouterIncludeContext": |
| 1309 | return cls( |
| 1310 | included_router=included_router, |
| 1311 | prefix=parent_router.prefix + prefix, |
| 1312 | tags=[*parent_router.tags, *(tags or [])], |
| 1313 | dependencies=[*parent_router.dependencies, *(dependencies or [])], |
| 1314 | default_response_class=get_value_or_default( |
| 1315 | default_response_class, parent_router.default_response_class |
| 1316 | ), |
| 1317 | responses={**parent_router.responses, **(responses or {})}, |
| 1318 | callbacks=[*parent_router.callbacks, *(callbacks or [])], |
| 1319 | deprecated=deprecated or parent_router.deprecated, |
| 1320 | include_in_schema=parent_router.include_in_schema and include_in_schema, |
| 1321 | generate_unique_id_function=get_value_or_default( |
| 1322 | generate_unique_id_function, parent_router.generate_unique_id_function |
| 1323 | ), |
| 1324 | strict_content_type=parent_router.strict_content_type, |
| 1325 | dependency_overrides_provider=parent_router.dependency_overrides_provider, |
| 1326 | ) |
| 1327 | |