code: def _buildStaticFiles(self):
          
          if not self.output_path_static:
              self.output_path_static = os.path.join(self.output_path, "static")
          # printDebug(self.output_path_static, "red")
          if not os.path.exists(self.output_path_static):
              os.makedirs(self.output_path_static)
          for x in self.static_files:
              source_f = os.path.join(self.static_root, x)
              dest_f = os.path.join(self.output_path_static, x)
              if os.path.isdir(source_f):
                  if os.path.exists(dest_f):
                      # delete first if exists, as copytree will throw an error otherwise
                      shutil.rmtree(dest_f)
                  shutil.copytree(source_f, dest_f)
              else:
                  shutil.copyfile(source_f, dest_f)
                  if x.endswith('.zip'):
                      printDebug("..unzipping")
                      zip_ref = zipfile.ZipFile(os.path.join(dest_f), 'r')
                      zip_ref.extractall(self.output_path_static)
                      zip_ref.close()
                      printDebug("..cleaning up")
                      os.remove(dest_f)
                      # http://superuser.com/questions/104500/what-is-macosx-folder
                      shutil.rmtree(
                          os.path.join(self.output_path_static, "__MACOSX"))
docs: move over static files so that relative imports work
          Note: if a dir is passed, it is copied with all of its contents
          If the file is a zip, it is copied and extracted too
          # By default folder name is 'static', unless *output_path_static* is passed (now allowed only in special applications like KompleteVizMultiModel)