[issue35848] readinto is not a method on io.TextIOBase

2019-04-08 Thread miss-islington


miss-islington  added the comment:


New changeset 0a16bb15afec28f355bc28203b6b10610293f026 by Miss Islington (bot) 
in branch '3.7':
closes bpo-35848: Move all documentation regarding the readinto out of IOBase. 
(GH-11893)
https://github.com/python/cpython/commit/0a16bb15afec28f355bc28203b6b10610293f026


--
nosy: +miss-islington

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue35848] readinto is not a method on io.TextIOBase

2019-04-08 Thread Benjamin Peterson


Benjamin Peterson  added the comment:


New changeset 7b97ab35b28b761ab1253df427ee674b1a90f465 by Benjamin Peterson 
(Steve Palmer) in branch 'master':
closes bpo-35848: Move all documentation regarding the readinto out of IOBase. 
(GH-11893)
https://github.com/python/cpython/commit/7b97ab35b28b761ab1253df427ee674b1a90f465


--
resolution:  -> fixed
stage: patch review -> resolved
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue35848] readinto is not a method on io.TextIOBase

2019-04-08 Thread miss-islington


Change by miss-islington :


--
pull_requests: +12659

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue35848] readinto is not a method on io.TextIOBase

2019-02-16 Thread Roundup Robot


Change by Roundup Robot :


--
keywords: +patch
pull_requests: +11921
stage: needs patch -> patch review

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue35848] readinto is not a method on io.TextIOBase

2019-02-14 Thread Cheryl Sabella


Cheryl Sabella  added the comment:

Steve,

Would you be interested in creating a Github pull request with the 
documentation changes?

--
components: +Documentation -IO
nosy: +cheryl.sabella

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue35848] readinto is not a method on io.TextIOBase

2019-01-30 Thread Steve Palmer

Steve Palmer  added the comment:

I don't have a "real" use case.  I discovered the issue when I was developing a 
unittest suite for what it means to be "file-like".  I've been codifying the 
description in the standard library and exercising my tests against the 
built-in file-likes, such as the io.StringIO class, when it raised the 
Attribute Exception.

The more I think about it, the more like a documentation problem it feels.  For 
example, the statement "... because their signatures will vary ..." does not 
apply to readinto in the cases where it is defined.

For completeness, the note in io.TextIOBase stating "There is no readinto() 
method because Python’s character strings are immutable." would also need to be 
removed as part of a documentation fix.

(It's also nice when solutions result in less "stuff". :-)

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue35848] readinto is not a method on io.TextIOBase

2019-01-30 Thread Martin Panter

Martin Panter  added the comment:

I think it would be more practical to fix the documentation (option 1). Do you 
have a use case for “TextIOBase.readinto” raising ValueError (something more 
concrete than someone having expectations)?

--
nosy: +martin.panter

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue35848] readinto is not a method on io.TextIOBase

2019-01-29 Thread Karthikeyan Singaravelan


Karthikeyan Singaravelan  added the comment:

Thanks Steve for the details. I am adding io module maintainers to the issue 
who will have better context on whether to clarify the docs or to change the 
implementation to raise UnsupportedOperation.

--
nosy: +benjamin.peterson, stutzbach, xtreak

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue35848] readinto is not a method on io.TextIOBase

2019-01-29 Thread Steve Palmer


Steve Palmer  added the comment:

I agree with Karthikeyan that the method does not apply in the io.TextIOBase 
class context.  I'm sorry that I didn't spot the note in the description of 
io.TextIOBase - though I think that it is easy to miss.

I'd suggest that there are two ways to clear this up:

1. change only the documentation to read "Even though IOBase does not declare 
read() or write() because their signatures will vary, implementations and 
clients should consider those methods part of the interface."  (deleting 
reference to readinto())

2. change the standard library for io.TextIOBase to add a method readinto which 
will raise an UnsupportedOperation.

With option 1, the descriptions for io.RawIOBase and io.BufferedIOBase both 
include description of the readinto method, so nothing is lost by removing 
mention of it at the io.IOBase level of the hierarchy.  In any case, readinto() 
is not defined on the io.IOBase class.

>>> 'readinto' not in dir(io.IOBase)
True

With option 2, it feels like this is closer to the design intent of a common 
interface over similar but distinguished classes.  It also avoids removing 
things from the documentation in case someone already has some expectations of 
the behaviour.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue35848] readinto is not a method on io.TextIOBase

2019-01-29 Thread Rémi Lapeyre

Change by Rémi Lapeyre :


--
versions: +Python 3.8 -Python 3.7

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue35848] readinto is not a method on io.TextIOBase

2019-01-29 Thread Rémi Lapeyre

Rémi Lapeyre  added the comment:

I checked and io.TextIOBase is the only io.IOBase subclass to lack one of read, 
readinto or write:


>>> import io, inspect
>>> for name, obj in inspect.getmembers(io, predicate=inspect.isclass):
... missing = {'read', 'readinto', 'write'} - {name for name, _ in 
inspect.getmembers(obj)}
... if issubclass(obj, io.IOBase) and missing:
...  print(obj, missing, issubclass(obj, io.TextIOBase))

 {'write', 'read', 'readinto'} False
 {'readinto'} True
 {'readinto'} True
 {'readinto'} True

I can open a PR to fix the conflicts between the two parts of the 
documentation. I think it's appropriate to change TextIOBase to raise 
UnsupportedOperation when calling readinto and to change the documentation 
accordingly.

--
components: +IO -Documentation
nosy: +remi.lapeyre -docs@python, xtreak
versions:  -Python 3.8

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue35848] readinto is not a method on io.TextIOBase

2019-01-29 Thread Karthikeyan Singaravelan

Karthikeyan Singaravelan  added the comment:

https://docs.python.org/3/library/io.html#io.TextIOBase

> Base class for text streams. This class provides a character and line based 
> interface to stream I/O. There is no readinto() method because Python’s 
> character strings are immutable. It inherits IOBase. There is no public 
> constructor.

io.TextIOBase docs say there is no readinto method in the documentation.

--
nosy: +xtreak

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue35848] readinto is not a method on io.TextIOBase

2019-01-29 Thread SilentGhost


Change by SilentGhost :


--
assignee:  -> docs@python
components: +Documentation -IO
nosy: +docs@python
stage:  -> needs patch
versions: +Python 3.8

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue35848] readinto is not a method on io.TextIOBase

2019-01-29 Thread Steve Palmer


New submission from Steve Palmer :

class io.IOBase states "Even though IOBase does not declare read(), readinto(), 
or write() because their signatures will vary, implementations and clients 
should consider those methods part of the interface. Also, implementations may 
raise a ValueError (or UnsupportedOperation) when operations they do not 
support are called."  However, even though class io.TextIOBase is described as 
inheriting from io.IOBase, a call to readinto method returns AttributeError 
exception indicating no readinto attribute, inconsistent with the documentation.

--
components: IO
messages: 334507
nosy: steverpalmer
priority: normal
severity: normal
status: open
title: readinto is not a method on io.TextIOBase
type: behavior
versions: Python 3.7

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com