Skip to content
This repository was archived by the owner on Oct 1, 2019. It is now read-only.
This repository was archived by the owner on Oct 1, 2019. It is now read-only.

with_metaclass: check existence of __prepare__ attribute before calling it #110

Closed
@behnam

Description

@behnam

return meta.__prepare__(name, bases)

The def with_metaclass() implementation assumes that all meta classes have __prepare__ defined.

The Python Reference says (https://docs.python.org/3/reference/datamodel.html#preparing-the-class-namespace):

If the metaclass has a __prepare__ attribute, it is called as [...].

If the metaclass has no __prepare__ attribute, then the class namespace is initialised as an empty ordered mapping.

Therefore, I think six should check existence of __prepare__ attribute before calling it, as __prepare__ is not defined on type in PY2.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions