Allow python lists/arrays in KernelConnector
Currently the arrays passed in to a KernelConnector need to be converted into a numpy array by the user first, see https://github.com/SpiNNakerManchester/sPyNNaker/blob/e2c3d66ca2831e2e4ef239eca07d00cc88a17c35/spynnaker/pyNN/models/neural_projections/connectors/kernel_connector.py#L229  
This seems unnecessary so I suggest it gets fixed so that an array (of arrays) can be passed in as well.
diff --git a/spynnaker/pyNN/models/neural_projections/connectors/kernel_connector.py b/spynnaker/pyNN/models/neural_projections/connectors/kernel_connector.py
index bf42de30c3..86980664de 100644
--- a/spynnaker/pyNN/models/neural_projections/connectors/kernel_connector.py
+++ b/spynnaker/pyNN/models/neural_projections/connectors/kernel_connector.py
@@ -221,6 +221,8 @@ class KernelConnector(AbstractGenerateConnectorOnMachine,
         """
         if vals is None:
             return None
+        if isinstance(vals, list):
+            vals = numpy.asarray(vals)
         krn_size = self._kernel_h * self._kernel_w
         krn_shape = (self._kernel_h, self._kernel_w)
         if isinstance(vals, RandomDistribution):
@@ -232,11 +234,11 @@ class KernelConnector(AbstractGenerateConnectorOnMachine,
                 vals.shape[HEIGHT] == self._kernel_h and
                 vals.shape[WIDTH] == self._kernel_w):
             return vals.view(ConvolutionKernel)
-        # TODO: make this error more descriptive?
         raise SpynnakerException(
             "Error generating KernelConnector values; if you have supplied "
             "weight and/or delay kernel then ensure they are the same size "
-            "as specified by the shape kernel values.")
+            "as specified by the shape kernel values (height: "
+            f"{self._kernel_h} and width: {self._kernel_w}).")
 
     def __compute_statistics(
             self, weights, delays, post_vertex_slice, n_pre_neurons):
diff --git a/spynnaker_integration_tests/test_connectors/test_kernel_connector.py b/spynnaker_integration_tests/test_connectors/test_kernel_connector.py
index 6114a2d614..1659a06d2a 100644
--- a/spynnaker_integration_tests/test_connectors/test_kernel_connector.py
+++ b/spynnaker_integration_tests/test_connectors/test_kernel_connector.py
@@ -45,11 +45,10 @@ class TestKernelConnector(BaseTestCase):
         delay_list = [[20.0 if ((a + b) % 2 == 1) else 10.0
                        for a in range(ksw)] for b in range(ksh)]
         weight_kernel = np.asarray(weight_list)
-        delay_kernel = np.asarray(delay_list)
 
         kernel_connector = sim.KernelConnector(
             shape_pre, shape_post, shape_kernel,
-            weight_kernel=weight_kernel, delay_kernel=delay_kernel,
+            weight_kernel=weight_kernel, delay_kernel=delay_list,
             pre_sample_steps_in_post=pre_step,
             post_sample_steps_in_pre=post_step,
             pre_start_coords_in_post=pre_start,
['spynnaker_integration_tests/test_connectors/test_kernel_connector.py', 'spynnaker/pyNN/models/neural_projections/connectors/kernel_connector.py']