summaryrefslogtreecommitdiff
path: root/modules/language/python/list.scm
diff options
context:
space:
mode:
authorStefan Israelsson Tampe <stefan.itampe@gmail.com>2018-02-21 13:57:57 +0100
committerStefan Israelsson Tampe <stefan.itampe@gmail.com>2018-02-21 13:57:57 +0100
commit03e16c53f6579a969c285b89b8cb86140f1411a6 (patch)
treed47f3ee31040b7b11339fda849c090f0e2e16724 /modules/language/python/list.scm
parent0a6079db826621c32cdfc89c3daea217582f0bb7 (diff)
deepcopy copy works
Diffstat (limited to 'modules/language/python/list.scm')
-rw-r--r--modules/language/python/list.scm13
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))