<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8">
</head>
<body>
<div style="font-family:sans-serif"><div style="white-space:normal">
<p dir="auto">On 29 Sep 2016, at 12:11, Per Persson wrote:</p>

<p dir="auto"></p></div>
<div style="white-space:pre-wrap"><blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px"><div dir="auto">It works mostly well, but trying to parse a command file that contains a command mapped to the escape key using plistlib/biplist fails with an exception:
</div><div dir="auto">[…]
</div><div dir="auto">Any clues how to handle this?
</div></blockquote></div>
<div style="white-space:normal">

<p dir="auto">The issue is that XML does not allow ASCII control characters (and python checks this). XML 1.1 should allow them when entity-encoded, but both python 2.7.12 and 3.5.2 still throw an exception (for <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">&#x1B;</code>) in my test.</p>

<p dir="auto">The biplist is using plistlib for XML property lists, so it may actually work for binary property lists.</p>

<p dir="auto">So when encountering this exception, you could try convert the property list to its binary form (using <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">plutil</code>) and see if that works.</p>

<p dir="auto">You could also look into using PyObjC and import <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">NSDictionary</code>, this should definitely read the file without problems.</p>
</div>
</div>
</body>
</html>