Staging
v0.5.1
https://github.com/python/cpython
Revision 6e8dcdaaa49d4313bf9fab9f9923ca5828fbb10e authored by Joongi Kim on 02 November 2020, 08:02:48 UTC, committed by GitHub on 02 November 2020, 08:02:48 UTC


This is a PR to:

 * Add `contextlib.aclosing` which ia analogous to `contextlib.closing` but for async-generators with an explicit test case for [bpo-41229]()
 * Update the docs to describe when we need explicit `aclose()` invocation.

which are motivated by the following issues, articles, and examples:

 * [bpo-41229]()
 * https://github.com/njsmith/async_generator
 * https://vorpus.org/blog/some-thoughts-on-asynchronous-api-design-in-a-post-asyncawait-world/#cleanup-in-generators-and-async-generators
 * https://www.python.org/dev/peps/pep-0533/
 * https://github.com/achimnol/aiotools/blob/ef7bf0cea7af/src/aiotools/context.py#L152

Particuarly regarding [PEP-533](https://www.python.org/dev/peps/pep-0533/), its acceptance (`__aiterclose__()`) would make this little addition of `contextlib.aclosing()` unnecessary for most use cases, but until then this could serve as a good counterpart and analogy to `contextlib.closing()`. The same applies for `contextlib.closing` with `__iterclose__()`.
Also, still there are other use cases, e.g., when working with non-generator objects with `aclose()` methods.
1 parent e9208f0
Raw File
Tip revision: 6e8dcdaaa49d4313bf9fab9f9923ca5828fbb10e authored by Joongi Kim on 02 November 2020, 08:02:48 UTC
bpo-41229: Update docs for explicit aclose()-required cases and add contextlib.aclosing() method (GH-21545)
Tip revision: 6e8dcda
pyshellext.rc
#include <windows.h>

#include "python_ver_rc.h"

// Include the manifest file that indicates we support all
// current versions of Windows.
#include <winuser.h>
1 RT_MANIFEST "python.manifest"

/////////////////////////////////////////////////////////////////////////////
//
// Version
//

VS_VERSION_INFO VERSIONINFO
 FILEVERSION PYVERSION64
 PRODUCTVERSION PYVERSION64
 FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
 FILEFLAGS VS_FF_DEBUG
#else
 FILEFLAGS 0x0L
#endif
 FILEOS VOS__WINDOWS32
 FILETYPE VFT_APP
 FILESUBTYPE 0x0L
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "000004b0"
        BEGIN
            VALUE "CompanyName", PYTHON_COMPANY "\0"
            VALUE "FileDescription", "Python\0"
            VALUE "FileVersion", PYTHON_VERSION
            VALUE "InternalName", "Python Launcher Shell Extension\0"
            VALUE "LegalCopyright", PYTHON_COPYRIGHT "\0"
            VALUE "OriginalFilename", "pyshellext" PYTHON_DEBUG_EXT ".dll\0"
            VALUE "ProductName", "Python\0"
            VALUE "ProductVersion", PYTHON_VERSION
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x0, 1200
    END
END
back to top