Skip to content

Commit da4644c

Browse files
Remove F403 and F405 from Ruff ignore and replace wildcard imports (#6215)
* Fix F403 and F405 ruff rules by removing wildcard imports * Fix formatting from imports and re-run presubmit * Refactor: Use module-level imports for core_enums Based on code review feedback, this commit replaces explicit object imports from `internals.core_enums` with module-level imports (`from internals import core_enums`). This makes the origin of the enums clearer at the call site (e.g., `core_enums.BEHIND_A_FLAG`). Additionally: - Fixed a bug in `api/intents_api_test.py` where `core_enums` was referenced twice. - Added a mypy override in `pyproject.toml` to skip type checking `google.cloud.*` dependencies, resolving a syntax error when running mypy under Python 3.13.
1 parent ff9b713 commit da4644c

36 files changed

+868
-779
lines changed

api/attachments_api_test.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@
2222
import settings
2323
import testing_config # Must be imported before the module under test.
2424
from api import attachments_api
25-
from internals import attachments
26-
from internals.core_enums import * # noqa: F403
25+
from internals import attachments, core_enums
2726
from internals.core_models import FeatureEntry
2827

2928
test_app = flask.Flask(__name__)
@@ -40,8 +39,8 @@ def setUp(self):
4039
summary='sum',
4140
category=1,
4241
owner_emails=['owner@chromium.org'],
43-
impl_status_chrome=ENABLED_BY_DEFAULT,
44-
) # noqa: F405
42+
impl_status_chrome=core_enums.ENABLED_BY_DEFAULT,
43+
)
4544
self.feature.put()
4645

4746
self.feature_id = self.feature.key.integer_id()
@@ -110,8 +109,8 @@ def setUp(self):
110109
summary='sum',
111110
category=1,
112111
owner_emails=['owner@chromium.org'],
113-
impl_status_chrome=ENABLED_BY_DEFAULT,
114-
) # noqa: F405
112+
impl_status_chrome=core_enums.ENABLED_BY_DEFAULT,
113+
)
115114
self.feature.put()
116115
self.feature_id = self.feature.key.integer_id()
117116

@@ -191,8 +190,8 @@ def setUp(self):
191190
summary='sum',
192191
category=1,
193192
owner_emails=['owner@chromium.org'],
194-
impl_status_chrome=ENABLED_BY_DEFAULT,
195-
) # noqa: F405
193+
impl_status_chrome=core_enums.ENABLED_BY_DEFAULT,
194+
)
196195
self.feature.put()
197196
self.feature_id = self.feature.key.integer_id()
198197

api/converters.py

Lines changed: 92 additions & 69 deletions
Large diffs are not rendered by default.

api/converters_test.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@
1919

2020
import testing_config # Must be imported before the module under test.
2121
from api import converters
22-
from internals import approval_defs
23-
from internals.core_enums import * # noqa: F403
22+
from internals import approval_defs, core_enums
2423
from internals.core_models import FeatureEntry, MilestoneSet, Stage
2524
from internals.review_models import Gate, SurveyAnswers, Vote
2625

