From 2802fd9398cc2387b67dc4d1a39375d77e36049d Mon Sep 17 00:00:00 2001 From: Jeremy Reizenstein Date: Mon, 4 Apr 2022 04:28:17 -0700 Subject: [PATCH] fix Optional[List] in Configurable Summary: Optional[not_a_type] was causing errors. Reviewed By: davnov134 Differential Revision: D35355530 fbshipit-source-id: e9b52cfd6347ffae0fe688ef30523a4092ccf9fd --- pytorch3d/implicitron/tools/config.py | 3 ++- tests/implicitron/test_config.py | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/pytorch3d/implicitron/tools/config.py b/pytorch3d/implicitron/tools/config.py index 5e7cb2bf..3c2c4d88 100644 --- a/pytorch3d/implicitron/tools/config.py +++ b/pytorch3d/implicitron/tools/config.py @@ -746,7 +746,8 @@ def _get_type_to_process(type_) -> Optional[Tuple[Type, _ProcessType]]: return underlying = args[0] if args[1] is type(None) else args[1] # noqa: E721 if ( - issubclass(underlying, ReplaceableBase) + isinstance(underlying, type) + and issubclass(underlying, ReplaceableBase) and ReplaceableBase in underlying.__bases__ ): return underlying, _ProcessType.OPTIONAL_REPLACEABLE diff --git a/tests/implicitron/test_config.py b/tests/implicitron/test_config.py index fc3ccde0..6f238412 100644 --- a/tests/implicitron/test_config.py +++ b/tests/implicitron/test_config.py @@ -109,6 +109,7 @@ class TestConfig(unittest.TestCase): self.assertIsNone(gt(Optional[MainTest])) self.assertIsNone(gt(Tuple[Fruit])) self.assertIsNone(gt(Tuple[Fruit, Animal])) + self.assertIsNone(gt(Optional[List[int]])) def test_simple_replacement(self): struct = get_default_args(MainTest)