Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#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 אורי, 3 years ago

Summary: Separate between words in Django commandsSeparate between words in Django commands and methods

in reply to:  description comment:2 by Mariusz Felisiak, 3 years ago

Resolution: wontfix
Status: newclosed
Type: UncategorizedCleanup/optimization

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:

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.

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.

The unittest unit 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.

comment:3 by אורי, 3 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.
Back to Top