Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

Pipeline is an asset packaging library for Django.

Project description


Pipeline is an asset packaging library for Django, providing both CSS and JavaScript concatenation and compression, built-in JavaScript template support, and optional data-URI image and font embedding.


To install it, simply:

pip install django-pipeline


For documentation, usage, and examples, see :



  • Improve tests.
  • Escape url in template tags. Thanks to Joshua Kehn.
  • Allow to change javascript templates separator. Thanks to Axel Haustant.


  • Fix python3 compatibility. Thanks to Stephan Wienczny.
  • Various documentation improvements. Thanks to Chrish Clark, Michael Angeletti and Gokmen Gorgen.
  • Tests improvements. Thanks to Michał Górny.


  • Fix unicode handling in sub-process commands. Thanks to Caio Ariede.
  • MinifyHTMLMiddleware use PIPELINE_ENABLED. Thanks to Caio Ariede.
  • Add useful finders. Thanks to Danielle Madeley.


  • Fix prefix handling. Thanks to Brian Montgomery.
  • Recalculate Content-Length after minifying HTML. Thanks to Camilo Nova.
  • Improve compiler outdated detection. Thanks to Hannes Ljungberg.


  • Don’t hardcode SASS arguments. Thanks to Cal Leeming.
  • Fix tests packaging (again). Thanks to Andrew Grigorev.


  • Add minimal GAE support.
  • Make file globing deterministic. Thanks to Adam Charnock.
  • Fix tests packaging. Thanks to Mike Gilbert.


  • Fix Windows specific bug. Thanks to Tom Yam.


  • Add PIPELINE_ENABLED settings. Huge thanks to Carl Meyer.
  • Update compass compiler documentation. Thanks to Camilo Nova.


  • Fix regression in Compiler. Thanks to David Hughes.


  • Improve compiler API. Thanks to Remy Sanchez.
  • Improve documentation on cache busting via staticfiles. Thanks to Rami Chowdhury.
  • Fix url() bug for url with querystring and hash in them. Thanks to Miroslav Shubernetskiy.
  • Add third party compilers in documentation. Thanks to Jared Scott.
  • Fix extension compatibility with both jinja2 and coffin. Thanks to Mark Sandstrom.
  • Add Livescript compiler. Thanks to Arnar Yngvason.


  • Don’t require Django in Thanks to Jannis Leidel.
  • A lot of documentation improvements. Thanks to Jared Scott and Christopher Dilorenzo.


  • Make our threaded code compatible with python 3.


  • Run compilers in threads, should improve performance in DEBUG mode.


  • Fix false errors on subprocess. Thanks to Fabian Büchler.
  • Don’t run MinifyHTMLMiddleware when DEBUG is True. Thanks to Venelin Stoykov.


  • Fix subprocess calls.


  • Jinja2 support is back.
  • Many small improvements in documentation.


  • Improve exceptions hierarchy.
  • Improve our sub-process calls.
  • Update uglify-js documentation. Thanks to Andrey Antukh.


  • Add support Python 3, with some help from Alan Lu.
  • Add support for Django 1.5.
  • Remove support for Django < 1.4.
  • Drop support for Python < 2.6.
  • Drop support for staticfiles app, in favor of django.contrib.staticfiles.
  • Drop PIPELINE settings, in favor of DEBUG to avoid confusion.
  • Drop support for jinja2 temporarily.


  • Fix yui/yuglify settings overriding each other. Thanks to Fábio Santos.


  • Separate yuglify compressor from YUI compressor.
  • Improve HTML compression middleware.


  • Better compressor error messages. Thanks to Steven Cummings.
  • Improve installation documentation. Thanks to Steven Cummings.
  • Fix packaging metadata. Thanks to Rui Coelho for noticing it.
  • Add documentation about non-packing storage.


  • Run stylus even if file is considered outdated.


  • Ensure yui-compressor can still use YUICompressor.


  • BACKWARD INCOMPATIBLE : Replace python cssmin compressor to run the command (works for python or node implementation)


  • BACKWARD INCOMPATIBLE : Replace yui-compressor by yuglify, check your configuration.
  • Use finders in manifest. Thanks to Sjoerd Arendsen.


  • Fully tested windows compatibility. Thanks to Idan Zalzberg.


  • Fix manifesto module. Thanks to Zenobius Jiricek.
  • Ensure coffee-script compiler don’t try to overwrite file. Thanks to Teo Klestrup Röijezon.


  • Ensure asset url are build with posixpath.
  • Deal with storage prefix properly.


  • Jinja2 support, thanks to Christopher Reeves.
  • Add read/save_file method to CompilerBase.


  • Fix unicode bug in compressor. Thanks to Victor Shnayder.
  • Fix outdated detection bug. Thanks to Victor Shnayder and Erwan Ameil.
  • Add slimit compressor. Thanks to Brant Young.


  • Fix IO error when creating new compiled file. Thanks to Melvin Laplanche.


  • Add a small contribution guide
  • Add mimetype settings for sass and scss
  • Change compiler interface to let compiler determine if file is outdated


  • Use /usr/bin/env by default to find compiler executable. Thanks to Michael Weibel.
  • Allow to change embed settings : max size and directory. Thanks to Pierre Drescher.
  • Some documentation improvements. Thanks to Florent Messa.


  • Don’t compile non-outdated files.
  • Add non-packing storage.


  • Fix bugs in our glob implementation.


  • Many documentation improvements. Thanks to Alexis Svinartchouk.
  • Improve python packaging.
  • Don’t write silently to STATIC_ROOT when we shouldn’t.
  • Accept new .sass extension in SASSCompiler. Thanks to Jonas Geiregat for the report.


  • New lines in templates are now escaper rather than deleted. Thanks to Trey Smith for the report and the patch.
  • Improve how we find where to write compiled file. Thanks to sirex for the patch.


  • Fix import error for cssmin and jsmin compressors. Thanks to Berker Peksag for the report.
  • Fix error with default template function. Thanks to David Charbonnier for the patch and report.


  • Fix encoding problem.
  • Improve storage documentation
  • Add mention of the IRC channel #django-pipeline in documentation


  • Fix javascript mime type bug. Thanks to Chase Seibert for the report.

  • License clarification. Thanks to Dmitry Nezhevenko for the report.


  • Allow to disable javascript closure wrapper with PIPELINE_DISABLE_WRAPPER.
  • Various improvements to documentation.
  • Slightly improve how we find where to write compiled file.
  • Simplify module hierarchy.
  • Allow templatetag to output mimetype to be able to use less.js and other javascript compilers.


  • Fixing a bug in FinderStorage when using prefix in staticfiles. Thanks to Christian Hammond for the report and testing.
  • Make PIPELINE_ROOT defaults more sane. Thanks to Konstantinos Pachnis for the report.


  • Dropped synccompress command in favor of staticfiles collecstatic command.
  • Added file versionning via staticfiles CachedStaticFilesStorage.
  • Added a default js template language.
  • Dropped PIPELINE_AUTO settings in favor of simple PIPELINE.
  • Renamed absolute_asset_paths to absolute_paths for brevity.
  • Made packages lazy to avoid doing unnecessary I/O.
  • Dropped external_urls support for now.
  • Add cssmin compressor. Thanks to Steven Cummings.
  • Jsmin is no more bundle with pipeline.

Project details

Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for django-pipeline, version 1.3.17
Filename, size File type Python version Upload date Hashes
Filename, size django_pipeline-1.3.17-py2.py3-none-any.whl (32.3 kB) File type Wheel Python version 2.7 Upload date Hashes View
Filename, size django-pipeline-1.3.17.tar.gz (43.5 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page