String shapes and encodings
Claude Paroz <[email protected]> Mon, 6 Jun 2022 16:28:59 +0200
| Newsgroups | gmane.comp.python.reportlab.user |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format. --------------qt20xFsF6b9G1Z0yi8txk4cS Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, In the spirit of Python3 strings being always Unicode, I think that ReportLab String shape should behave the same and accept only Python strings. I admit this might be slightly backwards incompatible, but it could be a first step in string handling simplification in ReportLab. The next step could be a similar patch for platypus Paragraph. Claude -- www.2xlibre.net --------------qt20xFsF6b9G1Z0yi8txk4cS Content-Type: text/x-patch; charset=UTF-8; name="0001-String-shapes-accept-Python-strings.patch" Content-Disposition: attachment; filename="0001-String-shapes-accept-Python-strings.patch" Content-Transfer-Encoding: base64 RnJvbSA4YTM5OTJlYzE4NDQ4OWU4ZmFjMWI4MGE0MTJiZDNhNWUwNDA3OTJiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDbGF1ZGUgUGFyb3ogPGNsYXVkZUAyeGxpYnJlLm5l dD4KRGF0ZTogTW9uLCA2IEp1biAyMDIyIDE2OjEzOjAwICswMjAwClN1YmplY3Q6IFtQQVRD SF0gU3RyaW5nIHNoYXBlcyBhY2NlcHQgUHl0aG9uIHN0cmluZ3MKCi0tLQogc3JjL3JlcG9y dGxhYi9ncmFwaGljcy9zaGFwZXMucHkgICAgIHwgIDYgKysrLS0tCiBzcmMvcmVwb3J0bGFi L2dyYXBoaWNzL3Rlc3RzaGFwZXMucHkgfCAgMiArLQogc3JjL3JlcG9ydGxhYi9saWIvdmFs aWRhdG9ycy5weSAgICAgIHwgIDQgKystLQogdGVzdHMvdGVzdF9wZGZiYXNlX2VuY29kaW5n cy5weSAgICAgIHwgMTYgKystLS0tLS0tLS0tLS0tLQogdGVzdHMvdGVzdF9wbGF0eXB1c19w YXJhcGFyc2VyLnB5ICAgIHwgIDQgKystLQogNSBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRp b25zKCspLCAyMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvcmVwb3J0bGFiL2dy YXBoaWNzL3NoYXBlcy5weSBiL3NyYy9yZXBvcnRsYWIvZ3JhcGhpY3Mvc2hhcGVzLnB5Cmlu ZGV4IGJlZGQ4Yzk5Li4yMzkwMjJmNiAxMDA2NDQKLS0tIGEvc3JjL3JlcG9ydGxhYi9ncmFw aGljcy9zaGFwZXMucHkKKysrIGIvc3JjL3JlcG9ydGxhYi9ncmFwaGljcy9zaGFwZXMucHkK QEAgLTE1MjMsNyArMTUyMyw3IEBAIGNsYXNzIFN0cmluZyhTaGFwZSk6CiAgICAgICAgIHNl bGYuc2V0UHJvcGVydGllcyhrdykKIAogICAgIGRlZiBnZXRFYXN0KHNlbGYpOgotICAgICAg ICByZXR1cm4gc2VsZi54ICsgc3RyaW5nV2lkdGgoc2VsZi50ZXh0LHNlbGYuZm9udE5hbWUs c2VsZi5mb250U2l6ZSwgc2VsZi5lbmNvZGluZykKKyAgICAgICAgcmV0dXJuIHNlbGYueCAr IHN0cmluZ1dpZHRoKHNlbGYudGV4dCxzZWxmLmZvbnROYW1lLHNlbGYuZm9udFNpemUpCiAK ICAgICBkZWYgY29weShzZWxmKToKICAgICAgICAgbmV3ID0gc2VsZi5fX2NsYXNzX18oc2Vs Zi54LCBzZWxmLnksIHNlbGYudGV4dCkKQEAgLTE1MzMsNyArMTUzMyw3IEBAIGNsYXNzIFN0 cmluZyhTaGFwZSk6CiAgICAgZGVmIGdldEJvdW5kcyhzZWxmKToKICAgICAgICAgIyBhc3N1 bWVzIGNvbnN0YW50IGRyb3Agb2YgMC4yKnNpemUgdG8gYmFzZWxpbmUKICAgICAgICAgdCA9 IHNlbGYudGV4dAotICAgICAgICB3ID0gc3RyaW5nV2lkdGgodCxzZWxmLmZvbnROYW1lLHNl bGYuZm9udFNpemUsc2VsZi5lbmNvZGluZykKKyAgICAgICAgdyA9IHN0cmluZ1dpZHRoKHQs c2VsZi5mb250TmFtZSxzZWxmLmZvbnRTaXplKQogICAgICAgICB0QSA9IHNlbGYudGV4dEFu Y2hvcgogICAgICAgICB4ID0gc2VsZi54CiAgICAgICAgIGlmIHRBIT0nc3RhcnQnOgpAQCAt MTU0Miw3ICsxNTQyLDcgQEAgY2xhc3MgU3RyaW5nKFNoYXBlKToKICAgICAgICAgICAgIGVs aWYgdEE9PSdlbmQnOgogICAgICAgICAgICAgICAgIHggLT0gdwogICAgICAgICAgICAgZWxp ZiB0QT09J251bWVyaWMnOgotICAgICAgICAgICAgICAgIHggLT0gbnVtZXJpY1hTaGlmdCh0 QSx0LHcsc2VsZi5mb250TmFtZSxzZWxmLmZvbnRTaXplLHNlbGYuZW5jb2RpbmcpCisgICAg ICAgICAgICAgICAgeCAtPSBudW1lcmljWFNoaWZ0KHRBLHQsdyxzZWxmLmZvbnROYW1lLHNl bGYuZm9udFNpemUpCiAgICAgICAgIHJldHVybiAoeCwgc2VsZi55IC0gMC4yICogc2VsZi5m b250U2l6ZSwgeCt3LCBzZWxmLnkgKyBzZWxmLmZvbnRTaXplKQogCiBjbGFzcyBVc2VyTm9k ZShfRHJhd1RpbWVSZXNpemVhYmxlKToKZGlmZiAtLWdpdCBhL3NyYy9yZXBvcnRsYWIvZ3Jh cGhpY3MvdGVzdHNoYXBlcy5weSBiL3NyYy9yZXBvcnRsYWIvZ3JhcGhpY3MvdGVzdHNoYXBl cy5weQppbmRleCBlODc0NGJkOC4uZWQ4ZTljNDYgMTAwNjQ0Ci0tLSBhL3NyYy9yZXBvcnRs YWIvZ3JhcGhpY3MvdGVzdHNoYXBlcy5weQorKysgYi9zcmMvcmVwb3J0bGFiL2dyYXBoaWNz L3Rlc3RzaGFwZXMucHkKQEAgLTExMiw3ICsxMTIsNyBAQCBkZWYgZ2V0RHJhd2luZzAxKCk6 CiAgICAgRCA9IERyYXdpbmcoNDAwLCAyMDApCiAgICAgRC5hZGQoUmVjdCg1MCwgNTAsIDMw MCwgMTAwLCBmaWxsQ29sb3I9Y29sb3JzLnllbGxvdykpCiAgICAgRC5hZGQoU3RyaW5nKDE4 MCwxMDAsICdIZWxsbyBXb3JsZCcsIGZpbGxDb2xvcj1jb2xvcnMucmVkKSkKLSAgICBELmFk ZChTdHJpbmcoMTgwLDg2LCBiJ1NwZWNpYWwgY2hhcmFjdGVycyBceGMyXHhhMlx4YzJceGE5 XHhjMlx4YWVceGMyXHhhM1x4Y2VceGIxXHhjZVx4YjInLCBmaWxsQ29sb3I9Y29sb3JzLnJl ZCkpCisgICAgRC5hZGQoU3RyaW5nKDE4MCw4NiwgJ1NwZWNpYWwgY2hhcmFjdGVycyBceGEy XHhhOVx4YWVceGEzXHUwM2IxXHUwM2IyJywgZmlsbENvbG9yPWNvbG9ycy5yZWQpKQogCiAg ICAgcmV0dXJuIEQKIApkaWZmIC0tZ2l0IGEvc3JjL3JlcG9ydGxhYi9saWIvdmFsaWRhdG9y cy5weSBiL3NyYy9yZXBvcnRsYWIvbGliL3ZhbGlkYXRvcnMucHkKaW5kZXggZmY0ZTcyYzMu LjZjM2M5ZGU1IDEwMDY0NAotLS0gYS9zcmMvcmVwb3J0bGFiL2xpYi92YWxpZGF0b3JzLnB5 CisrKyBiL3NyYy9yZXBvcnRsYWIvbGliL3ZhbGlkYXRvcnMucHkKQEAgLTUsNyArNSw3IEBA IF9fdmVyc2lvbl9fPSczLjUuMzMnCiBfX2RvY19fPSIiIlN0YW5kYXJkIHZlcmlmeWluZyBm dW5jdGlvbnMgdXNlZCBieSBhdHRybWFwLiIiIgogCiBpbXBvcnQgY29kZWNzLCByZQotZnJv bSByZXBvcnRsYWIubGliLnV0aWxzIGltcG9ydCBpc1NlcSwgaXNCeXRlcywgaXNTdHIKK2Zy b20gcmVwb3J0bGFiLmxpYi51dGlscyBpbXBvcnQgaXNTZXEsIGlzQnl0ZXMsIGlzU3RyLCBp c1VuaWNvZGUKIGZyb20gcmVwb3J0bGFiLmxpYiBpbXBvcnQgY29sb3JzCiB0cnk6CiAgICAg X3JlX1BhdHRlcm4gPSByZS5QYXR0ZXJuCkBAIC01OCw3ICs1OCw3IEBAIGNsYXNzIF9pc0Jv b2xlYW4oVmFsaWRhdG9yKToKIAogY2xhc3MgX2lzU3RyaW5nKFZhbGlkYXRvcik6CiAgICAg ZGVmIHRlc3Qoc2VsZix4KToKLSAgICAgICAgcmV0dXJuIGlzU3RyKHgpCisgICAgICAgIHJl dHVybiBpc1VuaWNvZGUoeCkKIAogY2xhc3MgX2lzQ29kZWMoVmFsaWRhdG9yKToKICAgICBk ZWYgdGVzdChzZWxmLHgpOgpkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdF9wZGZiYXNlX2VuY29k aW5ncy5weSBiL3Rlc3RzL3Rlc3RfcGRmYmFzZV9lbmNvZGluZ3MucHkKaW5kZXggNmJmYWZk NTMuLjZlYzM4MWEzIDEwMDY0NAotLS0gYS90ZXN0cy90ZXN0X3BkZmJhc2VfZW5jb2Rpbmdz LnB5CisrKyBiL3Rlc3RzL3Rlc3RfcGRmYmFzZV9lbmNvZGluZ3MucHkKQEAgLTE1LDggKzE1 LDggQEAgaW1wb3J0IGNvZGVjcwogdGV4dFBhdCA9IHJlLmNvbXBpbGUocidcKFteKF0qXCkn KQogCiAjdGVzdCBzZW50ZW5jZXMKLXRlc3RDcDEyNTIgPSBiJ2NvcHlyaWdodCBceGE5IHRy YWRlbWFyayBceDk5IHJlZ2lzdGVyZWQgXHhhZSBSZXBvcnRMYWIhIE9sXHhlOSEnCi10ZXN0 VW5pID0gdGVzdENwMTI1Mi5kZWNvZGUoJ2NwMTI1MicpCit0ZXN0VW5pID0gJ2NvcHlyaWdo dCBceGE5IHRyYWRlbWFyayBcdTIxMjIgcmVnaXN0ZXJlZCBceGFlIFJlcG9ydExhYiEgT2xc eGU5IScKK3Rlc3RDcDEyNTIgPSB0ZXN0VW5pLmVuY29kZSgnY3AxMjUyJykKIHRlc3RVVEY4 ID0gdGVzdFVuaS5lbmNvZGUoJ3V0Zi04JykKICMgZXhwZWN0ZWQgcmVzdWx0IGlzIG9jdGFs LWVzY2FwZWQgdGV4dCBpbiB0aGUgUERGCiBleHBlY3RlZENwMTI1MiA9IGVzY2FwZVBERih0 ZXN0Q3AxMjUyKQpAQCAtMTM4LDE4ICsxMzgsNiBAQCBjbGFzcyBUZXh0RW5jb2RpbmdUZXN0 Q2FzZShOZWFyVGVzdENhc2UpOgogICAgICAgICBwNC5kcmF3T24oYywgMzAwLCAzMDApCiAg ICAgICAgIGMucmVjdCgzMDAsMzAwLHcsaCkKIAotICAgICAgICAjIG5vdyBhIGdyYXBoaWMK LSAgICAgICAgZDEgPSBEcmF3aW5nKDQwMCw1MCkKLSAgICAgICAgZDEuYWRkKEVsbGlwc2Uo MjAwLDI1LDIwMCwxMi41LCBmaWxsQ29sb3I9Tm9uZSkpCi0gICAgICAgIGQxLmFkZChTdHJp bmcoMjAwLDI1LHRlc3RVVEY4LCB0ZXh0QW5jaG9yPSdtaWRkbGUnLCBlbmNvZGluZz0ndXRm LTgnKSkKLSAgICAgICAgZDEuZHJhd09uKGMsIDEwMCwgMTUwKQotCi0gICAgICAgICMgbm93 IGEgZ3JhcGhpYyBpbiB1dGY4Ci0gICAgICAgIGQyID0gRHJhd2luZyg0MDAsNTApCi0gICAg ICAgIGQyLmFkZChFbGxpcHNlKDIwMCwyNSwyMDAsMTIuNSwgZmlsbENvbG9yPU5vbmUpKQot ICAgICAgICBkMi5hZGQoU3RyaW5nKDIwMCwyNSx0ZXN0VVRGOCwgZm9udE5hbWU9J1ZlcmEn LCB0ZXh0QW5jaG9yPSdtaWRkbGUnLCBlbmNvZGluZz0ndXRmLTgnKSkKLSAgICAgICAgZDIu ZHJhd09uKGMsIDEwMCwgMTAwKQotCiAgICAgICAgICMgbm93IGEgZ3JhcGhpYyBpbiBVbmlj b2RlIHdpdGggVDEgZm9udAogICAgICAgICBkMyA9IERyYXdpbmcoNDAwLDUwKQogICAgICAg ICBkMy5hZGQoRWxsaXBzZSgyMDAsMjUsMjAwLDEyLjUsIGZpbGxDb2xvcj1Ob25lKSkKZGlm ZiAtLWdpdCBhL3Rlc3RzL3Rlc3RfcGxhdHlwdXNfcGFyYXBhcnNlci5weSBiL3Rlc3RzL3Rl c3RfcGxhdHlwdXNfcGFyYXBhcnNlci5weQppbmRleCA5ZWU1MTM4OC4uNzIwZTFjNTcgMTAw NjQ0Ci0tLSBhL3Rlc3RzL3Rlc3RfcGxhdHlwdXNfcGFyYXBhcnNlci5weQorKysgYi90ZXN0 cy90ZXN0X3BsYXR5cHVzX3BhcmFwYXJzZXIucHkKQEAgLTYyLDkgKzYyLDkgQEAgY2xhc3Mg UGFyYVBhcnNlclRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0 RW50aXR5KHNlbGYpOgogICAgICAgICAiTnVtZXJpYyBlbnRpdGllcyBzaG91bGQgYmUgdW5l c2NhcGVkIGJ5IHBhcnNlciIKLSAgICAgICAgdHh0ID0gYiJIZWxsbyAmIzE2OTsgY29weXJp Z2h0IgorICAgICAgICB0eHQgPSAiSGVsbG8gJiMxNjk7IGNvcHlyaWdodCIKICAgICAgICAg ZnJhZ0xpc3QgPSBQYXJhUGFyc2VyKCkucGFyc2UodHh0LCBzZWxmLnN0eWxlKVsxXQotICAg ICAgICBzZWxmLmFzc2VydEVxdWFsKFt4LnRleHQgZm9yIHggaW4gZnJhZ0xpc3RdLCBbdSdI ZWxsbyAnLCB1J1x4YTknLCB1JyBjb3B5cmlnaHQnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRF cXVhbChbeC50ZXh0IGZvciB4IGluIGZyYWdMaXN0XSwgWydIZWxsbyAnLCAnXHhhOScsICcg Y29weXJpZ2h0J10pCiAKICAgICBkZWYgdGVzdEVzY2FwZWQoc2VsZik6CiAgICAgICAgICJF c2NhcGVkIGhpZ2gtYml0IHN0dWZmIHNob3VsZCBnbyBzdHJhaWdodCB0aHJvdWdoIgotLSAK Mi4zMC4yCgo= --------------qt20xFsF6b9G1Z0yi8txk4cS Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline