bartender.web.unroll#

Methods to rewrite the OpenAPI schema generated by FastAPI.

Functions#

unroll_openapi(→ None)

Convert dynamic application routes to static routes.

unroll_application_routes(→ None)

Unroll application routes.

unroll_application_route(→ dict[str, Any])

Unroll an application route.

unroll_application_request_schema(→ dict[str, Any])

Generate the request schema for unrolling an application.

unroll_interactive_app_routes(→ None)

Unroll interactive app routes.

Module Contents#

bartender.web.unroll.unroll_openapi(app: fastapi.FastAPI) None#

Convert dynamic application routes to static routes.

Parameters:

app (fastapi.FastAPI) – FastAPI app

Raises:

RuntimeError – If OpenAPI schema is not generated.

Return type:

None

bartender.web.unroll.unroll_application_routes(openapi_schema: dict[str, Any], applications: bartender.config.ApplicatonConfigurations) None#

Unroll application routes.

In openapi spec replaces /api/application/{application} with paths without {application}. Loops over config.applications and adds a put route for each.

Parameters:
  • openapi_schema (dict[str, Any]) – OpenAPI schema

  • applications (bartender.config.ApplicatonConfigurations) – Application configurations

Return type:

None

bartender.web.unroll.unroll_application_route(aname: str, config: bartender.config.ApplicatonConfiguration, existing_put_path: Any) dict[str, Any]#

Unroll an application route.

Parameters:
Returns:

Unrolled PUT path

Return type:

dict[str, Any]

bartender.web.unroll.unroll_application_request_schema(aname: str, config: bartender.config.ApplicatonConfiguration) dict[str, Any]#

Generate the request schema for unrolling an application.

Parameters:
Returns:

The generated request schema.

Return type:

dict[str, Any]

bartender.web.unroll.unroll_interactive_app_routes(openapi_schema: dict[str, Any], interactive_applications: bartender.config.InteractiveApplicationConfigurations) None#

Unroll interactive app routes.

Replaces /api/job/{jobid}/interactive/{application} with paths without {application}. Loops over config.interactive_applications and adds a post route for each.

Parameters:
  • openapi_schema (dict[str, Any]) – OpenAPI schema

  • interactive_applications (bartender.config.InteractiveApplicationConfigurations) – Interactive application configurations

Return type:

None