@@ -134,7 +133,7 @@ def test_feature_entry_to_json_basic__normal(self):
134133
'unlisted': False,
135134
'blink_components': ['Blink'],
136135
'first_enterprise_notification_milestone': 100,
137-
'enterprise_impact': ENTERPRISE_IMPACT_NONE, # noqa: F405
136+
'enterprise_impact': core_enums.ENTERPRISE_IMPACT_NONE,
138137
'enterprise_product_category': 0,
139138
'breaking_change': False,
140139
'is_released': True,
@@ -223,7 +222,7 @@ def test_feature_entry_to_json_basic__feature_release(self):
223222
'unlisted': False,
224223
'blink_components': ['Blink'],
225224
'first_enterprise_notification_milestone': 100,
226-
'enterprise_impact': ENTERPRISE_IMPACT_NONE, # noqa: F405
225+
'enterprise_impact': core_enums.ENTERPRISE_IMPACT_NONE,
227226
'enterprise_product_category': 0,
228227
'breaking_change': False,
229228
'is_released': True,
@@ -323,7 +322,7 @@ def test_feature_entry_to_json_verbose__normal(self):
323322
'unlisted': False,
324323
'api_spec': False,
325324
'automation_spec': False,
326-
'enterprise_impact': ENTERPRISE_IMPACT_NONE, # noqa: F405
325+
'enterprise_impact': core_enums.ENTERPRISE_IMPACT_NONE,
327326
'enterprise_product_category': 0,
328327
'is_releasenotes_content_reviewed': False,
329328
'is_releasenotes_publish_ready': False,
@@ -403,8 +402,10 @@ def test_feature_entry_to_json_verbose__normal(self):
403402
'new_crbug_url': 'https://bugs.chromium.org/p/chromium/issues/entry?components=Blink&cc=feature_owner@example.com',
404403
'non_oss_deps': None,
405404
'ongoing_constraints': None,
406-
'rollout_plan': ROLLOUT_100, # noqa: F405
407-
'rollout_plan_displayname': ROLLOUT_PLAN_DISPLAYNAMES[ROLLOUT_100], # noqa: F405
405+
'rollout_plan': core_enums.ROLLOUT_100,
406+
'rollout_plan_displayname': core_enums.ROLLOUT_PLAN_DISPLAYNAMES[
407+
core_enums.ROLLOUT_100
408+
],
408409
'owner_emails': ['feature_owner@example.com'],
409410
'safari_views': 1,
410411
'search_tags': [],
@@ -589,8 +590,8 @@ def test_maxmimal(self, mock_now):
589590
gate = Gate(
590591
feature_id=1,
591592
stage_id=2,
592-
gate_type=GATE_PRIVACY_ORIGIN_TRIAL,
593-
state=4, # noqa: F405
593+
gate_type=core_enums.GATE_PRIVACY_ORIGIN_TRIAL,
594+
state=4,
594595
requested_on=datetime(2022, 12, 14, 1, 2, 3), # Wednesday
595596
assignee_emails=['appr1@example.com', 'appr2@example.com'],
596597
next_action=datetime(2022, 12, 25),
@@ -613,7 +614,7 @@ def test_maxmimal(self, mock_now):
613614
'id': gate.key.integer_id(),
614615
'feature_id': 1,
615616
'stage_id': 2,
616-
'gate_type': GATE_PRIVACY_ORIGIN_TRIAL, # noqa: F405
617+
'gate_type': core_enums.GATE_PRIVACY_ORIGIN_TRIAL,
617618
'team_name': appr_def.team_name,
618619
'gate_name': appr_def.name,
619620
'escalation_email': 'chrome-privacy-owp-rotation@google.com',

api/external_reviews_api.py

Lines changed: 25 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -29,32 +29,7 @@
2929
from google.cloud import ndb # type: ignore
3030

3131
from framework import basehandlers
32-
from internals.core_enums import (
33-
ENABLED_BY_DEFAULT,
34-
STAGE_BLINK_DEV_TRIAL,
35-
STAGE_BLINK_EVAL_READINESS,
36-
STAGE_BLINK_EXTEND_ORIGIN_TRIAL,
37-
STAGE_BLINK_INCUBATE,
38-
STAGE_BLINK_ORIGIN_TRIAL,
39-
STAGE_BLINK_PROTOTYPE,
40-
STAGE_BLINK_SHIPPING,
41-
STAGE_DEP_DEPRECATION_TRIAL,
42-
STAGE_DEP_DEV_TRIAL,
43-
STAGE_DEP_EXTEND_DEPRECATION_TRIAL,
44-
STAGE_DEP_PLAN,
45-
STAGE_DEP_REMOVE_CODE,
46-
STAGE_DEP_SHIPPING,
47-
STAGE_ENT_ROLLOUT,
48-
STAGE_ENT_SHIPPED,
49-
STAGE_FAST_DEV_TRIAL,
50-
STAGE_FAST_EXTEND_ORIGIN_TRIAL,
51-
STAGE_FAST_ORIGIN_TRIAL,
52-
STAGE_FAST_PROTOTYPE,
53-
STAGE_FAST_SHIPPING,
54-
STAGE_PSA_DEV_TRIAL,
55-
STAGE_PSA_IMPLEMENT,
56-
STAGE_PSA_SHIPPING,
57-
)
32+
from internals import core_enums
5833
from internals.core_models import FeatureEntry, Stage
5934
from internals.feature_links import (
6035
get_by_feature_ids as get_feature_links_by_feature_ids,
@@ -79,29 +54,29 @@ class StageType(StrEnum):
7954

8055

8156
STAGE_TYPES: dict[int, StageType] = {
82-
STAGE_BLINK_INCUBATE: StageType.INCUBATING,
83-
STAGE_BLINK_PROTOTYPE: StageType.PROTOTYPING,
84-
STAGE_BLINK_DEV_TRIAL: StageType.DEV_TRIAL,
85-
STAGE_BLINK_EVAL_READINESS: StageType.WIDE_REVIEW,
86-
STAGE_BLINK_ORIGIN_TRIAL: StageType.ORIGIN_TRIAL,
87-
STAGE_BLINK_EXTEND_ORIGIN_TRIAL: StageType.ORIGIN_TRIAL,
88-
STAGE_BLINK_SHIPPING: StageType.SHIPPING,
89-
STAGE_FAST_PROTOTYPE: StageType.PROTOTYPING,
90-
STAGE_FAST_DEV_TRIAL: StageType.DEV_TRIAL,
91-
STAGE_FAST_ORIGIN_TRIAL: StageType.ORIGIN_TRIAL,
92-
STAGE_FAST_EXTEND_ORIGIN_TRIAL: StageType.ORIGIN_TRIAL,
93-
STAGE_FAST_SHIPPING: StageType.SHIPPING,
94-
STAGE_PSA_IMPLEMENT: StageType.WIDE_REVIEW,
95-
STAGE_PSA_DEV_TRIAL: StageType.DEV_TRIAL,
96-
STAGE_PSA_SHIPPING: StageType.SHIPPING,
97-
STAGE_DEP_PLAN: StageType.INCUBATING,
98-
STAGE_DEP_DEV_TRIAL: StageType.DEV_TRIAL,
99-
STAGE_DEP_SHIPPING: StageType.SHIPPING,
100-
STAGE_DEP_DEPRECATION_TRIAL: StageType.SHIPPED,
101-
STAGE_DEP_EXTEND_DEPRECATION_TRIAL: StageType.SHIPPED,
102-
STAGE_DEP_REMOVE_CODE: StageType.SHIPPED,
103-
STAGE_ENT_ROLLOUT: StageType.SHIPPED,
104-
STAGE_ENT_SHIPPED: StageType.SHIPPED,
57+
core_enums.STAGE_BLINK_INCUBATE: StageType.INCUBATING,
58+
core_enums.STAGE_BLINK_PROTOTYPE: StageType.PROTOTYPING,
59+
core_enums.STAGE_BLINK_DEV_TRIAL: StageType.DEV_TRIAL,
60+
core_enums.STAGE_BLINK_EVAL_READINESS: StageType.WIDE_REVIEW,
61+
core_enums.STAGE_BLINK_ORIGIN_TRIAL: StageType.ORIGIN_TRIAL,
62+
core_enums.STAGE_BLINK_EXTEND_ORIGIN_TRIAL: StageType.ORIGIN_TRIAL,
63+
core_enums.STAGE_BLINK_SHIPPING: StageType.SHIPPING,
64+
core_enums.STAGE_FAST_PROTOTYPE: StageType.PROTOTYPING,
65+
core_enums.STAGE_FAST_DEV_TRIAL: StageType.DEV_TRIAL,
66+
core_enums.STAGE_FAST_ORIGIN_TRIAL: StageType.ORIGIN_TRIAL,
67+
core_enums.STAGE_FAST_EXTEND_ORIGIN_TRIAL: StageType.ORIGIN_TRIAL,
68+
core_enums.STAGE_FAST_SHIPPING: StageType.SHIPPING,
69+
core_enums.STAGE_PSA_IMPLEMENT: StageType.WIDE_REVIEW,
70+
core_enums.STAGE_PSA_DEV_TRIAL: StageType.DEV_TRIAL,
71+
core_enums.STAGE_PSA_SHIPPING: StageType.SHIPPING,
72+
core_enums.STAGE_DEP_PLAN: StageType.INCUBATING,
73+
core_enums.STAGE_DEP_DEV_TRIAL: StageType.DEV_TRIAL,
74+
core_enums.STAGE_DEP_SHIPPING: StageType.SHIPPING,
75+
core_enums.STAGE_DEP_DEPRECATION_TRIAL: StageType.SHIPPED,
76+
core_enums.STAGE_DEP_EXTEND_DEPRECATION_TRIAL: StageType.SHIPPED,
77+
core_enums.STAGE_DEP_REMOVE_CODE: StageType.SHIPPED,
78+
core_enums.STAGE_ENT_ROLLOUT: StageType.SHIPPED,
79+
core_enums.STAGE_ENT_SHIPPED: StageType.SHIPPED,
10580
}
10681

10782

@@ -113,7 +88,7 @@ def stage_type(feature: FeatureEntry, stage: Stage | None) -> StageType:
11388
tentative_type = STAGE_TYPES[stage.stage_type]
11489
if (
11590
tentative_type == StageType.SHIPPING
116-
and feature.impl_status_chrome == ENABLED_BY_DEFAULT
91+
and feature.impl_status_chrome == core_enums.ENABLED_BY_DEFAULT
11792
):
11893
return StageType.SHIPPED
11994
return tentative_type

0 commit comments

Comments
 (0)