Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gh-128862: use importlib.resources to acquire doctest resources #128865

Open
wants to merge 11 commits into
base: main
Choose a base branch
from

Conversation

graingert
Copy link
Contributor

@graingert graingert commented Jan 15, 2025

@graingert graingert requested a review from brettcannon January 15, 2025 13:42
@graingert graingert requested a review from jaraco January 26, 2025 09:35
@jaraco jaraco self-assigned this Feb 2, 2025
@graingert graingert requested a review from jaraco March 20, 2025 16:32
def _load_testfile(filename, package, module_relative, encoding):
if module_relative:
package = _normalize_module(package, 3)
with contextlib.suppress(Exception):
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What exceptions should be suppressed?

Exception is too wide class. It includes OSError, UnicodeDecodingError, MemoryError, which currently are not suppressed.

Copy link
Member

@AA-Turner AA-Turner Apr 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This control flow feels odd, because we're returning in a suppress context manager.

Perhaps:

text = None
if module_relative:
    package = _normalize_module(package, depth=3)
    try:
        text = resources.read_text(package, filename, encoding=encoding)
    except:
        filename = _module_relative_path(package, filename)

if text is None:
    with open(filename, encoding=encoding) as f:
        text = f.read()

return text, filename

Comment on lines +244 to +247
return (
importlib.resources.read_text(package, filename, encoding=encoding),
filename,
)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Style nitpick. I think that the following code may look better:

Suggested change
return (
importlib.resources.read_text(package, filename, encoding=encoding),
filename,
)
text = importlib.resources.read_text(package, filename,
encoding=encoding)
return text, filename

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants