Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #79782

Re: Status of side-effecting functions in python

From Roy Smith <roy@panix.com>
Newsgroups comp.lang.python
Subject Re: Status of side-effecting functions in python
Date 2014-10-27 09:28 -0400
Organization PANIX Public Access Internet and UNIX, NYC
Message-ID <roy-DF3378.09280727102014@news.panix.com> (permalink)
References (2 earlier) <438d510f-05ae-47dd-bcda-42a8b777c99b@googlegroups.com> <m2itm2$l5r$1@dont-email.me> <683c84d8-d916-4b63-b4b2-92cd2763e260@googlegroups.com> <roy-8A6FEF.17562126102014@news.panix.com> <544e2cf2$0$13009$c3e8da3$5496439d@news.astraweb.com>

Show all headers | View raw


In article <544e2cf2$0$13009$c3e8da3$5496439d@news.astraweb.com>,
 Steven D'Aprano <steve+comp.lang.python@pearwood.info> wrote:

> Roy Smith wrote:
> 
> >> Yes and no. If something goes wrong in a .write() method,
> >> is not Python supposed to raise an error? (!)
> > 
> > Define "wrong".  It is not an error for a write() call to consume fewer
> > bytes than were requested.  
> 
> It's not? I'm asking a genuine question here, not a rhetorical one. I would
> expect that if I ask to write 2 bytes, and only 1 byte is written, that
> absolutely is an error. Under what circumstances is it okay for write() to
> throw data away?

It's not throwing away data.  The write() call returns a count of how 
many bytes is consumed, so you can present the rest of them again in a 
later write() call (assuming that makes sense to do for your 
application).

In some cases, the underlying hardware (or network protocol) may be 
unable to handle the number of bytes you requested, or may fail in 
mid-transmission.  Imagine a serial link.  You tell it to write 100 
bytes.  It starts sending them down the line and after 20 bytes, the 
connection fails.  What should write() do in that case?  It hasn't 
written all the data, so it needs to let you know that.  It also has 
written *some* of the data, so it needs to let you know that too.  What 
you do with that information is up to you, but it clearly needs to 
return a richer status indication than just success/failure.

Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Status of side-effecting functions in python Rustom Mody <rustompmody@gmail.com> - 2014-10-25 10:27 -0700
  Re: Status of side-effecting functions in python Wolfgang Maier <wolfgang.maier@biologie.uni-freiburg.de> - 2014-10-25 23:41 +0200
    Re: Status of side-effecting functions in python Dan Sommers <dan@tombstonezero.net> - 2014-10-25 22:22 +0000
      Re: Status of side-effecting functions in python Terry Reedy <tjreedy@udel.edu> - 2014-10-25 18:53 -0400
    Re: Status of side-effecting functions in python wxjmfauth@gmail.com - 2014-10-26 00:45 -0700
      Re: Status of side-effecting functions in python Dan Sommers <dan@tombstonezero.net> - 2014-10-26 13:41 +0000
        Re: Status of side-effecting functions in python Rustom Mody <rustompmody@gmail.com> - 2014-10-26 07:53 -0700
        Re: Status of side-effecting functions in python wxjmfauth@gmail.com - 2014-10-26 09:26 -0700
          Re: Status of side-effecting functions in python Marko Rauhamaa <marko@pacujo.net> - 2014-10-26 18:50 +0200
          Re: Status of side-effecting functions in python Roy Smith <roy@panix.com> - 2014-10-26 17:56 -0400
            Re: Status of side-effecting functions in python Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-10-27 22:30 +1100
              Re: Status of side-effecting functions in python Chris Angelico <rosuav@gmail.com> - 2014-10-27 22:44 +1100
              Re: Status of side-effecting functions in python Roy Smith <roy@panix.com> - 2014-10-27 09:28 -0400
              Re: Status of side-effecting functions in python Grant Edwards <invalid@invalid.invalid> - 2014-10-27 14:45 +0000
                Re: Status of side-effecting functions in python Marko Rauhamaa <marko@pacujo.net> - 2014-10-27 17:14 +0200
                Re: Status of side-effecting functions in python Nobody <nobody@nowhere.invalid> - 2014-10-28 03:52 +0000
                Re: Status of side-effecting functions in python Marko Rauhamaa <marko@pacujo.net> - 2014-10-28 11:07 +0200
                Re: Status of side-effecting functions in python Marko Rauhamaa <marko@pacujo.net> - 2014-10-28 11:10 +0200
                .write() behavior Alan Bawden <alan@scooby-doo.csail.mit.edu> - 2014-10-29 01:06 -0400
                Re: .write() behavior Marko Rauhamaa <marko@pacujo.net> - 2014-10-29 08:00 +0200
                Re: .write() behavior Alan Bawden <alan@scooby-doo.csail.mit.edu> - 2014-10-31 16:32 -0400
    Re: Status of side-effecting functions in python Grant Edwards <invalid@invalid.invalid> - 2014-10-27 14:22 +0000

csiph-web