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

tlopex pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tvm.git


The following commit(s) were added to refs/heads/main by this push:
     new a4a2bf5b89 [Python] Refactor pyproject.toml dependencies (#19723)
a4a2bf5b89 is described below

commit a4a2bf5b898e63ae80813ff62f7ffbbe750bdf03
Author: Shushi Hong <[email protected]>
AuthorDate: Wed Jun 10 22:25:30 2026 -0400

    [Python] Refactor pyproject.toml dependencies (#19723)
    
    This pr refactors `pyproject.toml` and deletes redundant dependencies
---
 pyproject.toml                                               | 12 ++++++------
 python/tvm/relax/backend/metal/coreml.py                     | 10 ++++++++--
 python/tvm/relax/frontend/onnx/onnx_frontend.py              |  9 ++++++++-
 python/tvm/relax/frontend/tflite/tflite_frontend.py          |  4 ++++
 .../tvm/relax/frontend/torch/exported_program_translator.py  |  9 +++++++--
 python/tvm/s_tir/meta_schedule/utils.py                      |  7 ++++++-
 6 files changed, 39 insertions(+), 12 deletions(-)

diff --git a/pyproject.toml b/pyproject.toml
index d38b41670d..3c61fa389f 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -48,18 +48,16 @@ dependencies = [
   "apache-tvm-ffi>=0.1.12",
   "ml_dtypes",
   "numpy",
-  "psutil",
   "typing_extensions",
 ]
 
 [project.optional-dependencies]
 torch = ["torch"]
-importer-onnx = ["onnx", "onnxoptimizer", "onnxruntime"]
-importer-pytorch = ["torch", "torchvision"]
-importer-tflite = ["tflite"]
-coreml = ["coremltools"]
+cuda = ["cuda-python"]
 meta-schedule = ["xgboost"]
-all = ["xgboost"]
+popen-pool = ["psutil", "cloudpickle"]
+rpc = ["tornado", "psutil", "cloudpickle"]
+all = ["xgboost", "psutil", "cloudpickle", "tornado"]
 
 [project.urls]
 Homepage = "https://tvm.apache.org/";
@@ -69,6 +67,7 @@ Repository = "https://github.com/apache/tvm";
 
 [dependency-groups]
 torch = ["torch"]
+popen-pool = ["psutil", "cloudpickle"]
 test = [
   "pytest",
   "pytest-xdist",
@@ -79,6 +78,7 @@ test = [
   "pytest-rerunfailures",
   "pytest-repeat",
   { include-group = "torch" },
+  { include-group = "popen-pool" },
 ]
 lint = ["ruff", "pre-commit"]
 dev = [{ include-group = "test" }, { include-group = "lint" }]
diff --git a/python/tvm/relax/backend/metal/coreml.py 
b/python/tvm/relax/backend/metal/coreml.py
index e719d2f1c7..dab375478a 100644
--- a/python/tvm/relax/backend/metal/coreml.py
+++ b/python/tvm/relax/backend/metal/coreml.py
@@ -311,8 +311,14 @@ class CodegenCoreML(PyExprVisitor):
     """
 
     def __init__(self, model_name, function):
-        import coremltools
-        from coremltools.models.neural_network import NeuralNetworkBuilder
+        try:
+            import coremltools
+            from coremltools.models.neural_network import NeuralNetworkBuilder
+        except ImportError as err:
+            raise ImportError(
+                "coremltools is required by the CoreML backend. "
+                "Install it with: pip install coremltools"
+            ) from err
 
         self.model_name = model_name
         self.function = function
diff --git a/python/tvm/relax/frontend/onnx/onnx_frontend.py 
b/python/tvm/relax/frontend/onnx/onnx_frontend.py
index 0e3ccef08c..31971b30ab 100644
--- a/python/tvm/relax/frontend/onnx/onnx_frontend.py
+++ b/python/tvm/relax/frontend/onnx/onnx_frontend.py
@@ -46,7 +46,14 @@ from collections.abc import Callable
 from typing import Any
 
 import numpy as _np
-import onnx.onnx_ml_pb2
+
+try:
+    import onnx.onnx_ml_pb2
+except ImportError as err:
+    raise ImportError(
+        "onnx is required by the ONNX frontend. Install it with: pip install 
onnx"
+    ) from err
+
 import tvm_ffi
 
 import tvm
diff --git a/python/tvm/relax/frontend/tflite/tflite_frontend.py 
b/python/tvm/relax/frontend/tflite/tflite_frontend.py
index 67d57e5866..d14643d75c 100644
--- a/python/tvm/relax/frontend/tflite/tflite_frontend.py
+++ b/python/tvm/relax/frontend/tflite/tflite_frontend.py
@@ -8146,6 +8146,10 @@ def from_tflite(
         import tflite
 
         assert isinstance(model, tflite.Model)
+    except ImportError as err:
+        raise ImportError(
+            "tflite is required by the TFLite frontend. Install it with: pip 
install tflite"
+        ) from err
     except TypeError:
         import tflite.Model
 
diff --git a/python/tvm/relax/frontend/torch/exported_program_translator.py 
b/python/tvm/relax/frontend/torch/exported_program_translator.py
index 7924a2305c..22acdb2877 100644
--- a/python/tvm/relax/frontend/torch/exported_program_translator.py
+++ b/python/tvm/relax/frontend/torch/exported_program_translator.py
@@ -25,8 +25,13 @@ from collections import ChainMap, OrderedDict
 from collections.abc import Callable
 from functools import partial
 
-import torch
-from torch import fx
+try:
+    import torch
+    from torch import fx
+except ImportError as err:
+    raise ImportError(
+        "torch is required by the PyTorch frontend. Install it with: pip 
install torch"
+    ) from err
 
 import tvm
 from tvm import relax
diff --git a/python/tvm/s_tir/meta_schedule/utils.py 
b/python/tvm/s_tir/meta_schedule/utils.py
index e714899e37..d80fbf52b1 100644
--- a/python/tvm/s_tir/meta_schedule/utils.py
+++ b/python/tvm/s_tir/meta_schedule/utils.py
@@ -22,7 +22,6 @@ from collections.abc import Callable
 from typing import Any
 
 import numpy as np  # type: ignore
-import psutil  # type: ignore
 from tvm_ffi import Array, Function, Map, get_global_func, register_global_func
 
 from tvm.error import TVMError
@@ -56,6 +55,12 @@ def _cpu_count_impl(logical: bool = True) -> int:
     Setting these variables may interfere the host-side search with profiling 
of generated kernels
     when measuring locally.
     """
+    try:
+        import psutil  # type: ignore  # pylint: 
disable=import-outside-toplevel
+    except ImportError as err:
+        raise ImportError(
+            "psutil is required by the meta schedule search. Install it with: 
pip install psutil"
+        ) from err
     return psutil.cpu_count(logical=logical) or 1
 
 

Reply via email to