wjakob / nanobind

nanobind: tiny and efficient C++/Python bindings
BSD 3-Clause "New" or "Revised" License
2.14k stars 161 forks source link

use qualified name when aliasing types #501

Closed skallweitNV closed 3 months ago

skallweitNV commented 3 months ago

Use qualified name when writing type aliases.

If you have some bindings like this:

nb::class_<A> a(m, "A");
nb::enum_<E> e(a, "E");
nb::class_<B> b(m, "B");
b.attr("E") = a.attr("E");

you currently get:

class A:
    class E(_Enum):
        ...

class B:
    E: TypeAlias = E  

with this fix you get:

class B:
    E: TypeAlias = A.E
wjakob commented 3 months ago

LGTM, thanks!