Ejemplo n.º 1
0
    def __init__(self, loadable_target_origin, entry_point):
        self._loadable_target_origin = loadable_target_origin

        self._code_pointers_by_repo_name = {}
        self._recon_repos_by_name = {}
        self._loadable_repository_symbols = []

        if not loadable_target_origin:
            return

        loadable_targets = get_loadable_targets(
            loadable_target_origin.python_file,
            loadable_target_origin.module_name,
            loadable_target_origin.package_name,
            loadable_target_origin.working_directory,
            loadable_target_origin.attribute,
        )
        for loadable_target in loadable_targets:
            pointer = _get_code_pointer(loadable_target_origin, loadable_target)
            recon_repo = ReconstructableRepository(
                pointer,
                _get_current_image(),
                sys.executable,
                entry_point=entry_point,
            )
            repo_def = recon_repo.get_definition()
            # force load of all lazy constructed jobs/pipelines
            repo_def.get_all_pipelines()

            self._code_pointers_by_repo_name[repo_def.name] = pointer
            self._recon_repos_by_name[repo_def.name] = recon_repo
            self._loadable_repository_symbols.append(
                LoadableRepositorySymbol(
                    attribute=loadable_target.attribute,
                    repository_name=repo_def.name,
                )
            )