Skip to content

Commit

Permalink
[ci skip] Order Dependence Demo
Browse files Browse the repository at this point in the history
  • Loading branch information
Ralf W. Grosse-Kunstleve committed Jul 27, 2023
1 parent 775aab5 commit d37b540
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 2 deletions.
14 changes: 14 additions & 0 deletions include/pybind11/detail/type_caster_base.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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;
Expand Down
9 changes: 7 additions & 2 deletions tests/test_python_multiple_inheritance.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ def __init__(self, value):


# 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)
Expand All @@ -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)

0 comments on commit d37b540

Please sign in to comment.