| 2929 | PYBIND11_NAMESPACE_BEGIN(detail) |
| 2930 | |
| 2931 | inline str enum_name(handle arg) { |
| 2932 | dict entries = type::handle_of(arg).attr("__entries"); |
| 2933 | for (auto kv : entries) { |
| 2934 | if (handle(kv.second[int_(0)]).equal(arg)) { |
| 2935 | return pybind11::str(kv.first); |
| 2936 | } |
| 2937 | } |
| 2938 | return "???"; |
| 2939 | } |
| 2940 | |
| 2941 | struct enum_base { |
| 2942 | enum_base(const handle &base, const handle &parent) : m_base(base), m_parent(parent) {} |