Skip to content

Commit f892cd1

Browse files
committed
Fixing Item 21 examples for Python 2.
Must have floating point numerators to make the function work. The error messages for Python 2 should be generated in a Python 2 example.
1 parent cebaf2b commit f892cd1

File tree

2 files changed

+20
-47
lines changed

2 files changed

+20
-47
lines changed

example_code/item_21.py

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -108,47 +108,3 @@ def safe_division_c(number, divisor, *,
108108
assert False
109109
except ZeroDivisionError:
110110
pass # Expected
111-
112-
113-
# Example 12
114-
# This and what's below isn't actually Python 2! But I'm trying to
115-
# make it seem like it is a continuation of the Python 2 code above.
116-
def safe_division_d(number, divisor, **kwargs):
117-
ignore_overflow = kwargs.pop('ignore_overflow', False)
118-
ignore_zero_div = kwargs.pop('ignore_zero_division', False)
119-
if kwargs:
120-
raise TypeError('Unexpected **kwargs: %r' % kwargs)
121-
try:
122-
return number / divisor
123-
except OverflowError:
124-
if ignore_overflow:
125-
return 0
126-
else:
127-
raise
128-
except ZeroDivisionError:
129-
if ignore_zero_div:
130-
return float('inf')
131-
else:
132-
raise
133-
134-
safe_division_d(1, 10)
135-
safe_division_d(1, 0, ignore_zero_division=True)
136-
safe_division_d(1, 10**500, ignore_overflow=True)
137-
138-
139-
# Example 13
140-
try:
141-
safe_division_d(1, 0, False, True)
142-
except:
143-
logging.exception('Expected')
144-
else:
145-
assert False
146-
147-
148-
# Example 14
149-
try:
150-
safe_division_d(0, 0, unexpected=True)
151-
except:
152-
logging.exception('Expected')
153-
else:
154-
assert False

example_code/item_21_example_11.py

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,23 @@ def safe_division_d(number, divisor, **kwargs):
3939
else:
4040
raise
4141

42-
safe_division_d(1, 10)
43-
safe_division_d(1, 0, ignore_zero_division=True)
44-
safe_division_d(1, 10**500, ignore_overflow=True)
42+
assert safe_division_d(1.0, 10.0) == 0.1
43+
assert safe_division_d(1.0, 0.0, ignore_zero_division=True) == float('inf')
44+
assert safe_division_d(1.0, 10**500, ignore_overflow=True) == 0.0
45+
46+
# Example 12
47+
try:
48+
safe_division_d(1.0, 0, False, True)
49+
except:
50+
logging.exception('Expected')
51+
else:
52+
assert False
53+
54+
55+
# Example 13
56+
try:
57+
safe_division_d(0.0, 0, unexpected=True)
58+
except:
59+
logging.exception('Expected')
60+
else:
61+
assert False

0 commit comments

Comments
 (0)