Store unicode strings properly in exceptions · pallets/click@8c6c150

2 files changed

lines changed

Original file line numberDiff line numberDiff line change

@@ -8,6 +8,8 @@ Version 7.0

88
99

(upcoming release with new features, release date to be decided)

1010
11+

- The exception objects now store unicode properly.

12+
1113

Version 6.3

1214

-----------

1315
Original file line numberDiff line numberDiff line change

@@ -9,15 +9,22 @@ class ClickException(Exception):

99

exit_code = 1

1010
1111

def __init__(self, message):

12+

ctor_msg = message

1213

if PY2:

13-

if message is not None:

14-

message = message.encode('utf-8')

15-

Exception.__init__(self, message)

14+

if ctor_msg is not None:

15+

ctor_msg = ctor_msg.encode('utf-8')

16+

Exception.__init__(self, ctor_msg)

1617

self.message = message

1718
1819

def format_message(self):

1920

return self.message

2021
22+

def __unicode__(self):

23+

return self.message

24+
25+

def __str__(self):

26+

return self.message.encode('utf-8')

27+
2128

def show(self, file=None):

2229

if file is None:

2330

file = get_text_stderr()