diff options
Diffstat (limited to 'modules/language/python/module/io.scm')
-rw-r--r-- | modules/language/python/module/io.scm | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/modules/language/python/module/io.scm b/modules/language/python/module/io.scm index 87a2ec8..058e62d 100644 --- a/modules/language/python/module/io.scm +++ b/modules/language/python/module/io.scm @@ -369,15 +369,18 @@ (define-python-class FileIO (RawIOBase) (define __init__ (lam (self name (= mode 'r') (= closefd #t) (= opener None)) - (if (pair? name) - (set self '_port (car name)) - (set self '_port - (open- (path-it name) - #:mode mode - #:closefd closefd - #:opener opener))) - (set self 'mode mode) - (set self 'name (cdr name))))) + (if (port? name) + (set self '_port name) + (begin + (if (pair? name) + (set self '_port (car name)) + (set self '_port + (open- (path-it name) + #:mode mode + #:closefd closefd + #:opener opener))) + (set self 'mode mode) + (set self 'name (cdr name))))))) (define-python-class BytesIO (BufferedIOBase) |