I don't have an experience with using the Twisted framework, but here's a project I found that's using Twisted and doing USB HID:
https://gist.github.com/claws/2464017Maybe that will give you an idea of how to get started with it?
Personally, I've been trying to get some USB communication going with the spark from nodejs. I've run into problems that I *think* step from the slightly non-standard way that the DigiUSB library transfers data. It uses GetFeatureReport/SetFeatureReport to transfer one byte at a time, using the ReportID field to actually hold the data byte. I think that the hidapi library has trouble with this, and most python/ruby example code you'll find is using libusb to communicate at a lower level.
There's been some talk in
another thread about updating DigiUSB to be more compliant, implement "real" Feature Reports, and possibly multi-byte data transfers. I don't have the C++ chops to work on that myself, but I'm hoping that others will have some new code for us to try out soon. (actually, there's some code done already, but I haven't had time to try it yet)