# Copyright (c) Jupyter Development Team. | |
# Distributed under the terms of the Modified BSD License. | |
"""OpenAPI spec utils.""" | |
from __future__ import annotations | |
import os | |
import typing | |
from pathlib import Path | |
if typing.TYPE_CHECKING: | |
from openapi_core.spec.paths import Spec | |
HERE = Path(os.path.dirname(__file__)).resolve() | |
def get_openapi_spec() -> Spec: | |
"""Get the OpenAPI spec object.""" | |
from openapi_core.spec.paths import Spec | |
openapi_spec_dict = get_openapi_spec_dict() | |
return Spec.from_dict(openapi_spec_dict) # type:ignore[arg-type] | |
def get_openapi_spec_dict() -> dict[str, typing.Any]: | |
"""Get the OpenAPI spec as a dictionary.""" | |
from ruamel.yaml import YAML | |
path = HERE / "rest-api.yml" | |
yaml = YAML(typ="safe") | |
return yaml.load(path.read_text(encoding="utf-8")) | |