Source code for flask_swag.extractor.mark
"""
extractor.mark
==============
Extractor that extracts swagger spec from *marked* view.
"""
from .base import Extractor
[docs]class MarkExtractor(Extractor):
[docs] def get_mark(self, view):
"""Get mark object from view function."""
return getattr(view, '_swag', {}).copy()
[docs] def extract_others(self, view, ctx: dict):
mark = self.get_mark(view)
mark.pop('parameters', None)
mark.pop('responses', None)
return mark
[docs] def build_parameters(self, view, param_info, ctx: dict) -> list:
mark = self.get_mark(view)
parameters = super().build_parameters(view, param_info, ctx)
parameters.extend(mark.get('parameters', []))
return parameters
[docs] def extract_responses(self, view, ctx: dict):
mark = self.get_mark(view)
if 'responses' not in mark:
return super().extract_responses(view, ctx)
return mark['responses']