zulip/zerver/management/commands
Anders Kaseorg 6988622fe8 ruff: Enable B023 Function definition does not bind loop variable.
Python’s loop scoping is misdesigned, resulting in a very common
gotcha for functions that close over loop variables [1].  The general
problem is so bad that even the Go developers plan to break
compatibility in order to fix the same design mistake in their
language [2].

Enable the Ruff rule function-uses-loop-variable (B023) [3], which
conservatively prohibits functions from binding loop variables at all.

[1] https://docs.python-guide.org/writing/gotchas/#late-binding-closures
[2] https://go.dev/s/loopvar-design
[3] https://beta.ruff.rs/docs/rules/function-uses-loop-variable/

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2023-09-11 18:03:45 -07:00
..
__init__.py
add_users_to_streams.py ruff: Fix PLC0208 Use a sequence type when iterating over values. 2023-06-06 14:58:11 -07:00
archive_messages.py
audit_fts_indexes.py
backup.py typing: Narrow connection type before accessing pg_version. 2022-06-23 19:25:48 -07:00
bulk_change_user_name.py actions: Split out zerver.actions.user_settings. 2022-04-14 17:14:34 -07:00
change_password.py
change_realm_subdomain.py management: Validate string_id when creating or renaming a realm. 2023-08-23 16:33:13 -07:00
change_user_email.py actions: Split out zerver.actions.user_settings. 2022-04-14 17:14:34 -07:00
change_user_role.py actions: Split out zerver.actions.users. 2022-04-14 17:14:34 -07:00
check_redis.py ruff: Enable B023 Function definition does not bind loop variable. 2023-09-11 18:03:45 -07:00
checkconfig.py
compilemessages.py ruff: Fix PERF102 Using only the keys/values of a dict. 2023-08-07 17:23:55 -07:00
convert_gitter_data.py
convert_mattermost_data.py run-dev: Drop .py from script name. 2023-03-03 18:02:37 -08:00
convert_rocketchat_data.py
convert_slack_data.py convert_slack_data: Document "--token" more correctly. 2023-06-23 11:09:45 -07:00
create_default_stream_groups.py ruff: Fix PLC0208 Use a sequence type when iterating over values. 2023-06-06 14:58:11 -07:00
create_realm.py management: Validate string_id when creating or renaming a realm. 2023-08-23 16:33:13 -07:00
create_realm_internal_bots.py
create_stream.py
create_user.py users: Set tos_version to -1 for users who have not logged-in yet. 2023-05-16 13:52:56 -07:00
deactivate_realm.py ruff: Fix RUF004 exit() is only available in the interpreter. 2022-12-04 22:11:24 -08:00
deactivate_user.py actions: Split out zerver.actions.users. 2022-04-14 17:14:34 -07:00
delete_old_unclaimed_attachments.py delete_old_unclaimed_attachments: Add flag to clean up storage. 2023-03-02 16:36:19 -08:00
delete_realm.py django: Use .exists() instead of .count() when possible. 2023-09-11 15:00:37 -07:00
delete_user.py delete-user: Update management command help doc-string. 2023-06-23 11:24:13 -07:00
deliver_scheduled_emails.py welcome-emails: Make some code comments and docstrings more evergreen. 2023-07-11 14:15:52 -07:00
deliver_scheduled_messages.py scheduled_message: Move remaining logic out of management command. 2023-05-09 13:48:28 -07:00
edit_linkifiers.py linkifier: Update edit_linkifier command to use url_template. 2023-04-19 12:20:49 -07:00
email_mirror.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
enqueue_digest_emails.py
enqueue_file.py ruff: Fix SIM115 Use context handler for opening files. 2023-01-23 11:18:36 -08:00
export.py export: Make --deactivate-realm exports be imported as active. 2023-04-03 16:08:43 -07:00
export_search.py export-search: Support writing out attachments as well. 2023-04-07 09:13:48 -07:00
export_single_user.py
export_usermessage_batch.py
fetch_tor_exit_nodes.py
fill_memcached_caches.py ruff: Fix SIM118 Use `key in dict` instead of `key in dict.keys()`. 2023-01-04 16:25:07 -08:00
generate_realm_creation_link.py
get_migration_status.py ruff: Fix ISC001 Implicitly concatenated string literals on one line. 2023-01-04 16:25:07 -08:00
import.py requirements: Upgrade Python requirements. 2023-04-25 21:20:33 -07:00
list_realms.py auth: Rewrite data model for tracking enabled auth backends. 2023-04-18 09:22:56 -07:00
logout_all_users.py logout_all_users: Add --rotate-api-keys option to the command. 2022-08-15 17:58:05 -07:00
makemessages.py makemessages: Fix handling of handlebars whitespace control. 2023-09-08 09:09:46 -07:00
merge_streams.py merge_streams: Move logic to zerver/actions/streams.py. 2022-07-13 16:12:36 -07:00
process_queue.py workers: Pass down if they are running multi-threaded. 2023-05-16 14:05:01 -07:00
promote_new_full_members.py actions: Split out zerver.actions.user_groups. 2022-04-14 17:14:30 -07:00
purge_queue.py
query_ldap.py
rate_limit.py
reactivate_realm.py ruff: Fix RUF004 exit() is only available in the interpreter. 2022-12-04 22:11:24 -08:00
reactivate_stream.py management: Add a reactivate-stream command. 2023-07-17 17:42:54 -07:00
realm_domain.py models: Fix return type of get_realm_domains. 2022-03-10 17:48:02 -08:00
register_server.py web: Save a 301 redirect from /terms/ to /policies/terms. 2023-03-24 14:51:01 -07:00
remove_users_from_stream.py actions: Split out zerver.actions.streams. 2022-04-14 17:14:35 -07:00
reset_authentication_attempt_count.py
restore_messages.py
runtornado.py runtornado: Fix COM818 Trailing comma on bare tuple prohibited. 2023-07-31 13:35:04 -07:00
scrub_realm.py scrub_realm: Exit unsuccessfully when asked to scrub an active realm. 2022-12-05 11:07:48 -08:00
send_custom_email.py send_email: Broaden type of context dict. 2023-08-30 11:54:28 -07:00
send_password_reset_email.py typing: Broaden type annotations for QuerySet compatibility. 2022-07-07 11:27:42 -07:00
send_realm_reactivation_email.py actions: Split out zerver.actions.realm_settings. 2022-04-14 17:14:37 -07:00
send_test_email.py management: Run log_email_config_errors in send_test_email command. 2022-02-10 10:55:49 -08:00
send_to_email_mirror.py
send_webhook_fixture_message.py ruff: Fix UP032 Use f-string instead of `format` call. 2023-08-02 15:58:55 -07:00
send_welcome_bot_message.py onboarding: Specialize Welcome Bot message for education organizations. 2023-05-01 16:48:48 -07:00
show_admins.py
soft_deactivate_users.py soft activation: Avoid QuerySet and use List instead. 2023-07-13 08:09:14 -07:00
sync_ldap_user_data.py send_custom_email: Stop turning every user query into an id-based set. 2023-08-09 15:49:49 -07:00
transfer_uploads_to_s3.py