Package: webassets_compassconnector
Seamless integration with Compass for Python3 apps.For full blown experience you have to use webassets with patches fromhttps://github.com/miracle2k/webassets/pull/240andhttps://github.com/miracle2k/webassets/pull/241.
Especially if you’re using Python3.3. Alternatively you can install webassets fork fromhttps://github.com/glorpen/webassets(branchmymaster).Using unpatched version can result in bad dependency traacking (parent asset may not compile even if child has changed).What problems is it solving?adds load_path namespace for compass files - so you can do cross app imports or use assets from other packagesyou don’t need already installed assets - connector uses files for you packagesassets recompiling/updating when any of its dependencies are modified - be it another import, inlined font file or justwidth:image-width(@path/myimage.png);How to installfirstly you need to install ruby connector gem:geminstallcompass-connectorthen install filter:pipinstallwebassets_compassconnectorVirtual PathsThere are three kind of “paths”:app, starts with an@and may look like@public/images/asset.pngvendor: a relative path, should be used only by compass plugins (eg. zurb-foundation, blueprint)absolute path: starts with/,http://etc. and will NOT be changed by connectorSome examples:@import"@package/scss/settings";/* will resolve to eg. .../package/scss/_settings.scss */@import"foundation";/* will include foundation scss from your compass instalation */width:image-size("@package/public/images/my.png");background-image:image-url("@package/public/images/my.png");//willgenerateurlwithprefixesgivenbyWebassets@import"@package/sprites/*.png";//willimportspriteslocatedinpackage/sprites/(generatedurlwillbewithappliedWebassetprefixes)UsageStandalone example:fromwebassetsimportEnvironment,Bundlefromwebassets_cc.filterimportCompassConnectorFilterenv=Environment("/some/path/out",'/media-prefix')env.config["compass_bin"]="/path/to/compass/bin"env.config["vendor_path"]="vendor"#it is relative path prepended in vendor urls#if using zurb_foundation python packageenv.config["compass_imports"]=[pkg_resources.resource_filename("zurb_foundation","scss")]#if using zurb-foundation ruby packageenv.config["compass_plugins"]={"zurb-foundation":">4"}env.append_path("/some/path/assets","/")env.append_path("/some/path/vendors","/vendors")scss=Bundle('scss/my.scss',filters=CompassConnectorFilter,output='my.css')With Webassets, Pyramid and Jinja2:config=Configurator()config.include('pyramid_jinja2')config.add_settings({"webassets.base_dir":join(root_dir,"cache","assets"),"webassets.base_url":"/static"})config.include('pyramid_webassets')config.add_route('show','/')config.add_static_view(name='static',path=join(root_dir,"cache","assets"))scss=Bundle('package:resources/assets/app.scss',filters=CompassConnectorFilter,output='app.css')config.add_webasset('styles',scss)config.add_jinja2_extension('webassets.ext.jinja2.AssetsExtension')assets_env=config.get_webassets_env()assets_env.config["compass_bin"]="/home/user/.gem/ruby/1.9.1/bin/compass"assets_env.config["compass_plugins"]={"zurb-foundation":">4"}config.get_jinja2_environment().assets_environment=assets_env