Skip to content

Commit d218b46

Browse files
committed
Only define buffered.flush for writer/random
1 parent 8c684eb commit d218b46

1 file changed

Lines changed: 15 additions & 7 deletions

File tree

vm/src/stdlib/io.rs

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1378,13 +1378,6 @@ mod _io {
13781378
Ok(res)
13791379
}
13801380
#[pymethod]
1381-
fn flush(&self, vm: &VirtualMachine) -> PyResult<()> {
1382-
let mut data = self.lock(vm)?;
1383-
let raw = data.check_init(vm)?;
1384-
ensure_unclosed(raw, "flush of closed file", vm)?;
1385-
data.flush_rewind(vm)
1386-
}
1387-
#[pymethod]
13881381
fn detach(zelf: PyRef<Self>, vm: &VirtualMachine) -> PyResult {
13891382
call_method(vm, zelf.as_object(), "flush", ())?;
13901383
let mut data = zelf.lock(vm)?;
@@ -1620,6 +1613,13 @@ mod _io {
16201613

16211614
data.write(obj, vm)
16221615
}
1616+
#[pymethod]
1617+
fn flush(&self, vm: &VirtualMachine) -> PyResult<()> {
1618+
let mut data = self.writer().lock(vm)?;
1619+
let raw = data.check_init(vm)?;
1620+
ensure_unclosed(raw, "flush of closed file", vm)?;
1621+
data.flush_rewind(vm)
1622+
}
16231623
}
16241624

16251625
#[pyattr]
@@ -2943,6 +2943,14 @@ mod fileio {
29432943
}
29442944
}
29452945

2946+
#[pymethod]
2947+
fn flush(&self, vm: &VirtualMachine) -> PyResult<()> {
2948+
let mut handle = self.get_file(vm)?;
2949+
handle.flush().map_err(|e| e.into_pyexception(vm))?;
2950+
self.set_file(handle)?;
2951+
Ok(())
2952+
}
2953+
29462954
#[pymethod]
29472955
fn read(&self, read_byte: OptionalSize, vm: &VirtualMachine) -> PyResult<Vec<u8>> {
29482956
if !self.mode.load().contains(Mode::READABLE) {

0 commit comments

Comments
 (0)