mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
Pull Request resolved: https://github.com/pytorch/pytorch/pull/136964 Approved by: https://github.com/justinchuby, https://github.com/albanD
48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
# Owner(s): ["oncall: package/deploy"]
|
|
|
|
from io import BytesIO
|
|
|
|
from torch.package import PackageExporter, PackageImporter, sys_importer
|
|
from torch.testing._internal.common_utils import run_tests
|
|
|
|
|
|
try:
|
|
from .common import PackageTestCase
|
|
except ImportError:
|
|
# Support the case where we run this file directly.
|
|
from common import PackageTestCase
|
|
|
|
|
|
class TestRepackage(PackageTestCase):
|
|
"""Tests for repackaging."""
|
|
|
|
def test_repackage_import_indirectly_via_parent_module(self):
|
|
from package_d.imports_directly import ImportsDirectlyFromSubSubPackage
|
|
from package_d.imports_indirectly import ImportsIndirectlyFromSubPackage
|
|
|
|
model_a = ImportsDirectlyFromSubSubPackage()
|
|
buffer = BytesIO()
|
|
with PackageExporter(buffer) as pe:
|
|
pe.intern("**")
|
|
pe.save_pickle("default", "model.py", model_a)
|
|
|
|
buffer.seek(0)
|
|
pi = PackageImporter(buffer)
|
|
pi.load_pickle("default", "model.py")
|
|
|
|
model_b = ImportsIndirectlyFromSubPackage()
|
|
buffer = BytesIO()
|
|
with PackageExporter(
|
|
buffer,
|
|
importer=(
|
|
pi,
|
|
sys_importer,
|
|
),
|
|
) as pe:
|
|
pe.intern("**")
|
|
pe.save_pickle("default", "model_b.py", model_b)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
run_tests()
|