diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PyBuiltins.java b/src/main/java/com/google/devtools/build/lib/rules/python/PyBuiltins.java
index 5c81813..ca87b89 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/python/PyBuiltins.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/python/PyBuiltins.java
@@ -13,11 +13,29 @@
 // limitations under the License.
 package com.google.devtools.build.lib.rules.python;
 
+import com.google.devtools.build.lib.collect.nestedset.Depset;
+import net.starlark.java.annot.Param;
 import net.starlark.java.annot.StarlarkBuiltin;
+import net.starlark.java.annot.StarlarkMethod;
 import net.starlark.java.eval.StarlarkValue;
 
 /** Bridge to allow builtins bzl code to call Java code. */
 @StarlarkBuiltin(name = "py_builtins", documented = false)
 public abstract class PyBuiltins implements StarlarkValue {
   public static final String NAME = "py_builtins";
+
+  @StarlarkMethod(
+      name = "is_singleton_depset",
+      doc = "Efficiently checks if the depset is a singleton.",
+      parameters = {
+        @Param(
+            name = "value",
+            positional = true,
+            named = false,
+            defaultValue = "unbound",
+            doc = "depset to check for being a singleton")
+      })
+  public boolean isSingletonDepset(Depset depset) {
+    return depset.getSet().isSingleton();
+  }
 }
diff --git a/src/main/starlark/builtins_bzl/common/python/py_internal.bzl b/src/main/starlark/builtins_bzl/common/python/py_internal.bzl
index 9b4d4cb..5b437a4 100644
--- a/src/main/starlark/builtins_bzl/common/python/py_internal.bzl
+++ b/src/main/starlark/builtins_bzl/common/python/py_internal.bzl
@@ -14,6 +14,8 @@
 """PYTHON RULE IMPLEMENTATION ONLY: Do not use outside of the rule implementations and their tests.
 
 Various builtin Starlark defined objects exposed for non-builtin Starlark.
+
+These may change at any time and are closely coupled to the rule implementation.
 """
 
 # This replaces the Java-defined name using exports.bzl toplevels mapping.
diff --git a/src/main/starlark/builtins_bzl/common/python/py_runtime_rule.bzl b/src/main/starlark/builtins_bzl/common/python/py_runtime_rule.bzl
index 77c9458..b59aaee 100644
--- a/src/main/starlark/builtins_bzl/common/python/py_runtime_rule.bzl
+++ b/src/main/starlark/builtins_bzl/common/python/py_runtime_rule.bzl
@@ -17,6 +17,8 @@
 
 _PyRuntimeInfo = _builtins.toplevel.PyRuntimeInfo
 
+_py_builtins = _builtins.internal.py_builtins
+
 def _py_runtime_impl(ctx):
     interpreter_path = ctx.attr.interpreter_path or None  # Convert empty string to None
     interpreter = ctx.file.interpreter
@@ -38,11 +40,8 @@
     if ctx.attr.coverage_tool:
         coverage_di = ctx.attr.coverage_tool[DefaultInfo]
 
-        # TODO(b/254866025): Use a Java helper to call NestedSet.isSingleton
-        # instead of always flattening to a list
-        coverage_di_files = coverage_di.files.to_list()
-        if len(coverage_di_files) == 1:
-            coverage_tool = coverage_di_files[0]
+        if _py_builtins.is_singleton_depset(coverage_di.files):
+            coverage_tool = coverage_di.files.to_list()[0]
         elif coverage_di.files_to_run and coverage_di.files_to_run.executable:
             coverage_tool = coverage_di.files_to_run.executable
         else:
