def register_assets(settings): """ Initialize webassets environment and its bundles. Arguments: settings (conf.model.SettingsModel): Settings registry instance. Returns: webassets.Environment: New configured Webasset environment. """ logger = logging.getLogger('optimus') if not settings.ENABLED_BUNDLES: logger.warning(("Asset registering skipped as there are no enabled " "bundle")) return None logger.info("Starting asset registering") # Assets bundles AVAILABLE_BUNDLES = getattr(settings, 'BUNDLES', {}) # Initialize webassets environment assets_env = AssetsEnvironment() assets_env.debug = settings.DEBUG assets_env.url = settings.STATIC_URL assets_env.directory = settings.STATIC_DIR assets_env.load_path = [settings.SOURCES_DIR] assets_env.cache = settings.WEBASSETS_CACHE assets_env.url_expire = settings.WEBASSETS_URLEXPIRE # assets_env.optimus_registry = AssetRegistry() # Register enabled assets bundles for bundle_name in settings.ENABLED_BUNDLES: logger.debug("Registering bundle: {}".format(bundle_name)) assets_env.register(bundle_name, AVAILABLE_BUNDLES[bundle_name]) assets_env.optimus_registry.add_bundle(bundle_name, AVAILABLE_BUNDLES[bundle_name]) # When after bundle has been registered we can resolve it for bundle_name in settings.ENABLED_BUNDLES: logger.info(" Processing: {}".format( assets_env[bundle_name].resolve_output() )) # Avoid to loop on every bundle part if we are not in debug logger if logger.getEffectiveLevel() == logging.DEBUG: for url in assets_env[bundle_name].urls(): logger.debug(" - {}".format(url)) return assets_env
def compressFile(f, webFilters): filePath = os.path.join(webFolder, f) baseName = os.path.basename(filePath) prefix = f[0:len(f) - len(baseName)] fn = os.path.splitext(baseName) newFileName = fn[0] + '.%(version)s' + fn[1] env = Environment("") env.auto_build = False env.url_expire = True tmpFile = os.path.join(tempFolder, newFileName) env.url_mapping = {tempFolder: ''} bundle = Bundle(filePath, filters=webFilters, output=tmpFile) env.add(bundle) bundle.build() vfn = bundle.urls()[0][1:] if (vfn.index("?") > 0): vfn = vfn[0:vfn.index("?")] #print(prefix, vfn) zf.write(os.path.join(tempFolder, vfn), prefix + vfn) return prefix + vfn