Lines Matching defs:rec
517 inline PyObject* make_new_python_type(const type_record &rec) {
518 auto name = reinterpret_steal<object>(PYBIND11_FROM_STRING(rec.name));
521 if (rec.scope && !PyModule_Check(rec.scope.ptr()) && hasattr(rec.scope, "__qualname__")) {
524 PyUnicode_FromFormat("%U.%U", rec.scope.attr("__qualname__").ptr(), name.ptr()));
526 qualname = str(rec.scope.attr("__qualname__").cast<std::string>() + "." + rec.name);
531 if (rec.scope) {
532 if (hasattr(rec.scope, "__module__"))
533 module = rec.scope.attr("__module__");
534 else if (hasattr(rec.scope, "__name__"))
535 module = rec.scope.attr("__name__");
540 module ? str(module).cast<std::string>() + "." + rec.name :
542 rec.name);
545 if (rec.doc && options::show_user_defined_docstrings()) {
548 size_t size = strlen(rec.doc) + 1;
550 memcpy((void *) tp_doc, rec.doc, size);
554 auto bases = tuple(rec.bases);
562 auto metaclass = rec.metaclass.ptr() ? (PyTypeObject *) rec.metaclass.ptr()
567 pybind11_fail(std::string(rec.name) + ": Unable to create type object!");
599 if (rec.dynamic_attr)
602 if (rec.buffer_protocol)
606 pybind11_fail(std::string(rec.name) + ": PyType_Ready failed (" + error_string() + ")!");
608 assert(rec.dynamic_attr ? PyType_HasFeature(type, Py_TPFLAGS_HAVE_GC)
612 if (rec.scope)
613 setattr(rec.scope, rec.name, (PyObject *) type);