summaryrefslogtreecommitdiff
path: root/modules/language/python/module/collections/abc.scm
diff options
context:
space:
mode:
Diffstat (limited to 'modules/language/python/module/collections/abc.scm')
-rw-r--r--modules/language/python/module/collections/abc.scm19
1 files changed, 13 insertions, 6 deletions
diff --git a/modules/language/python/module/collections/abc.scm b/modules/language/python/module/collections/abc.scm
index 4bd242d..4d442d3 100644
--- a/modules/language/python/module/collections/abc.scm
+++ b/modules/language/python/module/collections/abc.scm
@@ -516,7 +516,10 @@
(define __iter__
(lambda (self)
- ((ref (ref self '_mapping) 'items)))))
+ ((make-generator ()
+ (lambda (yield)
+ (for ((k v : (ref self '_mapping))) ()
+ (yield (list k v)))))))))
(define-python-class KeysView (MappingView Set)
;; Mixins
@@ -524,10 +527,13 @@
(lambda (self k)
(let ((m (ref self '_mapping)))
(in k m))))
-
+
(define __iter__
(lambda (self)
- ((ref (ref self '_mapping) 'keys)))))
+ ((make-generator ()
+ (lambda (yield)
+ (for ((k v : (ref self '_mapping))) ()
+ (yield k))))))))
(define-python-class ValuesView (MappingView)
;; Mixins
@@ -541,6 +547,7 @@
(define __iter__
(lambda (self)
- ((ref (ref self '_mapping) 'values)))))
-
-
+ ((make-generator ()
+ (lambda (yield)
+ (for ((k v : (ref self '_mapping))) ()
+ (yield v))))))))