Esempio n. 1
0
 def _apply_script_flags(self, opdef):
     if opdef.flags_import in ([], False):
         return
     local_cache = {}
     model_paths = op_util.opdef_model_paths(opdef)
     flags_data = self._flags_data(opdef, model_paths, local_cache)
     opdef.flags_dest = flags_data.pop("$dest", None)
     import_data = {
         name: flags_data[name]
         for name in flags_data if self._is_import_flag(name, opdef)
     }
     opdef.merge_flags(ImportedFlagsOpProxy(import_data, opdef, self.log))
Esempio n. 2
0
 def python_script_opdef_loaded(self, opdef):
     if opdef.output_scalars is not None:
         return
     assert opdef.main, opdef
     main_mod = op_util.split_cmd(opdef.main)[0]
     model_paths = op_util.opdef_model_paths(opdef)
     try:
         _path, mod_path = python_util.find_module(main_mod, model_paths)
     except ImportError:
         return
     script = python_util.Script(mod_path)
     if self.is_keras_script(script):
         if opdef.output_scalars is None:
             opdef.output_scalars = KERAS_OUTPUT_SCALARS
Esempio n. 3
0
 def _apply_script_flags(self, opdef):
     if not opdef.flags_import and opdef.flags_dest:
         # If we're not importing flags and we have an explicit
         # flags dest, there's no need to look at the script.
         return
     local_cache = {}
     model_paths = op_util.opdef_model_paths(opdef)
     flags_data = self._flags_data(opdef, model_paths, local_cache)
     self._apply_flags_dest(flags_data, opdef)
     import_data = {
         name: flags_data[name]
         for name in flags_data if self._is_import_flag(name, opdef)
     }
     opdef.merge_flags(ImportedFlagsOpProxy(import_data, opdef, self.log))
Esempio n. 4
0
 def _flags_data(self, opdef, local_cache):
     main_mod, base_args = _split_main_spec(opdef.main)
     flags_dest = opdef.flags_dest
     try:
         flags_data = local_cache[(main_mod, flags_dest)]
     except KeyError:
         flags_import_util.log_flags_info("reading flags for main spec %r",
                                          main_mod)
         model_paths = op_util.opdef_model_paths(opdef)
         flags_data = self._flags_data_(main_mod, base_args, model_paths,
                                        opdef.flags_dest)
     else:
         flags_import_util.log_flags_info(
             "using cached flags for main spec %r", main_mod)
     return flags_data
Esempio n. 5
0
def _model_paths(opdef):
    """Returns the model paths for opdef.

    Guild is moving to an isolation scheme that requires these paths
    NOT be included in a run system path. When they are, it's possible
    that the run sourcecode dir does not contain all of the required
    code and these model paths are relied on to silently provide
    what's missing.

    At the moment, cross package inheritance relies on these
    paths. Until multiple packages can be merged into a single
    sourcecode tree (tricky considering they use multiple roots that
    share a common path to guild.yml) we rely on these paths to
    support that functionality.
    """
    return op_util.opdef_model_paths(opdef)
Esempio n. 6
0
 def _apply_script_flags(self, opdef):
     if _flags_import_disabled(opdef):
         return
     import_all_marker = object()
     to_import = _flags_to_import(opdef, import_all_marker)
     to_skip = _flags_to_skip(opdef)
     local_cache = {}
     model_paths = op_util.opdef_model_paths(opdef)
     flags_data = self._flags_data(opdef, model_paths, local_cache)
     self._apply_flags_dest(flags_data, opdef)
     import_data = {
         name: flags_data[name]
         for name in flags_data
         if ((to_import is import_all_marker or name in to_import)
             and not name in to_skip)
     }
     opdef.merge_flags(ImportedFlagsOpProxy(import_data, opdef, self.log))
Esempio n. 7
0
 def _apply_script_flags(self, opdef, local_cache):
     _log_flags_info("### Script flags for %s", opdef.fullname)
     if _flags_import_disabled(opdef):
         _log_flags_info("flags import disabled - skipping")
         return
     import_all_marker = object()
     to_import = _flags_to_import(opdef, import_all_marker)
     to_skip = _flags_to_skip(opdef)
     model_paths = op_util.opdef_model_paths(opdef)
     flags_data = self._flags_data(opdef, model_paths, local_cache)
     self._apply_flags_dest(flags_data, opdef)
     import_data = {
         name: flags_data[name]
         for name in flags_data
         if ((to_import is import_all_marker or name in to_import)
             and not name in to_skip)
     }
     opdef.merge_flags(ImportedFlagsOpProxy(import_data, opdef, self.log))
Esempio n. 8
0
 def python_script_opdef(self, op):
     if (op.compare is not None and op.output_scalars is not None):
         return
     assert op.main, op
     plugin = pluginlib.for_name("python_script")
     main_mod = op_util.split_main(op.main)[0]
     model_paths = op_util.opdef_model_paths(op)
     try:
         _sys_path, mod_path = plugin.find_module(main_mod, model_paths)
     except ImportError:
         return
     script = python_util.Script(mod_path)
     if self.is_keras_script(script):
         if op.compare is None:
             flags = ["=%s" % f.name for f in op.flags]
             op.compare = flags + KERAS_BASE_COMPARE
         if op.output_scalars is None:
             op.output_scalars = KERAS_OUTPUT_SCALARS
Esempio n. 9
0
File: op.py Progetto: yuanbw/guildai
def _model_paths(opdef):
    return op_util.opdef_model_paths(opdef)