setuptools.setup(
name='fwx',
- version='0.0.9',
+ version='0.0.10',
author='David Kerkeslager',
author_email='kerkeslager+pypi@gmail.com',
description="fwx isn't a framework, it's a library.",
content_type = kwargs.pop('content_type')
assert isinstance(content_type, str)
- extra_headers = kwargs.pop('extra_headers', ())
- assert isinstance(extra_headers, tuple)
+ extra_headers = kwargs.pop('extra_headers', {})
+ assert isinstance(extra_headers, dict)
assert len(kwargs) == 0
@property
def headers(self):
- return (
- ('Content-Type', self.content_type),
- )
+ # Start with the defaults
+ result = {
+ 'X-Content-Type-Options': 'nosniff',
+ }
+
+ result = {**result, **(self.extra_headers)}
+
+ builtin_headers = {
+ 'Content-Type': self.content_type,
+ }
+
+ for key, value in builtin_headers:
+ if key in result:
+ raise Exception('Header "{}" defined twice'.format(key))
+ else:
+ result[key] = value
+
+ return tuple(sorted(result.items()))
+
class HTMLResponse(Response):
def __new__(cls, content, **kwargs):