Open alpnn opened 6 years ago
You can use abc._get_dump(Tombola)
- it returns a 4-tuple of (_abc_registry, _abc_cache, _abc_negative_cache, _abc_negative_cache_version)
The following code should work:
import abc
virtual_subclasses = [ref() for ref in abc._get_dump(Tombola)[0] if ref()]
Credit goes to: u/K9000_ from the reddit thread
@ShubhamBelwal thanks, it fixed my same problem.
When I try running the tombola_runner.py in chapter 11, python reports to me that the '_abc_registry' doesn't exist.
I searched in docs, but found that the attribute is not accesible anymore.
The changelog is """ bpo-31333: _abc module is added. It is a speedup module with C implementations for various functions and methods in abc. Creating an ABC subclass and calling isinstance or issubclass with an ABC subclass are up to 1.5x faster. In addition, this makes Python start-up up to 10% faster.
Note that the new implementation hides internal registry and caches, previously accessible via private attributes _abc_registry, _abc_cache, and _abc_negative_cache. There are three debugging helper methods that can be used instead _dump_registry, _abc_registry_clear, and _abc_caches_clear. """