This is an automated email from the ASF dual-hosted git repository.

tqchen pushed a commit to branch tqchen/printer-refinement
in repository https://gitbox.apache.org/repos/asf/tvm.git


The following commit(s) were added to refs/heads/tqchen/printer-refinement by 
this push:
     new 5905967cdf [REFACTOR][Script] Use ir namespace for printer options
5905967cdf is described below

commit 5905967cdfc10a9db3db6c61a8b26cd9a8444a12
Author: Tianqi Chen <[email protected]>
AuthorDate: Thu Oct 1 16:43:33 2026 +0000

    [REFACTOR][Script] Use ir namespace for printer options
    
    Name printer configuration keys consistently under ir while preserving 
option behavior and existing constructor arguments.
---
 python/tvm/ir/base.py                                  |  2 +-
 python/tvm/runtime/script_printer.py                   | 14 +++++++-------
 src/ir/transform.cc                                    |  2 +-
 src/script/printer/config.cc                           |  4 ++--
 src/script/printer/doc_translator.cc                   | 14 +++++++-------
 src/script/printer/ir/ir.cc                            |  4 ++--
 src/script/printer/ir/prim_type.cc                     |  2 +-
 src/script/printer/ir/utils.cc                         | 16 +++++++---------
 src/script/printer/printer.cc                          | 18 +++++++++---------
 src/script/printer/script_printer.cc                   |  2 +-
 src/tirx/script/printer/function.cc                    |  2 +-
 .../relax/script/test_relax_script_dynamic_shape.py    |  2 +-
 tests/python/s_tir/script/test_s_tir_script_printer.py |  4 ++--
 tests/python/tirx/script/test_tirx_script_buffers.py   |  2 +-
 .../tirx/script/test_tirx_script_dynamic_shape.py      |  4 ++--
 15 files changed, 45 insertions(+), 47 deletions(-)

diff --git a/python/tvm/ir/base.py b/python/tvm/ir/base.py
index fa7bba369b..267dffee74 100644
--- a/python/tvm/ir/base.py
+++ b/python/tvm/ir/base.py
@@ -35,7 +35,7 @@ class Node(Object):
         try:
             return _script(
                 self,
-                PrinterConfig(extra_config={"script.comment_imports": True}),
+                PrinterConfig(extra_config={"ir.comment_imports": True}),
             )
         except Exception:
             return super().__repr__()
diff --git a/python/tvm/runtime/script_printer.py 
b/python/tvm/runtime/script_printer.py
index 45874a8e49..9a3e25d0d7 100644
--- a/python/tvm/runtime/script_printer.py
+++ b/python/tvm/runtime/script_printer.py
@@ -33,7 +33,7 @@ class PrinterConfig(Object):
     """Configuration of TVMScript printer.
 
     The ``int_dtype`` and ``float_dtype`` arguments populate the string-valued
-    ``ir.int_dtype`` and ``script.float_dtype`` entries in ``extra_config``.
+    ``ir.int_dtype`` and ``ir.float_dtype`` entries in ``extra_config``.
     Explicit entries in ``extra_config`` override those arguments.
     """
 
@@ -83,7 +83,7 @@ class PrinterConfig(Object):
             "module_alias": module_alias,
             "buffer_dtype": buffer_dtype,
             "ir.int_dtype": int_dtype,
-            "script.float_dtype": float_dtype,
+            "ir.float_dtype": float_dtype,
             "verbose_expr": verbose_expr,
             "indent_spaces": indent_spaces,
             "print_line_numbers": print_line_numbers,
@@ -198,9 +198,9 @@ class Scriptable:
             merged_extra.update(extra_config)
         # Keep the historical interactive display header. Direct printer calls
         # retain executable imports for standalone parser round-trips.
-        merged_extra.setdefault("script.comment_imports", True)
-        if "script.use_pep695" not in merged_extra:
-            merged_extra["script.use_pep695"] = merged_extra.get(
+        merged_extra.setdefault("ir.comment_imports", True)
+        if "ir.use_pep695" not in merged_extra:
+            merged_extra["ir.use_pep695"] = merged_extra.get(
                 "relax.use_pep695", sys.version_info >= (3, 12)
             )
 
@@ -274,8 +274,8 @@ class Scriptable:
         obj_to_annotate: dict[Object, str] | None = None,
     ) -> str:
         merged_extra = dict(extra_config or {})
