summaryrefslogtreecommitdiff
path: root/modules/language/python/module/io.scm
diff options
context:
space:
mode:
Diffstat (limited to 'modules/language/python/module/io.scm')
-rw-r--r--modules/language/python/module/io.scm21
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)