|
132 | 132 | """ |
133 | 133 |
|
134 | 134 | DEFAULT_ERROR_CONTENT_TYPE = "text/html;charset=utf-8" |
135 | | -RANGE_REGEX_PATTERN = re.compile(r'bytes=(\d*)-(\d*)$', re.IGNORECASE | re.ASCII) |
| 135 | +RANGE_REGEX_PATTERN = re.compile(r'bytes=(\d*)-(\d*)$', re.ASCII | re.IGNORECASE) |
136 | 136 |
|
137 | 137 | class HTTPServer(socketserver.TCPServer): |
138 | 138 |
|
@@ -495,8 +495,8 @@ def send_error(self, code, message=None, explain=None, extra_headers=None): |
495 | 495 | self.send_header("Content-Type", self.error_content_type) |
496 | 496 | self.send_header('Content-Length', str(len(body))) |
497 | 497 | if extra_headers is not None: |
498 | | - for (keyword, value) in extra_headers: |
499 | | - self.send_header(keyword, value) |
| 498 | + for name, value in extra_headers: |
| 499 | + self.send_header(name, value) |
500 | 500 | self.end_headers() |
501 | 501 |
|
502 | 502 | if self.command != 'HEAD' and body: |
@@ -779,9 +779,9 @@ def send_head(self): |
779 | 779 | if self._range: |
780 | 780 | start, end = self._range |
781 | 781 | if start is None: |
782 | | - # `end` here means suffix length |
783 | 782 | # parse_range() collapses (None, None) to None |
784 | | - # and thus `end` can not be None here |
| 783 | + assert end is not None |
| 784 | + # `end` here means suffix length |
785 | 785 | start = max(0, fs.st_size - end) |
786 | 786 | end = fs.st_size - 1 |
787 | 787 | if start >= fs.st_size: |
@@ -958,8 +958,10 @@ def guess_type(self, path): |
958 | 958 |
|
959 | 959 | def parse_range(self): |
960 | 960 | """Return a tuple of (start, end) representing the range header in |
961 | | - the HTTP request. If the range header is missing or not resolvable, |
962 | | - None is returned. This only supports single part ranges. |
| 961 | + the HTTP request. If the range header is missing, not resolvable, |
| 962 | + or trivial (namely "byte=-"), this returns None. |
| 963 | +
|
| 964 | + This currently only supports single part ranges. |
963 | 965 |
|
964 | 966 | """ |
965 | 967 | range_header = self.headers.get('range') |
|
0 commit comments