diff options
author | Stefan Israelsson Tampe <stefan.itampe@gmail.com> | 2018-02-21 13:57:57 +0100 |
---|---|---|
committer | Stefan Israelsson Tampe <stefan.itampe@gmail.com> | 2018-02-21 13:57:57 +0100 |
commit | 03e16c53f6579a969c285b89b8cb86140f1411a6 (patch) | |
tree | d47f3ee31040b7b11339fda849c090f0e2e16724 /modules/language/python/list.scm | |
parent | 0a6079db826621c32cdfc89c3daea217582f0bb7 (diff) |
deepcopy copy works
Diffstat (limited to 'modules/language/python/list.scm')
-rw-r--r-- | modules/language/python/list.scm | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/modules/language/python/list.scm b/modules/language/python/list.scm index 5f4fbb7..dc63298 100644 --- a/modules/language/python/list.scm +++ b/modules/language/python/list.scm @@ -10,6 +10,7 @@ #:use-module (language python for) #:use-module (language python try) #:use-module (language python exceptions) + #:use-module (language python persist) #:export (to-list to-pylist <py-list> pylist-append! pylist-slice pylist-subset! pylist-reverse! @@ -24,6 +25,14 @@ (define-syntax-rule (aif it p x y) (let ((it p)) (if it x y))) (define-class <py-list> () vec n) +(name-object <py-list>) + +(cpit <py-list> (o (lambda (o n l) + (slot-set! o 'n n) + (slot-set! o 'vec (list->vector l))) + ((@ (guile) list) + (slot-ref o 'n) + (vector->list (slot-ref o 'vec))))) (define-method (pylist-delete! (o <py-list>) k) (let* ((n (slot-ref o 'n)) @@ -841,7 +850,9 @@ (__init__ self) (for ((i : it)) () (pylist-append! self i)))))) __init__))) - + +(name-object list) + (define pylist list) (define-method (py-class (o <py-list>) list)) |