Browse Source

rename StringTools and ArrayTools to NativeStrings and NativeLists

frabbit 11 years ago
parent
commit
c41e909e23

+ 4 - 3
std/python/Lib.hx

@@ -1,21 +1,22 @@
 package python;
 
+import python.lib.NativeStrings;
+
 typedef PySys = python.lib.Sys;
-typedef PyStringTools = python.lib.StringTools;
 
 class Lib {
 
 	public static function print(v:Dynamic):Void {
 		var str = Std.string(v);
 
-		PySys.stdout.buffer.write( PyStringTools.encode(str, "utf-8"));
+		PySys.stdout.buffer.write( NativeStrings.encode(str, "utf-8"));
 		PySys.stdout.flush();
 	}
 
 	public static function println(v:Dynamic):Void {
 		var str = Std.string(v);
 
-		PySys.stdout.buffer.write( PyStringTools.encode('$str\n', "utf-8"));
+		PySys.stdout.buffer.write( NativeStrings.encode('$str\n', "utf-8"));
 		PySys.stdout.flush();
 	}
 

+ 0 - 3
std/python/lib/List.hx

@@ -1,3 +0,0 @@
-package python.lib;
-
-typedef List<T> = Array<T>;

+ 18 - 0
std/python/lib/NativeLists.hx

@@ -0,0 +1,18 @@
+package python.lib;
+
+class NativeLists {
+
+	public static inline function extend <T>(a:Array<T>, x:Array<T>):Void {
+		python.Syntax.field(a, "extend")(x);
+	}
+
+	public static inline function append <T>(a:Array<T>, x:T):Void {
+		python.Syntax.field(a, "append")(x);
+	}
+
+	public static inline function contains <T>(a:Array<T>, x:T):Bool
+	{
+		return python.Syntax.isIn(x,a);
+	}
+
+}

+ 3 - 3
std/python/lib/StringTools.hx → std/python/lib/NativeStrings.hx

@@ -4,15 +4,15 @@ package python.lib;
 import python.lib.Bytes;
 import python.lib.Tuple;
 
-class StringTools {
+class NativeStrings {
 
 	public static function format (s:String, args:Array<Dynamic>):String
 	{
 		return python.Syntax.field(s, "format")(python.Syntax.varArgs(args));
 	}
 
-	public static function encode(s:String, encoding:String="utf-8", errors:String="strict"):Bytes {
-		return python.Syntax.field(s, "encode")(encoding, errors);
+	@:keep public static inline function encode(s:String, encoding:String="utf-8", errors:String="strict"):Bytes {
+		return (python.Syntax.callField(s, "encode", encoding, errors):Bytes);
 	}
 
 	public static inline function contains(s:String, e:String):Bool {

+ 2 - 1
tests/unit/TestPython.hx

@@ -11,7 +11,8 @@ import python.lib.FuncTools;
 import python.lib.Glob;
 import python.lib.Inspect;
 import python.lib.Json;
-import python.lib.List;
+import python.lib.NativeLists;
+import python.lib.NativeStrings;
 import python.lib.Math;
 import python.lib.Msvcrt;
 import python.lib.Os;