Skip to content

Commit a011e2b

Browse files
committed
fileinput: replace this last occurence of codecs.open with builtins.open.
1 parent 5252f9f commit a011e2b

2 files changed

Lines changed: 10 additions & 21 deletions

File tree

‎Lib/fileinput.py‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -398,9 +398,8 @@ def hook_compressed(filename, mode):
398398

399399

400400
def hook_encoded(encoding):
401-
import codecs
402401
def openhook(filename, mode):
403-
return codecs.open(filename, mode, encoding)
402+
return open(filename, mode, encoding=encoding)
404403
return openhook
405404

406405

‎Lib/test/test_fileinput.py‎

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@
77
import re
88
import fileinput
99
import collections
10-
import types
11-
import codecs
10+
import builtins
1211
import unittest
1312

1413
try:
@@ -807,18 +806,8 @@ def do_test_use_builtin_open(self, filename, mode):
807806

808807
@staticmethod
809808
def replace_builtin_open(new_open_func):
810-
builtins_type = type(__builtins__)
811-
if builtins_type is dict:
812-
original_open = __builtins__["open"]
813-
__builtins__["open"] = new_open_func
814-
elif builtins_type is types.ModuleType:
815-
original_open = __builtins__.open
816-
__builtins__.open = new_open_func
817-
else:
818-
raise RuntimeError(
819-
"unknown __builtins__ type: %r (unable to replace open)" %
820-
builtins_type)
821-
809+
original_open = builtins.open
810+
builtins.open = new_open_func
822811
return original_open
823812

824813
class Test_hook_encoded(unittest.TestCase):
@@ -829,21 +818,22 @@ def test(self):
829818
result = fileinput.hook_encoded(encoding)
830819

831820
fake_open = InvocationRecorder()
832-
original_open = codecs.open
833-
codecs.open = fake_open
821+
original_open = builtins.open
822+
builtins.open = fake_open
834823
try:
835824
filename = object()
836825
mode = object()
837826
open_result = result(filename, mode)
838827
finally:
839-
codecs.open = original_open
828+
builtins.open = original_open
840829

841830
self.assertEqual(fake_open.invocation_count, 1)
842831

843-
args = fake_open.last_invocation[0]
832+
args, kwargs = fake_open.last_invocation
844833
self.assertIs(args[0], filename)
845834
self.assertIs(args[1], mode)
846-
self.assertIs(args[2], encoding)
835+
self.assertIs(kwargs.pop('encoding'), encoding)
836+
self.assertFalse(kwargs)
847837

848838
def test_main():
849839
run_unittest(

0 commit comments

Comments
 (0)