summaryrefslogtreecommitdiff
path: root/modules/language/python/module/_python.scm
diff options
context:
space:
mode:
Diffstat (limited to 'modules/language/python/module/_python.scm')
-rw-r--r--modules/language/python/module/_python.scm16
1 files changed, 12 insertions, 4 deletions
diff --git a/modules/language/python/module/_python.scm b/modules/language/python/module/_python.scm
index 2fac0a1..d9cb1c9 100644
--- a/modules/language/python/module/_python.scm
+++ b/modules/language/python/module/_python.scm
@@ -9,6 +9,8 @@
#:use-module (language python exceptions )
#:use-module ((language python module string ) #:select ())
#:use-module ((language python module io ) #:select (open))
+ #:use-module ((language python module sys )
+ #:select ((stdout . _stdout)))
#:use-module (language python def )
#:use-module (language python for )
#:use-module (language python try )
@@ -57,10 +59,16 @@
(define vars py-dict)
(define print
- (case-lambda
- (() ((@ (guile) display) "\n"))
- ((x) ((@ (guile) display) x ) (print))
- (l ((@ (guile) display) l ) (print))))
+ (lam ((= file _stdout) (* l))
+ (if file (set! file (ref file '_port)))
+ (with-output-to-port file
+ (lambda ()
+ (apply
+ (case-lambda
+ (() ((@ (guile) display) "\n"))
+ ((x) ((@ (guile) display) x ) (print))
+ (l ((@ (guile) display) l ) (print)))
+ l)))))
(define (repr x) ((@ (guile) format) #f "~a" x))
(define abs py-abs)