Change an environ value and clear all caches that depend on it.
(self, key, value)
| 1944 | return self.environ.keys() |
| 1945 | |
| 1946 | def __setitem__(self, key, value): |
| 1947 | """ Change an environ value and clear all caches that depend on it. """ |
| 1948 | |
| 1949 | if self.environ.get('bottle.request.readonly'): |
| 1950 | raise KeyError('The environ dictionary is read-only.') |
| 1951 | |
| 1952 | self.environ[key] = value |
| 1953 | todelete = () |
| 1954 | |
| 1955 | if key == 'wsgi.input': |
| 1956 | todelete = ('body', 'forms', 'files', 'params', 'post', 'json') |
| 1957 | elif key == 'QUERY_STRING': |
| 1958 | todelete = ('query', 'params') |
| 1959 | elif key.startswith('HTTP_'): |
| 1960 | todelete = ('headers', 'cookies') |
| 1961 | |
| 1962 | for key in todelete: |
| 1963 | self.environ.pop('bottle.request.' + key, None) |
| 1964 | |
| 1965 | def __repr__(self): |
| 1966 | return '<%s: %s %s>' % (self.__class__.__name__, self.method, self.url) |