Skip to content

types._cell_factory is exposed, unlike other helpers #96415

Closed

Description

@sobolevn

types.py module has different helpers to get their types, like async def _c(): pass to get coroutine type or def _g(): yield 1 to get generator type, etc.

It has has these line to get CellType:

cpython/Lib/types.py

Lines 18 to 23 in 9625de6

def _cell_factory():
a = 1
def f():
nonlocal a
return f.__closure__[0]
CellType = type(_cell_factory())

Afterward, all helpers are deleted, except _cell_factory, which I think should be fixed. It is not good to expose such implementation details.

And this line agrees with me:

del sys, _f, _g, _C, _c, _ag # Not for export

Related:

Activity

  1. self-assigned this
    on Aug 30, 2022
  2. added a commit that references this issue on Aug 30, 2022
  3. added a commit that references this issue on Oct 11, 2022
  4. added a commit that references this issue on Aug 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

type-bugAn unexpected behavior, bug, or error

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions