diff --git a/analytics/lib/counts.py b/analytics/lib/counts.py
index ce8ab4ce14..f83346a8e1 100644
--- a/analytics/lib/counts.py
+++ b/analytics/lib/counts.py
@@ -325,9 +325,9 @@ def sql_data_collector(
def do_pull_minutes_active(property: str, start_time: datetime, end_time: datetime,
realm: Optional[Realm] = None) -> int:
user_activity_intervals = UserActivityInterval.objects.filter(
- end__gt=start_time, start__lt=end_time
+ end__gt=start_time, start__lt=end_time,
).select_related(
- 'user_profile'
+ 'user_profile',
).values_list(
'user_profile_id', 'user_profile__realm_id', 'start', 'end')
@@ -660,7 +660,7 @@ def get_count_stats(realm: Optional[Realm]=None) -> Dict[str, CountStat]:
sql_data_collector(
RealmCount, count_realm_active_humans_query(realm), None),
CountStat.DAY,
- dependencies=['active_users_audit:is_bot:day', '15day_actives::day'])
+ dependencies=['active_users_audit:is_bot:day', '15day_actives::day']),
]
return OrderedDict([(stat.property, stat) for stat in count_stats_])
diff --git a/analytics/management/commands/analyze_user_activity.py b/analytics/management/commands/analyze_user_activity.py
index 19322082e2..07d52136d2 100644
--- a/analytics/management/commands/analyze_user_activity.py
+++ b/analytics/management/commands/analyze_user_activity.py
@@ -24,7 +24,7 @@ def analyze_activity(options: Dict[str, Any]) -> None:
continue
total_duration += duration
- print("%-*s%s" % (37, user_profile.email, duration,))
+ print("%-*s%s" % (37, user_profile.email, duration))
print(f"\nTotal Duration: {total_duration}")
print(f"\nTotal Duration in minutes: {total_duration.total_seconds() / 60.}")
diff --git a/analytics/management/commands/check_analytics_state.py b/analytics/management/commands/check_analytics_state.py
index 464659b68f..c1a14f0341 100644
--- a/analytics/management/commands/check_analytics_state.py
+++ b/analytics/management/commands/check_analytics_state.py
@@ -16,7 +16,7 @@ states = {
0: "OK",
1: "WARNING",
2: "CRITICAL",
- 3: "UNKNOWN"
+ 3: "UNKNOWN",
}
class Command(BaseCommand):
diff --git a/analytics/models.py b/analytics/models.py
index 491e144ac0..b81ea5cff1 100644
--- a/analytics/models.py
+++ b/analytics/models.py
@@ -57,7 +57,7 @@ class InstallationCount(BaseCount):
UniqueConstraint(
fields=["property", "end_time"],
condition=Q(subgroup__isnull=True),
- name='unique_installation_count_null_subgroup')
+ name='unique_installation_count_null_subgroup'),
]
def __str__(self) -> str:
@@ -76,7 +76,7 @@ class RealmCount(BaseCount):
UniqueConstraint(
fields=["realm", "property", "end_time"],
condition=Q(subgroup__isnull=True),
- name='unique_realm_count_null_subgroup')
+ name='unique_realm_count_null_subgroup'),
]
index_together = ["property", "end_time"]
@@ -97,7 +97,7 @@ class UserCount(BaseCount):
UniqueConstraint(
fields=["user", "property", "end_time"],
condition=Q(subgroup__isnull=True),
- name='unique_user_count_null_subgroup')
+ name='unique_user_count_null_subgroup'),
]
# This index dramatically improves the performance of
# aggregating from users to realms
@@ -120,7 +120,7 @@ class StreamCount(BaseCount):
UniqueConstraint(
fields=["stream", "property", "end_time"],
condition=Q(subgroup__isnull=True),
- name='unique_stream_count_null_subgroup')
+ name='unique_stream_count_null_subgroup'),
]
# This index dramatically improves the performance of
# aggregating from streams to realms
diff --git a/analytics/tests/test_views.py b/analytics/tests/test_views.py
index 6e4de62be8..1b8d1465aa 100644
--- a/analytics/tests/test_views.py
+++ b/analytics/tests/test_views.py
@@ -403,7 +403,7 @@ class TestSupportEndpoint(ZulipTestCase):
self.assert_in_success_response(['user\n', '
King Hamlet
',
'Email: hamlet@zulip.com', 'Is active: True
',
'Admins: desdemona@zulip.com, iago@zulip.com\n',
- 'class="copy-button" data-copytext="desdemona@zulip.com, iago@zulip.com"'
+ 'class="copy-button" data-copytext="desdemona@zulip.com, iago@zulip.com"',
], result)
def check_zulip_realm_query_result(result: HttpResponse) -> None:
@@ -448,19 +448,19 @@ class TestSupportEndpoint(ZulipTestCase):
self.assert_in_success_response(['preregistration user\n',
'realm creation\n',
'Link: http://zulip.testserver/accounts/do_confirm/',
- 'Expires in: 1\xa0day
\n'
+ 'Expires in: 1\xa0day
\n',
], result)
def check_multiuse_invite_link_query_result(result: HttpResponse) -> None:
self.assert_in_success_response(['multiuse invite\n',
'Link: http://zulip.testserver/join/',
- 'Expires in: 1\xa0week, 3'
+ 'Expires in: 1\xa0week, 3',
], result)
def check_realm_reactivation_link_query_result(result: HttpResponse) -> None:
self.assert_in_success_response(['realm reactivation\n',
'Link: http://zulip.testserver/reactivate/',
- 'Expires in: 1\xa0day'
+ 'Expires in: 1\xa0day',
], result)
self.login('cordelia')
diff --git a/analytics/views.py b/analytics/views.py
index d818a1d229..702bb34dc6 100644
--- a/analytics/views.py
+++ b/analytics/views.py
@@ -401,7 +401,7 @@ def make_table(title: str, cols: List[str], rows: List[Any], has_row_class: bool
content = loader.render_to_string(
'analytics/ad_hoc_query.html',
- dict(data=data)
+ dict(data=data),
)
return content
@@ -590,7 +590,7 @@ def realm_summary_table(realm_minutes: Dict[str, float]) -> str:
realm_admins: Dict[str, List[str]] = defaultdict(list)
for up in UserProfile.objects.select_related("realm").filter(
role=UserProfile.ROLE_REALM_ADMINISTRATOR,
- is_active=True
+ is_active=True,
):
realm_admins[up.realm.string_id].append(up.delivery_email)
@@ -674,7 +674,7 @@ def realm_summary_table(realm_minutes: Dict[str, float]) -> str:
content = loader.render_to_string(
'analytics/realm_summary_table.html',
dict(rows=rows, num_active_sites=num_active_sites,
- now=now.strftime('%Y-%m-%dT%H:%M:%SZ'))
+ now=now.strftime('%Y-%m-%dT%H:%M:%SZ')),
)
return content
@@ -688,18 +688,18 @@ def user_activity_intervals() -> Tuple[mark_safe, Dict[str, float]]:
all_intervals = UserActivityInterval.objects.filter(
end__gte=day_start,
- start__lte=day_end
+ start__lte=day_end,
).select_related(
'user_profile',
- 'user_profile__realm'
+ 'user_profile__realm',
).only(
'start',
'end',
'user_profile__delivery_email',
- 'user_profile__realm__string_id'
+ 'user_profile__realm__string_id',
).order_by(
'user_profile__realm__string_id',
- 'user_profile__delivery_email'
+ 'user_profile__delivery_email',
)
by_string_id = lambda row: row.user_profile.realm.string_id
@@ -735,7 +735,7 @@ def sent_messages_report(realm: str) -> str:
cols = [
'Date',
'Humans',
- 'Bots'
+ 'Bots',
]
query = SQL('''
@@ -833,7 +833,7 @@ def ad_hoc_queries() -> List[Dict[str, str]]:
return dict(
content=content,
- title=title
+ title=title,
)
pages = []
@@ -868,7 +868,7 @@ def ad_hoc_queries() -> List[Dict[str, str]]:
'User id',
'Name',
'Hits',
- 'Last time'
+ 'Last time',
]
pages.append(get_page(query, cols, title))
@@ -898,7 +898,7 @@ def ad_hoc_queries() -> List[Dict[str, str]]:
'Realm',
'Client',
'Hits',
- 'Last time'
+ 'Last time',
]
pages.append(get_page(query, cols, title))
@@ -936,7 +936,7 @@ def ad_hoc_queries() -> List[Dict[str, str]]:
'Realm',
'Client',
'Hits',
- 'Last time'
+ 'Last time',
]
pages.append(get_page(query, cols, title))
@@ -974,7 +974,7 @@ def ad_hoc_queries() -> List[Dict[str, str]]:
'Client',
'Realm',
'Hits',
- 'Last time'
+ 'Last time',
]
pages.append(get_page(query, cols, title))
@@ -1184,7 +1184,7 @@ def get_user_activity_records_for_realm(realm: str, is_bot: bool) -> QuerySet:
records = UserActivity.objects.filter(
user_profile__realm__string_id=realm,
user_profile__is_active=True,
- user_profile__is_bot=is_bot
+ user_profile__is_bot=is_bot,
)
records = records.order_by("user_profile__delivery_email", "-last_visit")
records = records.select_related('user_profile', 'client').only(*fields)
@@ -1196,11 +1196,11 @@ def get_user_activity_records_for_email(email: str) -> List[QuerySet]:
'query',
'client__name',
'count',
- 'last_visit'
+ 'last_visit',
]
records = UserActivity.objects.filter(
- user_profile__delivery_email=email
+ user_profile__delivery_email=email,
)
records = records.order_by("-last_visit")
records = records.select_related('user_profile', 'client').only(*fields)
@@ -1211,7 +1211,7 @@ def raw_user_activity_table(records: List[QuerySet]) -> str:
'query',
'client',
'count',
- 'last_visit'
+ 'last_visit',
]
def row(record: QuerySet) -> List[Any]:
@@ -1219,7 +1219,7 @@ def raw_user_activity_table(records: List[QuerySet]) -> str:
record.query,
record.client.name,
record.count,
- format_date_for_activity_reports(record.last_visit)
+ format_date_for_activity_reports(record.last_visit),
]
rows = list(map(row, records))
@@ -1238,13 +1238,13 @@ def get_user_activity_summary(records: List[QuerySet]) -> Dict[str, Dict[str, An
if action not in summary:
summary[action] = dict(
count=record.count,
- last_visit=record.last_visit
+ last_visit=record.last_visit,
)
else:
summary[action]['count'] += record.count
summary[action]['last_visit'] = max(
summary[action]['last_visit'],
- record.last_visit
+ record.last_visit,
)
if records:
diff --git a/corporate/tests/test_stripe.py b/corporate/tests/test_stripe.py
index 7643ee67f2..1be9d5be65 100644
--- a/corporate/tests/test_stripe.py
+++ b/corporate/tests/test_stripe.py
@@ -245,14 +245,14 @@ class StripeTestCase(ZulipTestCase):
# sanity check our 8 expected users are active
self.assertEqual(
UserProfile.objects.filter(realm=realm, is_active=True).count(),
- 8
+ 8,
)
# Make sure we have active users outside our realm (to make
# sure relevant queries restrict on realm).
self.assertEqual(
UserProfile.objects.exclude(realm=realm).filter(is_active=True).count(),
- 10
+ 10,
)
# Our seat count excludes our guest user and bot, and
@@ -633,14 +633,14 @@ class StripeTest(StripeTestCase):
update_license_ledger_if_needed(realm, self.now)
self.assertEqual(
LicenseLedger.objects.order_by('-id').values_list('licenses', 'licenses_at_next_renewal').first(),
- (12, 12)
+ (12, 12),
)
with patch('corporate.lib.stripe.get_latest_seat_count', return_value=15):
update_license_ledger_if_needed(realm, self.next_month)
self.assertEqual(
LicenseLedger.objects.order_by('-id').values_list('licenses', 'licenses_at_next_renewal').first(),
- (15, 15)
+ (15, 15),
)
invoice_plans_as_needed(self.next_month)
@@ -662,7 +662,7 @@ class StripeTest(StripeTestCase):
"amount_due": 15 * 80 * 100, "amount_paid": 0, "amount_remaining": 15 * 80 * 100,
"auto_advance": True, "billing": "charge_automatically", "collection_method": "charge_automatically",
"customer_email": self.example_email("hamlet"), "discount": None, "paid": False, "status": "open",
- "total": 15 * 80 * 100
+ "total": 15 * 80 * 100,
}
for key, value in invoice_params.items():
self.assertEqual(invoices[0].get(key), value)
@@ -673,7 +673,7 @@ class StripeTest(StripeTestCase):
"plan": None, "quantity": 15, "subscription": None, "discountable": False,
"period": {
"start": datetime_to_timestamp(free_trial_end_date),
- "end": datetime_to_timestamp(add_months(free_trial_end_date, 12))
+ "end": datetime_to_timestamp(add_months(free_trial_end_date, 12)),
},
}
for key, value in invoice_item_params.items():
@@ -687,14 +687,14 @@ class StripeTest(StripeTestCase):
update_license_ledger_if_needed(realm, add_months(free_trial_end_date, 10))
self.assertEqual(
LicenseLedger.objects.order_by('-id').values_list('licenses', 'licenses_at_next_renewal').first(),
- (19, 19)
+ (19, 19),
)
invoice_plans_as_needed(add_months(free_trial_end_date, 10))
invoices = [invoice for invoice in stripe.Invoice.list(customer=stripe_customer.id)]
self.assertEqual(len(invoices), 2)
invoice_params = {
"amount_due": 5172, "auto_advance": True, "billing": "charge_automatically",
- "collection_method": "charge_automatically", "customer_email": "hamlet@zulip.com"
+ "collection_method": "charge_automatically", "customer_email": "hamlet@zulip.com",
}
invoice_items = [invoice_item for invoice_item in invoices[0].get("lines")]
self.assertEqual(len(invoice_items), 1)
@@ -703,8 +703,8 @@ class StripeTest(StripeTestCase):
"discountable": False, "quantity": 4,
"period": {
"start": datetime_to_timestamp(add_months(free_trial_end_date, 10)),
- "end": datetime_to_timestamp(add_months(free_trial_end_date, 12))
- }
+ "end": datetime_to_timestamp(add_months(free_trial_end_date, 12)),
+ },
}
invoice_plans_as_needed(add_months(free_trial_end_date, 12))
@@ -774,7 +774,7 @@ class StripeTest(StripeTestCase):
'Zulip Standard', 'Free Trial', str(self.seat_count),
'You are using', f'{self.seat_count} of {123} licenses',
'Your plan will be upgraded to', 'March 2, 2012',
- f'{80 * 123:,.2f}', 'Billed by invoice'
+ f'{80 * 123:,.2f}', 'Billed by invoice',
]:
self.assert_in_response(substring, response)
@@ -798,7 +798,7 @@ class StripeTest(StripeTestCase):
"amount_due": 123 * 80 * 100, "amount_paid": 0, "amount_remaining": 123 * 80 * 100,
"auto_advance": True, "billing": "send_invoice", "collection_method": "send_invoice",
"customer_email": self.example_email("hamlet"), "discount": None, "paid": False, "status": "open",
- "total": 123 * 80 * 100
+ "total": 123 * 80 * 100,
}
for key, value in invoice_params.items():
self.assertEqual(invoices[0].get(key), value)
@@ -809,7 +809,7 @@ class StripeTest(StripeTestCase):
"plan": None, "quantity": 123, "subscription": None, "discountable": False,
"period": {
"start": datetime_to_timestamp(free_trial_end_date),
- "end": datetime_to_timestamp(add_months(free_trial_end_date, 12))
+ "end": datetime_to_timestamp(add_months(free_trial_end_date, 12)),
},
}
for key, value in invoice_item_params.items():
diff --git a/docs/conf.py b/docs/conf.py
index 3f9c521fb8..f11bad4cc1 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -266,7 +266,7 @@ latex_documents = [
# (source start file, name, description, authors, manual section).
man_pages = [
(master_doc, 'zulip-contributor-docs', 'Zulip Documentation',
- [author], 1)
+ [author], 1),
]
# If true, show URL addresses after external links.
diff --git a/pgroonga/migrations/0002_html_escape_subject.py b/pgroonga/migrations/0002_html_escape_subject.py
index 776d4c99f2..3adfbe873d 100644
--- a/pgroonga/migrations/0002_html_escape_subject.py
+++ b/pgroonga/migrations/0002_html_escape_subject.py
@@ -24,5 +24,5 @@ class Migration(migrations.Migration):
operations = [
migrations.RunPython(rebuild_pgroonga_index,
- reverse_code=migrations.RunPython.noop)
+ reverse_code=migrations.RunPython.noop),
]
diff --git a/pgroonga/migrations/0003_v2_api_upgrade.py b/pgroonga/migrations/0003_v2_api_upgrade.py
index 1c3aa2b66d..49ae5d3cc4 100644
--- a/pgroonga/migrations/0003_v2_api_upgrade.py
+++ b/pgroonga/migrations/0003_v2_api_upgrade.py
@@ -32,5 +32,5 @@ DROP INDEX zerver_message_search_pgroonga;
CREATE INDEX CONCURRENTLY zerver_message_search_pgroonga ON zerver_message
USING pgroonga(search_pgroonga pgroonga.text_full_text_search_ops);
- """])
+ """]),
]
diff --git a/puppet/zulip/files/nagios_plugins/zulip_app_frontend/check_send_receive_time b/puppet/zulip/files/nagios_plugins/zulip_app_frontend/check_send_receive_time
index ba220bded7..739a78c7a4 100755
--- a/puppet/zulip/files/nagios_plugins/zulip_app_frontend/check_send_receive_time
+++ b/puppet/zulip/files/nagios_plugins/zulip_app_frontend/check_send_receive_time
@@ -82,7 +82,7 @@ states = {
"OK": 0,
"WARNING": 1,
"CRITICAL": 2,
- "UNKNOWN": 3
+ "UNKNOWN": 3,
}
def report(state: str, timestamp: Any = None, msg: Optional[str] = None) -> None:
diff --git a/puppet/zulip/files/nagios_plugins/zulip_nagios_server/check_postgres_replication_lag b/puppet/zulip/files/nagios_plugins/zulip_nagios_server/check_postgres_replication_lag
index 68ba489f53..32dd089e05 100755
--- a/puppet/zulip/files/nagios_plugins/zulip_nagios_server/check_postgres_replication_lag
+++ b/puppet/zulip/files/nagios_plugins/zulip_nagios_server/check_postgres_replication_lag
@@ -14,7 +14,7 @@ states = {
"OK": 0,
"WARNING": 1,
"CRITICAL": 2,
- "UNKNOWN": 3
+ "UNKNOWN": 3,
}
def report(state: str, msg: str) -> "NoReturn":
diff --git a/puppet/zulip/files/nagios_plugins/zulip_postgres_appdb/check_fts_update_log b/puppet/zulip/files/nagios_plugins/zulip_postgres_appdb/check_fts_update_log
index 1f11d9f60d..9b19f5cbc6 100755
--- a/puppet/zulip/files/nagios_plugins/zulip_postgres_appdb/check_fts_update_log
+++ b/puppet/zulip/files/nagios_plugins/zulip_postgres_appdb/check_fts_update_log
@@ -18,7 +18,7 @@ states = {
"OK": 0,
"WARNING": 1,
"CRITICAL": 2,
- "UNKNOWN": 3
+ "UNKNOWN": 3,
}
def report(state: str, num: str) -> None:
diff --git a/puppet/zulip/files/nagios_plugins/zulip_postgres_common/check_postgres_backup b/puppet/zulip/files/nagios_plugins/zulip_postgres_common/check_postgres_backup
index 33305aae70..1bd65b0412 100755
--- a/puppet/zulip/files/nagios_plugins/zulip_postgres_common/check_postgres_backup
+++ b/puppet/zulip/files/nagios_plugins/zulip_postgres_common/check_postgres_backup
@@ -9,7 +9,7 @@ states = {
"OK": 0,
"WARNING": 1,
"CRITICAL": 2,
- "UNKNOWN": 3
+ "UNKNOWN": 3,
}
def report(state: str, msg: str) -> None:
diff --git a/puppet/zulip_ops/files/nagios_plugins/zulip_zephyr_mirror/check_personal_zephyr_mirrors b/puppet/zulip_ops/files/nagios_plugins/zulip_zephyr_mirror/check_personal_zephyr_mirrors
index af8fd0ab86..7e66611cbf 100755
--- a/puppet/zulip_ops/files/nagios_plugins/zulip_zephyr_mirror/check_personal_zephyr_mirrors
+++ b/puppet/zulip_ops/files/nagios_plugins/zulip_zephyr_mirror/check_personal_zephyr_mirrors
@@ -18,7 +18,7 @@ states: Dict[str, int] = {
"OK": 0,
"WARNING": 1,
"CRITICAL": 2,
- "UNKNOWN": 3
+ "UNKNOWN": 3,
}
def report(state: str, output: str) -> None:
diff --git a/puppet/zulip_ops/files/nagios_plugins/zulip_zephyr_mirror/check_user_zephyr_mirror_liveness b/puppet/zulip_ops/files/nagios_plugins/zulip_zephyr_mirror/check_user_zephyr_mirror_liveness
index c6b525f62a..13b1fdff8a 100755
--- a/puppet/zulip_ops/files/nagios_plugins/zulip_zephyr_mirror/check_user_zephyr_mirror_liveness
+++ b/puppet/zulip_ops/files/nagios_plugins/zulip_zephyr_mirror/check_user_zephyr_mirror_liveness
@@ -32,7 +32,7 @@ states: Dict[str, int] = {
"OK": 0,
"WARNING": 1,
"CRITICAL": 2,
- "UNKNOWN": 3
+ "UNKNOWN": 3,
}
def report(state: str, short_msg: str, too_old: Optional[Set[Any]] = None) -> None:
@@ -40,8 +40,8 @@ def report(state: str, short_msg: str, too_old: Optional[Set[Any]] = None) -> No
if too_old:
too_old_data = "\nLast call to get_message for recently out of date mirrors:\n" + "\n".join(
["{:>16}: {}".format(user.user_profile.email,
- user.last_visit.strftime("%Y-%m-%d %H:%M %Z")
- ) for user in too_old]
+ user.last_visit.strftime("%Y-%m-%d %H:%M %Z"),
+ ) for user in too_old],
)
print(f"{state}: {short_msg}{too_old_data}")
diff --git a/puppet/zulip_ops/files/nagios_plugins/zulip_zephyr_mirror/check_zephyr_mirror b/puppet/zulip_ops/files/nagios_plugins/zulip_zephyr_mirror/check_zephyr_mirror
index 3e9c86184c..ed7d8a9ed5 100755
--- a/puppet/zulip_ops/files/nagios_plugins/zulip_zephyr_mirror/check_zephyr_mirror
+++ b/puppet/zulip_ops/files/nagios_plugins/zulip_zephyr_mirror/check_zephyr_mirror
@@ -19,7 +19,7 @@ states: Dict[str, int] = {
"OK": 0,
"WARNING": 1,
"CRITICAL": 2,
- "UNKNOWN": 3
+ "UNKNOWN": 3,
}
def report(state: str, data: str, last_check: float) -> None:
diff --git a/scripts/lib/check_rabbitmq_queue.py b/scripts/lib/check_rabbitmq_queue.py
index 2bae26d2b5..cb4095539d 100644
--- a/scripts/lib/check_rabbitmq_queue.py
+++ b/scripts/lib/check_rabbitmq_queue.py
@@ -36,7 +36,7 @@ states = {
0: "OK",
1: "WARNING",
2: "CRITICAL",
- 3: "UNKNOWN"
+ 3: "UNKNOWN",
}
MAX_SECONDS_TO_CLEAR_FOR_BURSTS: DefaultDict[str, int] = defaultdict(
diff --git a/scripts/lib/create-production-venv b/scripts/lib/create-production-venv
index 37686fd450..d7b50cd76b 100755
--- a/scripts/lib/create-production-venv
+++ b/scripts/lib/create-production-venv
@@ -10,7 +10,7 @@ if ZULIP_PATH not in sys.path:
from scripts.lib.zulip_tools import os_families, overwrite_symlink, run, parse_os_release
from scripts.lib.setup_venv import (
- setup_virtualenv, get_venv_dependencies
+ setup_virtualenv, get_venv_dependencies,
)
parser = argparse.ArgumentParser(description="Create a production virtualenv with caching")
diff --git a/scripts/lib/create-thumbor-venv b/scripts/lib/create-thumbor-venv
index 4dd058aa23..3ecf1bf533 100755
--- a/scripts/lib/create-thumbor-venv
+++ b/scripts/lib/create-thumbor-venv
@@ -10,7 +10,7 @@ if ZULIP_PATH not in sys.path:
from scripts.lib.zulip_tools import os_families, run, parse_os_release
from scripts.lib.setup_venv import (
- setup_virtualenv, THUMBOR_VENV_DEPENDENCIES, YUM_THUMBOR_VENV_DEPENDENCIES
+ setup_virtualenv, THUMBOR_VENV_DEPENDENCIES, YUM_THUMBOR_VENV_DEPENDENCIES,
)
parser = argparse.ArgumentParser(description="Create a thumbor virtualenv with caching")
diff --git a/scripts/lib/email-mirror-postfix b/scripts/lib/email-mirror-postfix
index c8e404e118..e2cd3d58e0 100755
--- a/scripts/lib/email-mirror-postfix
+++ b/scripts/lib/email-mirror-postfix
@@ -94,7 +94,7 @@ def process_response_error(e: HTTPError) -> None:
def send_email_mirror(
- rcpt_to: str, shared_secret: str, host: str, url: str, test: bool, verify_ssl: bool
+ rcpt_to: str, shared_secret: str, host: str, url: str, test: bool, verify_ssl: bool,
) -> None:
if not rcpt_to:
print("5.1.1 Bad destination mailbox address: No missed message email address.")
@@ -112,7 +112,7 @@ def send_email_mirror(
request_data = {
"recipient": rcpt_to,
- "msg_text": msg_text
+ "msg_text": msg_text,
}
if test:
exit(0)
diff --git a/scripts/lib/node_cache.py b/scripts/lib/node_cache.py
index cd975ced4a..42181daab2 100644
--- a/scripts/lib/node_cache.py
+++ b/scripts/lib/node_cache.py
@@ -23,7 +23,7 @@ def get_yarn_args(production: bool) -> List[str]:
return yarn_args
def generate_sha1sum_node_modules(
- setup_dir: Optional[str] = None, production: bool = DEFAULT_PRODUCTION
+ setup_dir: Optional[str] = None, production: bool = DEFAULT_PRODUCTION,
) -> str:
if setup_dir is None:
setup_dir = os.path.realpath(os.getcwd())
@@ -69,7 +69,7 @@ def setup_node_modules(
def do_yarn_install(
target_path: str,
yarn_args: List[str],
- success_stamp: str
+ success_stamp: str,
) -> None:
os.makedirs(target_path, exist_ok=True)
shutil.copy('package.json', target_path)
diff --git a/scripts/lib/setup_venv.py b/scripts/lib/setup_venv.py
index 8b26ccd3bb..b3c696806f 100644
--- a/scripts/lib/setup_venv.py
+++ b/scripts/lib/setup_venv.py
@@ -98,9 +98,9 @@ YUM_THUMBOR_VENV_DEPENDENCIES = [
def get_venv_dependencies(vendor: str, os_version: str) -> List[str]:
if vendor == 'ubuntu' and os_version == '20.04':
- return VENV_DEPENDENCIES + [PYTHON_DEV_DEPENDENCY.format("2"), ]
+ return VENV_DEPENDENCIES + [PYTHON_DEV_DEPENDENCY.format("2")]
elif "debian" in os_families():
- return VENV_DEPENDENCIES + [PYTHON_DEV_DEPENDENCY.format(""), ]
+ return VENV_DEPENDENCIES + [PYTHON_DEV_DEPENDENCY.format("")]
elif "rhel" in os_families():
return REDHAT_VENV_DEPENDENCIES
elif "fedora" in os_families():
@@ -238,7 +238,7 @@ def get_logfile_name(venv_path: str) -> str:
return "{}/setup-venv.log".format(venv_path)
def create_log_entry(
- target_log: str, parent: str, copied_packages: Set[str], new_packages: Set[str]
+ target_log: str, parent: str, copied_packages: Set[str], new_packages: Set[str],
) -> None:
venv_path = os.path.dirname(target_log)
diff --git a/scripts/lib/zulip_tools.py b/scripts/lib/zulip_tools.py
index f7cd132285..dce756d64c 100755
--- a/scripts/lib/zulip_tools.py
+++ b/scripts/lib/zulip_tools.py
@@ -84,7 +84,7 @@ def parse_cache_script_args(description: str) -> argparse.Namespace:
def get_deploy_root() -> str:
return os.path.realpath(
- os.path.normpath(os.path.join(os.path.dirname(__file__), "..", ".."))
+ os.path.normpath(os.path.join(os.path.dirname(__file__), "..", "..")),
)
def get_deployment_version(extract_path: str) -> str:
@@ -271,7 +271,7 @@ def get_caches_to_be_purged(caches_dir: str, caches_in_use: Set[str], threshold_
return caches_to_purge
def purge_unused_caches(
- caches_dir: str, caches_in_use: Set[str], cache_type: str, args: argparse.Namespace
+ caches_dir: str, caches_in_use: Set[str], cache_type: str, args: argparse.Namespace,
) -> None:
all_caches = {os.path.join(caches_dir, cache) for cache in os.listdir(caches_dir)}
caches_to_purge = get_caches_to_be_purged(caches_dir, caches_in_use, args.threshold_days)
diff --git a/scripts/nagios/check-rabbitmq-consumers b/scripts/nagios/check-rabbitmq-consumers
index 59977446e7..cf4bf7e0ca 100755
--- a/scripts/nagios/check-rabbitmq-consumers
+++ b/scripts/nagios/check-rabbitmq-consumers
@@ -17,7 +17,7 @@ states = {
0: "OK",
1: "WARNING",
2: "CRITICAL",
- 3: "UNKNOWN"
+ 3: "UNKNOWN",
}
if 'USER' in os.environ and not os.environ['USER'] in ['root', 'rabbitmq']:
diff --git a/scripts/setup/flush-memcached b/scripts/setup/flush-memcached
index e8e7130a05..d9c59ddd4c 100755
--- a/scripts/setup/flush-memcached
+++ b/scripts/setup/flush-memcached
@@ -18,5 +18,5 @@ pylibmc.Client(
binary=True,
username=settings.MEMCACHED_USERNAME,
password=settings.MEMCACHED_PASSWORD,
- behaviors=settings.CACHES["default"]["OPTIONS"] # type: ignore[index] # settings not typed properly
+ behaviors=settings.CACHES["default"]["OPTIONS"], # type: ignore[index] # settings not typed properly
).flush_all()
diff --git a/scripts/setup/generate_secrets.py b/scripts/setup/generate_secrets.py
index 8a8fa111c5..864c684ec7 100755
--- a/scripts/setup/generate_secrets.py
+++ b/scripts/setup/generate_secrets.py
@@ -149,7 +149,7 @@ def generate_secrets(development: bool = False) -> None:
with open(filename, "a") as f:
f.write(
"# Set a Redis password based on zulip-secrets.conf\n"
- "requirepass '%s'\n" % (redis_password,)
+ "requirepass '%s'\n" % (redis_password,),
)
break
diff --git a/scripts/setup/restore-backup b/scripts/setup/restore-backup
index f8eae9e31f..00f3b3e713 100755
--- a/scripts/setup/restore-backup
+++ b/scripts/setup/restore-backup
@@ -70,7 +70,7 @@ def restore_backup(tarball_file: IO[bytes]) -> None:
assert not any("|" in name or "|" in path for name, path in paths)
transform_args = [
r"--transform=s|^zulip-backup/{}(/.*)?$|{}\1|x".format(
- re.escape(name), path.replace("\\", r"\\")
+ re.escape(name), path.replace("\\", r"\\"),
)
for name, path in paths
]
@@ -89,12 +89,12 @@ def restore_backup(tarball_file: IO[bytes]) -> None:
run(
[
os.path.join(
- settings.DEPLOY_ROOT, "scripts", "setup", "terminate-psql-sessions"
+ settings.DEPLOY_ROOT, "scripts", "setup", "terminate-psql-sessions",
),
"zulip",
"zulip",
"zulip_base",
- ]
+ ],
)
as_postgres = ["su", "-s", "/usr/bin/env", "-", "--", POSTGRES_USER]
run(as_postgres + ["dropdb", "--if-exists", "--", db_name])
@@ -130,7 +130,7 @@ def restore_backup(tarball_file: IO[bytes]) -> None:
[
os.path.join(settings.DEPLOY_ROOT, "scripts", "zulip-puppet-apply"),
"-f",
- ]
+ ],
)
# Now, restore the the database backup using pg_restore. This
diff --git a/tools/documentation_crawler/documentation_crawler/spiders/check_documentation.py b/tools/documentation_crawler/documentation_crawler/spiders/check_documentation.py
index 534e56cfc7..861553dad4 100755
--- a/tools/documentation_crawler/documentation_crawler/spiders/check_documentation.py
+++ b/tools/documentation_crawler/documentation_crawler/spiders/check_documentation.py
@@ -12,7 +12,7 @@ def get_start_url() -> List[str]:
start_file = os.path.join(dir_path, os.path.join(*[os.pardir] * 4),
"docs/_build/html/index.html")
return [
- pathlib.Path(os.path.abspath(start_file)).as_uri()
+ pathlib.Path(os.path.abspath(start_file)).as_uri(),
]
diff --git a/tools/generate-integration-docs-screenshot b/tools/generate-integration-docs-screenshot
index 0b28d3c122..c7b419e511 100755
--- a/tools/generate-integration-docs-screenshot
+++ b/tools/generate-integration-docs-screenshot
@@ -236,5 +236,5 @@ else:
parser.error(
"Could not find configuration for integration. "
"You can specify a fixture file to use, using the --fixture flag. "
- "Or add a configuration to zerver.lib.integrations.DOC_SCREENSHOT_CONFIG"
+ "Or add a configuration to zerver.lib.integrations.DOC_SCREENSHOT_CONFIG",
)
diff --git a/tools/lib/gitlint-rules.py b/tools/lib/gitlint-rules.py
index b909de126a..810267dd44 100644
--- a/tools/lib/gitlint-rules.py
+++ b/tools/lib/gitlint-rules.py
@@ -69,7 +69,7 @@ WORD_SET = {
'testing', 'tested', # 'tests' excluded to reduce false negative
'truncates', 'truncating', 'truncated',
'updates', 'updating', 'updated',
- 'uses', 'using', 'used'
+ 'uses', 'using', 'used',
}
imperative_forms = sorted([
@@ -135,7 +135,7 @@ class ImperativeMood(LineRule):
violation = RuleViolation(self.id, self.error_msg.format(
word=first_word,
imperative=imperative,
- title=commit.message.title
+ title=commit.message.title,
))
violations.append(violation)
diff --git a/tools/lib/pretty_print.py b/tools/lib/pretty_print.py
index 2e03597206..6f72984f4b 100644
--- a/tools/lib/pretty_print.py
+++ b/tools/lib/pretty_print.py
@@ -85,7 +85,7 @@ def pretty_print_html(html: str, num_spaces: int = 4) -> str:
adjustment=adjustment,
indenting=True,
adjust_offset_until=token.line,
- ignore_lines=[]
+ ignore_lines=[],
)
if token.kind in ('handlebars_start', 'django_start'):
info.update(dict(depth=new_depth - 1, indenting=False))
@@ -98,7 +98,7 @@ def pretty_print_html(html: str, num_spaces: int = 4) -> str:
tag=token.tag,
token_kind=token.kind,
extra_indent=stack[-1]['extra_indent'],
- ignore_lines=[]
+ ignore_lines=[],
)
stack.append(info)
elif (token.kind in ('html_end', 'handlebars_end', 'html_singleton_end',
diff --git a/tools/lib/provision.py b/tools/lib/provision.py
index 341327eedb..7d949ba5ae 100755
--- a/tools/lib/provision.py
+++ b/tools/lib/provision.py
@@ -55,7 +55,7 @@ try:
os.remove(os.path.join(VAR_DIR_PATH, 'zulip-test-symlink'))
os.symlink(
os.path.join(ZULIP_PATH, 'README.md'),
- os.path.join(VAR_DIR_PATH, 'zulip-test-symlink')
+ os.path.join(VAR_DIR_PATH, 'zulip-test-symlink'),
)
os.remove(os.path.join(VAR_DIR_PATH, 'zulip-test-symlink'))
except OSError:
@@ -130,7 +130,7 @@ COMMON_DEPENDENCIES = [
"libxss1",
"fonts-freefont-ttf",
"libappindicator1",
- "xdg-utils"
+ "xdg-utils",
# Puppeteer dependencies end here.
]
@@ -152,7 +152,7 @@ COMMON_YUM_DEPENDENCIES = COMMON_DEPENDENCIES + [
"freetype",
"freetype-devel",
"fontconfig-devel",
- "libstdc++"
+ "libstdc++",
] + YUM_THUMBOR_VENV_DEPENDENCIES
BUILD_PGROONGA_FROM_SOURCE = False
@@ -168,7 +168,7 @@ if vendor == 'debian' and os_version in [] or vendor == 'ubuntu' and os_version
"libgroonga-dev",
"libmsgpack-dev",
"clang-9",
- "llvm-9-dev"
+ "llvm-9-dev",
]
] + VENV_DEPENDENCIES
elif "debian" in os_families():
@@ -244,7 +244,7 @@ def install_apt_deps(deps_to_install: List[str]) -> None:
"env", "DEBIAN_FRONTEND=noninteractive",
"apt-get", "-y", "install", "--no-install-recommends",
]
- + deps_to_install
+ + deps_to_install,
)
def install_yum_deps(deps_to_install: List[str]) -> None:
@@ -411,7 +411,7 @@ def main(options: argparse.Namespace) -> "NoReturn":
provision_inner,
*(["--force"] if options.is_force else []),
*(["--build-release-tarball-only"] if options.is_build_release_tarball_only else []),
- ]
+ ],
)
if __name__ == "__main__":
diff --git a/tools/lib/provision_inner.py b/tools/lib/provision_inner.py
index cd71b86c19..3f09e9ed8e 100755
--- a/tools/lib/provision_inner.py
+++ b/tools/lib/provision_inner.py
@@ -128,7 +128,7 @@ def need_to_run_build_pygments_data() -> bool:
return is_digest_obsolete(
"build_pygments_data_hash",
build_pygments_data_paths(),
- [pygments_version]
+ [pygments_version],
)
def need_to_run_compilemessages() -> bool:
@@ -155,7 +155,7 @@ def need_to_run_configure_rabbitmq(settings_list: List[str]) -> bool:
obsolete = is_digest_obsolete(
'last_configure_rabbitmq_hash',
configure_rabbitmq_paths(),
- settings_list
+ settings_list,
)
if obsolete:
@@ -204,7 +204,7 @@ def main(options: argparse.Namespace) -> int:
write_new_digest(
'build_pygments_data_hash',
build_pygments_data_paths(),
- [pygments_version]
+ [pygments_version],
)
else:
print("No need to run `tools/setup/build_pygments_data`.")
@@ -240,7 +240,7 @@ def main(options: argparse.Namespace) -> int:
write_new_digest(
'last_configure_rabbitmq_hash',
configure_rabbitmq_paths(),
- [settings.RABBITMQ_PASSWORD]
+ [settings.RABBITMQ_PASSWORD],
)
else:
print("No need to run `scripts/setup/configure-rabbitmq.")
diff --git a/tools/lib/template_parser.py b/tools/lib/template_parser.py
index 311297a7ea..124f500dfd 100644
--- a/tools/lib/template_parser.py
+++ b/tools/lib/template_parser.py
@@ -160,8 +160,8 @@ def tokenize(text: str) -> List[Token]:
e.message,
state.line,
state.col,
- e.line_content
- )
+ e.line_content,
+ ),
)
line_span = len(s.split('\n'))
@@ -171,7 +171,7 @@ def tokenize(text: str) -> List[Token]:
tag=tag.strip(),
line=state.line,
col=state.col,
- line_span=line_span
+ line_span=line_span,
)
tokens.append(token)
advance(len(s))
@@ -183,7 +183,7 @@ def tokenize(text: str) -> List[Token]:
tag=tag,
line=state.line,
col=state.col,
- line_span=1
+ line_span=1,
)
tokens.append(token)
diff --git a/tools/lib/test_server.py b/tools/lib/test_server.py
index be325233a8..5a1a66429e 100644
--- a/tools/lib/test_server.py
+++ b/tools/lib/test_server.py
@@ -51,7 +51,7 @@ def server_is_up(server: "subprocess.Popen[bytes]", log_file: Optional[str]) ->
@contextmanager
def test_server_running(force: bool=False, external_host: str='testserver',
- log_file: Optional[str]=None, dots: bool=False, use_db: bool=True
+ log_file: Optional[str]=None, dots: bool=False, use_db: bool=True,
) -> Iterator[None]:
log = sys.stdout
if log_file:
diff --git a/tools/linter_lib/custom_check.py b/tools/linter_lib/custom_check.py
index 649f613cd0..b33eafb79b 100644
--- a/tools/linter_lib/custom_check.py
+++ b/tools/linter_lib/custom_check.py
@@ -60,13 +60,13 @@ shebang_rules: List["Rule"] = [
'description': "Use `#!/usr/bin/env foo` instead of `#!/path/foo`"
" for interpreters other than sh."},
{'pattern': '^#!/usr/bin/env python$',
- 'description': "Use `#!/usr/bin/env python3` instead of `#!/usr/bin/env python`."}
+ 'description': "Use `#!/usr/bin/env python3` instead of `#!/usr/bin/env python`."},
]
trailing_whitespace_rule: "Rule" = {
'pattern': r'\s+$',
'strip': '\n',
- 'description': 'Fix trailing whitespace'
+ 'description': 'Fix trailing whitespace',
}
whitespace_rules: List["Rule"] = [
# This linter should be first since bash_rules depends on it.
@@ -446,8 +446,8 @@ bash_rules = RuleList(
'include_only': {'scripts/'},
'exclude': {
'scripts/lib/install',
- 'scripts/setup/configure-rabbitmq'
- }, },
+ 'scripts/setup/configure-rabbitmq',
+ }},
*whitespace_rules[0:1],
],
shebang_rules=shebang_rules,
@@ -554,7 +554,7 @@ html_rules: List["Rule"] = whitespace_rules + prose_style_rules + [
{'pattern': r'title="[^{\:]',
'exclude_line': {
('templates/zerver/app/markdown_help.html',
- ' | ')
+ ' | '),
},
'exclude': {"templates/zerver/emails", "templates/analytics/realm_details.html", "templates/analytics/support.html"},
'description': "`title` value should be translatable."},
@@ -691,7 +691,7 @@ json_rules = RuleList(
{'pattern': r'":["\[\{]',
'exclude': {'zerver/webhooks/', 'zerver/tests/fixtures/'},
'description': 'Require space after : in JSON'},
- ]
+ ],
)
markdown_docs_length_exclude = {
@@ -737,7 +737,7 @@ markdown_rules = RuleList(
],
max_length=120,
length_exclude=markdown_docs_length_exclude,
- exclude_files_in='templates/zerver/help/'
+ exclude_files_in='templates/zerver/help/',
)
help_markdown_rules = RuleList(
diff --git a/tools/run-dev.py b/tools/run-dev.py
index 1ee92c8475..10615e874f 100755
--- a/tools/run-dev.py
+++ b/tools/run-dev.py
@@ -203,7 +203,7 @@ def fetch_request(url: str, callback: Any, **kwargs: Any) -> "Generator[Callable
connect_timeout=240.0,
request_timeout=240.0,
decompress_response=False,
- **kwargs
+ **kwargs,
)
client = httpclient.AsyncHTTPClient()
# wait for response
@@ -218,7 +218,7 @@ class BaseHandler(web.RequestHandler):
target_port: int
def _add_request_headers(
- self, exclude_lower_headers_list: Optional[List[str]] = None
+ self, exclude_lower_headers_list: Optional[List[str]] = None,
) -> httputil.HTTPHeaders:
exclude_lower_headers_list = exclude_lower_headers_list or []
headers = httputil.HTTPHeaders()
@@ -284,7 +284,7 @@ class BaseHandler(web.RequestHandler):
headers=self._add_request_headers(["upgrade-insecure-requests"]),
follow_redirects=False,
body=getattr(self.request, 'body'),
- allow_nonstandard_methods=True
+ allow_nonstandard_methods=True,
)
except httpclient.HTTPError as e:
if hasattr(e, 'response') and e.response:
@@ -329,7 +329,7 @@ class Application(web.Application):
(r"/api/v1/events.*", TornadoHandler),
(r"/webpack.*", WebPackHandler),
(r"/thumbor.*", ThumborHandler if using_thumbor() else ErrorHandler),
- (r"/.*", DjangoHandler)
+ (r"/.*", DjangoHandler),
]
super().__init__(handlers, enable_logging=enable_logging)
diff --git a/tools/setup/emoji/export_emoji_names_to_csv b/tools/setup/emoji/export_emoji_names_to_csv
index d7d8717e9a..da1ab25932 100755
--- a/tools/setup/emoji/export_emoji_names_to_csv
+++ b/tools/setup/emoji/export_emoji_names_to_csv
@@ -89,7 +89,7 @@ def main() -> None:
args = parser.parse_args()
prepare_sorting_info()
- output_data = [column_names, ]
+ output_data = [column_names]
explanation_lines: List[str] = []
with open(args.input_file_path) as fp:
for line in fp.readlines():
diff --git a/tools/setup/emoji/generate_emoji_names_table b/tools/setup/emoji/generate_emoji_names_table
index 77a21ed39b..71ecd8341e 100755
--- a/tools/setup/emoji/generate_emoji_names_table
+++ b/tools/setup/emoji/generate_emoji_names_table
@@ -132,7 +132,7 @@ def generate_emoji_code_to_emoji_names_maps() -> None:
if emoji_code in reverse_unified_reactions_map:
reverse_unified_reactions_map[emoji_code].append(name)
else:
- reverse_unified_reactions_map[emoji_code] = [name, ]
+ reverse_unified_reactions_map[emoji_code] = [name]
for emoji_code in reverse_unified_reactions_map:
emoji_code_to_gemoji_names[emoji_code] = ", ".join(reverse_unified_reactions_map[emoji_code])
@@ -146,7 +146,7 @@ def generate_emoji_code_to_emoji_names_maps() -> None:
for emoji_code in EMOJI_NAME_MAPS:
canonical_name = EMOJI_NAME_MAPS[emoji_code]["canonical_name"]
aliases = EMOJI_NAME_MAPS[emoji_code]["aliases"]
- names = [canonical_name, ]
+ names = [canonical_name]
names.extend(aliases)
emoji_code_to_zulip_names[emoji_code] = ", ".join(names)
diff --git a/tools/setup/emoji/import_emoji_names_from_csv b/tools/setup/emoji/import_emoji_names_from_csv
index 5cf7d16859..f59977f359 100755
--- a/tools/setup/emoji/import_emoji_names_from_csv
+++ b/tools/setup/emoji/import_emoji_names_from_csv
@@ -57,7 +57,7 @@ def check_valid_emoji_name(emoji_name: str) -> None:
def check_emoji_names(canonical_name: str, aliases: List[str]) -> None:
if canonical_name == 'X':
return
- names_to_check = [canonical_name, ] + aliases
+ names_to_check = [canonical_name] + aliases
for name in names_to_check:
check_valid_emoji_name(name)
check_uniqueness(name)
diff --git a/tools/test-api b/tools/test-api
index 07c1d5dcfb..7685dd012e 100755
--- a/tools/test-api
+++ b/tools/test-api
@@ -51,7 +51,7 @@ with test_server_running(force=options.force, external_host='zulipdev.com:9981')
client = Client(
email=email,
api_key=api_key,
- site=site
+ site=site,
)
# Prepare a generic bot client for curl testing
@@ -62,7 +62,7 @@ with test_server_running(force=options.force, external_host='zulipdev.com:9981')
bot_client = Client(
email=email,
api_key=api_key,
- site=site
+ site=site,
)
# Prepare the non-admin client
@@ -73,7 +73,7 @@ with test_server_running(force=options.force, external_host='zulipdev.com:9981')
nonadmin_client = Client(
email=email,
api_key=api_key,
- site=site
+ site=site,
)
test_the_api(client, nonadmin_client)
@@ -84,7 +84,7 @@ with test_server_running(force=options.force, external_host='zulipdev.com:9981')
client = Client(
email=email,
api_key='X'*32,
- site=site
+ site=site,
)
test_invalid_api_key(client)
diff --git a/tools/test-js-with-node b/tools/test-js-with-node
index 7d3f0aa3a4..0f9a16d55c 100755
--- a/tools/test-js-with-node
+++ b/tools/test-js-with-node
@@ -279,7 +279,7 @@ def enforce_proper_coverage(coverage_json: Any) -> bool:
glob.glob('static/js/*.ts') +
glob.glob('static/shared/js/*.js') +
glob.glob('static/shared/js/*.ts') +
- glob.glob('static/js/billing/*.js')
+ glob.glob('static/js/billing/*.js'),
)
enforce_fully_covered = all_js_files - EXEMPT_FILES
diff --git a/tools/webpack b/tools/webpack
index dcc170f016..1187e0bb42 100755
--- a/tools/webpack
+++ b/tools/webpack
@@ -39,7 +39,7 @@ def build_for_dev_server(host: str, port: str, minify: bool, disable_host_check:
# We add the hot flag using the cli because it takes care
# of addition to entry points and adding the plugin
# automatically
- '--hot'
+ '--hot',
]
if minify:
webpack_args.append('--optimize-minimize')
@@ -99,7 +99,7 @@ def build_for_most_tests() -> None:
entries[entry] = [{
"name": f"{entry}.js",
"publicPath": f"http://localhost:3000/webpack-stub/{entry}-stubentry.js",
- "path": f"/stubfolder/{entry}-stubfile.js"
+ "path": f"/stubfolder/{entry}-stubfile.js",
}]
stat_data = {
"status": "done",
diff --git a/tools/zulip-export/zulip-export b/tools/zulip-export/zulip-export
index 3ac431fd34..3072588c39 100755
--- a/tools/zulip-export/zulip-export
+++ b/tools/zulip-export/zulip-export
@@ -84,5 +84,5 @@ for msg in result['messages']:
filename = f"zulip-{options.stream}.json"
with open(filename, 'wb') as f:
f.write(json.dumps(messages, indent=0, sort_keys=False).encode('utf-8'))
-print("%d messages exported to %s" % (len(messages), filename,))
+print("%d messages exported to %s" % (len(messages), filename))
sys.exit(0)
diff --git a/zerver/context_processors.py b/zerver/context_processors.py
index c4798cd3a8..a0bda24c60 100644
--- a/zerver/context_processors.py
+++ b/zerver/context_processors.py
@@ -188,7 +188,7 @@ def login_context(request: HttpRequest) -> Dict[str, Any]:
# by the desktop client. We expand it with IDs of the