import re
code = r"""
print(", ,", "l") # comment spaces
print(", ,", "l") # comment spaces
"""
print(re.sub(r"""
[Rr]("(?!"")|'(?!'')|"{3}|'{3}).*?\1 # Raw strings
| ("(?!"")|'(?!'')|"{3}|'{3})(?:\\.|[^\\])*?\2 # Normal strings
| [ \t]*\#[^\r\n]* # Comments
| ^[ \t]+ # Leading whitespace
| [ \t]+$ # Trailing whitespace
| ([ \t]{2,}) # Duplicate whitespace
""",
lambda m: m.group(0) if m.group(3) is None else ' ',
code,
flags = re.VERBOSE | re.DOTALL | re.MULTILINE))
aW1wb3J0IHJlCgpjb2RlID0gciIiIgogICAgcHJpbnQoIiwgICwiLCAgImwiKSAgICMgY29tbWVudCAgc3BhY2VzCiAgICBwcmludCgiLCAgLCIsICAibCIpICAgIyBjb21tZW50ICBzcGFjZXMKIiIiCgpwcmludChyZS5zdWIociIiIgogICAgICBbUnJdKCIoPyEiIil8Jyg/IScnKXwiezN9fCd7M30pLio/XDEgICAgICAgICAgIyBSYXcgc3RyaW5ncwogICAgfCAoIig/ISIiKXwnKD8hJycpfCJ7M318J3szfSkoPzpcXC58W15cXF0pKj9cMiAgIyBOb3JtYWwgc3RyaW5ncwogICAgfCBbIFx0XSpcI1teXHJcbl0qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBDb21tZW50cwogICAgfCBeWyBcdF0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBMZWFkaW5nIHdoaXRlc3BhY2UKICAgIHwgWyBcdF0rJCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVHJhaWxpbmcgd2hpdGVzcGFjZQogICAgfCAoWyBcdF17Mix9KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBEdXBsaWNhdGUgd2hpdGVzcGFjZQoiIiIsCmxhbWJkYSBtOiBtLmdyb3VwKDApIGlmIG0uZ3JvdXAoMykgaXMgTm9uZSBlbHNlICcgJywKY29kZSwKZmxhZ3MgPSByZS5WRVJCT1NFIHwgcmUuRE9UQUxMIHwgcmUuTVVMVElMSU5FKSkK