Server IP : 85.214.239.14 / Your IP : 3.147.6.122 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /srv/modoboa/env/lib64/python3.5/site-packages/webpack_loader/ |
Upload File : |
from importlib import import_module from django.conf import settings from .config import load_config _loaders = {} def import_string(dotted_path): ''' This is a rough copy of django's import_string, which wasn't introduced until Django 1.7 Once this package's support for Django 1.6 has been removed, this can be safely replaced with `from django.utils.module_loading import import_string` ''' try: module_path, class_name = dotted_path.rsplit('.', 1) module = import_module(module_path) return getattr(module, class_name) except (ValueError, AttributeError, ImportError): raise ImportError('%s doesn\'t look like a valid module path' % dotted_path) def get_loader(config_name): if config_name not in _loaders: config = load_config(config_name) loader_class = import_string(config['LOADER_CLASS']) _loaders[config_name] = loader_class(config_name, config) return _loaders[config_name] def _filter_by_extension(bundle, extension): '''Return only files with the given extension''' for chunk in bundle: if chunk['name'].endswith('.{0}'.format(extension)): yield chunk def _get_bundle(bundle_name, extension, config): bundle = get_loader(config).get_bundle(bundle_name) if extension: bundle = _filter_by_extension(bundle, extension) return bundle def get_files(bundle_name, extension=None, config='DEFAULT'): '''Returns list of chunks from named bundle''' return list(_get_bundle(bundle_name, extension, config)) def get_as_tags(bundle_name, extension=None, config='DEFAULT', attrs=''): ''' Get a list of formatted <script> & <link> tags for the assets in the named bundle. :param bundle_name: The name of the bundle :param extension: (optional) filter by extension, eg. 'js' or 'css' :param config: (optional) the name of the configuration :return: a list of formatted tags as strings ''' bundle = _get_bundle(bundle_name, extension, config) tags = [] for chunk in bundle: if chunk['name'].endswith(('.js', '.js.gz')): tags.append(( '<script type="text/javascript" src="{0}" {1}></script>' ).format(chunk['url'], attrs)) elif chunk['name'].endswith(('.css', '.css.gz')): tags.append(( '<link type="text/css" href="{0}" rel="stylesheet" {1}/>' ).format(chunk['url'], attrs)) return tags def get_static(asset_name, config='DEFAULT'): ''' Equivalent to Django's 'static' look up but for webpack assets. :param asset_name: the name of the asset :param config: (optional) the name of the configuration :return: path to webpack asset as a string ''' return "{0}{1}".format( get_loader(config).get_assets().get( 'publicPath', getattr(settings, 'STATIC_URL') ), asset_name )