diff options
Diffstat (limited to 'modules/language/python/dict.scm')
-rw-r--r-- | modules/language/python/dict.scm | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/modules/language/python/dict.scm b/modules/language/python/dict.scm index a234281..c034503 100644 --- a/modules/language/python/dict.scm +++ b/modules/language/python/dict.scm @@ -554,8 +554,17 @@ (slot-set! self 'n (slot-ref r 'n)))) ((self x) (__init__ self) - (for ((k v : x)) () - (pylist-set! self k v)))))) + (catch #t + (lambda () + (for ((k v : x)) () + (pylist-set! self k v))) + (lambda y + (for ((k : x)) () + (if (pair? k) + (pylist-set! self (car k) (cdr k)) + (raise TypeError + "wrong type of argument to dict" k))))))))) + __init__))) (define-python-class weak-key-dict (<py-hashtable>) |