From c91afcc642d6a2b0ce32c4cb16dbb0077d1b5e0c Mon Sep 17 00:00:00 2001 From: Stephen Roller Date: Mon, 19 Jul 2021 16:44:16 -0400 Subject: [PATCH] Allow opt presets from internal libs. --- parlai/core/opt.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/parlai/core/opt.py b/parlai/core/opt.py index b8c3b0f19d9..e8a13edfea5 100644 --- a/parlai/core/opt.py +++ b/parlai/core/opt.py @@ -161,15 +161,23 @@ def load_init(cls, optfile: str) -> Opt: elif PathManager.exists(user_filename): # use a user's custom opt preset return cls.load(user_filename) - elif pkg_resources.resource_exists("parlai", oa_filename): - # Maybe a bundled opt preset - return cls.load(pkg_resources.resource_filename("parlai", oa_filename)) else: - raise FileNotFoundError( - f"Could not find filename '{optfile} or opt preset '{optfile}.opt'. " - "Please check https://parl.ai/docs/opt_presets.html for a list " - "of available opt presets." - ) + # Maybe a bundled opt preset + for root in ['parlai', 'parlai_internal', 'parlai_fb']: + try: + if pkg_resources.resource_exists(root, oa_filename): + return cls.load( + pkg_resources.resource_filename(root, oa_filename) + ) + except ModuleNotFoundError: + continue + + # made it through without a return path so raise the error + raise FileNotFoundError( + f"Could not find filename '{optfile} or opt preset '{optfile}.opt'. " + "Please check https://parl.ai/docs/opt_presets.html for a list " + "of available opt presets." + ) def log(self, header="Opt"): from parlai.core.params import print_git_commit