summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Unterwaditzer <markus@unterwaditzer.net>2017-02-13 13:46:34 +0100
committerMarkus Unterwaditzer <markus@unterwaditzer.net>2017-02-13 13:46:34 +0100
commit8d9dd469e38ede1ee3bf23e1a80a0711c8792387 (patch)
treece097387866fd793d346795a5afcfa2df2f5a70d
parenta72baa48c0d358a759f75531d5cb8dd4d2510778 (diff)
parent7c82b77eb5d9724e8128da3ed409743d41ac20f7 (diff)
downloadclick-8d9dd469e38ede1ee3bf23e1a80a0711c8792387.tar.gz
Merge branch '6.x-maintenance'
-rw-r--r--CHANGES8
-rw-r--r--click/_unicodefun.py2
-rw-r--r--click/decorators.py6
3 files changed, 15 insertions, 1 deletions
diff --git a/CHANGES b/CHANGES
index 4b09dbf..6fabe36 100644
--- a/CHANGES
+++ b/CHANGES
@@ -20,6 +20,14 @@ Version 7.0
- `CliRunner.invoke` now may receive `args` as a string representing
a Unix shell command. See #664.
+Version 6.8
+-----------
+
+(bugfix release; yet to be released)
+
+- Disabled sys._getframes() on Python interpreters that don't support it. See
+ #728.
+
Version 6.7
-----------
diff --git a/click/_unicodefun.py b/click/_unicodefun.py
index 2e83311..998b2cb 100644
--- a/click/_unicodefun.py
+++ b/click/_unicodefun.py
@@ -14,6 +14,8 @@ click = sys.modules[__name__.rsplit('.', 1)[0]]
def _find_unicode_literals_frame():
import __future__
+ if not hasattr(sys, '_getframe'): # not all Python implementations have it
+ return 0
frm = sys._getframe(1)
idx = 1
while frm is not None:
diff --git a/click/decorators.py b/click/decorators.py
index 9893452..64af015 100644
--- a/click/decorators.py
+++ b/click/decorators.py
@@ -235,7 +235,11 @@ def version_option(version=None, *param_decls, **attrs):
:param others: everything else is forwarded to :func:`option`.
"""
if version is None:
- module = sys._getframe(1).f_globals.get('__name__')
+ if hasattr(sys, '_getframe'):
+ module = sys._getframe(1).f_globals.get('__name__')
+ else:
+ module = ''
+
def decorator(f):
prog_name = attrs.pop('prog_name', None)
message = attrs.pop('message', '%(prog)s, version %(version)s')