diff options
Diffstat (limited to 'modules/language/python/module/collections/abc.scm')
-rw-r--r-- | modules/language/python/module/collections/abc.scm | 19 |
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)))))))) |