From c1d963e1bd41dca650a04bb346c34fb85c896a88 Mon Sep 17 00:00:00 2001 From: J Wyman Date: Wed, 1 Apr 2026 18:46:02 -0400 Subject: [PATCH 1/4] feat: Add .MemberIsNullIs[type] Functions to TritonJson This change adds a set of .MemberIs[type] functions to TritonJson. * MemberIsArray(const char* name) const * MemberIsArray(const std::string& name) const * MemberIsNull(const char* name) const * MemberIsNull(const std::string& name) const * MemberIsObject(const char* name) const * MemberIsObject(const std::string& name) const * MemberIsString(const char* name) const * MemberIsString(const std::string& name) const These new methods are used in parsing of the JSON blobs returned by PyTorch's AOTInductorContainerRunner::get_call_spec() function to determine the interface the model supports. --- include/triton/common/triton_json.h | 56 +++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/include/triton/common/triton_json.h b/include/triton/common/triton_json.h index 28d51ea..5bfc7c2 100644 --- a/include/triton/common/triton_json.h +++ b/include/triton/common/triton_json.h @@ -958,6 +958,62 @@ class TritonJsonImpl { return TRITONJSON_STATUSSUCCESS; } + bool MemberIsArray(const char* name) const + { + const rapidjson::Value& object = AsValue(); + if (!object.IsObject() || !object.HasMember(name)) + return false; + const auto& v = object[name]; + return v.IsArray(); + } + + bool MemberIsArray(const std::string& name) const + { + return MemberIsArray(name.c_str()); + } + + bool MemberIsNull(const char* name) const + { + const rapidjson::Value& object = AsValue(); + if (!object.IsObject() || !object.HasMember(name)) + return false; + const auto& v = object[name]; + return v.IsNull(); + } + + bool MemberIsNull(const std::string& name) const + { + return MemberIsNull(name.c_str()); + } + + bool MemberIsObject(const char* name) const + { + const rapidjson::Value& object = AsValue(); + if (!object.IsObject() || !object.HasMember(name)) + return false; + const auto& v = object[name]; + return v.IsObject(); + } + + bool MemberIsObject(const std::string& name) const + { + return MemberIsObject(name.c_str()); + } + + bool MemberIsString(const char* name) const + { + const rapidjson::Value& object = AsValue(); + if (!object.IsObject() || !object.HasMember(name)) + return false; + const auto& v = object[name]; + return v.IsString(); + } + + bool MemberIsString(const std::string& name) const + { + return MemberIsString(name.c_str()); + } + bool IsString() { const rapidjson::Value& object = AsValue(); From 93fbfe6193707f432404a4b1edfa5e639d66e434 Mon Sep 17 00:00:00 2001 From: J Wyman Date: Mon, 4 May 2026 11:30:40 -0400 Subject: [PATCH 2/4] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- include/triton/common/triton_json.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/triton/common/triton_json.h b/include/triton/common/triton_json.h index 5bfc7c2..cae7ecd 100644 --- a/include/triton/common/triton_json.h +++ b/include/triton/common/triton_json.h @@ -1003,8 +1003,9 @@ class TritonJsonImpl { bool MemberIsString(const char* name) const { const rapidjson::Value& object = AsValue(); - if (!object.IsObject() || !object.HasMember(name)) + if (!object.IsObject() || !object.HasMember(name)) { return false; + } const auto& v = object[name]; return v.IsString(); } From b468507c4b970168aa707e97e8cd7257246488e9 Mon Sep 17 00:00:00 2001 From: J Wyman Date: Mon, 4 May 2026 11:31:08 -0400 Subject: [PATCH 3/4] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- include/triton/common/triton_json.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/triton/common/triton_json.h b/include/triton/common/triton_json.h index cae7ecd..b39ca81 100644 --- a/include/triton/common/triton_json.h +++ b/include/triton/common/triton_json.h @@ -975,8 +975,9 @@ class TritonJsonImpl { bool MemberIsNull(const char* name) const { const rapidjson::Value& object = AsValue(); - if (!object.IsObject() || !object.HasMember(name)) + if (!object.IsObject() || !object.HasMember(name)) { return false; + } const auto& v = object[name]; return v.IsNull(); } From 10ec4b3bd79bd9a5ec4f4406aeb0f82c60b9c2c3 Mon Sep 17 00:00:00 2001 From: J Wyman Date: Mon, 4 May 2026 11:31:26 -0400 Subject: [PATCH 4/4] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- include/triton/common/triton_json.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/triton/common/triton_json.h b/include/triton/common/triton_json.h index b39ca81..a71b1ef 100644 --- a/include/triton/common/triton_json.h +++ b/include/triton/common/triton_json.h @@ -961,8 +961,9 @@ class TritonJsonImpl { bool MemberIsArray(const char* name) const { const rapidjson::Value& object = AsValue(); - if (!object.IsObject() || !object.HasMember(name)) + if (!object.IsObject() || !object.HasMember(name)) { return false; + } const auto& v = object[name]; return v.IsArray(); }