def pack(self, package): if ( "output" not in package or "type" not in package or not package["output"] or not package["type"] or len(package["paths"]) == 0 ): return "" if package["type"] == "css": compressor = CSSCompressor(self.verbose) signal = css_compressed else: compressor = JSCompressor(self.verbose) signal = js_compressed if settings.COMPRESS_AUTO or self.force: need_update, version = self.versioning.need_update(package["output"], package["paths"]) if need_update or self.force: output_filename = self.versioning.output_filename( package["output"], self.versioning.version(package["paths"]) ) self.versioning.cleanup(package["output"]) if self.verbose or self.force: print "Version: %s" % version print "Saving: %s" % make_relative_path(output_filename) paths = self.compile(package["paths"]) content = compressor.compress(paths) if not self.save_file(output_filename, content): return "" signal.send(sender=self, package=package, version=version) else: filename_base, filename = os.path.split(package["output"]) version = self.versioning.version_from_file(filename_base, filename) return self.versioning.output_filename(package["output"], version)
def construct_asset_path(self, asset_path, css_path): if os.path.isabs(asset_path): return asset_path public_path = self.absolute_path(asset_path, css_path) return make_relative_path(public_path)
def individual_url(self, filename): return urlparse.urljoin(settings.COMPRESS_URL, make_relative_path(filename))