bpo-5664: 2to3 convert Cookie.Cookie properly by aldwinaldwin · Pull Request #15268 · python/cpython

@aldwinaldwin

@aldwinaldwin

epicfaace

@@ -276,6 +276,13 @@ and off individually. They are described here in more detail.
Handles other modules renames in the standard library. It is separate from

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Handles other modules renames in the standard library. It is separate from
Handles other module renames in the standard library. It is separate from

Handles other modules renames in the standard library. It is separate from
the :2to3fixer:`imports` and :2to3fixer:`imports2` fixers only because of
technical limitations. :2to3fixer:`renames` needs to run afterwards to

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What are these technical limitations?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Test_imports() would fail, because this fix uses 2 steps. fix_renames does a second change after fix_imports.


.. 2to3fixer:: imports3

Handles other modules renames in the standard library. It is separate from

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Handles other modules renames in the standard library. It is separate from
Handles other module renames in the standard library. It is separate from
'htmlentitydefs' : 'html.entities',
'HTMLParser' : 'html.parser',
'Cookie': 'http.cookies',
#'Cookie': 'http.cookies', is handled by fix_imports3 + renames

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you can remove this line.

else:
# Replace usage of the module.
bare_name = results["bare_with_attr"][0]
if isinstance(results["bare_with_attr"],list):

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if isinstance(results["bare_with_attr"],list):
if isinstance(results["bare_with_attr"], list):
self.transform(node, results)
else:
# Replace usage of the module.
bare_name = results["bare_with_attr"][0]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does this change do? (when is results["bare_with_attr"] not a list?)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When there is only 1 key/value in MAPPING like in fix_imports3.



MAPPING = {
'Cookie': 'http.cookies',

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you format indentation in this file?

class Test_imports3(FixerTestCase):

def setUp(self):
super(Test_imports3, self).setUp(['imports3', 'renames'])

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you only include imports3 in this test class? You can make a separate test class for the combination of imports3 and renames.

@pablogsal

@aldwinaldwin Are you still interested on the finish this PR? I could finish it for you if you don't have time :)

@aldwinaldwin

@iritkatriel