Merge branch 'BuhtigithuB-improve/pep8-globals-py'
This commit is contained in:
+18
-14
@@ -13,7 +13,8 @@ Contains the classes for the global used variables:
|
|||||||
- Session
|
- Session
|
||||||
|
|
||||||
"""
|
"""
|
||||||
from gluon._compat import pickle, StringIO, copyreg, Cookie, urlparse, PY2, iteritems, to_unicode, to_native, unicodeT, long, hashlib_md5
|
from gluon._compat import pickle, StringIO, copyreg, Cookie, urlparse, PY2, iteritems, to_unicode, to_native, \
|
||||||
|
unicodeT, long
|
||||||
from gluon.storage import Storage, List
|
from gluon.storage import Storage, List
|
||||||
from gluon.streamer import streamer, stream_file_or_304_or_206, DEFAULT_CHUNK_SIZE
|
from gluon.streamer import streamer, stream_file_or_304_or_206, DEFAULT_CHUNK_SIZE
|
||||||
from gluon.contenttype import contenttype
|
from gluon.contenttype import contenttype
|
||||||
@@ -30,7 +31,7 @@ from gluon.fileutils import copystream
|
|||||||
import hashlib
|
import hashlib
|
||||||
from pydal.contrib import portalocker
|
from pydal.contrib import portalocker
|
||||||
from pickle import Pickler, MARK, DICT, EMPTY_DICT
|
from pickle import Pickler, MARK, DICT, EMPTY_DICT
|
||||||
#from types import DictionaryType
|
# from types import DictionaryType
|
||||||
import datetime
|
import datetime
|
||||||
import re
|
import re
|
||||||
import os
|
import os
|
||||||
@@ -48,7 +49,7 @@ PAST = 'Sat, 1-Jan-1971 00:00:00'
|
|||||||
FUTURE = 'Tue, 1-Dec-2999 23:59:59'
|
FUTURE = 'Tue, 1-Dec-2999 23:59:59'
|
||||||
|
|
||||||
try:
|
try:
|
||||||
#FIXME PY3
|
# FIXME PY3
|
||||||
from gluon.contrib.minify import minify
|
from gluon.contrib.minify import minify
|
||||||
have_minify = True
|
have_minify = True
|
||||||
except ImportError:
|
except ImportError:
|
||||||
@@ -79,6 +80,7 @@ template_mapping = {
|
|||||||
'js:inline': js_inline
|
'js:inline': js_inline
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# IMPORTANT:
|
# IMPORTANT:
|
||||||
# this is required so that pickled dict(s) and class.__dict__
|
# this is required so that pickled dict(s) and class.__dict__
|
||||||
# are sorted and web2py can detect without ambiguity when a session changes
|
# are sorted and web2py can detect without ambiguity when a session changes
|
||||||
@@ -95,6 +97,7 @@ else:
|
|||||||
SortingPickler.dispatch_table = copyreg.dispatch_table.copy()
|
SortingPickler.dispatch_table = copyreg.dispatch_table.copy()
|
||||||
SortingPickler.dispatch_table[dict] = SortingPickler.save_dict
|
SortingPickler.dispatch_table[dict] = SortingPickler.save_dict
|
||||||
|
|
||||||
|
|
||||||
def sorting_dumps(obj, protocol=None):
|
def sorting_dumps(obj, protocol=None):
|
||||||
file = StringIO()
|
file = StringIO()
|
||||||
SortingPickler(file, protocol).dump(obj)
|
SortingPickler(file, protocol).dump(obj)
|
||||||
@@ -120,7 +123,7 @@ def copystream_progress(request, chunk_size=10 ** 5):
|
|||||||
dest = tempfile.NamedTemporaryFile()
|
dest = tempfile.NamedTemporaryFile()
|
||||||
except NotImplementedError: # and GAE this
|
except NotImplementedError: # and GAE this
|
||||||
dest = tempfile.TemporaryFile()
|
dest = tempfile.TemporaryFile()
|
||||||
if not 'X-Progress-ID' in request.get_vars:
|
if 'X-Progress-ID' not in request.get_vars:
|
||||||
copystream(source, dest, size, chunk_size)
|
copystream(source, dest, size, chunk_size)
|
||||||
return dest
|
return dest
|
||||||
cache_key = 'X-Progress-ID:' + request.get_vars['X-Progress-ID']
|
cache_key = 'X-Progress-ID:' + request.get_vars['X-Progress-ID']
|
||||||
@@ -198,7 +201,8 @@ class Request(Storage):
|
|||||||
"""Takes the QUERY_STRING and unpacks it to get_vars
|
"""Takes the QUERY_STRING and unpacks it to get_vars
|
||||||
"""
|
"""
|
||||||
query_string = self.env.get('query_string', '')
|
query_string = self.env.get('query_string', '')
|
||||||
dget = urlparse.parse_qs(query_string, keep_blank_values=1) # Ref: https://docs.python.org/2/library/cgi.html#cgi.parse_qs
|
dget = urlparse.parse_qs(query_string, keep_blank_values=1)
|
||||||
|
# Ref: https://docs.python.org/2/library/cgi.html#cgi.parse_qs
|
||||||
get_vars = self._get_vars = Storage(dget)
|
get_vars = self._get_vars = Storage(dget)
|
||||||
for (key, value) in iteritems(get_vars):
|
for (key, value) in iteritems(get_vars):
|
||||||
if isinstance(value, list) and len(value) == 1:
|
if isinstance(value, list) and len(value) == 1:
|
||||||
@@ -228,8 +232,7 @@ class Request(Storage):
|
|||||||
body.seek(0)
|
body.seek(0)
|
||||||
|
|
||||||
# parse POST variables on POST, PUT, BOTH only in post_vars
|
# parse POST variables on POST, PUT, BOTH only in post_vars
|
||||||
if (body and not is_json
|
if body and not is_json and env.request_method in ('POST', 'PUT', 'DELETE', 'BOTH'):
|
||||||
and env.request_method in ('POST', 'PUT', 'DELETE', 'BOTH')):
|
|
||||||
query_string = env.pop('QUERY_STRING', None)
|
query_string = env.pop('QUERY_STRING', None)
|
||||||
dpost = cgi.FieldStorage(fp=body, environ=env, keep_blank_values=1)
|
dpost = cgi.FieldStorage(fp=body, environ=env, keep_blank_values=1)
|
||||||
try:
|
try:
|
||||||
@@ -355,7 +358,7 @@ class Request(Storage):
|
|||||||
def f(_action=action, *a, **b):
|
def f(_action=action, *a, **b):
|
||||||
request.is_restful = True
|
request.is_restful = True
|
||||||
env = request.env
|
env = request.env
|
||||||
is_json = env.content_type=='application/json'
|
is_json = env.content_type == 'application/json'
|
||||||
method = env.request_method
|
method = env.request_method
|
||||||
if not ignore_extension and len(request.args) and '.' in request.args[-1]:
|
if not ignore_extension and len(request.args) and '.' in request.args[-1]:
|
||||||
request.args[-1], _, request.extension = request.args[-1].rpartition('.')
|
request.args[-1], _, request.extension = request.args[-1].rpartition('.')
|
||||||
@@ -451,7 +454,8 @@ class Response(Storage):
|
|||||||
for meta in iteritems((self.meta or {})):
|
for meta in iteritems((self.meta or {})):
|
||||||
k, v = meta
|
k, v = meta
|
||||||
if isinstance(v, dict):
|
if isinstance(v, dict):
|
||||||
s += '<meta' + ''.join(' %s="%s"' % (xmlescape(key), to_native(xmlescape(v[key]))) for key in v) +' />\n'
|
s += '<meta' + ''.join(' %s="%s"' % (xmlescape(key),
|
||||||
|
to_native(xmlescape(v[key]))) for key in v) + ' />\n'
|
||||||
else:
|
else:
|
||||||
s += '<meta name="%s" content="%s" />\n' % (k, to_native(xmlescape(v)))
|
s += '<meta name="%s" content="%s" />\n' % (k, to_native(xmlescape(v)))
|
||||||
self.write(s, escape=False)
|
self.write(s, escape=False)
|
||||||
@@ -483,7 +487,7 @@ class Response(Storage):
|
|||||||
|
|
||||||
if have_minify and ((self.optimize_css and has_css) or (self.optimize_js and has_js)):
|
if have_minify and ((self.optimize_css and has_css) or (self.optimize_js and has_js)):
|
||||||
# cache for 5 minutes by default
|
# cache for 5 minutes by default
|
||||||
key = hashlib_md5(repr(files)).hexdigest()
|
key = hashlib.md5(repr(files)).hexdigest()
|
||||||
cache = self.cache_includes or (current.cache.ram, 60 * 5)
|
cache = self.cache_includes or (current.cache.ram, 60 * 5)
|
||||||
|
|
||||||
def call_minify(files=files):
|
def call_minify(files=files):
|
||||||
@@ -577,9 +581,9 @@ class Response(Storage):
|
|||||||
if hasattr(stream, 'name'):
|
if hasattr(stream, 'name'):
|
||||||
filename = stream.name
|
filename = stream.name
|
||||||
|
|
||||||
if filename and not 'content-type' in keys:
|
if filename and 'content-type' not in keys:
|
||||||
headers['Content-Type'] = contenttype(filename)
|
headers['Content-Type'] = contenttype(filename)
|
||||||
if filename and not 'content-length' in keys:
|
if filename and 'content-length' not in keys:
|
||||||
try:
|
try:
|
||||||
headers['Content-Length'] = \
|
headers['Content-Length'] = \
|
||||||
os.path.getsize(filename)
|
os.path.getsize(filename)
|
||||||
@@ -1021,7 +1025,7 @@ class Session(Storage):
|
|||||||
if self._forget:
|
if self._forget:
|
||||||
del rcookies[response.session_id_name]
|
del rcookies[response.session_id_name]
|
||||||
return
|
return
|
||||||
if self.get('httponly_cookies',True):
|
if self.get('httponly_cookies', True):
|
||||||
scookies['HttpOnly'] = True
|
scookies['HttpOnly'] = True
|
||||||
if self._secure:
|
if self._secure:
|
||||||
scookies['secure'] = True
|
scookies['secure'] = True
|
||||||
@@ -1192,7 +1196,7 @@ class Session(Storage):
|
|||||||
if (not response.session_id or
|
if (not response.session_id or
|
||||||
not response.session_filename or
|
not response.session_filename or
|
||||||
self._forget
|
self._forget
|
||||||
or self._unchanged(response)):
|
or self._unchanged(response)):
|
||||||
# self.clear_session_cookies()
|
# self.clear_session_cookies()
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user