summaryrefslogtreecommitdiff
path: root/src/paste/deploy/config.py
diff options
context:
space:
mode:
authorMichael Merickel <michael@merickel.org>2022-05-15 21:09:16 -0500
committerMichael Merickel <michael@merickel.org>2022-05-15 21:23:28 -0500
commit32fb766fa01d436b98e7687f717f6e71c58b9a83 (patch)
tree2fa125334fea9a1ebdbd5381f875368636462afc /src/paste/deploy/config.py
parentac91794dfb7617b473c9d06d04900debfcdf585e (diff)
downloadpastedeploy-git-32fb766fa01d436b98e7687f717f6e71c58b9a83.tar.gz
blackify/isort/flake8
Diffstat (limited to 'src/paste/deploy/config.py')
-rw-r--r--src/paste/deploy/config.py63
1 files changed, 45 insertions, 18 deletions
diff --git a/src/paste/deploy/config.py b/src/paste/deploy/config.py
index f448350..3c24151 100644
--- a/src/paste/deploy/config.py
+++ b/src/paste/deploy/config.py
@@ -1,8 +1,8 @@
# (c) 2005 Ian Bicking and contributors; written for Paste (http://pythonpaste.org)
# Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
"""Paste Configuration Middleware and Objects"""
-import threading
import re
+import threading
# Loaded lazily
wsgilib = None
@@ -47,7 +47,7 @@ class DispatchingConfig:
self.dispatching_id = 0
while 1:
self._local_key = 'paste.processconfig_%i' % self.dispatching_id
- if not self._local_key in local_dict():
+ if self._local_key not in local_dict():
break
self.dispatching_id += 1
finally:
@@ -84,8 +84,8 @@ class DispatchingConfig:
if conf is not None and popped is not conf:
raise AssertionError(
"The config popped (%s) is not the same as the config "
- "expected (%s)"
- % (popped, conf))
+ "expected (%s)" % (popped, conf)
+ )
def push_process_config(self, conf):
"""
@@ -101,8 +101,8 @@ class DispatchingConfig:
conf = self.current_conf()
if conf is None:
raise AttributeError(
- "No configuration has been registered for this process "
- "or thread")
+ "No configuration has been registered for this process " "or thread"
+ )
return getattr(conf, attr)
def current_conf(self):
@@ -119,8 +119,8 @@ class DispatchingConfig:
conf = self.current_conf()
if conf is None:
raise TypeError(
- "No configuration has been registered for this process "
- "or thread")
+ "No configuration has been registered for this process " "or thread"
+ )
return conf[key]
def __contains__(self, key):
@@ -132,6 +132,7 @@ class DispatchingConfig:
conf = self.current_conf()
conf[key] = value
+
CONFIG = DispatchingConfig()
@@ -155,6 +156,7 @@ class ConfigMiddleware:
global wsgilib
if wsgilib is None:
import pkg_resources
+
pkg_resources.require('Paste')
from paste import wsgilib
popped_config = None
@@ -180,8 +182,10 @@ class ConfigMiddleware:
environ['paste.config'] = popped_config
return app_iter
else:
+
def close_config():
CONFIG.pop_thread_config(conf)
+
new_app_iter = wsgilib.add_close(app_iter, close_config)
return new_app_iter
@@ -191,6 +195,7 @@ def make_config_filter(app, global_conf, **local_conf):
conf.update(local_conf)
return ConfigMiddleware(app, conf)
+
make_config_middleware = ConfigMiddleware.__doc__
@@ -246,9 +251,16 @@ class PrefixMiddleware:
You can also use ``scheme`` to explicitly set the scheme (like
``scheme = https``).
"""
- def __init__(self, app, global_conf=None, prefix='/',
- translate_forwarded_server=True,
- force_port=None, scheme=None):
+
+ def __init__(
+ self,
+ app,
+ global_conf=None,
+ prefix='/',
+ translate_forwarded_server=True,
+ force_port=None,
+ scheme=None,
+ ):
self.app = app
self.prefix = prefix.rstrip('/')
self.translate_forwarded_server = translate_forwarded_server
@@ -265,11 +277,17 @@ class PrefixMiddleware:
environ['SCRIPT_NAME'] = self.prefix
if self.translate_forwarded_server:
if 'HTTP_X_FORWARDED_SERVER' in environ:
- environ['SERVER_NAME'] = environ['HTTP_HOST'] = environ.pop('HTTP_X_FORWARDED_SERVER').split(',')[0]
+ environ['SERVER_NAME'] = environ['HTTP_HOST'] = environ.pop(
+ 'HTTP_X_FORWARDED_SERVER'
+ ).split(',')[0]
if 'HTTP_X_FORWARDED_HOST' in environ:
- environ['HTTP_HOST'] = environ.pop('HTTP_X_FORWARDED_HOST').split(',')[0]
+ environ['HTTP_HOST'] = environ.pop('HTTP_X_FORWARDED_HOST').split(',')[
+ 0
+ ]
if 'HTTP_X_FORWARDED_FOR' in environ:
- environ['REMOTE_ADDR'] = environ.pop('HTTP_X_FORWARDED_FOR').split(',')[0]
+ environ['REMOTE_ADDR'] = environ.pop('HTTP_X_FORWARDED_FOR').split(',')[
+ 0
+ ]
if 'HTTP_X_FORWARDED_SCHEME' in environ:
environ['wsgi.url_scheme'] = environ.pop('HTTP_X_FORWARDED_SCHEME')
elif 'HTTP_X_FORWARDED_PROTO' in environ:
@@ -292,14 +310,23 @@ class PrefixMiddleware:
def make_prefix_middleware(
- app, global_conf, prefix='/',
+ app,
+ global_conf,
+ prefix='/',
translate_forwarded_server=True,
- force_port=None, scheme=None):
+ force_port=None,
+ scheme=None,
+):
from paste.deploy.converters import asbool
+
translate_forwarded_server = asbool(translate_forwarded_server)
return PrefixMiddleware(
- app, prefix=prefix,
+ app,
+ prefix=prefix,
translate_forwarded_server=translate_forwarded_server,
- force_port=force_port, scheme=scheme)
+ force_port=force_port,
+ scheme=scheme,
+ )
+
make_prefix_middleware.__doc__ = PrefixMiddleware.__doc__