public PythonTuple encode(CodeContext /*!*/ context, string unicode, [DefaultParameterValue("strict")] string errors) { return(PythonTuple.MakeTuple( StringOps.DoEncode(context, unicode, errors, _encName, _encoding), unicode.Length )); }
public PythonTuple encode(CodeContext /*!*/ context, string unicode, string errors = "strict") { return(PythonTuple.MakeTuple( StringOps.DoEncode(context, unicode, errors, _encName, _encoding), unicode.Length )); }
public static object encode(CodeContext /*!*/ context, object obj, string encoding = null, string errors = "strict") { if (encoding == null) { if (obj is string str) { PythonContext lc = context.LanguageContext; return(StringOps.DoEncode(context, str, errors, lc.GetDefaultEncodingName(), lc.DefaultEncoding, includePreamble: true)); } else { throw PythonOps.TypeError("expected str, got {0}", PythonTypeOps.GetName(obj)); } } PythonTuple t = lookup(context, encoding); return(PythonOps.GetIndex(context, PythonCalls.Call(context, t[EncoderIndex], obj, errors), 0)); }
private static PythonTuple CharmapEncodeWorker(CodeContext context, string input, string errors, Encoding e) { if (input.Length == 0) { return(PythonTuple.MakeTuple(Bytes.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.DoEncode(context, input, errors, encoding, e, true); return(PythonTuple.MakeTuple(res, res.Count)); }
public static object encode(CodeContext /*!*/ context, object?obj, [NotNull, DisallowNull] string?encoding = null, [NotNull] string errors = "strict") { if (encoding == null) { if (obj is string str) { PythonContext lc = context.LanguageContext; return(StringOps.DoEncode(context, str, errors, lc.GetDefaultEncodingName(), lc.DefaultEncoding, includePreamble: true)); } else { throw PythonOps.TypeError("expected str, got {0}", PythonTypeOps.GetName(obj)); } } else { object?encoder = lookup(context, encoding)[EncoderIndex]; if (!PythonOps.IsCallable(context, encoder)) { throw PythonOps.TypeError("encoding with '{0}' codec failed; encoder must be callable ('{1}' object is not callable)", encoding, PythonTypeOps.GetName(encoder)); } return(PythonOps.GetIndex(context, PythonCalls.Call(context, encoder, obj, errors), 0)); } }
private static Tuple <Bytes, int> DoEncode(CodeContext context, string encodingName, Encoding encoding, string input, string errors, bool includePreamble = false) { var res = StringOps.DoEncode(context, input, errors, encodingName, encoding, includePreamble); return(Tuple.Create(res, input.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); return(PythonTuple.MakeTuple(res, res.Length)); }