pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://github.com/python/cpython/commit/e913d2c87f1ae4e7a4aef5ba78368ef31d060767

faa60c69660fa.css" /> gh-116608: Apply style and compatibility changes from importlib_metad… · python/cpython@e913d2c · GitHub
Skip to content

Commit e913d2c

Browse files
authored
gh-116608: Apply style and compatibility changes from importlib_metadata. (#123028)
1 parent d7a3df9 commit e913d2c

2 files changed

Lines changed: 50 additions & 36 deletions

File tree

Lib/importlib/resources/_functional.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,7 @@ def contents(anchor, *path_names):
5757
DeprecationWarning,
5858
stacklevel=1,
5959
)
60-
return (
61-
resource.name
62-
for resource
63-
in _get_resource(anchor, path_names).iterdir()
64-
)
60+
return (resource.name for resource in _get_resource(anchor, path_names).iterdir())
6561

6662

6763
def _get_encoding_arg(path_names, encoding):

Lib/test/test_importlib/resources/test_functional.py

Lines changed: 49 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import unittest
22
import os
33

4-
from test.support.warnings_helper import ignore_warnings, check_warnings
4+
from test.support import warnings_helper
55

6-
import importlib.resources as resources
6+
from importlib import resources
77

88
# Since the functional API forwards to Traversable, we only test
99
# filesystem resources here -- not zip files, namespace packages etc.
@@ -22,8 +22,7 @@ class ModuleAnchorMixin:
2222

