From b1fa479f6067ab22149c3fd05bdc5214d1fb3801 Mon Sep 17 00:00:00 2001
From: Joseph Weston <joseph@weston.cloud>
Date: Wed, 12 Jun 2019 16:18:27 +0200
Subject: [PATCH] validate vector_factory for kpm.SpectralDensity

---
 kwant/kpm.py | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/kwant/kpm.py b/kwant/kpm.py
index a06d7c6d..db19f4ea 100644
--- a/kwant/kpm.py
+++ b/kwant/kpm.py
@@ -219,6 +219,14 @@ class SpectralDensity:
                 num_vectors=num_vectors,
                 accumulate=accumulate_vectors)
         else:
+            if not isinstance(vector_factory, Iterable):
+                raise TypeError('vector_factory must be iterable')
+            try:
+                len(vector_factory)
+            except TypeError:
+                if num_vectors is None:
+                    raise ValueError('num_vectors must be provided if'
+                                     'vector_factory has no length.')
             self._vector_factory = _VectorFactory(
                 vector_factory,
                 num_vectors=num_vectors,
-- 
GitLab