Opened 4 years ago

Last modified 4 years ago

#32821 closed Cleanup/optimization

Use a with statement when using os.scandir() — at Initial Version

Reported by: Chris Jerdonek Owned by: nobody
Component: Core (Other) Version: dev
Severity: Normal Keywords:
Cc: Triage Stage: Ready for checkin
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: yes UI/UX: no

Description

I noticed that Django doesn't use a with statement when it uses os.scandir(), which is what the Python docs advise as of 3.6. Here is one example in the code. There appear to be 7 uses of os.scandir() in all, with 5 in test code.

Usage with the with statement looks like this:

with os.scandir(path) as entries:
    for entry in entries:
        ...

Not using a with statement or closing the iterator can cause a ResourceWarning, e.g. when an exception is raised.

Change History (0)

Note: See TracTickets for help on using tickets.
Back to Top