summaryrefslogtreecommitdiff
path: root/modules/language/python/dict.scm
diff options
context:
space:
mode:
Diffstat (limited to 'modules/language/python/dict.scm')
-rw-r--r--modules/language/python/dict.scm13
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>)