merge 3.3 (#20796)
Issue #20791: copy.copy() now doesn't make a copy when the input is a bytes object.  Initial patch by Peter Otten.
whatsnew: pprint's compact option.
whatsnew: attribute base64 memoryview change to Nick.
whatsnew: reword the contextlib.redirect_stdout entry for increased clarity.
whatsnew: reformat pdb entry to match style of most other module entries.

That is: one paragraph per feature.
whatsnew: expand pbkdf2_hmac entry slightly.
fix importlib test failure when bytecode writing is disabled (closes #20796)

Patch by Berker Peksag.
Issue #20791: copy.copy() now doesn't make a copy when the input is a bytes object.  Initial patch by Peter Otten.
whatsnew: fix textwrap/shorten entry, and improve the related docs.

I had incorrectly added back the shorten method when I initially
made the whatsnew entry, but the shorten function docs were not
correct according to the code.  I also improved the wording in
general.
Null merge
Issue #20567: Delete class attribute gui widgets in idle tests.
Code patch by Serhiy Storchaka
Merge with 3.3