From f14957c939203d06f9e8e83870482aa601f63504 Mon Sep 17 00:00:00 2001
From: Christoph Groth <christoph.groth@cea.fr>
Date: Tue, 12 Feb 2013 16:07:26 +0100
Subject: [PATCH] builder: simplify for_each_in_key

---
 kwant/builder.py | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/kwant/builder.py b/kwant/builder.py
index 3b66ef96..a4ba1f52 100644
--- a/kwant/builder.py
+++ b/kwant/builder.py
@@ -15,7 +15,6 @@ import abc
 import sys
 import operator
 from itertools import izip, islice, chain
-from collections import Iterable
 import tinyarray as ta
 import numpy as np
 from . import system, graph
@@ -415,9 +414,12 @@ def for_each_in_key(key, f_site, f_hopp):
     if isinstance(key, Site):
         f_site(key)
     elif isinstance(key, tuple):
-            f_hopp(key)
-    elif isinstance(key, Iterable):
-        ikey = iter(key)
+        f_hopp(key)
+    else:
+        try:
+            ikey = iter(key)
+        except:
+            raise KeyError(key)
         try:
             first = next(ikey)
         except StopIteration:
-- 
GitLab