mirror of
https://github.com/pybind/pybind11.git
synced 2024-11-22 05:05:11 +00:00
[ci skip] Order Dependence Demo
This commit is contained in:
parent
775aab5722
commit
d37b5409d4
@ -156,6 +156,19 @@ PYBIND11_NOINLINE void all_type_info_populate(PyTypeObject *t, std::vector<type_
|
||||
}
|
||||
}
|
||||
|
||||
inline void dump_registered_types_py() {
|
||||
printf("\ndump_registered_types_py():\n{\n");
|
||||
auto const &type_dict = get_internals().registered_types_py;
|
||||
for (const auto &item : type_dict) {
|
||||
printf(" %s:\n", item.first->tp_name);
|
||||
for (const auto &base : item.second) {
|
||||
printf(" %s\n", base->type->tp_name);
|
||||
}
|
||||
}
|
||||
printf("}\n");
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
/**
|
||||
* Extracts vector of type_info pointers of pybind-registered roots of the given Python type. Will
|
||||
* be just 1 pybind type for the Python type of a pybind-registered class, or for any Python-side
|
||||
@ -171,6 +184,7 @@ inline const std::vector<detail::type_info *> &all_type_info(PyTypeObject *type)
|
||||
if (ins.second) {
|
||||
// New cache entry: populate it
|
||||
all_type_info_populate(type, ins.first->second);
|
||||
dump_registered_types_py();
|
||||
}
|
||||
|
||||
return ins.first->second;
|
||||
|
@ -15,7 +15,7 @@ class PPCCInit(PC, m.CppDrvd):
|
||||
|
||||
|
||||
# Moving this test after test_PC() changes the behavior!
|
||||
def test_PPCCInit():
|
||||
def NOtest_PPCCInit():
|
||||
d = PPCCInit(11)
|
||||
assert d.get_drvd_value() == 36
|
||||
d.reset_drvd_value(55)
|
||||
@ -31,8 +31,13 @@ def test_PPCCInit():
|
||||
assert d.get_base_value_from_drvd() == 30
|
||||
|
||||
|
||||
def test_PC():
|
||||
def NOtest_PC():
|
||||
d = PC(11)
|
||||
assert d.get_base_value() == 11
|
||||
d.reset_base_value(13)
|
||||
assert d.get_base_value() == 13
|
||||
|
||||
|
||||
def testOrderDependenceDemo():
|
||||
PC(0)
|
||||
PPCCInit(0)
|
||||
|
Loading…
Reference in New Issue
Block a user