[issue32212] few discrepancy between source and docs in logging
New submission from Michal Plichta <mplichta@gmail.com>: my code: logger = logging.getLogger(name) logger.setLevel(level=logging.DEBUG) ... stream_handler = logging.StreamHandler(stream=stdout) stream_handler.setLevel(logging_level) stream_handler.setFormatter(fmt=formatter) and mypy-0.550 complains about fmt vs. form parameter in setFormatter method and level vs. lvl in setLevel method. ta_cc/cc_logger.py: note: In function "_get_stream_handler": ta_cc/cc_logger.py:34: error: Unexpected keyword argument "fmt" for "setFormatter" of "Handler" /usr/local/lib/mypy/typeshed/stdlib/2and3/logging/__init__.pyi:147: note: "setFormatter" of "Handler" defined here ta_cc/cc_logger.py:109: error: Unexpected keyword argument "level" for "setLevel" of "Logger" /usr/local/lib/mypy/typeshed/stdlib/2and3/logging/__init__.pyi:46: note: "setLevel" of "Logger" defined here I see in online documentation that indeed there are lvl and form parameters for all 2.7, 3.5 and 3.6 python version. However my Pycharm suggest level and fmt for all my installed python interpreters. I use: Pycharm-2017.3 Python 2.7.12 Python 3.5.2 Python 3.6.3 This is copy of my issue of: https://github.com/python/typeshed/issues/1619 ---------- assignee: docs@python components: Documentation messages: 307547 nosy: Michal Plichta, docs@python priority: normal severity: normal status: open title: few discrepancy between source and docs in logging versions: Python 2.7, Python 3.4, Python 3.5, Python 3.6 _______________________________________ Python tracker <report@bugs.python.org> <https://bugs.python.org/issue32212> _______________________________________
R. David Murray <rdmurray@bitdance.com> added the comment: I don't understand what the bug is that you are reporting here. Can you clarify? mypy isn't part of the stdlib, so an explanation in terms of what's in the stdlib would be helpful. ---------- nosy: +r.david.murray _______________________________________ Python tracker <report@bugs.python.org> <https://bugs.python.org/issue32212> _______________________________________
Michal Plichta <mplichta@gmail.com> added the comment: see at typeshed: https://github.com/python/typeshed/blob/master/stdlib/2and3/logging/__init__... def setLevel(self, lvl: Union[int, str]) -> None: ... def setFormatter(self, form: 'Formatter') -> None: ... this match python documentation: Handler.setLevel(lvl) Handler.setFormatter(form) but is source code (logging/__init__.py): def setFormatter(self, fmt): self.formatter = f def setLevel(self, level): self.level = _checkLevel(level) This is not big deal but keyworded arguments have different names fmt, form and level, lvl. Some tools which perform static code verification are base of *.pyi from typeshed repo and some form source code. ---------- _______________________________________ Python tracker <report@bugs.python.org> <https://bugs.python.org/issue32212> _______________________________________
R. David Murray <rdmurray@bitdance.com> added the comment: Ah. I'm guessing Vinay will probably want to fix the docs, then, since that's less disruptive backward compatibility wise. ---------- nosy: +vinay.sajip _______________________________________ Python tracker <report@bugs.python.org> <https://bugs.python.org/issue32212> _______________________________________
Change by R. David Murray <rdmurray@bitdance.com>: ---------- stage: -> needs patch versions: +Python 3.7 -Python 3.4, Python 3.5 _______________________________________ Python tracker <report@bugs.python.org> <https://bugs.python.org/issue32212> _______________________________________
Michal Plichta <mplichta@gmail.com> added the comment: Nice, btw maybe other parameters in logging's docs needs to be corrected. ---------- _______________________________________ Python tracker <report@bugs.python.org> <https://bugs.python.org/issue32212> _______________________________________
Vinay Sajip <vinay_sajip@yahoo.co.uk> added the comment: I don't have a problem with tweaking the documentation where discrepancies are found between source and doc for keyword arguments, but in both the examples you give, the arguments are positional, not keyword. Therefore in my opinion your code should be e.g. logger.setLevel(logging.DEBUG) and stream_handler.setFormatter(formatter) without using keyword arguments. For positionals, as I see it, the name shouldn't matter, nor should any minor discrepancy between doc and source. ---------- resolution: -> not a bug status: open -> pending _______________________________________ Python tracker <report@bugs.python.org> <https://bugs.python.org/issue32212> _______________________________________
R. David Murray <rdmurray@bitdance.com> added the comment: It does matter, though, because in Python you can specify a positional argument as if it were a keyword argument if you use the name from the source rather than the documented name. We have made other doc corrections along these lines. We've even done it for C functions where you can't specify the argument as if it were a keyword argument, though that is considerably more rare. That's a different question from the question of whether typing/linters should care, though. Arguably they should recommend specifying them as positionals. ---------- status: pending -> open _______________________________________ Python tracker <report@bugs.python.org> <https://bugs.python.org/issue32212> _______________________________________
Change by Éric Araujo <merwok@netwok.org>: ---------- keywords: +easy _______________________________________ Python tracker <report@bugs.python.org> <https://bugs.python.org/issue32212> _______________________________________
Change by Vinay Sajip <vinay_sajip@yahoo.co.uk>: ---------- keywords: +patch pull_requests: +4668 stage: needs patch -> patch review _______________________________________ Python tracker <report@bugs.python.org> <https://bugs.python.org/issue32212> _______________________________________
Vinay Sajip <vinay_sajip@yahoo.co.uk> added the comment: New changeset a9f8df646aac7fc94ced0aefd1ed2c8566d14d10 by Vinay Sajip in branch 'master': bpo-32212: Updated logging documentation to make parameter names more consistent with source. (GH-4765) https://github.com/python/cpython/commit/a9f8df646aac7fc94ced0aefd1ed2c8566d... ---------- _______________________________________ Python tracker <report@bugs.python.org> <https://bugs.python.org/issue32212> _______________________________________
Change by Vinay Sajip <vinay_sajip@yahoo.co.uk>: ---------- pull_requests: +4670 _______________________________________ Python tracker <report@bugs.python.org> <https://bugs.python.org/issue32212> _______________________________________
Change by Vinay Sajip <vinay_sajip@yahoo.co.uk>: ---------- pull_requests: +4671 _______________________________________ Python tracker <report@bugs.python.org> <https://bugs.python.org/issue32212> _______________________________________
Vinay Sajip <vinay_sajip@yahoo.co.uk> added the comment: New changeset 63868181a904c844d8d01e3badfdd5b134acc5fa by Vinay Sajip in branch '3.6': bpo-32212: Updated logging documentation to make parameter names more consistent with source. (GH-4765) (GH-4767) https://github.com/python/cpython/commit/63868181a904c844d8d01e3badfdd5b134a... ---------- _______________________________________ Python tracker <report@bugs.python.org> <https://bugs.python.org/issue32212> _______________________________________
Vinay Sajip <vinay_sajip@yahoo.co.uk> added the comment: New changeset 292fce9934280867ca9a65870495f83fca37751e by Vinay Sajip in branch '2.7': bpo-32212: Updated logging documentation to make parameter names more consistent with source. (GH-4765) (GH-4768) https://github.com/python/cpython/commit/292fce9934280867ca9a65870495f83fca3... ---------- _______________________________________ Python tracker <report@bugs.python.org> <https://bugs.python.org/issue32212> _______________________________________
Change by Vinay Sajip <vinay_sajip@yahoo.co.uk>: ---------- resolution: not a bug -> fixed stage: patch review -> resolved status: open -> closed type: -> enhancement _______________________________________ Python tracker <report@bugs.python.org> <https://bugs.python.org/issue32212> _______________________________________
participants (4)
-
Michal Plichta -
R. David Murray -
Vinay Sajip -
Éric Araujo