public PythonTuple decode(CodeContext /*!*/ context, string @string, [DefaultParameterValue("strict")] string errors) { return(PythonTuple.MakeTuple( StringOps.DoDecode(context, @string, errors, _encName, _encoding), @string.Length )); }
public PythonTuple decode(CodeContext /*!*/ context, string @string, string errors = "strict") { return(PythonTuple.MakeTuple( StringOps.DoDecode(context, @string, errors, _encName, _encoding), @string.Length )); }
public static object decode(CodeContext /*!*/ context, object obj, string encoding = null, string errors = "strict") { if (encoding == null) { if (obj is IList <byte> bytesLikeObj) { PythonContext lc = context.LanguageContext; return(StringOps.DoDecode(context, bytesLikeObj, errors, lc.GetDefaultEncodingName(), lc.DefaultEncoding, final: true, out _)); } else { throw PythonOps.TypeError("expected bytes-like object, got {0}", PythonTypeOps.GetName(obj)); } } PythonTuple t = lookup(context, encoding); return(PythonOps.GetIndex(context, PythonCalls.Call(context, t[DecoderIndex], obj, errors), 0)); }
private static PythonTuple CharmapDecodeWorker(CodeContext context, IList <byte> input, string errors, Encoding e) { if (input.Count == 0) { return(PythonTuple.MakeTuple(string.Empty, 0)); } string encoding = "charmap"; // default to latin-1 if an encoding is not specified if (e == null) { e = Encoding.GetEncoding("iso-8859-1"); encoding = "latin-1"; } var res = StringOps.DoDecode(context, input, errors, encoding, e); return(PythonTuple.MakeTuple(res, res.Length)); }
private static PythonTuple CharmapDecodeWorker(CodeContext context, string input, string errors, Encoding e, bool isDecode) { if (input.Length == 0) { return(PythonTuple.MakeTuple(String.Empty, 0)); } string encoding = "charmap"; // default to latin-1 if an encoding is not specified if (e == null) { e = Encoding.GetEncoding("iso-8859-1"); encoding = "latin-1"; } string res = isDecode ? StringOps.DoDecode(context, input, errors, encoding, e) : StringOps.DoEncode(context, input, errors, encoding, e).ToString(); return(PythonTuple.MakeTuple(res, res.Length)); }
private static PythonTuple DoDecode(CodeContext context, string encodingName, Encoding encoding, object input, string errors, bool final) { // input should be character buffer of some form... string res; if (!Converter.TryConvertToString(input, out res)) { if (input is Bytes tempBytes) { res = tempBytes.ToString(); } else { throw PythonOps.TypeErrorForBadInstance("argument 1 must be string, got {0}", input); } } var decoded = StringOps.DoDecode(context, res, errors, encodingName, encoding, final, out int numBytes); return(PythonTuple.MakeTuple(decoded, numBytes)); }
public static object decode(CodeContext /*!*/ context, object?obj, [NotNull, DisallowNull] string?encoding = null, [NotNull] string errors = "strict") { if (encoding == null) { if (obj is IList <byte> bytesLikeObj) { PythonContext lc = context.LanguageContext; return(StringOps.DoDecode(context, bytesLikeObj, errors, lc.GetDefaultEncodingName(), lc.DefaultEncoding)); } else { throw PythonOps.TypeError("expected bytes-like object, got {0}", PythonTypeOps.GetName(obj)); } } else { object?decoder = lookup(context, encoding)[DecoderIndex]; if (!PythonOps.IsCallable(context, decoder)) { throw PythonOps.TypeError("decoding with '{0}' codec failed; decoder must be callable ('{1}' object is not callable)", encoding, PythonTypeOps.GetName(decoder)); } return(PythonOps.GetIndex(context, PythonCalls.Call(context, decoder, obj, errors), 0)); } }
private static Tuple <string, int> DoDecode(CodeContext context, string encodingName, Encoding encoding, [BytesConversion] IList <byte> input, string errors, bool final) { var decoded = StringOps.DoDecode(context, input, errors, encodingName, encoding, final, out int numBytes); return(Tuple.Create(decoded, numBytes)); }
public string decode(CodeContext /*!*/ context, [NotNull] Encoding encoding, [NotNull] string errors = "strict") { return(StringOps.DoDecode(context, _bytes, errors, StringOps.GetEncodingName(encoding, normalize: false), encoding)); }