Returns a dynamic Device class based on what a GET device list from
        the Spark Cloud returns.
        
        spark_cloud parameter should be the caller instance of SparkCloud.
        
        entries parameter should be the list of fields the Spark Cloud API is
        returning.

def make_device_class(spark_cloud, entries, timeout=30):
        """Returns a dynamic Device class based on what a GET device list from
        the Spark Cloud returns.
        
        spark_cloud parameter should be the caller instance of SparkCloud.
        
        entries parameter should be the list of fields the Spark Cloud API is
        returning.
        """
        attrs = list(
            set(
                list(entries) + [
                    'requires_deep_update', 'functions', 'variables', 'api', 'status'
                ]
            )
        )
        
        return type(
            'Device',
            (_BaseDevice, namedtuple('Device', attrs)),
            {'__slots__': (), 'spark_cloud': spark_cloud, 'timeout' : timeout}
        )