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