(self, content, context, request, response, **kwargs)
| 839 | return self.interface(**parameters) |
| 840 | |
| 841 | def render_content(self, content, context, request, response, **kwargs): |
| 842 | if hasattr(content, "interface") and ( |
| 843 | content.interface is True or hasattr(content.interface, "http") |
| 844 | ): |
| 845 | if content.interface is True: |
| 846 | content(request, response, api_version=None, **kwargs) |
| 847 | else: |
| 848 | content.interface.http(request, response, api_version=None, **kwargs) |
| 849 | return |
| 850 | |
| 851 | content = self.transform_data(content, request, response, context) |
| 852 | content = self.outputs( |
| 853 | content, **self._arguments(self._params_for_outputs, request, response) |
| 854 | ) |
| 855 | if hasattr(content, "read"): |
| 856 | size = None |
| 857 | if hasattr(content, "name") and os.path.isfile(content.name): |
| 858 | size = os.path.getsize(content.name) |
| 859 | if request.range and size: |
| 860 | start, end = request.range |
| 861 | if end < 0: |
| 862 | end = size + end |
| 863 | end = min(end, size) |
| 864 | length = end - start + 1 |
| 865 | content.seek(start) |
| 866 | response.data = content.read(length) |
| 867 | response.status = falcon.HTTP_206 |
| 868 | response.content_range = (start, end, size) |
| 869 | content.close() |
| 870 | else: |
| 871 | if size: |
| 872 | response.set_stream(content, size) |
| 873 | else: |
| 874 | response.stream = content # pragma: no cover |
| 875 | else: |
| 876 | response.data = content |
| 877 | |
| 878 | def __call__(self, request, response, api_version=None, **kwargs): |
| 879 | context = self.api.context_factory( |
no test coverage detected