mirror of
https://github.com/pybind/pybind11.git
synced 2024-11-26 23:22:01 +00:00
Add cpp_name_needs_typing_annotated()
This commit is contained in:
parent
794d97e54e
commit
2cafdab279
@ -493,7 +493,11 @@ protected:
|
||||
} else {
|
||||
std::string tname(t->name());
|
||||
detail::clean_type_id(tname);
|
||||
signature += "Annotated[Any, \"" + tname + "\"]";
|
||||
if (detail::cpp_name_needs_typing_annotated(tname.c_str())) {
|
||||
signature += "Annotated[Any, \"" + tname + "\"]";
|
||||
} else {
|
||||
signature += tname;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
signature += c;
|
||||
|
@ -113,5 +113,15 @@ struct handle_type_name<typing::Callable<Return(Args...)>> {
|
||||
+ const_name("]");
|
||||
};
|
||||
|
||||
inline bool cpp_name_needs_typing_annotated(const char *cpp_name) {
|
||||
while (*cpp_name) {
|
||||
char c = *cpp_name++;
|
||||
if (c == ':' || c == '<') { // Assuming valid names, there is no need to check for '>'.
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
PYBIND11_NAMESPACE_END(detail)
|
||||
PYBIND11_NAMESPACE_END(PYBIND11_NAMESPACE)
|
||||
|
Loading…
Reference in New Issue
Block a user