Fix broken dependency linearization.
I had tried to break circular dependencies with:
commit
c19dd6ff6ce26beaf1b0ffc57d505b71898f8d0f
Author: W. Trevor King <wking@tremily.us>
Date: Fri Oct 19 08:58:34 2012 -0400
Break circular dependencies for Python 3 compatibility.
Which was causing errors like:
Exception AttributeError:
"'pycomedi.device.Device' object has no attribute 'device'"
in 'pycomedi.subdevice.Subdevice._device'
because when you treat Device instances as Python objects, you cannot
access their private (C-only) attributes. This commit avoids that
problem by adding low level classes (DeviceHolder and SubdeviceHolder)
that can be imported by both the high level classes (Device and
Subdevice) and their users (Subdevice and Channel), avoiding circular
dependencies while preserving critical C-only attributes.