#33387 closed Cleanup/optimization (wontfix)
Separate between words in Django commands and methods — at Version 3
| Reported by: | אורי | Owned by: | nobody |
|---|---|---|---|
| Component: | Core (Management commands) | Version: | dev |
| Severity: | Normal | Keywords: | |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description (last modified by )
I checked the list of Django commands, and a long time ago I noticed that many of them contain two or even three words but they are not separated. For example makemigrations, makemessages, changepassword and createsuperuser. Although I found commands with separated words such as remove_stale_contenttypes (which I was not aware of until right now). I checked PEP 8 and there it is written:
Function names should be lowercase, with words separated by underscores as necessary to improve readability.
Variable names follow the same convention as function names.
I think Django commands should follow the same logic, and separate words by underscores (make_migrations, make_messages, change_password, create_super_user, remove_stale_content_types). I suggest that you add the new spelling while keeping the old spelling working, or maybe deprecate the old spelling but for at least 3 Django releases, so they will still work. But according to PEP 8 I think words should be separated by underscores.
This is also relevant to TestCase methods such as setUp and tearDownClass. Although there I assume Django inherits them from Python the language, and maybe the changes should be done also there.
By the way, I already defined a few such commands in Speedy Net since 2019:
https://github.com/speedy-net/speedy-net/tree/master/speedy/core/base/management/commands
Change History (3)
comment:1 by , 4 years ago
| Summary: | Separate between words in Django commands → Separate between words in Django commands and methods |
|---|
comment:2 by , 4 years ago
| Resolution: | → wontfix |
|---|---|
| Status: | new → closed |
| Type: | Uncategorized → Cleanup/optimization |
comment:3 by , 4 years ago
| Description: | modified (diff) |
|---|
Thanks for this ticket, however I don't think it's worth changing just to follow PEP 8 it's really disruptive. In the case of such changes, it's crucial to have a strong consensus and clear significant benefits.
The
unittestunit testing framework was originally inspired by JUnit that's why it has camel-cased methods.You can raise the idea on the DevelopersMailingList or the python-ideas list (it was probably already raised) to reach a wider audience and see what other think, however I don't think there would be consensus to change that.