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