Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit da17611

Browse files
Added VarHasAttr
1 parent ba57c13 commit da17611

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

‎Source/VarPyth.pas‎

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,8 @@ function VarIsSubtypeOf(const ADerived, AType : Variant): Boolean;
7171
function VarIsNone(const AValue : Variant): Boolean;
7272
function VarIsTrue(const AValue : Variant): Boolean;
7373

74-
function VarModuleHasObject(const AModule : Variant; aObj: AnsiString): Boolean;
74+
function VarModuleHasObject(const AModule : Variant; const aObj: AnsiString): Boolean;
75+
function VarHasAttr(const AValue: Variant; const AAttr: AnsiString): Boolean;
7576

7677
function NewPythonList( const ASize : Integer = 0 ): Variant;
7778
function NewPythonTuple( const ASize : Integer ): Variant;
@@ -570,15 +571,22 @@ function VarIsTrue(const AValue : Variant): Boolean;
570571
Result := AValue; // the cast into a boolean will call the PyObject_IsTrue API.
571572
end;
572573

573-
function VarModuleHasObject(const AModule : Variant; aObj: AnsiString): Boolean;
574+
function VarModuleHasObject(const AModule : Variant; const aObj: AnsiString):
575+
Boolean;
574576
begin
575577
with GetPythonEngine do
576-
Result := VarIsPython(AModule) and
577-
PyModule_Check(ExtractPythonObjectFrom(AModule)) and
578+
Result := VarIsPythonModule(AModule) and
578579
Assigned(PyDict_GetItemString(
579580
PyModule_GetDict(ExtractPythonObjectFrom(AModule)),PAnsiChar(aObj)));
580581
end;
581582

583+
function VarHasAttr(const AValue: Variant; const AAttr: AnsiString): Boolean;
584+
begin
585+
with GetPythonEngine do
586+
Result := VarIsPython(AValue) and
587+
(PyObject_HasAttrString(ExtractPythonObjectFrom(AValue), PAnsiChar(AAttr)) = 1);
588+
end;
589+
582590
function NewPythonList( const ASize : Integer = 0 ): Variant;
583591
var
584592
_list : PPyObject;

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /