[issue29002] typing.AnyStr doc is unclear about python2 unicode support
New submission from Alex Jurkiewicz: The typing.AnyStr documentation: https://docs.python.org/3/library/typing.html#typing.AnyStr It gives some examples using u-strings (u'foo') but doesn't make explicit some subtleties about behaviour with Python 2. Specifically, with Python 2 all the given examples work, and even this works: concat("foo", u"bar") Which seems contrary to the goal of AnyStr being "used for functions that may accept any kind of string without allowing different kinds of strings to mix". I think the documentation should call out that for Python 2, AnyStr doesn't distinguish between str & unicode, and mention that in python 2, b'str' is equivalent to 'str' (I know this is mentioned elsewhere, but it seems useful to repeat it here). ---------- assignee: docs@python components: Documentation messages: 283524 nosy: aj, docs@python priority: normal severity: normal status: open title: typing.AnyStr doc is unclear about python2 unicode support type: enhancement versions: Python 2.7, Python 3.3, Python 3.4, Python 3.5, Python 3.6, Python 3.7 _______________________________________ Python tracker <report@bugs.python.org> <http://bugs.python.org/issue29002> _______________________________________
Jim Fasarakis-Hilliard added the comment: The ``typing`` module doesn't exist in Python 2.7. All code samples provided in the docs *work* since no type-checking is performed by Python. That is, no enforcing of the types provided is made, that's for 3rd party packages to supply. ---------- nosy: +Jim Fasarakis-Hilliard _______________________________________ Python tracker <report@bugs.python.org> <http://bugs.python.org/issue29002> _______________________________________
Jim Fasarakis-Hilliard added the comment: Unless of course you mean pip installing typing for Py2 and then using ``# type`` comments to provide the types. Even in that case, I don't really think the documentation for Python 3.5 should be mentioning types in 2.7, that'd get confusing. ---------- _______________________________________ Python tracker <report@bugs.python.org> <http://bugs.python.org/issue29002> _______________________________________
Changes by Ivan Levkivskyi <levkivskyi@gmail.com>: ---------- nosy: +levkivskyi _______________________________________ Python tracker <report@bugs.python.org> <http://bugs.python.org/issue29002> _______________________________________
Guido van Rossum added the comment: I agree that it would just be confusing if the Python 3 docs were to explain Python 2 specific things. Maybe this should be explained in the mypy docs (or maybe it's really a mypy bug). Can you open an issue there? ---------- nosy: +gvanrossum resolution: -> wont fix status: open -> closed _______________________________________ Python tracker <report@bugs.python.org> <http://bugs.python.org/issue29002> _______________________________________
participants (4)
-
Alex Jurkiewicz
-
Guido van Rossum
-
Ivan Levkivskyi
-
Jim Fasarakis-Hilliard