Skip to content

Commit 77f213e

Browse files
feanilclaude
andcommitted
chore: remove all lint-amnesty annotations
We added those annotations when we first applied lint-amnesty to be able to run pylint in zero-tolerance mode. But now the comments keep getting copied to other places and among other things causing lines to overrun un-necessarily. See https://docs.openedx.org/projects/openedx-proposals/en/latest/archived/oep-0034-bp-lint-amnesty.html for more historical details. Generated with: grep -r "lint-amnesty" --include="*.py" -l \ | xargs sed -i \ 's/ # lint-amnesty,\?\s*/ # /g; s/# lint-amnesty,\?\s*/# /g; s/ # $//' The first two expressions are identical in effect but handle two spacing variants: the common case where the comment is preceded by two spaces (" # lint-amnesty, pylint: ...") and the rarer single-space case ("# lint-amnesty, pylint: ..."). Both strip the prefix while preserving whatever pylint disable follows. The comma is made optional (",\?") to handle the rare case where lint-amnesty appears without one. The third expression cleans up any trailing " #" left on lines where lint-amnesty was the entire comment (e.g. ") -> None: # lint-amnesty" becomes ") -> None:"). Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
1 parent 724d892 commit 77f213e

1,225 files changed

Lines changed: 4197 additions & 4197 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

cms/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,4 @@
2121
# This will make sure the app is always imported when Django starts so
2222
# that shared_task will use this app, and also ensures that the celery
2323
# singleton is always configured for the CMS.
24-
from .celery import APP as CELERY_APP # lint-amnesty, pylint: disable=wrong-import-position # noqa: F401
24+
from .celery import APP as CELERY_APP # pylint: disable=wrong-import-position # noqa: F401

