File: test_lazy_import.py

package info (click to toggle)
pytorch-cuda 2.6.0%2Bdfsg-7
  • links: PTS, VCS
  • area: contrib
  • in suites: forky, sid, trixie
  • size: 161,620 kB
  • sloc: python: 1,278,832; cpp: 900,322; ansic: 82,710; asm: 7,754; java: 3,363; sh: 2,811; javascript: 2,443; makefile: 597; ruby: 195; xml: 84; objc: 68
file content (37 lines) | stat: -rw-r--r-- 1,120 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# Owner(s): ["module: onnx"]

import subprocess
import sys
import tempfile

import pytorch_test_common

from torch.testing._internal import common_utils


class TestLazyONNXPackages(pytorch_test_common.ExportTestCase):
    def _test_package_is_lazily_imported(self, pkg, torch_pkg="torch.onnx"):
        with tempfile.TemporaryDirectory() as wd:
            r = subprocess.run(
                [sys.executable, "-Ximporttime", "-c", "import torch.onnx"],
                capture_output=True,
                text=True,
                cwd=wd,
                check=True,
            )

        # The extra space makes sure we're checking the package, not any package containing its name.
        self.assertTrue(
            f" {pkg}" not in r.stderr,
            f"`{pkg}` should not be imported, full importtime: {r.stderr}",
        )

    def test_onnxruntime_is_lazily_imported(self):
        self._test_package_is_lazily_imported("onnxruntime")

    def test_onnxscript_is_lazily_imported(self):
        self._test_package_is_lazily_imported("onnxscript")


if __name__ == "__main__":
    common_utils.run_tests()