2323
class FunctionalAPIBase:
2424
def _gen_resourcetxt_path_parts(self):
25-
"""Yield various names of a text file in anchor02, each in a subTest
26-
"""
25+
"""Yield various names of a text file in anchor02, each in a subTest"""
2726
for path_parts in (
2827
('subdirectory', 'subsubdir', 'resource.txt'),
2928
('subdirectory/subsubdir/resource.txt',),
@@ -36,7 +35,7 @@ def assertEndsWith(self, string, suffix):
3635
"""Assert that `string` ends with `suffix`.
3736
3837
Used to ignore an architecture-specific UTF-16 byte-order mark."""
39-
self.assertEqual(string[-len(suffix):], suffix)
38+
self.assertEqual(string[-len(suffix) :], suffix)
4039

4140
def test_read_text(self):
4241
self.assertEqual(
@@ -45,15 +44,20 @@ def test_read_text(self):
4544
)
4645
self.assertEqual(
4746
resources.read_text(
48-
self.anchor02, 'subdirectory', 'subsubdir', 'resource.txt',
47+
self.anchor02,
48+
'subdirectory',
49+
'subsubdir',
50+
'resource.txt',
4951
encoding='utf-8',
5052
),
5153
'a resource',
5254
)
5355
for path_parts in self._gen_resourcetxt_path_parts():
5456
self.assertEqual(
5557
resources.read_text(
56-
self.anchor02, *path_parts, encoding='utf-8',
58+
self.anchor02,
59+
*path_parts,
60+
encoding='utf-8',
5761
),
5862
'a resource',
5963
)
@@ -67,13 +71,16 @@ def test_read_text(self):
6771
resources.read_text(self.anchor01, 'utf-16.file')
6872
self.assertEqual(
6973
resources.read_text(
70-
self.anchor01, 'binary.file', encoding='latin1',
74+
self.anchor01,
75+
'binary.file',
76+
encoding='latin1',
7177
),
7278
'\x00\x01\x02\x03',
7379
)
7480
self.assertEndsWith( # ignore the BOM
7581
resources.read_text(
76-
self.anchor01, 'utf-16.file',
82+
self.anchor01,
83+
'utf-16.file',
7784
errors='backslashreplace',
7885
),
7986
'Hello, UTF-16 world!\n'.encode('utf-16-le').decode(
@@ -97,7 +104,8 @@ def test_open_text(self):
97104
self.assertEqual(f.read(), 'Hello, UTF-8 world!\n')
98105
for path_parts in self._gen_resourcetxt_path_parts():
99106
with resources.open_text(
100-
self.anchor02, *path_parts,
107+
self.anchor02,
108+
*path_parts,
101109
encoding='utf-8',
102110
) as f:
103111
self.assertEqual(f.read(), 'a resource')
@@ -111,11 +119,14 @@ def test_open_text(self):
111119
with self.assertRaises(UnicodeDecodeError):
112120
f.read()
113121
with resources.open_text(
114-
self.anchor01, 'binary.file', encoding='latin1',
122+
self.anchor01,
123+
'binary.file',
124+
encoding='latin1',
115125
) as f:
116126
self.assertEqual(f.read(), '\x00\x01\x02\x03')
117127
with resources.open_text(
118-
self.anchor01, 'utf-16.file',
128+
self.anchor01,
129+
'utf-16.file',
119130
errors='backslashreplace',
120131
) as f:
121132
self.assertEndsWith( # ignore the BOM
@@ -130,16 +141,17 @@ def test_open_binary(self):
130141
self.assertEqual(f.read(), b'Hello, UTF-8 world!\n')
131142
for path_parts in self._gen_resourcetxt_path_parts():
132143
with resources.open_binary(
133-
self.anchor02, *path_parts,
144+
self.anchor02,
145+
*path_parts,
134146
) as f:
135147
self.assertEqual(f.read(), b'a resource')
136148

137149
def test_path(self):
138150
with resources.path(self.anchor01, 'utf-8.file') as path:
139-
with open(str(path)) as f:
151+
with open(str(path), encoding='utf-8') as f:
140152
self.assertEqual(f.read(), 'Hello, UTF-8 world!\n')
141153
with resources.path(self.anchor01) as path:
142-
with open(os.path.join(path, 'utf-8.file')) as f:
154+
with open(os.path.join(path, 'utf-8.file'), encoding='utf-8') as f:
143155
self.assertEqual(f.read(), 'Hello, UTF-8 world!\n')
144156

145157
def test_is_resource(self):
@@ -152,32 +164,32 @@ def test_is_resource(self):
152164
self.assertTrue(is_resource(self.anchor02, *path_parts))
153165

154166
def test_contents(self):
155-
is_resource = resources.is_resource
156-
with check_warnings((".*contents.*", DeprecationWarning)):
167+
with warnings_helper.check_warnings((".*contents.*", DeprecationWarning)):
157168
c = resources.contents(self.anchor01)
158169
self.assertGreaterEqual(
159170
set(c),
160171
{'utf-8.file', 'utf-16.file', 'binary.file', 'subdirectory'},
161172
)
162-
with (
163-
self.assertRaises(OSError),
164-
check_warnings((".*contents.*", DeprecationWarning)),
165-
):
173+
with self.assertRaises(OSError), warnings_helper.check_warnings((
174+
".*contents.*",
175+
DeprecationWarning,
176+
)):
166177
list(resources.contents(self.anchor01, 'utf-8.file'))
178+
167179
for path_parts in self._gen_resourcetxt_path_parts():
168-
with (
169-
self.assertRaises(OSError),
170-
check_warnings((".*contents.*", DeprecationWarning)),
171-
):
180+
with self.assertRaises(OSError), warnings_helper.check_warnings((
181+
".*contents.*",
182+
DeprecationWarning,
183+
)):
172184
list(resources.contents(self.anchor01, *path_parts))
173-
with check_warnings((".*contents.*", DeprecationWarning)):
185+
with warnings_helper.check_warnings((".*contents.*", DeprecationWarning)):
174186
c = resources.contents(self.anchor01, 'subdirectory')
175187
self.assertGreaterEqual(
176188
set(c),
177189
{'binary.file'},
178190
)
179191

180-
@ignore_warnings(category=DeprecationWarning)
192+
@warnings_helper.ignore_warnings(category=DeprecationWarning)
181193
def test_common_errors(self):
182194
for func in (
183195
resources.read_text,
@@ -208,18 +220,24 @@ def test_text_errors(self):
208220
# Multiple path arguments need explicit encoding argument.
209221
with self.assertRaises(TypeError):
210222
func(
211-
self.anchor02, 'subdirectory',
212-
'subsubdir', 'resource.txt',
223+
self.anchor02,
224+
'subdirectory',
225+
'subsubdir',
226+
'resource.txt',
213227
)
214228

215229

216230
class FunctionalAPITest_StringAnchor(
217-
unittest.TestCase, FunctionalAPIBase, StringAnchorMixin,
231+
unittest.TestCase,
232+
FunctionalAPIBase,
233+
StringAnchorMixin,
218234
):
219235
pass
220236

221237

222238
class FunctionalAPITest_ModuleAnchor(
223-
unittest.TestCase, FunctionalAPIBase, ModuleAnchorMixin,
239+
unittest.TestCase,
240+
FunctionalAPIBase,
241+
ModuleAnchorMixin,
224242
):
225243
pass

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy