Merge pull request #19751 from edx/unicode10

enable unicode format string linter
This commit is contained in:
Calen Pennington
2019-02-21 06:07:11 -05:00
committed by GitHub
28 changed files with 113 additions and 83 deletions

View File

@@ -163,7 +163,7 @@ def _write_chunk(request, courselike_key):
if size < int(content_range['start']):
_save_request_status(request, courselike_string, -1)
log.warning(
"Reported range %s does not match size downloaded so far %s",
u"Reported range %s does not match size downloaded so far %s",
content_range['start'],
size
)

View File

@@ -982,7 +982,10 @@ class VideoImageTestCase(VideoUploadTestBase, CourseTestCase):
'width': settings.VIDEO_IMAGE_MIN_WIDTH,
'height': settings.VIDEO_IMAGE_MIN_HEIGHT - 10
},
'Recommended image resolution is {image_file_max_width}x{image_file_max_height}. The minimum resolution is {image_file_min_width}x{image_file_min_height}.'.format(
(
u'Recommended image resolution is {image_file_max_width}x{image_file_max_height}. '
u'The minimum resolution is {image_file_min_width}x{image_file_min_height}.'
).format(
image_file_max_width=settings.VIDEO_IMAGE_MAX_WIDTH,
image_file_max_height=settings.VIDEO_IMAGE_MAX_HEIGHT,
image_file_min_width=settings.VIDEO_IMAGE_MIN_WIDTH,
@@ -994,7 +997,10 @@ class VideoImageTestCase(VideoUploadTestBase, CourseTestCase):
'width': 1200, # not 16:9, but width/height check first.
'height': 100
},
'Recommended image resolution is {image_file_max_width}x{image_file_max_height}. The minimum resolution is {image_file_min_width}x{image_file_min_height}.'.format(
(
u'Recommended image resolution is {image_file_max_width}x{image_file_max_height}. '
u'The minimum resolution is {image_file_min_width}x{image_file_min_height}.'
).format(
image_file_max_width=settings.VIDEO_IMAGE_MAX_WIDTH,
image_file_max_height=settings.VIDEO_IMAGE_MAX_HEIGHT,
image_file_min_width=settings.VIDEO_IMAGE_MIN_WIDTH,

View File

@@ -139,6 +139,8 @@ REQUIRE_DEBUG = DEBUG
########################### OAUTH2 #################################
OAUTH_OIDC_ISSUER = 'http://127.0.0.1:8000/oauth2'
# pylint: disable=unicode-format-string
JWT_AUTH.update({
'JWT_SECRET_KEY': 'lms-secret',
'JWT_ISSUER': 'http://127.0.0.1:8000/oauth2',
@@ -166,6 +168,8 @@ JWT_AUTH.update({
),
})
# pylint: enable=unicode-format-string
IDA_LOGOUT_URI_LIST = [
'http://localhost:18130/logout/', # ecommerce
'http://localhost:18150/logout/', # credentials

View File

@@ -439,7 +439,7 @@ class VideoComponentPage(VideoPage):
self.q(css='#{}'.format(field_id)).fill(field_value)
elif field_type == 'select':
self.q(css='select[name="{0}"] option[value="{1}"]'.format(field_name, field_value)).first.click()
self.q(css=u'select[name="{0}"] option[value="{1}"]'.format(field_name, field_value)).first.click()
def verify_field_value(self, field_name, field_value):
"""

View File

@@ -51,7 +51,7 @@ class EdxNotesTestMixin(UniqueCourseTest):
XBlockFixtureDesc(
"html",
"Test HTML 1",
data="""
data=u"""
<p><span class="{}">Annotate this!</span></p>
<p>Annotate this</p>
""".format(self.selector)

View File

@@ -321,10 +321,10 @@ class SubsectionGradingPolicyTest(SubsectionGradingPolicyBase):
def test_subsection_grading_policy_on_progress_page(self):
with self._logged_in_session():
self._check_scores_and_page_text([(0, 1), (0, 1)], (0, 2), "Homework 1 - Test Subsection 1 - 0% (0/2)")
self._check_scores_and_page_text([(0, 1), (0, 1)], (0, 2), u"Homework 1 - Test Subsection 1 - 0% (0/2)")
self.courseware_page.visit()
self._answer_problem_correctly()
self._check_scores_and_page_text([(1, 1), (0, 1)], (1, 2), "Homework 1 - Test Subsection 1 - 50% (1/2)")
self._check_scores_and_page_text([(1, 1), (0, 1)], (1, 2), u"Homework 1 - Test Subsection 1 - 50% (1/2)")
self._set_policy_for_subsection("Not Graded")
@@ -337,7 +337,7 @@ class SubsectionGradingPolicyTest(SubsectionGradingPolicyBase):
self._set_policy_for_subsection("Homework")
with self._logged_in_session():
self._check_scores_and_page_text([(1, 1), (0, 1)], (1, 2), "Homework 1 - Test Subsection 1 - 50% (1/2)")
self._check_scores_and_page_text([(1, 1), (0, 1)], (1, 2), u"Homework 1 - Test Subsection 1 - 50% (1/2)")
class SubsectionGradingPolicyA11yTest(SubsectionGradingPolicyBase):

View File

@@ -209,8 +209,10 @@ def _footer_navigation_links(language=settings.LANGUAGE_CODE):
platform_name = configuration_helpers.get_value('platform_name', settings.PLATFORM_NAME)
links = [
("about", (marketing_link("ABOUT"), _("About"))),
("enterprise", (marketing_link("ENTERPRISE"),
_("{platform_name} for Business").format(platform_name=platform_name))),
("enterprise", (
marketing_link("ENTERPRISE"),
_(u"{platform_name} for Business").format(platform_name=platform_name)
)),
("blog", (marketing_link("BLOG"), _("Blog"))),
("help-center", (settings.SUPPORT_SITE_LINK, _("Help Center"))),
("contact", (reverse("support:contact_us"), _("Contact"))),
@@ -272,8 +274,10 @@ def _footer_business_links(language=settings.LANGUAGE_CODE):
platform_name = configuration_helpers.get_value('platform_name', settings.PLATFORM_NAME)
links = [
("about", (marketing_link("ABOUT"), _("About"))),
("enterprise", (marketing_link("ENTERPRISE"),
_("{platform_name} for Business").format(platform_name=platform_name))),
("enterprise", (
marketing_link("ENTERPRISE"),
_(u"{platform_name} for Business").format(platform_name=platform_name)
)),
]
if language == settings.LANGUAGE_CODE:

View File

@@ -517,7 +517,7 @@ def _send_course_email(entry_id, email_id, to_list, global_email_context, subtas
total_recipients_failed += 1
log.info(
u"BulkEmail ==> Email address %s contains non-ascii characters. Skipping sending "
"email to %s, EmailId: %s ",
u"email to %s, EmailId: %s ",
email,
current_recipient['profile__name'],
email_id

View File

@@ -446,8 +446,8 @@ def _certificate_download_url(user_id, course_id):
except GeneratedCertificate.DoesNotExist:
log.critical(
u'Unable to lookup certificate\n'
'user id: %d\n'
'course: %s', user_id, unicode(course_id)
u'user id: %d\n'
u'course: %s', user_id, unicode(course_id)
)
return ''
@@ -509,8 +509,8 @@ def get_certificate_template(course_key, mode, language):
)
template = get_language_specific_template_or_default(language, org_mode_and_key_templates, course_key)
if template:
log.info("Template retrieved for course based on the course_key:{course_key}, mode:{mode} "
"and org_id:{org_id}".format(course_key=course_key, mode=mode, org_id=org_id))
log.info(u"Template retrieved for course based on the course_key:{course_key}, mode:{mode} "
u"and org_id:{org_id}".format(course_key=course_key, mode=mode, org_id=org_id))
# since no template matched that course_key, only consider templates with empty course_key
empty_course_key_templates = active_templates.filter(course_key=CourseKeyField.Empty)
@@ -521,8 +521,8 @@ def get_certificate_template(course_key, mode, language):
)
template = get_language_specific_template_or_default(language, org_and_mode_templates, course_key)
if template:
log.info("Template retrieved for course:{course_key} based on the mode:{mode} "
"and org_id:{org_id}".format(course_key=course_key, mode=mode, org_id=org_id))
log.info(u"Template retrieved for course:{course_key} based on the mode:{mode} "
u"and org_id:{org_id}".format(course_key=course_key, mode=mode, org_id=org_id))
if not template and org_id: # get template by only org
org_templates = empty_course_key_templates.filter(
organization_id=org_id,
@@ -530,7 +530,7 @@ def get_certificate_template(course_key, mode, language):
)
template = get_language_specific_template_or_default(language, org_templates, course_key)
if template:
log.info("Template retrieved for course:{course_key} and org_id:{org_id}".
log.info(u"Template retrieved for course:{course_key} and org_id:{org_id}".
format(course_key=course_key, org_id=org_id))
if not template and mode: # get template by only mode
mode_templates = empty_course_key_templates.filter(
@@ -539,8 +539,8 @@ def get_certificate_template(course_key, mode, language):
)
template = get_language_specific_template_or_default(language, mode_templates, course_key)
if template:
log.info("Template retrieved for course:{course_key} based on the mode:{mode} "
"and org_id:{org_id}".format(course_key=course_key, mode=mode, org_id=org_id))
log.info(u"Template retrieved for course:{course_key} based on the mode:{mode} "
u"and org_id:{org_id}".format(course_key=course_key, mode=mode, org_id=org_id))
return template if template else None
@@ -551,16 +551,21 @@ def get_language_specific_template_or_default(language, templates, course_key):
Returns default templates If no language matches, or language passed is None
"""
two_letter_language = _get_two_letter_language_code(language)
log.info("Retrieved two letter language is {two_letter_language} for the language:{language} and "
"course:{course_key}".format(two_letter_language=two_letter_language, language=language,
course_key=course_key))
log.info(
u"Retrieved two letter language is {two_letter_language} for the language:{language} and "
u"course:{course_key}".format(
two_letter_language=two_letter_language,
language=language,
course_key=course_key
)
)
language_or_default_templates = list(templates.filter(Q(language=two_letter_language)
| Q(language=None) | Q(language='')))
language_specific_template = get_language_specific_template(two_letter_language,
language_or_default_templates, course_key)
if language_specific_template:
log.info("Returning languages: {language} specific template for course:{course_key}".
log.info(u"Returning languages: {language} specific template for course:{course_key}".
format(course_key=course_key, language=language))
return language_specific_template
else:
@@ -577,11 +582,11 @@ def get_language_specific_template(language, templates, course_key):
"""
for template in templates:
if template.language == language:
log.info("{language} language specific template found for course:{course_key}".
log.info(u"{language} language specific template found for course:{course_key}".
format(language=language, course_key=course_key))
return template
log.info("{language} language specific template not found for course:{course_key}".
log.info(u"{language} language specific template not found for course:{course_key}".
format(language=language, course_key=course_key))
return None

View File

@@ -97,7 +97,7 @@ class CommonCertificatesTestCase(ModuleStoreTestCase):
self.user.profile.save()
self.client.login(username=self.user.username, password='foo')
self.request = RequestFactory().request()
self.linkedin_url = 'http://www.linkedin.com/profile/add?{params}'
self.linkedin_url = u'http://www.linkedin.com/profile/add?{params}'
self.cert = GeneratedCertificateFactory.create(
user=self.user,
@@ -129,7 +129,7 @@ class CommonCertificatesTestCase(ModuleStoreTestCase):
'name': 'Signatory_Name ' + str(i),
'title': 'Signatory_Title ' + str(i),
'organization': 'Signatory_Organization ' + str(i),
'signature_image_path': '/static/certificates/images/demo-sig{}.png'.format(i),
'signature_image_path': u'/static/certificates/images/demo-sig{}.png'.format(i),
'id': i
} for i in xrange(signatory_count)
@@ -141,7 +141,7 @@ class CommonCertificatesTestCase(ModuleStoreTestCase):
'name': 'Name ' + str(i),
'description': 'Description ' + str(i),
'course_title': 'course_title_' + str(i),
'org_logo_path': '/t4x/orgX/testX/asset/org-logo-{}.png'.format(i),
'org_logo_path': u'/t4x/orgX/testX/asset/org-logo-{}.png'.format(i),
'signatories': signatories,
'version': 1,
'is_active': is_active
@@ -190,7 +190,7 @@ class CommonCertificatesTestCase(ModuleStoreTestCase):
<html>
<body>
lang: ${LANGUAGE_CODE}
course name: """ + template_name + """
course name: """ + template_name + u"""
mode: ${course_mode}
${accomplishment_copy_course_description}
${twitter_url}
@@ -266,10 +266,10 @@ class CertificatesViewsTests(CommonCertificatesTestCase, CacheIsolationTestCase)
self.assertEqual(response.status_code, 200)
params = OrderedDict([
('_ed', '0_0dPSPyS070e0HsE9HNz_13_d11_',),
('pfCertificationName', '{platform_name} Honor Code Certificate for {course_name}'.format(
platform_name=settings.PLATFORM_NAME.encode('utf-8'),
('pfCertificationName', u'{platform_name} Honor Code Certificate for {course_name}'.format(
platform_name=settings.PLATFORM_NAME,
course_name=self.course.display_name,
),),
).encode('utf-8'),),
('pfCertificationUrl', self.request.build_absolute_uri(test_url),),
])
self.assertIn(
@@ -289,10 +289,10 @@ class CertificatesViewsTests(CommonCertificatesTestCase, CacheIsolationTestCase)
# the linkedIn share URL with appropriate parameters should be present
params = OrderedDict([
('_ed', settings.MICROSITE_CONFIGURATION['test_site']['LINKEDIN_COMPANY_ID'],),
('pfCertificationName', '{platform_name} Honor Code Certificate for {course_name}'.format(
('pfCertificationName', u'{platform_name} Honor Code Certificate for {course_name}'.format(
platform_name=settings.MICROSITE_CONFIGURATION['test_site']['platform_name'],
course_name=self.course.display_name,
),),
).encode('utf-8'),),
('pfCertificationUrl', 'http://' + settings.MICROSITE_TEST_HOSTNAME + test_url,),
])
self.assertIn(

View File

@@ -553,7 +553,7 @@ def render_html_view(request, user_id, course_id):
custom_template = None
custom_template_language = None
if settings.FEATURES.get('CUSTOM_CERTIFICATE_TEMPLATES_ENABLED', False):
log.info("Custom certificate for course {course_id}".format(course_id=course_id))
log.info(u"Custom certificate for course %s", course_id)
custom_template, custom_template_language = _get_custom_template_and_language(
course.id,
user_certificate.mode,
@@ -566,8 +566,11 @@ def render_html_view(request, user_id, course_id):
user_language = translation.get_language()
certificate_language = custom_template_language if custom_template else user_language
log.info("certificate language is: {language} for the course:{course_key}".format(language=certificate_language,
course_key=course_key))
log.info(
u"certificate language is: %s for the course: %s",
certificate_language,
course_key
)
# Generate the certificate context in the correct language, then render the template.
with translation.override(certificate_language):
@@ -643,8 +646,11 @@ def _get_catalog_data_for_course(course_key):
except ValueError:
log.exception('Error occurred while parsing course run details')
catalog_data['content_language'] = course_run_data.get('content_language')
log.info("catalog data received for course:{course_key} is : {catalog_data}".format(course_key=course_key,
catalog_data=catalog_data))
log.info(
u"catalog data received for course: %s is : %s",
course_key,
catalog_data,
)
return catalog_data
@@ -654,9 +660,12 @@ def _get_custom_template_and_language(course_id, course_mode, course_language):
combination, along with the language that should be used to render that template.
"""
closest_released_language = get_closest_released_language(course_language) if course_language else None
log.info("closest released language for {course_id} is {closest_released_language} and course language was:"
" {course_language}".format(course_id=course_id, closest_released_language=closest_released_language,
course_language=course_language))
log.info(
u"closest released language for %s is %s and course language was: %s",
course_id,
closest_released_language,
course_language
)
template = get_certificate_template(course_id, course_mode, closest_released_language)
if template and template.language:

View File

@@ -814,7 +814,7 @@ class TestGetHtmlMethod(BaseTestXmodule):
mocked_get_video.side_effect = side_effect
SOURCE_XML = """
source_xml = u"""
<video show_captions="true"
display_name="A Name"
sub="a_sub_file.srt.sjson" source="{source}"
@@ -875,7 +875,7 @@ class TestGetHtmlMethod(BaseTestXmodule):
initial_context['metadata']['duration'] = None
for data in cases:
DATA = SOURCE_XML.format(
DATA = source_xml.format(
download_video=data['download_video'],
source=data['source'],
sources=data['sources'],

View File

@@ -201,15 +201,15 @@ class CoursewareIndex(View):
if not allow_anonymous:
PageLevelMessages.register_warning_message(
request,
Text(_("You are not signed in. To see additional course content, {sign_in_link} or "
"{register_link}, and enroll in this course.")).format(
sign_in_link=HTML('<a href="{url}">{sign_in_label}</a>').format(
Text(_(u"You are not signed in. To see additional course content, {sign_in_link} or "
u"{register_link}, and enroll in this course.")).format(
sign_in_link=HTML(u'<a href="{url}">{sign_in_label}</a>').format(
sign_in_label=_('sign in'),
url='{}?{}'.format(reverse('signin_user'), qs),
),
register_link=HTML('<a href="/{url}">{register_label}</a>').format(
register_link=HTML(u'<a href="/{url}">{register_label}</a>').format(
register_label=_('register'),
url='{}?{}'.format(reverse('register_user'), qs),
url=u'{}?{}'.format(reverse('register_user'), qs),
),
)
)

View File

@@ -104,8 +104,8 @@ EXPECTED_CSV_HEADER = (
'"code","redeem_code_url","course_id","company_name","created_by","redeemed_by","invoice_id","purchaser",'
'"customer_reference_number","internal_reference"'
)
EXPECTED_COUPON_CSV_HEADER = '"Coupon Code","Course Id","% Discount","Description","Expiration Date",' \
'"Is Active","Code Redeemed Count","Total Discounted Seats","Total Discounted Amount"'
EXPECTED_COUPON_CSV_HEADER = u'"Coupon Code","Course Id","% Discount","Description","Expiration Date",' \
u'"Is Active","Code Redeemed Count","Total Discounted Seats","Total Discounted Amount"'
# ddt data for test cases involving reports
REPORTS_DATA = (

View File

@@ -63,7 +63,7 @@ def score_changed_handler(sender, **kwargs): # pylint: disable=unused-argument
else:
log.error(
u"Outcome Service: Required signal parameter is None. "
"points_possible: %s, points_earned: %s, user_id: %s, "
"course_id: %s, usage_id: %s",
u"points_possible: %s, points_earned: %s, user_id: %s, "
u"course_id: %s, usage_id: %s",
points_possible, points_earned, user_id, course_id, usage_id
)

View File

@@ -106,7 +106,7 @@ class ReportTypeTests(ModuleStoreTestCase):
second_refund.refund_requested_time = self.test_time
second_refund.save()
self.CORRECT_REFUND_REPORT_CSV = dedent("""
self.CORRECT_REFUND_REPORT_CSV = dedent(b"""
Order Number,Customer Name,Date of Original Transaction,Date of Refund,Amount of Refund,Service Fees (if any)
3,King Bowsér,{time_str},{time_str},40.00,0.00
4,Súsan Smith,{time_str},{time_str},40.00,0.00
@@ -203,7 +203,7 @@ class ItemizedPurchaseReportTest(ModuleStoreTestCase):
cert.refund_requested_time = self.now
cert.save()
self.CORRECT_CSV = dedent("""
self.CORRECT_CSV = dedent(b"""
Purchase Time,Order ID,Status,Quantity,Unit Cost,Total Cost,Currency,Description,Comments
{time_str},1,purchased,1,40.00,40.00,usd,Registration for Course: Robot Super Course,Ba\xc3\xbc\xe5\x8c\x85
{time_str},1,purchased,1,40.00,40.00,usd,verified cert for course Robot Super Course,

View File

@@ -47,13 +47,13 @@ def send_grade_if_interesting(user, course_run_key, mode, status, letter_grade,
if verbose:
msg = u"Starting send_grade_if_interesting with params: "\
"user [{username}], "\
"course_run_key [{key}], "\
"mode [{mode}], "\
"status [{status}], "\
"letter_grade [{letter_grade}], "\
"percent_grade [{percent_grade}], "\
"verbose [{verbose}]"\
u"user [{username}], "\
u"course_run_key [{key}], "\
u"mode [{mode}], "\
u"status [{status}], "\
u"letter_grade [{letter_grade}], "\
u"percent_grade [{percent_grade}], "\
u"verbose [{verbose}]"\
.format(
username=getattr(user, 'username', None),
key=str(course_run_key),

View File

@@ -84,12 +84,12 @@ def handle_course_cert_changed(sender, user, course_key, mode, status, **kwargs)
verbose = kwargs.get('verbose', False)
if verbose:
msg = u"Starting handle_course_cert_changed with params: "\
"sender [{sender}], "\
"user [{username}], "\
"course_key [{course_key}], "\
"mode [{mode}], "\
"status [{status}], "\
"kwargs [{kw}]"\
u"sender [{sender}], "\
u"user [{username}], "\
u"course_key [{course_key}], "\
u"mode [{mode}], "\
u"status [{status}], "\
u"kwargs [{kw}]"\
.format(
sender=sender,
username=getattr(user, 'username', None),

View File

@@ -25,7 +25,7 @@ class RetirementQueueDeletionForm(forms.Form):
# Translators: 'current_state' is a string from an enumerated list indicating the learner's retirement
# state. Example: FORUMS_COMPLETE
u"Retirement requests can only be cancelled for users in the PENDING state."
" Current request state for '{original_username}': {current_state}".format(
u" Current request state for '{original_username}': {current_state}".format(
original_username=retirement.original_username,
current_state=retirement.current_state.state_name
)

View File

@@ -57,7 +57,7 @@ class Command(BaseCommand):
if retirement.user.email != old_retired_email:
print(
u'WARNING: Skipping UserRetirementStatus ID {} / User ID {} because the user does not appear to '
'have a retired email address: {}.'.format(
u'have a retired email address: {}.'.format(
retirement.id,
retirement.user.id,
retirement.user.email,

View File

@@ -99,4 +99,8 @@ class Command(BaseCommand):
end += chunk_size
sleep(sleep_time_secs)
print('Finished! Updated {} total preferences from {} to {}'.format(updated_count, old_lang_code, new_lang_code))
print(u'Finished! Updated {} total preferences from {} to {}'.format(
updated_count,
old_lang_code,
new_lang_code
))

View File

@@ -33,7 +33,7 @@ def delete_rows(model_mgr,
# The "as id" below fools Django raw query into thinking the primary key is being queried.
# It's necessary because Django will throw an exception if the raw SQL does not query the primary key.
min_max_ids = model_mgr.raw(
'SELECT MIN({}) as id, MAX({}) as max_id FROM {}'.format(primary_id_name, primary_id_name, table_name)
u'SELECT MIN({}) as id, MAX({}) as max_id FROM {}'.format(primary_id_name, primary_id_name, table_name)
)[0]
min_id = min_max_ids.id
max_id = min_max_ids.max_id

View File

@@ -70,7 +70,7 @@ class FormatHtmlTest(unittest.TestCase):
def test_ungettext(self):
for i in [1, 2]:
out = Text(ungettext(u"1 & {}", "2 & {}", i)).format(HTML(u"<>"))
out = Text(ungettext(u"1 & {}", u"2 & {}", i)).format(HTML(u"<>"))
self.assertEqual(out, u"{} &amp; <>".format(i))
def test_strip_all_tags_but_br_filter(self):

View File

@@ -293,12 +293,12 @@ class LazySequence(Sequence):
def __repr__(self):
if self._exhausted:
return "LazySequence({!r}, {!r})".format(
return u"LazySequence({!r}, {!r})".format(
self._data,
self.est_len,
)
else:
return "LazySequence(itertools.chain({!r}, {!r}), {!r})".format(
return u"LazySequence(itertools.chain({!r}, {!r}), {!r})".format(
self._data,
self.iterable,
self.est_len,

View File

@@ -348,7 +348,7 @@ def diff_coverage(options):
# Generate the diff coverage reports (HTML and console)
sh(
u"diff-cover {xml_report_str} --compare-branch={compare_branch} "
"--html-report {diff_html_path}".format(
u"--html-report {diff_html_path}".format(
xml_report_str=xml_report_str,
compare_branch=compare_branch,
diff_html_path=diff_html_path,

View File

@@ -49,7 +49,7 @@ def start_servers(options):
cmd += "python -m "
cmd += (
u"manage {service} --settings {settings} runserver "
"{address} --traceback --noreload".format(
u"{address} --traceback --noreload".format(
service=service,
settings=Env.SETTINGS,
address=address,

View File

@@ -346,7 +346,6 @@ disable =
using-cmp-argument,
xrange-builtin,
zip-builtin-not-iterating,
unicode-format-string,
native-string,
[REPORTS]
@@ -447,4 +446,4 @@ int-import-graph =
[EXCEPTIONS]
overgeneral-exceptions = Exception
# 4285ece9aa125ff8efc6f77ed6d34579e65e2d96
# ddfc2b6fc6acff4fdfcc76ecb982aa840035d86f

View File

@@ -7,7 +7,6 @@ load-plugins+=,caniusepython3.pylint_checker
[MESSAGES CONTROL]
# Disable unicode-format-string until we can agree to turn it on.
disable+ =
unicode-format-string,
native-string,
[BASIC]