Dynamically generate NDS2 enums
This PR refactors the Enum generation in gwpy.io.nds2
to dynamically generate the Nds2ChannelType
and Nds2DataType
enums if possible using the nds2.channel
object itself. This should mean that the enums are always an accurate reflection of the underlying NDS2 interface, if present.
This does present a minor breaking change in that the enums no longer overload the name
property, instead providing a nds2name
property instead.