fix Optional[List] in Configurable

Summary: Optional[not_a_type] was causing errors.

Reviewed By: davnov134

Differential Revision: D35355530

fbshipit-source-id: e9b52cfd6347ffae0fe688ef30523a4092ccf9fd
This commit is contained in:
Jeremy Reizenstein 2022-04-04 04:28:17 -07:00 committed by Facebook GitHub Bot
parent a999fc22ee
commit 2802fd9398
2 changed files with 3 additions and 1 deletions

View File

@ -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

View File

@ -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)