-        if "script.use_pep695" not in merged_extra:
-            merged_extra["script.use_pep695"] = merged_extra.get(
+        if "ir.use_pep695" not in merged_extra:
+            merged_extra["ir.use_pep695"] = merged_extra.get(
                 "relax.use_pep695", sys.version_info >= (3, 12)
             )
         return _relax_script(
diff --git a/src/ir/transform.cc b/src/ir/transform.cc
index baf088a5a9..d1fe44f357 100644
--- a/src/ir/transform.cc
+++ b/src/ir/transform.cc
@@ -315,7 +315,7 @@ std::optional<std::string> RenderScriptWithUnderline(const 
ffi::ObjectRef& node,
     ffi::Map<ffi::String, ffi::Any> config_dict;
     // Error snippets use the same display conventions as script() and repr().
     config_dict.Set("extra_config", ffi::Map<ffi::String, ffi::Any>{
-                                        {"script.comment_imports", true},
+                                        {"ir.comment_imports", true},
                                     });
     config_dict.Set("path_to_underline", 
ffi::Array<ffi::reflection::AccessPath>{path});
     // Show enough context that a small function renders in full (no
diff --git a/src/script/printer/config.cc b/src/script/printer/config.cc
index 518f93bb91..08462543d8 100644
--- a/src/script/printer/config.cc
+++ b/src/script/printer/config.cc
@@ -93,7 +93,7 @@ PrinterConfig::PrinterConfig(ffi::Map<ffi::String, Any> 
config_dict) {
   }
   if (auto v = get("float_dtype")) {
     n->extra_config.Set(
-        "script.float_dtype",
+        "ir.float_dtype",
         
ffi::DLDataTypeToString(ffi::StringToDLDataType(v.value().as_or_throw<ffi::String>())));
   }
   if (auto v = get("verbose_expr")) {
@@ -156,7 +156,7 @@ PrinterConfig::PrinterConfig(ffi::Map<ffi::String, Any> 
config_dict) {
   // Keep legacy constructor arguments as adapters; explicit extra_config 
values
   // take precedence. Store validated dtype strings with the existing defaults.
   for (const auto& [key, fallback] :
-       {std::pair{"ir.int_dtype", "int32"}, std::pair{"script.float_dtype", 
"void"}}) {
+       {std::pair{"ir.int_dtype", "int32"}, std::pair{"ir.float_dtype", 
"void"}}) {
     ffi::String value = n->GetExtraConfig<ffi::String>(key, fallback);
     n->extra_config.Set(key, 
ffi::DLDataTypeToString(ffi::StringToDLDataType(value)));
   }
diff --git a/src/script/printer/doc_translator.cc 
b/src/script/printer/doc_translator.cc
index cdf9e0fa73..6ca872d9a4 100644
--- a/src/script/printer/doc_translator.cc
+++ b/src/script/printer/doc_translator.cc
@@ -147,7 +147,7 @@ class TranslationEngine : public DocTranslatorObj {
 
 details::TranslationResult TranslateComplete(ffi::AnyView obj, 
TranslationEngine* engine,
                                              ffi::Map<ffi::String, ffi::Any> 
extra_config) {
-  auto binding_names = 
engine->GetExtraConfig<ffi::Array<ffi::String>>("script.binding_names", {});
+  auto binding_names = 
engine->GetExtraConfig<ffi::Array<ffi::String>>("ir.binding_names", {});
   // Reserve the same registered or explicitly configured aliases used by 
rendering.
   for (const auto& [key, fallback] : GetDialectPrefixes()) {
     if (!extra_config.count(key)) engine->AllocId(fallback);
@@ -159,8 +159,8 @@ details::TranslationResult TranslateComplete(ffi::AnyView 
obj, TranslationEngine
   }
   for (const ffi::String& name : binding_names) engine->AllocId(name);
   if (binding_names.empty()) {
-    if (auto name = 
engine->GetExtraConfig<ffi::Optional<ffi::String>>("script.module_name",
-                                                                       
std::nullopt)) {
+    if (auto name =
+            
engine->GetExtraConfig<ffi::Optional<ffi::String>>("ir.module_name", 
std::nullopt)) {
       engine->AllocId(name.value());
     }
   }
@@ -173,7 +173,7 @@ details::TranslationResult TranslateComplete(ffi::AnyView 
obj, TranslationEngine
   auto docs = engine->WithDocScope([&]() {
     ffi::Optional<ExprDoc> expression = engine->Translate(obj);
     if (expression.has_value()) {
-      compact_expression = 
!engine->GetExtraConfig<bool>("script.verbose_expr", true);
+      compact_expression = !engine->GetExtraConfig<bool>("ir.verbose_expr", 
true);
       if (compact_expression) engine->CurrentScopeDocs().clear();
       engine->Emit(ExprStmtDoc(expression.value()), obj.as<ffi::ObjectRef>());
     }
@@ -205,7 +205,7 @@ details::TranslationResult TranslateComplete(ffi::AnyView 
obj, TranslationEngine
   using MetadataMap = ffi::Dict<ffi::String, ffi::List<ffi::Any>>;
   auto metadata = 
engine->GetOrCreateExtraState<MetadataMap>("ir.metadata_map");
   ffi::Array<StmtDoc> body;
-  if (!metadata.empty() && engine->GetExtraConfig<bool>("script.show_meta", 
true)) {
+  if (!metadata.empty() && engine->GetExtraConfig<bool>("ir.show_meta", true)) 
{
     // Serialize the whole registry as one graph so aliases shared across
     // entries survive. Immutable maps/arrays preserve the loader's contract.
     ffi::Map<ffi::String, ffi::Any> serialized;
@@ -226,13 +226,13 @@ details::TranslationResult TranslateComplete(ffi::AnyView 
obj, TranslationEngine
                              std::nullopt));
   }
   for (const auto& stmt : ToStmtDocArray(docs)) body.push_back(stmt);
-  if (!metadata.empty() && !engine->GetExtraConfig<bool>("script.show_meta", 
true)) {
+  if (!metadata.empty() && !engine->GetExtraConfig<bool>("ir.show_meta", 
true)) {
     body.push_back(
         CommentDoc("Metadata omitted. Use show_meta=True in script() method to 
show it."));
   }
   return {StmtBlockDoc(body), engine->GetDocOrigins(),
           engine->GetOrCreateExtraState<bool>("script.future_annotations"), 
metadata_loader->name,
-          !metadata.empty() && 
engine->GetExtraConfig<bool>("script.show_meta", true)};
+          !metadata.empty() && engine->GetExtraConfig<bool>("ir.show_meta", 
true)};
 }
 
 }  // namespace
diff --git a/src/script/printer/ir/ir.cc b/src/script/printer/ir/ir.cc
index 24c758e3a2..11982d4e1d 100644
--- a/src/script/printer/ir/ir.cc
+++ b/src/script/printer/ir/ir.cc
@@ -72,9 +72,9 @@ ffi::Optional<ExprDoc> IRModuleDocTranslate(DocTranslatorObj* 
d, ffi::AnyView in
       ffi::details::AnyUnsafe::RawObjectPtrFromAnyViewAfterCheck<const 
IRModuleNode>(input);
   TVM_FFI_CHECK(destination == nullptr, TypeError)
       << "printer statement-only node cannot fulfill a destination";
-  auto names = 
d->GetExtraConfig<ffi::Array<ffi::String>>("script.binding_names", {});
+  auto names = d->GetExtraConfig<ffi::Array<ffi::String>>("ir.binding_names", 
{});
   ffi::String module_name =
-      names.empty() ? d->GetExtraConfig<ffi::String>("script.module_name", 
"Module") : names.back();
+      names.empty() ? d->GetExtraConfig<ffi::String>("ir.module_name", 
"Module") : names.back();
   d->AllocId(module_name);
   GlobalInfoScope global_infos(d, mod);
   std::vector<std::pair<GlobalVar, BaseFunc>> functions(mod->functions.begin(),
diff --git a/src/script/printer/ir/prim_type.cc 
b/src/script/printer/ir/prim_type.cc
index 22debd5500..335307be51 100644
--- a/src/script/printer/ir/prim_type.cc
+++ b/src/script/printer/ir/prim_type.cc
@@ -55,7 +55,7 @@ ffi::Optional<ExprDoc> FloatImmDocTranslate(DocTranslatorObj* 
d, ffi::AnyView in
       ffi::details::AnyUnsafe::RawObjectPtrFromAnyViewAfterCheck<const 
FloatImmNode>(input);
   DLDataType dtype = imm->ty.as_or_throw<PrimType>()->dtype;
   DLDataType default_dtype =
-      
ffi::StringToDLDataType(d->GetExtraConfig<ffi::String>("script.float_dtype", 
"void"));
+      ffi::StringToDLDataType(d->GetExtraConfig<ffi::String>("ir.float_dtype", 
"void"));
   ExprDoc value = LiteralDoc::Float(imm->value, std::nullopt);
   if (dtype == default_dtype) return value;
   return 
NamespaceDoc("tirx")->Attr(ffi::DLDataTypeToString(dtype))->Call({value});
diff --git a/src/script/printer/ir/utils.cc b/src/script/printer/ir/utils.cc
index b3f35c3d53..a2f01b05b0 100644
--- a/src/script/printer/ir/utils.cc
+++ b/src/script/printer/ir/utils.cc
@@ -62,13 +62,11 @@ IdDoc VarDoc(DocTranslatorObj* d, const Var& var, bool 
explicit_def) {
   return doc;
 }
 
-bool SyntaxSugar(DocTranslatorObj* d) {
-  return d->GetExtraConfig<bool>("script.syntax_sugar", true);
-}
+bool SyntaxSugar(DocTranslatorObj* d) { return 
d->GetExtraConfig<bool>("ir.syntax_sugar", true); }
 
 bool IsAnnotated(DocTranslatorObj* d, const ffi::ObjectRef& object) {
   for (const auto& item :
-       
d->GetExtraConfig<ffi::Array<ffi::ObjectRef>>("script.annotated_objects", {})) {
+       d->GetExtraConfig<ffi::Array<ffi::ObjectRef>>("ir.annotated_objects", 
{})) {
     if (item.same_as(object)) return true;
   }
   return false;
@@ -76,7 +74,7 @@ bool IsAnnotated(DocTranslatorObj* d, const ffi::ObjectRef& 
object) {
 
 bool IsUnderlined(DocTranslatorObj* d, const ffi::ObjectRef& object) {
   for (const auto& item :
-       
d->GetExtraConfig<ffi::Array<ffi::ObjectRef>>("script.underlined_objects", {})) 
{
+       d->GetExtraConfig<ffi::Array<ffi::ObjectRef>>("ir.underlined_objects", 
{})) {
     if (item.same_as(object)) return true;
   }
   return false;
@@ -84,7 +82,7 @@ bool IsUnderlined(DocTranslatorObj* d, const ffi::ObjectRef& 
object) {
 
 bool HasAnnotatedDescendant(DocTranslatorObj* d, const ffi::ObjectRef& object) 
{
   for (const auto& item :
-       
d->GetExtraConfig<ffi::Array<ffi::ObjectRef>>("script.annotation_ancestors", 
{})) {
+       
d->GetExtraConfig<ffi::Array<ffi::ObjectRef>>("ir.annotation_ancestors", {})) {
     if (item.same_as(object)) return true;
   }
   return false;
@@ -103,8 +101,8 @@ ExprDoc NamedCallCallee(const ffi::String& canonical_name) {
 }
 
 ExprDoc GlobalReference(DocTranslatorObj* d, const ffi::String& name) {
-  auto names = 
d->GetExtraConfig<ffi::Array<ffi::String>>("script.binding_names", {});
-  return IdDoc(names.empty() ? 
d->GetExtraConfig<ffi::String>("script.module_name", "Module")
+  auto names = d->GetExtraConfig<ffi::Array<ffi::String>>("ir.binding_names", 
{});
+  return IdDoc(names.empty() ? 
d->GetExtraConfig<ffi::String>("ir.module_name", "Module")
                              : names.back())
       ->Attr(name);
 }
@@ -239,7 +237,7 @@ void FinalizeFunctionDefinitions(DocTranslatorObj* d, const 
ffi::Dict<Var, IdDoc
   auto module =
       d->GetOrCreateExtraState<ffi::Optional<ffi::Dict<ffi::String, 
ffi::List<GlobalInfo>>>>(
           "ir.global_info_map");
-  bool use_pep695 = !module.has_value() && 
d->GetExtraConfig<bool>("script.use_pep695", false);
+  bool use_pep695 = !module.has_value() && 
d->GetExtraConfig<bool>("ir.use_pep695", false);
   auto pending = d->GetImplicitDefs();
   std::vector<Var> parameters;
   if (use_pep695) {
diff --git a/src/script/printer/printer.cc b/src/script/printer/printer.cc
index 1c9b184df2..7469dafd44 100644
--- a/src/script/printer/printer.cc
+++ b/src/script/printer/printer.cc
@@ -251,14 +251,14 @@ class MapDocPaths {
 ffi::String Script(const ffi::ObjectRef& obj, const PrinterConfig& config) {
   MapDocPaths paths(obj, config);
   auto extra_config = config->extra_config;
-  extra_config.Set("script.binding_names", config->binding_names);
-  extra_config.Set("script.show_meta", config->show_meta);
-  extra_config.Set("script.verbose_expr", config->verbose_expr);
-  extra_config.Set("script.syntax_sugar", config->syntax_sugar);
+  extra_config.Set("ir.binding_names", config->binding_names);
+  extra_config.Set("ir.show_meta", config->show_meta);
+  extra_config.Set("ir.verbose_expr", config->verbose_expr);
+  extra_config.Set("ir.syntax_sugar", config->syntax_sugar);
   auto annotated_objects = paths.AnnotatedObjects();
-  extra_config.Set("script.annotated_objects", annotated_objects);
-  extra_config.Set("script.annotation_ancestors", 
paths.AnnotationAncestors(annotated_objects));
-  extra_config.Set("script.underlined_objects", paths.UnderlinedObjects());
+  extra_config.Set("ir.annotated_objects", annotated_objects);
+  extra_config.Set("ir.annotation_ancestors", 
paths.AnnotationAncestors(annotated_objects));
+  extra_config.Set("ir.underlined_objects", paths.UnderlinedObjects());
   auto result = details::TranslateWithOptions(obj, std::move(extra_config));
   auto [underline_paths, annotations] = paths.Map(result.doc, result.origins);
   ffi::Array<ffi::Any> header;
@@ -286,13 +286,13 @@ ffi::String Script(const ffi::ObjectRef& obj, const 
PrinterConfig& config) {
       // Header policy is fixed here; comments remain ordinary CommentDocs.
       ffi::String import =
           "from tvm.script import " + std::string(name) + " as " + 
std::string(alias);
-      if (config->GetExtraConfig<bool>("script.comment_imports", false) &&
+      if (config->GetExtraConfig<bool>("ir.comment_imports", false) &&
           !(config->show_meta && name == "tirx")) {
         header.push_back(CommentDoc(import));
       } else {
         header.push_back(ffi::String(std::string(import) + "\n"));
       }
-      if (name == "tirx" && 
config->GetExtraConfig<bool>("script.comment_imports", false)) {
+      if (name == "tirx" && config->GetExtraConfig<bool>("ir.comment_imports", 
false)) {
         header.push_back(CommentDoc("from tvm.tirx.layout import Axis"));
       }
     }
diff --git a/src/script/printer/script_printer.cc 
b/src/script/printer/script_printer.cc
index 547381a0fb..878b6f2440 100644
--- a/src/script/printer/script_printer.cc
+++ b/src/script/printer/script_printer.cc
@@ -88,7 +88,7 @@ std::string Script(const ffi::ObjectRef& node, const 
ffi::Optional<PrinterConfig
 std::string RedirectedReprPrinterMethod(const ffi::ObjectRef& obj) {
   try {
     PrinterConfig config;
-    config->extra_config.Set("script.comment_imports", true);
+    config->extra_config.Set("ir.comment_imports", true);
     // Call translation directly so an unsupported type cannot recurse through 
ffi repr.
     return std::string(script::printer::Script(obj, config));
   } catch (const tvm::ffi::Error& e) {
diff --git a/src/tirx/script/printer/function.cc 
b/src/tirx/script/printer/function.cc
index 23fef1f784..7a8fdad386 100644
--- a/src/tirx/script/printer/function.cc
+++ b/src/tirx/script/printer/function.cc
@@ -75,7 +75,7 @@ ffi::Optional<ExprDoc> PrimFuncDocTranslate(DocTranslatorObj* 
d, ffi::AnyView in
   auto module =
       d->GetOrCreateExtraState<ffi::Optional<ffi::Dict<ffi::String, 
ffi::List<GlobalInfo>>>>(
           "ir.global_info_map");
-  auto names = 
d->GetExtraConfig<ffi::Array<ffi::String>>("script.binding_names", {});
+  auto names = d->GetExtraConfig<ffi::Array<ffi::String>>("ir.binding_names", 
{});
   if (!module.has_value() && !names.empty()) {
     if (auto symbol = func->GetAttr<ffi::String>(tvm::attr::kGlobalSymbol)) {
       TVM_FFI_CHECK(symbol.value() == names.back(), TypeError)
diff --git a/tests/python/relax/script/test_relax_script_dynamic_shape.py 
b/tests/python/relax/script/test_relax_script_dynamic_shape.py
index 2ee370a9aa..095b64d50b 100644
--- a/tests/python/relax/script/test_relax_script_dynamic_shape.py
+++ b/tests/python/relax/script/test_relax_script_dynamic_shape.py
@@ -229,7 +229,7 @@ def test_call_tir_with_tir_var():
                     Y[vi] = X[vi]
 
     _check(Module)
-    portable = Module.script(show_meta=True, 
extra_config={"script.use_pep695": False})
+    portable = Module.script(show_meta=True, extra_config={"ir.use_pep695": 
False})
     tvm.ir.assert_structural_equal(
         Module,
         tvm.script.from_source(
diff --git a/tests/python/s_tir/script/test_s_tir_script_printer.py 
b/tests/python/s_tir/script/test_s_tir_script_printer.py
index d721837cad..2640bed191 100644
--- a/tests/python/s_tir/script/test_s_tir_script_printer.py
+++ b/tests/python/s_tir/script/test_s_tir_script_printer.py
@@ -46,7 +46,7 @@ def test_prim_func_symbolic_buffer_param_roundtrip():
         .with_attr("s_tir", True)
     )
 
-    source = func.script(extra_config={"script.use_pep695": False})
+    source = func.script(extra_config={"ir.use_pep695": False})
     assert "T.Buffer((n + 1, n)" in source
     assert source.index('n = I.dynamic("n", dtype="int32")') < 
source.index("T.evaluate(n)")
     tvm.ir.assert_structural_equal(
@@ -66,7 +66,7 @@ def 
test_prim_func_compound_buffer_shape_first_use_roundtrip():
         .with_attr("s_tir", True)
     )
 
-    source = func.script(extra_config={"script.use_pep695": False})
+    source = func.script(extra_config={"ir.use_pep695": False})
     assert "T.Buffer((T.max(n, 1),)" in source
     assert source.index('n = I.dynamic("n", dtype="int32")') < 
source.index("T.evaluate(n)")
     tvm.ir.assert_structural_equal(
diff --git a/tests/python/tirx/script/test_tirx_script_buffers.py 
b/tests/python/tirx/script/test_tirx_script_buffers.py
index 9c7e1239e8..df5d2a557c 100644
--- a/tests/python/tirx/script/test_tirx_script_buffers.py
+++ b/tests/python/tirx/script/test_tirx_script_buffers.py
@@ -325,7 +325,7 @@ def test_buffer_shape_repeated_var_prints_out_of_line():
     buffer = tvm.tirx.decl_buffer((n + n,), name="A")
     func = tvm.tirx.PrimFunc([buffer], tvm.tirx.Evaluate(0))
 
-    code = func.script(extra_config={"script.use_pep695": False})
+    code = func.script(extra_config={"ir.use_pep695": False})
     assert 'n = I.dynamic("n", dtype="int32")' in code
     assert_structural_equal(func, from_source(code))
 
diff --git a/tests/python/tirx/script/test_tirx_script_dynamic_shape.py 
b/tests/python/tirx/script/test_tirx_script_dynamic_shape.py
index ddbde17128..5fa9a11aef 100644
--- a/tests/python/tirx/script/test_tirx_script_dynamic_shape.py
+++ b/tests/python/tirx/script/test_tirx_script_dynamic_shape.py
@@ -152,7 +152,7 @@ def func[M: int](A: T.Buffer((M, M * 2), "float32")):
         assert 'M = I.dynamic("M", dtype="int64")' in script
         assert "M = T.int64()" not in script
 
-    portable = func.script(extra_config={"script.use_pep695": False})
+    portable = func.script(extra_config={"ir.use_pep695": False})
     assert "from __future__ import annotations" not in portable
     assert 'M = I.dynamic("M", dtype="int64")' in portable
     assert 'T.Buffer((M, M * T.int64(2)), "float32", layout="default")' in 
portable
@@ -182,7 +182,7 @@ def test_dynamic_int32_roundtrip():
         assert "def main[n: T.int32](" in source
     else:
         assert 'n = I.dynamic("n", dtype="int32")' in source
-    portable = func.script(extra_config={"script.use_pep695": False})
+    portable = func.script(extra_config={"ir.use_pep695": False})
     assert 'n = I.dynamic("n", dtype="int32")' in portable
     tvm.ir.assert_structural_equal(
         func, tvm.script.from_source(source, extra_vars={"I": tvm.script.ir, 
"T": tvm.script.tirx})

Reply via email to