-
Chris McDonough authored
Because the "old" Interface package allowed the import of the Attribute class directly from the Interface package, and some packages (such as CMF) expect a class back from "from Interface import Attribute": - Renamed Attribute.py to _Attribute.py and did the necessary housekeeping to make sure all the other parts of the Interface package knows about the change. - Changed __init__.py to import Attribute from _Attribute New features and changes: - Removed iclass.py (it was no longer used). - Gave the base interface class (Interface._InterfaceClass) a __hash__ method as ExtensionClass instances do not hash like normal instances, and we require that interfaces be hashable in order to store them as dictionary keys and whatnot in registries.b3b2584c