diff options
Diffstat (limited to 'modules/language/python/module')
-rw-r--r-- | modules/language/python/module/collections.scm | 8 | ||||
-rw-r--r-- | modules/language/python/module/collections/abc.scm | 2 | ||||
-rw-r--r-- | modules/language/python/module/enum.py | 2 | ||||
-rw-r--r-- | modules/language/python/module/python.scm | 4 | ||||
-rw-r--r-- | modules/language/python/module/types.scm | 2 |
5 files changed, 10 insertions, 8 deletions
diff --git a/modules/language/python/module/collections.scm b/modules/language/python/module/collections.scm index 04f7ab6..7c2b89f 100644 --- a/modules/language/python/module/collections.scm +++ b/modules/language/python/module/collections.scm @@ -116,7 +116,7 @@ (= dict_setitem dict-set!) (= proxy #f) (= link link)) - (if (in key self) + (if (not (in key self)) (let* ((link (link)) (root (ref self '__root)) (last (get-last root))) @@ -125,8 +125,8 @@ (set-next! link root) (set-key! link key) (set-next! last link) - (set-prev! root link) - (dict-set! self key value))))) + (set-prev! root link))) + (dict-set! self key value))) (define __delitem__ (lam (self key (= dict_delitem dict-del!)) @@ -145,7 +145,7 @@ (let ((root (ref self '__root))) (let lp ((curr (get-next root))) (if (not (eq? curr root)) - (let ((key (get-key curr))) + (let ((key (get-key curr))) (yield key (pylist-ref self key)) (lp (get-next curr))))))))))) diff --git a/modules/language/python/module/collections/abc.scm b/modules/language/python/module/collections/abc.scm index 4d442d3..37815d8 100644 --- a/modules/language/python/module/collections/abc.scm +++ b/modules/language/python/module/collections/abc.scm @@ -504,7 +504,7 @@ (define __len__ (lambda (self) (len (ref self '_mapping))))) -(define-python-class ItemsView (MappingView Set) +(define-python-class ItemsView (MappingView Set) ;; Mixins (define __contains__ (lambda (self x) diff --git a/modules/language/python/module/enum.py b/modules/language/python/module/enum.py index 723fab7..e657af3 100644 --- a/modules/language/python/module/enum.py +++ b/modules/language/python/module/enum.py @@ -129,7 +129,7 @@ class EnumMeta(type): # cannot be mixed with other types (int, float, etc.) if it has an # inherited __new__ unless a new __new__ is defined (or the resulting # class will fail). - + pk('new',metacls,cls) member_type, first_enum = metacls._get_mixins_(bases) new, save_new, use_args = metacls._find_new_(classdict, member_type, diff --git a/modules/language/python/module/python.scm b/modules/language/python/module/python.scm index 7b01c93..3601c2f 100644 --- a/modules/language/python/module/python.scm +++ b/modules/language/python/module/python.scm @@ -126,7 +126,9 @@ (it cls sub) (if (eq? sub cls) #t - (is-a? (ref sub '__goops__) (ref cls '__goops__))))) + (if (memq cls (ref sub '__mro__)) + #t + #f)))) (define-method (isinstance x y) (if (null? y) diff --git a/modules/language/python/module/types.scm b/modules/language/python/module/types.scm index 840b901..a148426 100644 --- a/modules/language/python/module/types.scm +++ b/modules/language/python/module/types.scm @@ -42,7 +42,7 @@ Define names for built-in types that aren't directly accessible as a builtin. (bool (getattr fget '__isabstractmethod__' #f))))) (define __get__ - (lam (self instance (= ownerclass None)) + (lam (self instance (= ownerclass None)) (cond ((eq? instance None) (if (bool (ref self '__isabstractmethod__)) |