Skip to content
This repository was archived by the owner on Jun 13, 2025. It is now read-only.

Commit 992c39c

Browse files
committed
add c4 rules and fix
1 parent 392c975 commit 992c39c

File tree

17 files changed

+66
-71
lines changed

17 files changed

+66
-71
lines changed

api/internal/commit/serializers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def get_report(self, commit: Commit):
4141
for filename in report.files:
4242
file_report = report.get(filename)
4343
file_totals = CommitTotalsSerializer(
44-
{key: val for key, val in zip(TOTALS_MAP, file_report.totals)}
44+
dict(zip(TOTALS_MAP, file_report.totals))
4545
)
4646
files.append(
4747
{

api/internal/tests/views/test_account_viewset.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -960,7 +960,7 @@ def test_update_team_plan_must_fail_if_too_many_activated_users_during_trial(sel
960960
self.current_owner.plan = PlanName.BASIC_PLAN_NAME.value
961961
self.current_owner.plan_user_count = 1
962962
self.current_owner.trial_status = TrialStatus.ONGOING.value
963-
self.current_owner.plan_activated_users = [i for i in range(11)]
963+
self.current_owner.plan_activated_users = list(range(11))
964964
self.current_owner.save()
965965

966966
desired_plans = [

codecov_auth/tests/test_admin.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -480,8 +480,8 @@ def test_stale_user_cleanup():
480480

481481
# remove stale users with default > 90 days
482482
removed_users, affected_orgs = find_and_remove_stale_users(orgs)
483-
assert removed_users == set([users[0].ownerid, users[2].ownerid, users[4].ownerid])
484-
assert affected_orgs == set([orgs[0].ownerid, orgs[1].ownerid])
483+
assert removed_users == {users[0].ownerid, users[2].ownerid, users[4].ownerid}
484+
assert affected_orgs == {orgs[0].ownerid, orgs[1].ownerid}
485485

486486
orgs = list(
487487
Owner.objects.filter(ownerid__in=[org.ownerid for org in orgs])
@@ -493,8 +493,8 @@ def test_stale_user_cleanup():
493493

494494
# remove even more stale users
495495
removed_users, affected_orgs = find_and_remove_stale_users(orgs, timedelta(days=30))
496-
assert removed_users == set([users[1].ownerid, users[3].ownerid])
497-
assert affected_orgs == set([orgs[0].ownerid, orgs[1].ownerid])
496+
assert removed_users == {users[1].ownerid, users[3].ownerid}
497+
assert affected_orgs == {orgs[0].ownerid, orgs[1].ownerid}
498498

499499
orgs = list(
500500
Owner.objects.filter(ownerid__in=[org.ownerid for org in orgs])

codecov_auth/views/base.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -302,14 +302,14 @@ def _check_enterprise_organizations_membership(self, user_dict, orgs):
302302
"""Checks if a user belongs to the restricted organizations (or teams if GitHub) allowed in settings."""
303303
if settings.IS_ENTERPRISE and get_config(self.service, "organizations"):
304304
orgs_in_settings = set(get_config(self.service, "organizations"))
305-
orgs_in_user = set(org["username"] for org in orgs)
305+
orgs_in_user = {org["username"] for org in orgs}
306306
if not (orgs_in_settings & orgs_in_user):
307307
raise PermissionDenied(
308308
"You must be a member of an organization listed in the Codecov Enterprise setup."
309309
)
310310
if get_config(self.service, "teams") and "teams" in user_dict:
311311
teams_in_settings = set(get_config(self.service, "teams"))
312-
teams_in_user = set([team["name"] for team in user_dict["teams"]])
312+
teams_in_user = {team["name"] for team in user_dict["teams"]}
313313
if not (teams_in_settings & teams_in_user):
314314
raise PermissionDenied(
315315
"You must be a member of an allowed team in your organization."

core/signals.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def update_repository(
2020
changes: Dict[str, Any] = instance.tracker.changed()
2121
tracked_fields: List[str] = ["name", "upload_token", "activated", "active"]
2222

23-
if created or any([field in changes for field in tracked_fields]):
23+
if created or any(field in changes for field in tracked_fields):
2424
data = {
2525
"type": "repo",
2626
"sync": "one",

graphql_api/dataloader/comparison.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def batch_queryset(self, keys):
4242

4343
async def batch_load_fn(self, keys):
4444
# flat list of all commits involved in all comparisons
45-
commitids = set(commitid for key in keys for commitid in key)
45+
commitids = {commitid for key in keys for commitid in key}
4646

4747
commit_loader = CommitLoader.loader(self.info, self.repository_id)
4848
commits = await commit_loader.load_many(commitids)

graphql_api/tests/test_owner_measurements.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ def test_repository_filtering_by_public_private(
167167
]["measurements"]
168168
params = owner_coverage_measurements_with_fallback.call_args.args
169169
# Check that the call is using both private and public repos
170-
assert set(params[1]) == set([self.repo1.pk, self.repo2.pk])
170+
assert set(params[1]) == {self.repo1.pk, self.repo2.pk}
171171

172172
query = f"""
173173
query Measurements {{
@@ -183,4 +183,4 @@ def test_repository_filtering_by_public_private(
183183
self.gql_request(query, owner=self.owner)["owner"]["measurements"]
184184
params = owner_coverage_measurements_with_fallback.call_args.args
185185
# Check that the call is using both private and public repos
186-
assert set(params[1]) == set([self.repo1.pk, self.repo2.pk])
186+
assert set(params[1]) == {self.repo1.pk, self.repo2.pk}

graphql_api/types/bundle_analysis/base.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -307,9 +307,7 @@ def resolve_bundle_report_measurements(
307307

308308
# All measureable names we need to fetch to compute the requested asset types
309309
if not asset_types:
310-
measurables_to_fetch = [
311-
item for item in list(BundleAnalysisMeasurementsAssetType)
312-
]
310+
measurables_to_fetch = list(BundleAnalysisMeasurementsAssetType)
313311
elif ASSET_TYPE_UNKNOWN in asset_types:
314312
measurables_to_fetch = [
315313
BundleAnalysisMeasurementsAssetType.REPORT_SIZE,
@@ -332,9 +330,7 @@ def resolve_bundle_report_measurements(
332330

333331
# All measureable name we need to return
334332
if not asset_types:
335-
measurables_to_display = [
336-
item for item in list(BundleAnalysisMeasurementsAssetType)
337-
]
333+
measurables_to_display = list(BundleAnalysisMeasurementsAssetType)
338334
else:
339335
measurables_to_display = [
340336
BundleAnalysisMeasurementsAssetType[item]

graphql_api/types/plan_representation/plan_representation.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,12 @@ def resolve_base_unit_price(plan_data: PlanData, info) -> int:
3636
def resolve_benefits(plan_data: PlanData, info) -> List[str]:
3737
plan_service: PlanService = info.context["plan_service"]
3838
if plan_service.is_org_trialing:
39-
benefits_with_pretrial_users = list(
40-
map(
41-
lambda benefit: benefit.replace(
42-
"Up to 1 user", f"Up to {plan_service.pretrial_users_count} users"
43-
),
44-
plan_data["benefits"],
39+
benefits_with_pretrial_users = [
40+
benefit.replace(
41+
"Up to 1 user", f"Up to {plan_service.pretrial_users_count} users"
4542
)
46-
)
43+
for benefit in plan_data["benefits"]
44+
]
4745
return benefits_with_pretrial_users
4846
return plan_data["benefits"]
4947

ruff.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ target-version = "py312"
3939
# https://docs.astral.sh/ruff/rules/
4040
select = [
4141
"ASYNC", # flake8-async - async checks
42+
"C4", # flake8-comprehensions - list/set/dict/generator comprehensions
4243
"E", # pycodestyle - error rules
4344
"F", # pyflakes - general Python errors, undefined names
4445
"I", # isort - import sorting
@@ -47,7 +48,7 @@ select = [
4748
"PLE", # pylint - error rules
4849
"W", # pycodestyle - warning rules
4950
]
50-
ignore = ["F405", "F403", "E501", "E712"]
51+
ignore = ["F405", "F403", "E501", "E712", "C408"]
5152

5253
# Allow fix for all enabled rules (when `--fix`) is provided.
5354
# The preferred method (for now) w.r.t. fixable rules is to manually update the makefile

0 commit comments

Comments
 (0)