package python; import python.internal.AnonObject; import python.internal.HxBuiltin; import python.lib.Dict; import python.NativeStringTools; typedef PySys = python.lib.Sys; class Lib { public static function print(v:Dynamic):Void { var str = Std.string(v); PySys.stdout.buffer.write( NativeStringTools.encode(str, "utf-8")); PySys.stdout.flush(); } public static function println(v:Dynamic):Void { var str = Std.string(v); PySys.stdout.buffer.write( NativeStringTools.encode('$str\n', "utf-8")); PySys.stdout.flush(); } public static function dictToAnon (v:Dict):Dynamic { return new AnonObject(v.copy()); } public static function anonToDict (o:{}):Dict { return if (HxBuiltin.isinstance(o, AnonObject)) { (Syntax.field(o, "__dict__"):Dict).copy(); } else null; } public static function toPythonIterable (it:Iterable):python.NativeIterable { return { __iter__ : function () { var it1 = it.iterator(); var self:NativeIterator = null; self = new NativeIterator({ __next__ : function ():T { if (it1.hasNext()) { return it1.next(); } else { throw new python.lib.Exceptions.StopIteration(); } }, __iter__ : function () return self }); return self; } } } public static inline function toHaxeIterable (it:NativeIterable):HaxeIterable { return new HaxeIterable(it); } public static inline function toHaxeIterator (it:NativeIterator):HaxeIterator { return new HaxeIterator(it); } }