Package: django-pyscss
django-pyscssA collection of tools for making it easier to use pyScss within Django.NoteThis version only supports pyScss 1.3.4 and greater. For pyScss 1.2 support,
you can use the 1.x series of django-pyscss.Installationdjango-pyscss supports Django 1.4+, and Pythons 2 and 3.You may install django-pyscss off of PyPI:pip install django-pyscssWhy do we need this?This app smooths over a lot of things when dealing with pyScss in Django.  ItOverwrites the import system to use Django’s staticfiles app.  This way you
can import SCSS files from any app (or any file that’s findable by the
STATICFILES_FINDERS) with no hassle.Configures pyScss to work with the staticfiles app for its image functions
(e.g. inline-image and sprite-map).It provides a django-compressor precompile filter class so that you can
easily use pyScss with django-compressor without having to bust out to the
shell.  This has the added benefit of removing the need to configure pyScss
through its command-line arguments AND makes it possible for the exceptions
and warnings that pyScss emits to bubble up to your process so that you can
actually know what’s going on.Rendering SCSS manuallyYou can render SCSS manually from a string like this:fromdjango_pyscssimportDjangoScssCompilercompiler=DjangoScssCompiler()compiler.compile_string(".foo { color: green; }")You can render SCSS from a file like this:fromdjango_pyscssimportDjangoScssCompilercompiler=DjangoScssCompiler()compiler.compile('css/styles.scss')The file needs to be able to be located by staticfiles finders in order to be
used.TheDjangoScssCompilerclass is a subclass ofscss.Compilerthat
injects theDjangoExtension.DjangoExtensionis what overrides the
import mechanism.DjangoScssCompileralso turns on the CompassExtension by default, if you
wish to turn this off you do so:fromdjango_pyscssimportDjangoScssCompilerfromdjango_pyscss.extensions.djangoimportDjangoExtensioncompiler=DjangoScssCompiler(extensions=[DjangoExtension])For a list of options thatDjangoScssCompileraccepts, please see the
pyScssAPI documentation.Using in conjunction with django-compressordjango-pyscss comes with support for django-compressor.  All you have to do is
add it to yourCOMPRESS_PRECOMPILERSsetting. :COMPRESS_PRECOMPILERS=(# ...('text/x-scss','django_pyscss.compressor.DjangoScssFilter'),# ...)Then you can just use SCSS like you would use CSS normally. :{%compresscss%}<linkrel="stylesheet"type="text/x-scss"href="{%static'css/styles.css'%}">{%endcompress%}If you wish to provide your own compiler instance (for example if you wanted to
change some settings on theDjangoScssCompiler), you can subclassDjangoScssFilter. :# myproject/scss_filter.pyfromdjango_pyscssimportDjangoScssCompilerfromdjango_pyscss.compressorimportDjangoScssFilterclassMyDjangoScssFilter(DjangoScssFilter):compiler=DjangoScssCompiler(# Example configurationoutput_style='compressed',)# settings.pyCOMPRESS_PRECOMPILERS=(# ...('text/x-scss','myproject.scss_filter.MyDjangoScssFilter'),# ...)Running the testsYou can run the tests by running.$ python setup.py testPlease note that this will collecstatic intotmp/static/automatically as
some of the tests require the staticfiles to have been collected.CHANGELOG2.0.3 (2023-08-30)Support for Django 4.2. Drop support for Python 2.2.0.2 (2015-04-29)Fixed bug with relative imports [#34, #35 r1chardj0n3s]2.0.1 (2015-04-23)Explicitly depend on pathlib, instead of assuming pyScss will require it. [#33]Fixed cases where DEBUG is False but collectstatic hasn’t been run (common in tests).2.0.0 (2015-04-22)Added support for pyScss 1.3 and Python 3.Dropped support for pyScss 1.2Upgrade pathIf you are just using the django-compressor integration, you don’t have to
upgrade anything.If you were using theDjangoScssclass directly, it has been replaced with
theDjangoScssCompilerclass. The API for compiling CSS has changed as
well, for example, to compile from a string, previously you would do it like
this:>>>fromdjango_pyscss.scssimportDjangoScss>>>compiler=DjangoScss()>>>compiler.compile(".foo { color: red; }")Now the interface is like this:>>>fromdjango_pyscssimportDjangoScssCompiler>>>compiler=DjangoScssCompiler()>>>compiler.compile_string(".foo { color: red; }")You read more about the new API on thepyScss API documentation.1.0.0 - 2014-02-11Released django-pyscss.