diff options
55 files changed, 75 insertions, 162 deletions
diff --git a/Lib/codecs.py b/Lib/codecs.py index b2eab1d..bdc8d02 100644 --- a/Lib/codecs.py +++ b/Lib/codecs.py @@ -554,6 +554,27 @@ def make_identity_dict(rng): res[i]=i return res +def make_encoding_map(decoding_map): + + """ Creates an encoding map from a decoding map. + + If a target mapping in the decoding map occurrs multiple + times, then that target is mapped to None (undefined mapping), + causing an exception when encountered by the charmap codec + during translation. + + One example where this happens is cp875.py which decodes + multiple character to \u001a. + + """ + m = {} + for k,v in decoding_map.items(): + if not m.has_key(v): + m[v] = k + else: + m[v] = None + return m + ### Tests if __name__ == '__main__': diff --git a/Lib/encodings/cp037.py b/Lib/encodings/cp037.py index 5868372..3b641bb 100644 --- a/Lib/encodings/cp037.py +++ b/Lib/encodings/cp037.py @@ -277,6 +277,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp1006.py b/Lib/encodings/cp1006.py index 593fbb6..0a3c3af 100644 --- a/Lib/encodings/cp1006.py +++ b/Lib/encodings/cp1006.py @@ -135,6 +135,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp1026.py b/Lib/encodings/cp1026.py index 3796a75..cce5af6 100644 --- a/Lib/encodings/cp1026.py +++ b/Lib/encodings/cp1026.py @@ -277,6 +277,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp1250.py b/Lib/encodings/cp1250.py index 03a3e31..39cbc33 100644 --- a/Lib/encodings/cp1250.py +++ b/Lib/encodings/cp1250.py @@ -120,6 +120,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp1251.py b/Lib/encodings/cp1251.py index e27a122..4d4b6ee 100644 --- a/Lib/encodings/cp1251.py +++ b/Lib/encodings/cp1251.py @@ -154,6 +154,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp1252.py b/Lib/encodings/cp1252.py index 5d7bdd6..647f907 100644 --- a/Lib/encodings/cp1252.py +++ b/Lib/encodings/cp1252.py @@ -73,6 +73,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp1253.py b/Lib/encodings/cp1253.py index abc144c..bfb4723 100644 --- a/Lib/encodings/cp1253.py +++ b/Lib/encodings/cp1253.py @@ -148,6 +148,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp1254.py b/Lib/encodings/cp1254.py index 4a2ab3c..dc662ed 100644 --- a/Lib/encodings/cp1254.py +++ b/Lib/encodings/cp1254.py @@ -79,6 +79,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp1255.py b/Lib/encodings/cp1255.py index c987b85..6f70654 100644 --- a/Lib/encodings/cp1255.py +++ b/Lib/encodings/cp1255.py @@ -140,6 +140,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp1256.py b/Lib/encodings/cp1256.py index d72c5bc..40ed577 100644 --- a/Lib/encodings/cp1256.py +++ b/Lib/encodings/cp1256.py @@ -126,6 +126,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp1257.py b/Lib/encodings/cp1257.py index d17a904..baaf367 100644 --- a/Lib/encodings/cp1257.py +++ b/Lib/encodings/cp1257.py @@ -128,6 +128,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp1258.py b/Lib/encodings/cp1258.py index 597f124..9a2827d 100644 --- a/Lib/encodings/cp1258.py +++ b/Lib/encodings/cp1258.py @@ -87,6 +87,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp424.py b/Lib/encodings/cp424.py index bc10379..4689996 100644 --- a/Lib/encodings/cp424.py +++ b/Lib/encodings/cp424.py @@ -277,6 +277,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp437.py b/Lib/encodings/cp437.py index db1b88a..a55e424 100644 --- a/Lib/encodings/cp437.py +++ b/Lib/encodings/cp437.py @@ -169,6 +169,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp500.py b/Lib/encodings/cp500.py index 1c8fb57..bc1acde 100644 --- a/Lib/encodings/cp500.py +++ b/Lib/encodings/cp500.py @@ -277,6 +277,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp737.py b/Lib/encodings/cp737.py index 03665ae..6174d85 100644 --- a/Lib/encodings/cp737.py +++ b/Lib/encodings/cp737.py @@ -169,6 +169,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp775.py b/Lib/encodings/cp775.py index b38ccb5..ee56f01 100644 --- a/Lib/encodings/cp775.py +++ b/Lib/encodings/cp775.py @@ -169,6 +169,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp850.py b/Lib/encodings/cp850.py index e26287b..dd23187 100644 --- a/Lib/encodings/cp850.py +++ b/Lib/encodings/cp850.py @@ -169,6 +169,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp852.py b/Lib/encodings/cp852.py index 431d844..38df00f 100644 --- a/Lib/encodings/cp852.py +++ b/Lib/encodings/cp852.py @@ -169,6 +169,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp855.py b/Lib/encodings/cp855.py index c9e7168..764fe1a 100644 --- a/Lib/encodings/cp855.py +++ b/Lib/encodings/cp855.py @@ -169,6 +169,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp856.py b/Lib/encodings/cp856.py index cc2e01f..9d09c09 100644 --- a/Lib/encodings/cp856.py +++ b/Lib/encodings/cp856.py @@ -169,6 +169,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp857.py b/Lib/encodings/cp857.py index 6f4df23..5c84bb8 100644 --- a/Lib/encodings/cp857.py +++ b/Lib/encodings/cp857.py @@ -168,6 +168,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp860.py b/Lib/encodings/cp860.py index 057d918..a721ea3 100644 --- a/Lib/encodings/cp860.py +++ b/Lib/encodings/cp860.py @@ -169,6 +169,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp861.py b/Lib/encodings/cp861.py index 8db3b40..ccf26b7 100644 --- a/Lib/encodings/cp861.py +++ b/Lib/encodings/cp861.py @@ -169,6 +169,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp862.py b/Lib/encodings/cp862.py index 1cac3e2..8f6d111 100644 --- a/Lib/encodings/cp862.py +++ b/Lib/encodings/cp862.py @@ -169,6 +169,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp863.py b/Lib/encodings/cp863.py index ecdc391..3596e64 100644 --- a/Lib/encodings/cp863.py +++ b/Lib/encodings/cp863.py @@ -169,6 +169,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp864.py b/Lib/encodings/cp864.py index 861fb00..f510a26 100644 --- a/Lib/encodings/cp864.py +++ b/Lib/encodings/cp864.py @@ -167,6 +167,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp865.py b/Lib/encodings/cp865.py index 4d9010d..cc4f719 100644 --- a/Lib/encodings/cp865.py +++ b/Lib/encodings/cp865.py @@ -169,6 +169,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp866.py b/Lib/encodings/cp866.py index 6a8b0b0..518eede 100644 --- a/Lib/encodings/cp866.py +++ b/Lib/encodings/cp866.py @@ -169,6 +169,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp869.py b/Lib/encodings/cp869.py index 65d2b2e..2e3ad35 100644 --- a/Lib/encodings/cp869.py +++ b/Lib/encodings/cp869.py @@ -169,6 +169,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp874.py b/Lib/encodings/cp874.py index 31f4d3d..c43e20b 100644 --- a/Lib/encodings/cp874.py +++ b/Lib/encodings/cp874.py @@ -168,6 +168,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/cp875.py b/Lib/encodings/cp875.py index 3500446..5e74873 100644 --- a/Lib/encodings/cp875.py +++ b/Lib/encodings/cp875.py @@ -278,6 +278,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/iso8859_1.py b/Lib/encodings/iso8859_1.py index f4c0bf7..cea2261 100644 --- a/Lib/encodings/iso8859_1.py +++ b/Lib/encodings/iso8859_1.py @@ -41,6 +41,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/iso8859_10.py b/Lib/encodings/iso8859_10.py index c43c653..f29ebd2 100644 --- a/Lib/encodings/iso8859_10.py +++ b/Lib/encodings/iso8859_10.py @@ -87,6 +87,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/iso8859_13.py b/Lib/encodings/iso8859_13.py index 2ab5292..e0c4ae4 100644 --- a/Lib/encodings/iso8859_13.py +++ b/Lib/encodings/iso8859_13.py @@ -97,6 +97,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/iso8859_14.py b/Lib/encodings/iso8859_14.py index 5533e96..c84bb23 100644 --- a/Lib/encodings/iso8859_14.py +++ b/Lib/encodings/iso8859_14.py @@ -72,6 +72,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/iso8859_15.py b/Lib/encodings/iso8859_15.py index 7bffff4..bf92acb 100644 --- a/Lib/encodings/iso8859_15.py +++ b/Lib/encodings/iso8859_15.py @@ -49,6 +49,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/iso8859_2.py b/Lib/encodings/iso8859_2.py index 481f9a0..1c92a54 100644 --- a/Lib/encodings/iso8859_2.py +++ b/Lib/encodings/iso8859_2.py @@ -98,6 +98,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/iso8859_3.py b/Lib/encodings/iso8859_3.py index c2820ad..ac8c8d9 100644 --- a/Lib/encodings/iso8859_3.py +++ b/Lib/encodings/iso8859_3.py @@ -76,6 +76,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/iso8859_4.py b/Lib/encodings/iso8859_4.py index 30d6ca6..91db126 100644 --- a/Lib/encodings/iso8859_4.py +++ b/Lib/encodings/iso8859_4.py @@ -91,6 +91,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/iso8859_5.py b/Lib/encodings/iso8859_5.py index 2bdaa50..96cb073 100644 --- a/Lib/encodings/iso8859_5.py +++ b/Lib/encodings/iso8859_5.py @@ -135,6 +135,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/iso8859_6.py b/Lib/encodings/iso8859_6.py index 585fa11..298c2d5 100644 --- a/Lib/encodings/iso8859_6.py +++ b/Lib/encodings/iso8859_6.py @@ -134,6 +134,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/iso8859_7.py b/Lib/encodings/iso8859_7.py index 48f1bd5..eea3abf 100644 --- a/Lib/encodings/iso8859_7.py +++ b/Lib/encodings/iso8859_7.py @@ -121,6 +121,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/iso8859_8.py b/Lib/encodings/iso8859_8.py index a19aa67..45b2ada 100644 --- a/Lib/encodings/iso8859_8.py +++ b/Lib/encodings/iso8859_8.py @@ -109,6 +109,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/iso8859_9.py b/Lib/encodings/iso8859_9.py index a278905..ad0c190 100644 --- a/Lib/encodings/iso8859_9.py +++ b/Lib/encodings/iso8859_9.py @@ -47,6 +47,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/koi8_r.py b/Lib/encodings/koi8_r.py index c28004e..242d0c4 100644 --- a/Lib/encodings/koi8_r.py +++ b/Lib/encodings/koi8_r.py @@ -169,6 +169,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/mac_cyrillic.py b/Lib/encodings/mac_cyrillic.py index 4552831..6ae4a30 100644 --- a/Lib/encodings/mac_cyrillic.py +++ b/Lib/encodings/mac_cyrillic.py @@ -164,6 +164,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/mac_greek.py b/Lib/encodings/mac_greek.py index b7040c4..839cf61 100644 --- a/Lib/encodings/mac_greek.py +++ b/Lib/encodings/mac_greek.py @@ -167,6 +167,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/mac_iceland.py b/Lib/encodings/mac_iceland.py index f20e134..284580c 100644 --- a/Lib/encodings/mac_iceland.py +++ b/Lib/encodings/mac_iceland.py @@ -163,6 +163,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/mac_latin2.py b/Lib/encodings/mac_latin2.py index 0fba502..e922178 100644 --- a/Lib/encodings/mac_latin2.py +++ b/Lib/encodings/mac_latin2.py @@ -167,6 +167,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/mac_roman.py b/Lib/encodings/mac_roman.py index 6d048a3..23dca89 100644 --- a/Lib/encodings/mac_roman.py +++ b/Lib/encodings/mac_roman.py @@ -164,6 +164,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/mac_turkish.py b/Lib/encodings/mac_turkish.py index c81a864..c71268b 100644 --- a/Lib/encodings/mac_turkish.py +++ b/Lib/encodings/mac_turkish.py @@ -164,6 +164,4 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Lib/encodings/rot_13.py b/Lib/encodings/rot_13.py index 8c54811..532ff64 100644 --- a/Lib/encodings/rot_13.py +++ b/Lib/encodings/rot_13.py @@ -93,9 +93,7 @@ decoding_map.update({ ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) ### Filter API diff --git a/Tools/scripts/gencodec.py b/Tools/scripts/gencodec.py index bc70a32..69b6ede 100644 --- a/Tools/scripts/gencodec.py +++ b/Tools/scripts/gencodec.py @@ -244,9 +244,7 @@ def getregentry(): append(''' ### Encoding Map -encoding_map = {} -for k,v in decoding_map.items(): - encoding_map[v] = k +encoding_map = codecs.make_encoding_map(decoding_map) ''') return string.join(l,'\n') |