[Python-ideas] [PEP8] Predicate consistency (original) (raw)
Marco Buttu marco.buttu at gmail.com
Fri Feb 6 07:21:42 CET 2015
- Previous message: [Python-ideas] [PEP8] Predicate consistency
- Next message: [Python-ideas] [PEP8] Predicate consistency
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 06/02/2015 01:12, Barry Warsaw wrote:
On Feb 05, 2015, at 11:36 PM, Marco Buttu wrote:
>Hi all, the PEP 8 says that function and method names should be lowercase, >with words separated by underscores as necessary to improve >readability. Maybe it could be a good idea to specify in the PEP8 that the >predicates should not be separated by underscores, because it is pretty >annoying to see this kind of inconsistency: > > str.isdigit() > float.isinteger() I don't think PEP 8 should change. Even words in predicates should be separated by an underscore.
Are you proposing to change our mind? Because currently we have both in the core and in the standard library mainly predicates not separated by underscores:
isinstance() issubclass() hasattr() str.is* set.is* bytearray.is* math.is* os.is* ...
And recently: asyncio.iscoroutinefunction(). Your proposal seems to me really inconsistent with the whole codebase, and I think the reason sometime we get wrong (as in the case of float.is_integer()) is a lack (about predicates) in the PEP8. The PEP8 suggests that we should use "words separated by underscores as necessary to improve readability", and that's why sometimes we write is_foo() instead of isfoo(). I believe your suggestion is an evidence of that lack.
So, I am proposing to be more clear, maybe by writing somethink like that:
""" Function names should be lowercase and, except for predicates, with words separated by underscores as necessary to improve readability. Yes:
Do not use underscores in predicates
isinstance() hasattr()
Use underscores to improve readability
dont_write_bytecode()
No:
is_instance() has_attr() dontwritebytecode() """
We have to change just this part of the PEP8, because the method section says to use the function naming rules.
But it's not worth it to go back and change old APIs that have been in existence forever.
I am not so crazy ;) I am just proposing a clear rule for predicates in order to avoid, in the future, inconsistency with the current general rule.
-- Marco Buttu
INAF-Osservatorio Astronomico di Cagliari Via della Scienza n. 5, 09047 Selargius (CA) Phone: 070 711 80 217 Email: mbuttu at oa-cagliari.inaf.it
- Previous message: [Python-ideas] [PEP8] Predicate consistency
- Next message: [Python-ideas] [PEP8] Predicate consistency
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]