def BuildLayer()

in ftl/python/layer_builder.py [0:0]


    def BuildLayer(self):
        cached_img = None
        if self._cache:
            with ftl_util.Timing('checking_cached_pipfile_pkg_layer'):
                key = self.GetCacheKey()
                cached_img = self._cache.Get(key)
                self._log_cache_result(False if cached_img is None else True)
        if cached_img:
            self.SetImage(cached_img)
        else:
            self._pip_download_wheels(' '.join(self._pkg_descriptor))
            whls = self._resolve_whls()
            if len(whls) != 1:
                raise Exception("expected one whl for one installed pkg")
            pkg_dir = self._whl_to_fslayer(whls[0])
            blob, u_blob = ftl_util.zip_dir_to_layer_sha(pkg_dir, "")
            overrides = ftl_util.generate_overrides(False)
            self._img = tar_to_dockerimage.FromFSImage([blob], [u_blob],
                                                       overrides)
            if self._cache:
                with ftl_util.Timing('uploading_pipfile_pkg_layer'):
                    self._cache.Set(self.GetCacheKey(), self.GetImage())