cms/conftest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,4 @@ def _django_clear_site_cache():
4040
clearing mechanism actually works. So override this fixture to not mess
4141
with what has been working for us so far.
4242
"""
43-
pass # lint-amnesty, pylint: disable=unnecessary-pass
43+
pass # pylint: disable=unnecessary-pass

cms/djangoapps/api/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
# lint-amnesty, pylint: disable=missing-module-docstring
1+
# pylint: disable=missing-module-docstring

cms/djangoapps/api/v1/serializers/course_runs.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from cms.djangoapps.contentstore.views.course import create_new_course, get_course_and_check_access, rerun_course
1414
from common.djangoapps.student.models import CourseAccessRole
1515
from openedx.core.lib.courses import course_image_url
16-
from xmodule.modulestore.django import modulestore # lint-amnesty, pylint: disable=wrong-import-order
16+
from xmodule.modulestore.django import modulestore # pylint: disable=wrong-import-order
1717

1818
IMAGE_TYPES = {
1919
'image/jpeg': 'jpg',
@@ -23,29 +23,29 @@
2323
log = logging.getLogger(__name__)
2424

2525

26-
class CourseAccessRoleSerializer(serializers.ModelSerializer): # lint-amnesty, pylint: disable=missing-class-docstring
26+
class CourseAccessRoleSerializer(serializers.ModelSerializer): # pylint: disable=missing-class-docstring
2727
user = serializers.SlugRelatedField(slug_field='username', queryset=User.objects.all())
2828

2929
class Meta:
3030
model = CourseAccessRole
3131
fields = ('user', 'role',)
3232

3333

34-
class CourseRunScheduleSerializer(serializers.Serializer): # lint-amnesty, pylint: disable=abstract-method
34+
class CourseRunScheduleSerializer(serializers.Serializer): # pylint: disable=abstract-method
3535
start = serializers.DateTimeField()
3636
end = serializers.DateTimeField()
3737
enrollment_start = serializers.DateTimeField(allow_null=True, required=False)
3838
enrollment_end = serializers.DateTimeField(allow_null=True, required=False)
3939

4040

41-
class CourseRunTeamSerializer(serializers.Serializer): # lint-amnesty, pylint: disable=abstract-method, missing-class-docstring
41+
class CourseRunTeamSerializer(serializers.Serializer): # pylint: disable=abstract-method, missing-class-docstring
4242
def to_internal_value(self, data):
4343
"""Overriding this to support deserialization, for write operations."""
4444
for member in data:
4545
try:
4646
User.objects.get(username=member['user'])
4747
except User.DoesNotExist:
48-
raise serializers.ValidationError( # lint-amnesty, pylint: disable=raise-missing-from # noqa: B904
48+
raise serializers.ValidationError( # pylint: disable=raise-missing-from # noqa: B904
4949
_('Course team user does not exist')
5050
)
5151

@@ -61,10 +61,10 @@ def get_attribute(self, instance):
6161
return instance
6262

6363

64-
class CourseRunTeamSerializerMixin(serializers.Serializer): # lint-amnesty, pylint: disable=abstract-method, missing-class-docstring
64+
class CourseRunTeamSerializerMixin(serializers.Serializer): # pylint: disable=abstract-method, missing-class-docstring
6565
team = CourseRunTeamSerializer(required=False)
6666

67-
def update_team(self, instance, team): # lint-amnesty, pylint: disable=missing-function-docstring
67+
def update_team(self, instance, team): # pylint: disable=missing-function-docstring
6868
# Existing data should remain intact when performing a partial update.
6969
if not self.partial:
7070
CourseAccessRole.objects.filter(course_id=instance.id).delete()
@@ -81,7 +81,7 @@ def update_team(self, instance, team): # lint-amnesty, pylint: disable=missing-
8181
)
8282

8383

84-
class CourseRunImageField(serializers.ImageField): # lint-amnesty, pylint: disable=missing-class-docstring
84+
class CourseRunImageField(serializers.ImageField): # pylint: disable=missing-class-docstring
8585

8686
def get_attribute(self, instance):
8787
return course_image_url(instance)
@@ -92,15 +92,15 @@ def to_representation(self, value):
9292
return request.build_absolute_uri(value)
9393

9494

95-
class CourseRunPacingTypeField(serializers.ChoiceField): # lint-amnesty, pylint: disable=missing-class-docstring
95+
class CourseRunPacingTypeField(serializers.ChoiceField): # pylint: disable=missing-class-docstring
9696
def to_representation(self, value):
9797
return 'self_paced' if value else 'instructor_paced'
9898

9999
def to_internal_value(self, data):
100100
return data == 'self_paced'
101101

102102

103-
class CourseRunImageSerializer(serializers.Serializer): # lint-amnesty, pylint: disable=abstract-method, missing-class-docstring
103+
class CourseRunImageSerializer(serializers.Serializer): # pylint: disable=abstract-method, missing-class-docstring
104104
# We set an empty default to prevent the parent serializer from attempting
105105
# to save this value to the Course object.
106106
card_image = CourseRunImageField(source='course_image', default=empty)
@@ -115,13 +115,13 @@ def update(self, instance, validated_data):
115115
return instance
116116

117117

118-
class CourseRunSerializerCommonFieldsMixin(serializers.Serializer): # lint-amnesty, pylint: disable=abstract-method
118+
class CourseRunSerializerCommonFieldsMixin(serializers.Serializer): # pylint: disable=abstract-method
119119
schedule = CourseRunScheduleSerializer(source='*', required=False)
120120
pacing_type = CourseRunPacingTypeField(source='self_paced', required=False,
121121
choices=((False, 'instructor_paced'), (True, 'self_paced'),))
122122

123123

124-
class CourseRunSerializer(CourseRunSerializerCommonFieldsMixin, CourseRunTeamSerializerMixin, serializers.Serializer): # lint-amnesty, pylint: disable=abstract-method, missing-class-docstring
124+
class CourseRunSerializer(CourseRunSerializerCommonFieldsMixin, CourseRunTeamSerializerMixin, serializers.Serializer): # pylint: disable=abstract-method, missing-class-docstring
125125
id = serializers.CharField(read_only=True)
126126
title = serializers.CharField(source='display_name')
127127
images = CourseRunImageSerializer(source='*', required=False)
@@ -139,7 +139,7 @@ def update(self, instance, validated_data):
139139
return instance
140140

141141

142-
class CourseRunCreateSerializer(CourseRunSerializer): # lint-amnesty, pylint: disable=missing-class-docstring
142+
class CourseRunCreateSerializer(CourseRunSerializer): # pylint: disable=missing-class-docstring
143143
org = serializers.CharField(source='id.org')
144144
number = serializers.CharField(source='id.course')
145145
run = serializers.CharField(source='id.run')
@@ -155,7 +155,7 @@ def create(self, validated_data):
155155
return instance
156156

157157

158-
class CourseRunRerunSerializer(CourseRunSerializerCommonFieldsMixin, CourseRunTeamSerializerMixin, # lint-amnesty, pylint: disable=abstract-method, missing-class-docstring
158+
class CourseRunRerunSerializer(CourseRunSerializerCommonFieldsMixin, CourseRunTeamSerializerMixin, # pylint: disable=abstract-method, missing-class-docstring
159159
serializers.Serializer):
160160
title = serializers.CharField(source='display_name', required=False)
161161
number = serializers.CharField(source='id.course', required=False)
@@ -171,7 +171,7 @@ def validate(self, attrs):
171171
with store.default_store('split'):
172172
new_course_run_key = store.make_course_key(course_run_key.org, number, run)
173173
except InvalidKeyError:
174-
raise serializers.ValidationError( # lint-amnesty, pylint: disable=raise-missing-from # noqa: B904
174+
raise serializers.ValidationError( # pylint: disable=raise-missing-from # noqa: B904
175175
'Invalid key supplied. Ensure there are no special characters in the Course Number.'
176176
)
177177
if store.has_course(new_course_run_key, ignore_case=True):
@@ -200,7 +200,7 @@ def update(self, instance, validated_data):
200200
return course_run
201201

202202

203-
class CourseCloneSerializer(serializers.Serializer): # lint-amnesty, pylint: disable=abstract-method, missing-class-docstring
203+
class CourseCloneSerializer(serializers.Serializer): # pylint: disable=abstract-method, missing-class-docstring
204204
source_course_id = serializers.CharField()
205205
destination_course_id = serializers.CharField()
206206

cms/djangoapps/api/v1/tests/test_serializers/test_course_runs.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,16 @@
1111
from common.djangoapps.student.tests.factories import UserFactory
1212
from openedx.core.lib.courses import course_image_url
1313
from xmodule.modulestore.tests.django_utils import (
14-
ModuleStoreTestCase, # lint-amnesty, pylint: disable=wrong-import-order
14+
ModuleStoreTestCase, # pylint: disable=wrong-import-order
1515
)
16-
from xmodule.modulestore.tests.factories import CourseFactory # lint-amnesty, pylint: disable=wrong-import-order
16+
from xmodule.modulestore.tests.factories import CourseFactory # pylint: disable=wrong-import-order
1717

1818
from ...serializers.course_runs import CourseRunSerializer
1919
from ..utils import serialize_datetime
2020

2121

2222
@ddt.ddt
23-
class CourseRunSerializerTests(ModuleStoreTestCase): # lint-amnesty, pylint: disable=missing-class-docstring
23+
class CourseRunSerializerTests(ModuleStoreTestCase): # pylint: disable=missing-class-docstring
2424

2525
def setUp(self):
2626
super().setUp()

cms/djangoapps/api/v1/tests/test_views/test_course_runs.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33

44
import datetime
5-
from unittest.mock import patch # lint-amnesty, pylint: disable=unused-import # noqa: F401
5+
from unittest.mock import patch # pylint: disable=unused-import # noqa: F401
66

77
import ddt
88
import pytz
@@ -16,14 +16,14 @@
1616
from common.djangoapps.student.models import CourseAccessRole
1717
from common.djangoapps.student.tests.factories import TEST_PASSWORD, AdminFactory, UserFactory
1818
from openedx.core.lib.courses import course_image_url
19-
from xmodule.contentstore.content import StaticContent # lint-amnesty, pylint: disable=wrong-import-order
20-
from xmodule.contentstore.django import contentstore # lint-amnesty, pylint: disable=wrong-import-order
21-
from xmodule.exceptions import NotFoundError # lint-amnesty, pylint: disable=wrong-import-order
22-
from xmodule.modulestore.django import modulestore # lint-amnesty, pylint: disable=wrong-import-order
19+
from xmodule.contentstore.content import StaticContent # pylint: disable=wrong-import-order
20+
from xmodule.contentstore.django import contentstore # pylint: disable=wrong-import-order
21+
from xmodule.exceptions import NotFoundError # pylint: disable=wrong-import-order
22+
from xmodule.modulestore.django import modulestore # pylint: disable=wrong-import-order
2323
from xmodule.modulestore.tests.django_utils import (
24-
ModuleStoreTestCase, # lint-amnesty, pylint: disable=wrong-import-order
24+
ModuleStoreTestCase, # pylint: disable=wrong-import-order
2525
)
26-
from xmodule.modulestore.tests.factories import ( # lint-amnesty, pylint: disable=wrong-import-order
26+
from xmodule.modulestore.tests.factories import ( # pylint: disable=wrong-import-order
2727
CourseFactory,
2828
ToyCourseFactory,
2929
)
@@ -336,15 +336,15 @@ def test_rerun(self, pacing_type, expected_self_paced_value, number):
336336
original_course_run = ToyCourseFactory()
337337
add_organization({
338338
'name': 'Test Organization',
339-
'short_name': original_course_run.id.org, # lint-amnesty, pylint: disable=no-member
339+
'short_name': original_course_run.id.org, # pylint: disable=no-member
340340
'description': 'Testing Organization Description',
341341
})
342342
start = datetime.datetime.now(pytz.UTC).replace(microsecond=0)
343343
end = start + datetime.timedelta(days=30)
344344
user = UserFactory()
345345
role = 'instructor'
346346
run = '3T2017'
347-
url = reverse('api:v1:course_run-rerun', kwargs={'pk': str(original_course_run.id)}) # lint-amnesty, pylint: disable=no-member
347+
url = reverse('api:v1:course_run-rerun', kwargs={'pk': str(original_course_run.id)}) # pylint: disable=no-member
348348
data = {
349349
'run': run,
350350
'schedule': {
@@ -374,16 +374,16 @@ def test_rerun(self, pacing_type, expected_self_paced_value, number):
374374

375375
if number:
376376
assert course_run.id.course == number
377-
assert course_run.id.course != original_course_run.id.course # lint-amnesty, pylint: disable=no-member
377+
assert course_run.id.course != original_course_run.id.course # pylint: disable=no-member
378378
else:
379-
assert course_run.id.course == original_course_run.id.course # lint-amnesty, pylint: disable=no-member
379+
assert course_run.id.course == original_course_run.id.course # pylint: disable=no-member
380380

381381
self.assert_course_run_schedule(course_run, start, end)
382382
self.assert_access_role(course_run, user, role)
383383
self.assert_course_access_role_count(course_run, 1)
384384
course_orgs = get_course_organizations(course_run_key)
385385
self.assertEqual(len(course_orgs), 1) # noqa: PT009
386-
self.assertEqual(course_orgs[0]['short_name'], original_course_run.id.org) # lint-amnesty, pylint: disable=no-member # noqa: PT009
386+
self.assertEqual(course_orgs[0]['short_name'], original_course_run.id.org) # pylint: disable=no-member # noqa: PT009
387387

388388
def test_rerun_duplicate_run(self):
389389
course_run = ToyCourseFactory()
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
# lint-amnesty, pylint: disable=missing-module-docstring
1+
# pylint: disable=missing-module-docstring
22
def serialize_datetime(d):
33
return d.strftime('%Y-%m-%dT%H:%M:%S.%fZ')

cms/djangoapps/api/v1/views/course_runs.py

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

2121

22-
class CourseRunViewSet(viewsets.GenericViewSet): # lint-amnesty, pylint: disable=missing-class-docstring
22+
class CourseRunViewSet(viewsets.GenericViewSet): # pylint: disable=missing-class-docstring
2323
lookup_value_regex = settings.COURSE_KEY_REGEX
2424
permission_classes = (permissions.IsAdminUser,)
2525
serializer_class = CourseRunSerializer
@@ -42,18 +42,18 @@ def get_object(self):
4242

4343
raise Http404
4444

45-
def list(self, request, *args, **kwargs): # lint-amnesty, pylint: disable=unused-argument
45+
def list(self, request, *args, **kwargs): # pylint: disable=unused-argument
4646
course_runs, __ = _accessible_courses_iter(request)
4747
page = self.paginate_queryset(list(course_runs))
4848
serializer = self.get_serializer(page, many=True)
4949
return self.get_paginated_response(serializer.data)
5050

51-
def retrieve(self, request, *args, **kwargs): # lint-amnesty, pylint: disable=unused-argument
51+
def retrieve(self, request, *args, **kwargs): # pylint: disable=unused-argument
5252
course_run = self.get_object()
5353
serializer = self.get_serializer(course_run)
5454
return Response(serializer.data)
5555

56-
def update(self, request, *args, **kwargs): # lint-amnesty, pylint: disable=missing-function-docstring, unused-argument
56+
def update(self, request, *args, **kwargs): # pylint: disable=missing-function-docstring, unused-argument
5757
course_run = self.get_object()
5858

5959
partial = kwargs.pop('partial', False)
@@ -66,7 +66,7 @@ def partial_update(self, request, *args, **kwargs):
6666
kwargs['partial'] = True
6767
return self.update(request, *args, **kwargs)
6868

69-
def create(self, request, *args, **kwargs): # lint-amnesty, pylint: disable=unused-argument
69+
def create(self, request, *args, **kwargs): # pylint: disable=unused-argument
7070
serializer = CourseRunCreateSerializer(data=request.data, context=self.get_serializer_context())
7171
serializer.is_valid(raise_exception=True)
7272
serializer.save()
@@ -77,15 +77,15 @@ def create(self, request, *args, **kwargs): # lint-amnesty, pylint: disable=unu
7777
methods=['post', 'put'],
7878
parser_classes=(parsers.FormParser, parsers.MultiPartParser,),
7979
serializer_class=CourseRunImageSerializer)
80-
def images(self, request, *args, **kwargs): # lint-amnesty, pylint: disable=missing-function-docstring, unused-argument
80+
def images(self, request, *args, **kwargs): # pylint: disable=missing-function-docstring, unused-argument
8181
course_run = self.get_object()
8282
serializer = CourseRunImageSerializer(course_run, data=request.data, context=self.get_serializer_context())
8383
serializer.is_valid(raise_exception=True)
8484
serializer.save()
8585
return Response(serializer.data)
8686

8787
@action(detail=True, methods=['post'])
88-
def rerun(self, request, *args, **kwargs): # lint-amnesty, pylint: disable=missing-function-docstring, unused-argument
88+
def rerun(self, request, *args, **kwargs): # pylint: disable=missing-function-docstring, unused-argument
8989
course_run = self.get_object()
9090
serializer = CourseRunRerunSerializer(course_run, data=request.data, context=self.get_serializer_context())
9191
serializer.is_valid(raise_exception=True)
@@ -94,7 +94,7 @@ def rerun(self, request, *args, **kwargs): # lint-amnesty, pylint: disable=miss
9494
return Response(serializer.data, status=status.HTTP_201_CREATED)
9595

9696
@action(detail=False, methods=['post'])
97-
def clone(self, request, *args, **kwargs): # lint-amnesty, pylint: disable=unused-argument
97+
def clone(self, request, *args, **kwargs): # pylint: disable=unused-argument
9898
"""
9999
**Use Case**
100100

cms/djangoapps/cms_user_tasks/tests.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ class TestUserTasks(APITestCase):
7777
"""
7878

7979
@classmethod
80-
def setUpTestData(cls): # lint-amnesty, pylint: disable=super-method-not-called
80+
def setUpTestData(cls): # pylint: disable=super-method-not-called
8181
cls.user = UserFactory.create(username='test_user', email='[email protected]', password='password')
8282
cls.status = UserTaskStatus.objects.create(
8383
user=cls.user, task_id=str(uuid4()), task_class='test_rest_api.sample_task', name='SampleTask 2',
@@ -151,7 +151,7 @@ class TestUserTaskStopped(APITestCase):
151151
"""
152152

153153
@classmethod
154-
def setUpTestData(cls): # lint-amnesty, pylint: disable=super-method-not-called
154+
def setUpTestData(cls): # pylint: disable=super-method-not-called
155155
cls.user = UserFactory.create(username='test_user', email='[email protected]', password='password')
156156
cls.status = UserTaskStatus.objects.create(
157157
user=cls.user, task_id=str(uuid4()), task_class='test_rest_api.sample_task', name='SampleTask 2',

0 commit comments

Comments
 (0)