MCPcopy
hub / github.com/encode/starlette / __init__

Method __init__

starlette/responses.py:299–328  ·  view source on GitHub ↗
(
        self,
        path: str | os.PathLike[str],
        status_code: int = 200,
        headers: Mapping[str, str] | None = None,
        media_type: str | None = None,
        background: BackgroundTask | None = None,
        filename: str | None = None,
        stat_result: os.stat_result | None = None,
        content_disposition_type: str = "attachment",
    )

Source from the content-addressed store, hash-verified

297 chunk_size = 64 * 1024
298
299 def __init__(
300 self,
301 path: str | os.PathLike[str],
302 status_code: int = 200,
303 headers: Mapping[str, str] | None = None,
304 media_type: str | None = None,
305 background: BackgroundTask | None = None,
306 filename: str | None = None,
307 stat_result: os.stat_result | None = None,
308 content_disposition_type: str = "attachment",
309 ) -> None:
310 self.path = path
311 self.status_code = status_code
312 self.filename = filename
313 if media_type is None:
314 media_type = guess_type(filename or path)[0] or "application/octet-stream"
315 self.media_type = media_type
316 self.background = background
317 self.init_headers(headers)
318 self.headers.setdefault("accept-ranges", "bytes")
319 if self.filename is not None:
320 content_disposition_filename = quote(self.filename)
321 if content_disposition_filename != self.filename:
322 content_disposition = f"{content_disposition_type}; filename*=utf-8''{content_disposition_filename}"
323 else:
324 content_disposition = f'{content_disposition_type}; filename="{self.filename}"'
325 self.headers.setdefault("content-disposition", content_disposition)
326 self.stat_result = stat_result
327 if stat_result is not None:
328 self.set_stat_headers(stat_result)
329
330 def set_stat_headers(self, stat_result: os.stat_result) -> None:
331 content_length = str(stat_result.st_size)

Callers

nothing calls this directly

Calls 3

set_stat_headersMethod · 0.95
init_headersMethod · 0.80
setdefaultMethod · 0.45

Tested by

no test coverage detected