A modeled approach to PyVISA