@@ -1612,6 +1612,7 @@ TPythonInterface=class(TDynamicDll)
1612
1612
PyBytes_Size:function (ob:PPyObject):NativeInt; cdecl;
1613
1613
PyBytes_DecodeEscape:function(s:PAnsiChar; len:NativeInt; errors:PAnsiChar; unicode:NativeInt; recode_encoding:PAnsiChar):PPyObject; cdecl;
1614
1614
PyBytes_Repr:function(ob:PPyObject; smartquotes:integer):PPyObject; cdecl;
1615
+ PyBytes_FromObject: function(ob:PPyObject): PPyObject; cdecl;
1615
1616
PyByteArray_Concat: procedure(var ob1: PPyObject; ob2: PPyObject); cdecl;
1616
1617
PyByteArray_Resize: procedure(var ob1: PPyObject; len: Py_ssize_t); cdecl;
1617
1618
PyByteArray_FromObject: function(ob:PPyObject): PPyObject; cdecl;
@@ -1986,6 +1987,7 @@ TPythonEngine = class(TPythonInterface)
1986
1987
function PyUnicodeAsString ( obj : PPyObject ) : UnicodeString;
1987
1988
function PyUnicodeAsUTF8String ( obj : PPyObject ) : RawByteString;
1988
1989
function PyBytesAsAnsiString ( obj : PPyObject ) : AnsiString;
1990
+ function PyByteArrayAsAnsiString ( obj : PPyObject ) : AnsiString;
1989
1991
1990
1992
// Public Properties
1991
1993
property ClientCount : Integer read GetClientCount;
@@ -3810,6 +3812,7 @@ procedure TPythonInterface.MapDll;
3810
3812
PyBytes_DecodeEscape := Import (' PyBytes_DecodeEscape' );
3811
3813
PyBytes_Repr := Import (' PyBytes_Repr' );
3812
3814
_PyBytes_Resize := Import (' _PyBytes_Resize' );
3815
+ PyBytes_FromObject := Import (' PyBytes_FromObject' );
3813
3816
PyByteArray_AsString := Import (' PyByteArray_AsString' );
3814
3817
PyByteArray_Concat := Import (' PyByteArray_Concat' );
3815
3818
PyByteArray_Resize := Import (' PyByteArray_Resize' );
@@ -6040,6 +6043,21 @@ procedure TPythonEngine.PyTupleToStrings( tuple: PPyObject; strings : TStrings )
6040
6043
strings.Add( PyObjectAsString( PyTuple_GetItem( tuple, i ) ) );
6041
6044
end ;
6042
6045
6046
+ function TPythonEngine.PyByteArrayAsAnsiString (obj: PPyObject): AnsiString;
6047
+ var
6048
+ LBuffer: PAnsiChar;
6049
+ LSize: Py_ssize_t;
6050
+ begin
6051
+ if PyByteArray_Check(obj) then
6052
+ begin
6053
+ LSize := PyByteArray_Size(obj);
6054
+ LBuffer := PyByteArray_AsString(obj);
6055
+ SetString(Result, LBuffer, LSize);
6056
+ end
6057
+ else
6058
+ raise EPythonError.CreateFmt(SPyConvertionError, [' PyByteArrayAsAnsiString' , ' ByteArray' ]);
6059
+ end ;
6060
+
6043
6061
function TPythonEngine.PyBytesAsAnsiString (obj: PPyObject): AnsiString;
6044
6062
var
6045
6063
buffer: PAnsiChar;
0 commit comments