Codecs.hx 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package python.lib;
  2. import python.lib.io.IOBase;
  3. import python.lib.io.RawIOBase;
  4. import python.lib.io.TextIOBase;
  5. import python.lib.Bytes;
  6. import python.lib.FileObject;
  7. import python.lib.Tuple.Tup2;
  8. extern interface Codec {
  9. public function encode(input:Dynamic, ?errors:String = "strict"):Tup2<String, Int>;
  10. public function decode(input:Dynamic, ?errors:String = "strict"):Tup2<Bytes, Int>;
  11. }
  12. extern interface StreamReader extends Codec {
  13. public function read(?size:Int, ?chars:Int, ?firstline:Bool):String;
  14. public function readline(?size:Int, ?keepsend:Bool = false):String;
  15. public function readlines(?sizehint:Int, ?keepsend:Bool = false):Array<String>;
  16. public function reset():Void;
  17. }
  18. extern interface StreamWriter extends Codec {
  19. public function write(object:Dynamic):Void;
  20. public function writelines(list:Array<String>):Void;
  21. public function reset():Void;
  22. }
  23. extern class StreamReaderWriterText implements StreamReader implements StreamWriter {
  24. public function read(?size:Int, ?chars:Int, ?firstline:Bool):String;
  25. public function readline(?size:Int, ?keepsend:Bool = false):String;
  26. public function readlines(?sizehint:Int, ?keepsend:Bool = false):Array<String>;
  27. public function reset():Void;
  28. public function write(object:Dynamic):Void;
  29. public function writelines(list:Array<String>):Void;
  30. public function close():Void;
  31. public function encode(input:Dynamic, ?errors:String = "strict"):Tup2<String, Int>;
  32. public function decode(input:Dynamic, ?errors:String = "strict"):Tup2<Bytes, Int>;
  33. }
  34. extern class Codecs {
  35. public static function open(filename:String, mode:String, ?encoding:String, ?errors:String, ?buffering:Bool):StreamReaderWriterText;
  36. static function __init__ ():Void {
  37. Syntax.importAs("codecs", "python.lib.Codecs");
  38. }
  39. }