Provided by: python3-libsass_0.21.0-1_amd64 bug

NAME

       libsass - libsass Documentation

       This  package  provides  a  simple  Python  extension module sass which is binding LibSass
       (written in C/C++ by Hampton Catlin and Aaron Leung).  It's very straightforward and there
       isn't  any  headache  related Python distribution/deployment.  That means you can add just
       libsass into your setup.py's install_requires list or requirements.txt file.

       It currently supports CPython 2.6, 2.7, 3.5--3.7, and PyPy 2.3+!

FEATURES

       • You don't need any Ruby/Node.js stack at all, for development or deployment either.

       • Fast. (LibSass is written in C++.)

       • Simple API.  See example code for details.

       • Custom functions.

       • @import callbacks.

       • Support both tabbed (Sass) and braces (SCSS) syntax.

       • WSGI middleware for ease of development.  It automatically compiles Sass/SCSS files  for
         each request.  See also sassutils.wsgi for details.

       • setuptools/distutils  integration.   You  can  build  all Sass/SCSS files using setup.py
         build_sass command.  See also sassutils.distutils for details.

       • Works also on PyPy.

       • Provides prebuilt wheel (PEP 427) binaries for Windows and Mac.

INSTALL

       It's available on PyPI, so you can install it using pip:

          $ pip install libsass

       NOTE:
          libsass requires some features introduced by the recent C++ standard.  You need  a  C++
          compiler that support those features.  See also libsass project's README file.

EXAMPLES

   Compile a String of Sass to CSS
       >>> import sass
       >>> sass.compile(string='a { b { color: blue; } }')
       'a b {\n  color: blue; }\n'

   Compile a Directory of Sass Files to CSS
       >>> import sass
       >>> import os
       >>> os.mkdir('css')
       >>> os.mkdir('sass')
       >>> scss = """\
       ... $theme_color: #cc0000;
       ... body {
       ...     background-color: $theme_color;
       ... }
       ... """
       >>> with open('sass/example.scss', 'w') as example_scss:
       ...      example_scss.write(scss)
       ...
       >>> sass.compile(dirname=('sass', 'css'), output_style='compressed')
       >>> with open('css/example.css') as example_css:
       ...     print(example_css.read())
       ...
       body{background-color:#c00}

USER'S GUIDE

   Using with Flask
       This  guide  explains  how to use libsass with the Flask web framework.  sassutils package
       provides several tools that can be integrated into web applications written in Flask.

   ContentsUsing with FlaskDirectory layoutDefining manifestBuilding Sass/SCSS for each requestBuilding Sass/SCSS for each deployment

   Directory layout
       Imagine the project contained in such directory layout:

       • setup.pymyapp/__init__.pystatic/sass/css/templates/

       Sass/SCSS files will go inside myapp/static/sass/ directory.  Compiled CSS files  will  go
       inside   myapp/static/css/   directory.    CSS   files   can   be   regenerated,   so  add
       myapp/static/css/ into your ignore list like .gitignore or .hgignore.

   Defining manifest
       The sassutils defines a concept  named  manifest.   Manifest  is  the  build  settings  of
       Sass/SCSS.  It specifies some paths related to building Sass/SCSS:

       • The path of the directory which contains Sass/SCSS source files.

       • The path of the directory which the compiled CSS files will go.

       • The  path,  exposed  to  HTTP  (through  WSGI),  of  the directory that will contain the
         compiled CSS files.

       Every package may have its own manifest.  Paths have to be relative to  the  path  of  the
       package.

       For  example, in the above project, the package name is myapp.  The path of the package is
       myapp/.  The path of the Sass/SCSS directory is  static/sass/  (relative  to  the  package
       directory).   The  path  of  the  CSS  directory  is  static/css/.   The  exposed  path is
       /static/css.

       These settings can be represented as the following manifests:

          {
              'myapp': ('static/sass', 'static/css', '/static/css')
          }

       As you can see the above, the set of manifests are represented in dictionary, in which the
       keys are packages names and the values are tuples of paths.

   Building Sass/SCSS for each request
       SEE ALSO:

          Flask --- Hooking in WSGI Middlewares
                 The section which explains how to integrate WSGI middlewares to Flask.

          Flask --- flask:app-dispatch
                 The documentation which explains how Flask dispatches each request internally.

       In  development,  manually  building  Sass/SCSS  files  for each change is a tedious task.
       SassMiddleware  makes  the  web  application  build  Sass/SCSS  files  for  each   request
       automatically.   It's  a WSGI middleware, so it can be plugged into the web app written in
       Flask.

       SassMiddleware takes two required parameters:

       • The WSGI-compliant callable object.

       • The set of manifests represented as a dictionary.

       So:

          from flask import Flask
          from sassutils.wsgi import SassMiddleware

          app = Flask(__name__)

          app.wsgi_app = SassMiddleware(app.wsgi_app, {
              'myapp': ('static/sass', 'static/css', '/static/css')
          })

       And then, if you want to link a compiled CSS file, use the url_for() function:

          <link href="{{ url_for('static', filename='css/style.scss.css') }}"
                rel="stylesheet" type="text/css">

       NOTE:
          The linked filename is style.scss.css, not just  style.scss.   All  compiled  filenames
          have trailing .css suffix.

   Building Sass/SCSS for each deployment
       NOTE:
          This section assumes that you use setuptools for deployment.

       SEE ALSO:

          Flask --- flask:distribute-deployment
                 How to deploy Flask application using setuptools.

       If  libsass is installed in the site-packages (for example, your virtualenv), the setup.py
       script also gets a new command provided by libsass: build_sass.  The command is  aware  of
       the  sass_manifests  option  of setup.py and builds all Sass/SCSS sources according to the
       manifests.

       Add these arguments to setup.py script:

          setup(
              # ...,
              setup_requires=['libsass >= 0.6.0'],
              sass_manifests={
                  'myapp': ('static/sass', 'static/css', '/static/css')
              }
          )

       The setup_requires option makes sure that  libsass  is  installed  in  site-packages  (for
       example,  your virtualenv) before the setup.py script.  That means if you run the setup.py
       script and libsass isn't installed in  advance,  it  will  automatically  install  libsass
       first.

       The sass_manifests specifies the manifests for libsass.

       Now  setup.py  build_sass  will  compile  all  Sass/SCSS  files  in the specified path and
       generates compiled CSS files inside the specified path (according to the manifests).

       If you use it with sdist or bdist commands, the  packed  archive  will  also  contain  the
       compiled CSS files!

          $ python setup.py build_sass sdist

       You  can add aliases to make these commands always run the build_sass command first.  Make
       setup.cfg config:

          [aliases]
          sdist = build_sass sdist
          bdist = build_sass bdist

       Now it automatically builds Sass/SCSS sources and include the compiled CSS  files  to  the
       package archive when you run setup.py sdist.

   Changelog
   Version 0.21.1
       Released on May 20, 2021.

       • Fix build on OpenBSD. [#310 by Denis Fondras].

       • Produce abi3 wheels on windows. [#322 by Anthony Sottile]

       • Make the manpage build reproducible. [#319 by Chris Lamb]

       • Follow  up the libsass upstream: 3.6.5 --- See the release notes of LibSass 3.6.5. [#344
         by Anthony Sottile]

   Version 0.20.1
       Released on August 27, 2020.

       • (no changes, re-releasing to test build automation)

   Version 0.20.0
       Released on May 1, 2020.

       • Produce abi3 wheels on macos / linux [#307 by Anthony Sottile]

       • Follow up the libsass upstream: 3.6.4 --- See the release notes of LibSass 3.6.4.  [#313
         by Anthony Sottile]

   Version 0.19.4
       Released on November 3, 2019.

       • Follow  up the libsass upstream: 3.6.3 --- See the release notes of LibSass 3.6.3. [#304
         by Anthony Sottile]

   Version 0.19.3
       Released on October 5, 2019.

       • Follow up the libsass upstream: 3.6.2 --- See the release notes of LibSass 3.6.2.  [#302
         by Anthony Sottile]

   Version 0.19.2
       Released on June 16, 2019.

       • Follow  up the libsass upstream: 3.6.1 --- See the release notes of LibSass 3.6.1. [#298
         by Anthony Sottile]

   Version 0.19.1
       Released on May 18, 2019.

       • Re-release of 0.19.0 with windows python2.7 wheels [#297 by Anthony Sottile]

   Version 0.19.0
       Released on May 18, 2019.

       • Follow up the libsass upstream: 3.6.0 --- See the release notes of LibSass 3.6.0.  [#295
         by Anthony Sottile]

   Version 0.18.0
       Release on March 13, 2019

       • Add  support  for  previous  import  path  to  importer  callbacks [#287 #291 by Frankie
         Dintino]

   Version 0.17.0
       Release on January 03, 2019

       •

         Add several new cli options [#279 #268 by Frankie Dintino]--sourcemap-file: output file for source map

                • --sourcemap-contents: embed sourcesContent in source map

                • --sourcemap-embed: embed sourceMappingURL as data uri

                • --omit-sourcemap-url: omit source map url comment from output

                • --sourcemap-root: base path, emitted as sourceRoot in source map

       • Fix .sass in WsgiMiddleware (again) [#280 by Anthony Sottile]

   Version 0.16.1
       Released on November 25, 2018.

       • Fix compilation on macos mojave [#276 #277 by Anthony Sottile]

       • Fix .sass in WsgiMiddleware for strip_extension=True [#278 by Anthony Sottile]

   Version 0.16.0
       Released on November 13, 2018.

       • Use -lc++ link flag when compiling with clang [#270 by Christian Thieme #271 by  Anthony
         Sottile]

       • Honor strip_extension in SassMiddleware [#274 by Anthony Sottile]

       • Follow  up the libsass upstream: 3.5.5 --- See the release notes of LibSass 3.5.5. [#275
         by Anthony Sottile]

   Version 0.15.1
       Released on September 24, 2018.

       • Fix setup.py sdist (regressed in 0.15.0) [#267 by Anthony Sottile]

   Version 0.15.0
       Released on September 16, 2018.

       • Fix invalid escape sequences [#249 by Anthony Sottile]

       • Add code of conduct [#251 by Nick Schonning]

       • Add support for python3.7 and remove testing for python3.4 [#254 by Anthony Sottile]

       • Add strip_extension option for wsgi / distutils builder [#55  #258  by  Anthony  Sottile
         #260 by Morten Brekkevold]

       • Deprecate sassc (replaced by pysassc).  [#262 by Anthony Sottile]

       • Import  abc  classes from collections.abc to remove DeprecationWarning [#264 by Gary van
         der Merwe #265 by Anthony Sottile]

   Version 0.14.5
       Released on April 25, 2018.

       • Follow up the libsass upstream: 3.5.4 --- See the release notes of LibSass 3.5.4.  [#247
         by Anthony Sottile]

   Version 0.14.4
       Released on April 24, 2018.

       • Add  ability  to  specify  imports for custom extensions.  This provides a way to enable
         imports of .css files (which was removed in 3.5.3).  Specify --import-extensions .css to
         restore the previous behavior.  [#246 by Samuel Colvin]

   Version 0.14.3
       Released on April 23, 2018.

       • Follow  up the libsass upstream: 3.5.3 --- See the release notes of LibSass 3.5.3. [#244
         by Anthony Sottile]

   Version 0.14.2
       Released on March 16, 2018.

       • Follow up the libsass upstream: 3.5.2 --- See the release notes of LibSass 3.5.2.  [#243
         by Anthony Sottile]

   Version 0.14.1
       Released on March 12, 2018.

       • Follow  up the libsass upstream: 3.5.1 --- See the release notes of LibSass 3.5.1. [#242
         by Anthony Sottile]

   Version 0.14.0
       Released on March 6, 2018.

       • Follow up the libsass upstream: 3.5.0 --- See the release notes of LibSass 3.5.0.  [#241
         by Anthony Sottile]

       • SassList  type gained an additional option bracketed=False to match the upstream changes
         to the sass_list type. [#184 by Anthony Sottile]

   Version 0.13.7
       Released on February 5, 2018.

       • Follow up the libsass upstream: 3.4.9 --- See the release notes of LibSass 3.4.9.  [#232
         by Anthony Sottile]

   Version 0.13.6
       Released on January 19, 2018.

       • libsass-python has moved to the sass organization!

   Version 0.13.5
       Released on January 11, 2018.

       • Follow  up the libsass upstream: 3.4.8 --- See the release notes of LibSass 3.4.8. [#228
         by Anthony Sottile]

   Version 0.13.4
       Released on November 14, 2017.

       • Follow up the libsass upstream: 3.4.7 --- See the release notes of LibSass 3.4.7.  [#226
         by Anthony Sottile]

   Version 0.13.3
       Released on October 11, 2017.

       • Sort input files for determinism [#212 by Bernhard M. Wiedemann]

       • Include LICENSE file in distributions [#216 by Dougal J. Sutherland]

       • Add a pysassc entry to replace sassc [#218 by Anthony Sottile]

       • Enable building with dynamic linking [#219 by Marcel Plch]

       • Follow  up the libsass upstream: 3.4.6 --- See the release notes of LibSass 3.4.6. [#221
         by Anthony Sottile]

   Version 0.13.2
       Released on June 14, 2017.

       • Always add cwd to import paths [#208 by Anthony Sottile]

   Version 0.13.1
       Released on June 8, 2017.

       • Follow up the libsass upstream: 3.4.5 --- See the release notes of LibSass 3.4.5.  [#207
         by Anthony Sottile]

   Version 0.13.0
       Released on June 7, 2017.

       • Use getfullargspec when available in python 3. [#188 by Thom Wiggers]

       • Use sass_copy_c_string instead of strdup for portability [#196 by Anthony Sottile]

       • Use -std=gnu++0x to fix installation under cygwin [#195 #197 by Anthony Sottile]

       • Correct source map url [#201 #202 by Anthony Sottile]

       • Remove --watch [#203 by Anthony Sottile]

       • Follow  up the libsass upstream: 3.4.4 --- See the release notes of LibSass 3.4.4. [#205
         by Anthony Sottile]

   Version 0.12.3
       Released on January 7, 2017.

       • Follow up the libsass upstream: 3.4.3 --- See the release notes of LibSass 3.4.3.  [#178
         by Anthony Sottile]

   Version 0.12.2
       Released on January 5, 2017.

       • Follow  up the libsass upstream: 3.4.2 --- See the release notes of LibSass 3.4.2. [#176
         by Anthony Sottile]

   Version 0.12.1
       Released on December 20, 2016.

       • Follow up the libsass upstream: 3.4.1 --- See the release notes of LibSass 3.4.1.  [#175
         by Anthony Sottile]

   Version 0.12.0
       Released on December 10, 2016.

       • Follow  up the libsass upstream: 3.4.0 --- See the release notes of LibSass 3.4.0. [#173
         by Anthony Sottile]

   Version 0.11.2
       Released on October 24, 2016.

       • Drop support for python2.6 [#158 by Anthony Sottile]

       • Deprecate --watch [#156 by Anthony Sottile]

       • Preserve line endings [#160 by Anthony Sottile]

       • Follow up the libsass upstream: 3.3.6 --- See the release notes of LibSass 3.3.6.  [#167
         by Anthony Sottile]

   Version 0.11.1
       Released on April 22, 2016.

       • Follow  up the libsass upstream: 3.3.5 --- See the release notes of LibSass 3.3.5. [#148
         by Anthony Sottile]

   Version 0.11.0
       Released on March 23, 2016.

       • Follow up the libsass upstream: 3.3.4 --- See the release notes of LibSass 3.3.4.  [#144
         by Anthony Sottile]

       • Expose  libsass  version  in sassc --version and sass.libsass_version [#142 #141 #140 by
         Anthony Sottile]

       • Fix warning about unused enum on switch [#127 #131 by Anthony Sottile]

       • Sourcemaps no longer imply source comments [#124 #130 by Tim Tisdall]

       • Add --source-comments option to sassc [#124 #130 by Anthony Sottile]

       • Improve formatting of CompileError under python3 [#123 by Anthony Sottile]

       • Raise when compiling a directory which does not exist [#116 #119 by Anthony Sottile]

   Version 0.10.1
       Released on January 29, 2016.

       • Follow up the libsass upstream: 3.3.3 --- See the release notes of  LibSass  3.3.3.  [by
         Anthony Sottile]

       • Allow -t for style like sassc [#98 by Anthony Sottile]

   Version 0.10.0
       Released on December 15, 2015.

       • Support custom import callbacks [#81 by Alice Zoë Bevan–McGregor, Anthony Sottile]

       • Disallow arbitrary kwargs in compile() [#109 by Anthony Sottile]

   Version 0.9.3
       Released on December 03, 2015.

       • Support "indented" Sass compilation [#41 by Alice Zoë Bevan–McGregor]

       • Fix wheels on windows [#28 #49 by Anthony Sottile]

   Version 0.9.2
       Released on November 12, 2015.

       • Follow  up  the  libsass upstream: 3.3.2 --- See the release notes of LibSass 3.3.2. [by
         Anthony Sottile]

       • Require VS 2015 to build on windows [#99 by Anthony Sottile]

   Version 0.9.1
       Released on October 29, 2015.

       • Follow up the libsass upstream: 3.3.1 --- See the release notes of  LibSass  3.3.1.  [by
         Anthony Sottile]

   Version 0.9.0
       Released on October 28, 2015.

       • Fix a bug with writing UTF-8 to a file [#72 by Caleb Ely]

       • Fix a segmentation fault on ^C [#87 by Anthony Sottile]

       • Follow  up  the libsass upstream: 3.3.0 --- See the release notes of LibSass 3.3.0. [#96
         by Anthony Sottile]

   Version 0.8.3
       Released on August 2, 2015.

       • Follow up the libsass upstream: 3.2.5 --- See the release notes of LibSass 3.2.5.  [#79,
         #80 by Anthony Sottile]

       • Fixed a bug that *.sass files were ignored.  [#78 by Guilhem MAS-PAITRAULT]

   Version 0.8.2
       Released on May 19, 2015.

       • Follow  up  the  libsass upstream: 3.2.4 --- See the release notes of LibSass 3.2.3, and
         3.2.4.  [#69 by Anthony Sottile]

       • The default value of SassMiddleware's  error_status  parameter  was  changed  from  '500
         Internal  Server Error' to '200 OK' so that Mozilla Firefox can render the error message
         well.  [#67, #68, #70 by zxv]

   Version 0.8.1
       Released on May 14, 2015.

       • Fixed a bug that there was no 'expanded' in sass.OUTPUT_STYLES  but  'expected'  instead
         which is a typo.  [#66 by Triangle717]

       • Fixed broken FreeBSD build.  [#65 by Toshiharu Moriyama]

   Version 0.8.0
       Released on May 3, 2015.

       • Follow up the libsass upstream: 3.2.2 --- See the release notes of LibSass 3.2.0, 3.2.1,
         and 3.2.2.  [#61, #52, #56, #58, #62, #64 by Anthony Sottile]

         • Compact and expanded output styles  [#37]

         • Strings and interpolation closer to Ruby Sass

         • The correctness of the generated sourcemap files

         • Directive buddling

         • Full support for the @at-root directive

         • Full support for !global variable scoping

       • Now underscored files are ignored when compiling a directory.  [#57 by Anthony Sottile]

       • Fixed broken FreeBSD build.  [#34, #60 by Ilya Baryshev]

       • SassMiddleware  became  to  log  syntax  errors   if   exist   during   compilation   to
         sassutils.wsgi.SassMiddleware logger with level ERROR.  [#42]

   Version 0.7.0
       Released on March 6, 2015.

       Anthony Sottile contributed to the most of this release.  Huge thanks to him!

       • Follow up the libsass upstream: 3.1.0 --- See the release note of LibSass.  [#38, #43 by
         Anthony Sottile]

         • Custom functions and imports

         • Decrementing in @for loops

         • @debug and @errornot operator

         • nth() for maps

         • inspect()feature-exists()unique-id()random()

       • Added custom functions support.  [#13, #44 by Anthony Sottile]

         • Added sass.SassFunction class.

         • Added custom_functions parameter to sass.compile() function.

         • Added data types for custom functions:

           • sass.SassNumbersass.SassColorsass.SassListsass.SassMapsass.SassErrorsass.SassWarning

       • Added precision parameter to sass.compile() function.  [#39 by Andrea Stagi]

       • sassc has a new -p/--precision option.  [#39 by Andrea Stagi]

   Version 0.6.2
       Released on November 25, 2014.

       Although 0.6.0--0.6.1 have needed GCC (G++) 4.8+, LLVM Clang 3.3+, now it became  back  to
       only need GCC (G++) 4.6+, LLVM Clang 2.9+, or Visual Studio 2013 Update 4+.

       • Follow  up  the  libsass  upstream:  3.0.2 --- See the release note of libsass.  [#33 by
         Rodolphe Pelloux-Prayer]

       • Fixed a bug that sassc --watch crashed when a file is not compilable on the  first  try.
         [#32 by Alan Justino da Silva]

       • Fixed broken build on Windows.

   Version 0.6.1
       Released on November 6, 2014.

       • Follow up the libsass upstream: 3.0.1 --- See the release note of LibSass.

       • Fixed  a  bug  that  SassMiddleware  never  closes  the socket on some WSGI servers e.g.
         eventlet.wsgi.

   Version 0.6.0
       Released on October 27, 2014.

       Note that since libsass-python 0.6.0 (and libsass  3.0)  it  requires  C++11  to  compile.
       Although  0.6.2  became  back  to only need GCC (G++) 4.6+, LLVM Clang 2.9+, from 0.6.0 to
       0.6.1 you need GCC (G++) 4.8+, LLVM Clang 3.3+, or Visual Studio 2013 Update 4+.

       • Follow up the libsass upstream: 3.0 --- See the release note of LibSass.

         • Decent extends support

         • Basic Sass Maps Support

         • Better UTF-8 Support

         • call() function

         • Better Windows Support

         • Spec Enhancements

       • Added missing partial import support.  [#27 by item4]

       • SOURCE_COMMENTS became deprecated.

       • sass.compile()'s parameter source_comments now  can  take  only  bool  instead  of  str.
         String  values  like  'none',  'line_numbers',  and 'map' become deprecated, and will be
         obsolete soon.

       • build_directory() function has a new optional parameter output_style.

       • build() method has a new optional parameter output_style.

       • Added --output-style/-s option to build_sass command.  [#25]

   Version 0.5.1
       Released on September 23, 2014.

       • Fixed a bug that SassMiddleware yielded str instead of bytes on Python 3.

       • Fixed several Unicode-related bugs on Windows.

       • Fixed a bug that build_directory(), SassMiddleware,  and  build_sass  don't  recursively
         build subdirectories.

   Version 0.5.0
       Released on June 6, 2014.

       • Follow up the libsass upstream: 2.0 --- See the release note of LibSass.

         • Added indented syntax support (*.sass files).

         • Added expanded selector support (BEM).

         • Added string functions.

         • Fixed UTF-8 support.

         • Backward incompatibility: broken extends.

   Unstable version 0.4.2.20140529.cd3ee1cbe3
       Released on May 29, 2014.

       • Version scheme changed to use periods (.) instead of hyphens (-) due to setuptools seems
         to treat hyphens special.

       • Fixed malformed packaging that doesn't correctly preserve the package name and version.

   Unstable Version 0.4.2-20140528-cd3ee1cbe3
       Released on May 28, 2014.

       • Follow up the libsass upstream: cd3ee1cbe34d5316eb762a43127a3de9575454ee.

   Version 0.4.2
       Released on May 22, 2014.

       • Fixed build failing on Mac OS X 10.8 or earlier.  [#19]

       • Fixed UnicodeEncodeError that Manifest.build_one() method rises when  the  input  source
         contains any non-ASCII Unicode characters.

   Version 0.4.1
       Released on May 20, 2014.

       • Fixed  UnicodeEncodeError that rise when the input source contains any non-ASCII Unicode
         characters.

   Version 0.4.0
       Released on May 6, 2014.

       • sassc has a new -w/--watch option.

       • Expose source maps support:

         • sassc has a new -m/-g/--sourcemap option.

         • SassMiddleware now also creates source map  files  with  filenames  followed  by  .map
           suffix.

         • Manifest.build_one()  method  has  a new source_map option.  This option builds also a
           source map file with the filename followed by .map suffix.

         • sass.compile() has a new  optional  parameter  source_comments.   It  can  be  one  of
           sass.SOURCE_COMMENTS  keys.   It also has a new parameter source_map_filename which is
           required only when source_comments='map'.

       • Fixed Python 3 incompatibility of sassc program.

       • Fixed a bug that multiple include_paths doesn't work on Windows.

   Version 0.3.0
       Released on February 21, 2014.

       • Added support for Python 3.3.  [#7]

       • Dropped support for Python 2.5.

       • Fixed build failing on Mac OS X.  [#4, #5, #6 by Hyungoo Kang]

       • Now the builder creates target subdirectories recursively even if they don't exist  yet,
         rather than silently failing.  [#8, #9 by Philipp Volguine]

       • Merged recent changes from libsass 1.0.1: 57a2f62--v1.0.1.

         • Supports variable arguments.

         • Supports sourcemaps.

   Version 0.2.4
       Released on December 4, 2012.

       • Added sassc CLI executable script.

       • Added sass.OUTPUT_STYLES constant map.

       • Merged recent changes from libsass upstream: e997102--a84b181.

   Version 0.2.3
       Released on October 24, 2012.

       • sassutils.distutils: Prevent double monkey patch of sdist.

       • Merged upstream changes of libsass.

   Version 0.2.2
       Released on September 28, 2012.

       • Fixed a link error on PyPy and Linux.

       • Fixed build errors on Windows.

   Version 0.2.1
       Released on September 12, 2012.

       • Support Windows.

   Version 0.2.0
       Released on August 24, 2012.

       • Added new sassutils package.

         • Added sassutils.builder module to build the whole directory at a time.

         • Added sassutils.distutils module for distutils and setuptools integration.

         • Added sassutils.wsgi module which provides a development-purpose WSGI middleware.

       • Added build_sass command for distutils/setuptools.

   Version 0.1.1
       Released on August 18, 2012.

       • Fixed  segmentation  fault  for  reading filename which does not exist.  Now it raises a
         proper exceptions.IOError exception.

   Version 0.1.0
       Released on August 17, 2012.  Initial version.

REFERENCES

   pysassc --- SassC compliant command line interface
       This provides SassC compliant CLI executable named pysassc:

          $ pysassc
          Usage: pysassc [options] SCSS_FILE [CSS_FILE]

       There are options as well:

       -t <style>, --style <style>
              Coding style of  the  compiled  result.   The  same  as  sass.compile()  function's
              output_style keyword argument.  Default is nested.

       -s <style>, --output-style <style>
              Alias for -t / --style.

              Deprecated since version 0.11.0.

       -I <dir>, --include-path <dir>
              Optional directory path to find @imported (S)CSS files.  Can be multiply used.

       -m, -g, --sourcemap
              Emit source map.  Requires the second argument (output CSS filename).  The filename
              of source map will be the output CSS filename followed by .map.

              New in version 0.4.0.

       -p, --precision
              Set the precision for numbers. Default is 5.

              New in version 0.7.0.

       --source-comments
              Include debug info in output.

              New in version 0.11.0.

       --sourcemap-file
              Output file for source map

              New in version 0.17.0.

       --sourcemap-contents
              Embed sourcesContent in source map.

              New in version 0.17.0.

       --sourcemap-embed
              Embed sourceMappingUrl as data URI

              New in version 0.17.0.

       --omit-sourcemap-url
              Omit source map URL comment from output

              New in version 0.17.0.

       --sourcemap-root
              Base path, will be emitted to sourceRoot in source-map as is

              New in version 0.17.0.

       -v, --version
              Prints the program version.

       -h, --help
              Prints the help message.

   sass --- Binding of libsass
       This simple C extension module provides a very simple binding of libsass, which is written
       in C/C++.  It contains only one function and one exception type.

       >>> import sass
       >>> sass.compile(string='a { b { color: blue; } }')
       'a b {
         color: blue; }
       '

       exception sass.CompileError(msg)
              The   exception   type   that   is  raised  by  compile().   It  is  a  subtype  of
              exceptions.ValueError.

       sass.MODES = frozenset({'dirname', 'filename', 'string'})
              (frozenset) The set of keywords compile() can take.

       sass.OUTPUT_STYLES = {'compact': 2, 'compressed': 3, 'expanded': 1, 'nested': 0}
              (collections.abc.Mapping) The dictionary of output styles.  Keys  are  output  name
              strings, and values are flag integers.

       sass.SOURCE_COMMENTS = {'default': 1, 'line_numbers': 1, 'map': 2, 'none': 0}
              (collections.abc.Mapping)  The dictionary of source comments styles.  Keys are mode
              names, and values are corresponding flag integers.

              New in version 0.4.0.

              Deprecated since version 0.6.0.

       class sass.SassColor(r, g, b, a)

       class sass.SassError(msg)

       class sass.SassFunction(name, arguments, callable_)
              Custom  function  for  Sass.   It  can  be  instantiated  using  from_lambda()  and
              from_named_function() as well.

              Parametersname (str) -- the function name

                     • arguments (collections.abc.Sequence) -- the argument names

                     • callable (collections.abc.Callable) -- the actual function to be called

              New in version 0.7.0.

              classmethod from_lambda(name, lambda_)
                     Make  a  SassFunction  object from the given lambda_ function.  Since lambda
                     functions don't have their name, it need its name as  well.   Arguments  are
                     automatically inspected.

                     Parametersname (str) -- the function name

                            • lambda  (types.LambdaType)  --  the  actual  lambda  function to be
                              called

                     Returns
                            a custom function wrapper of the lambda_ function

                     Return type
                            SassFunction

              classmethod from_named_function(function)
                     Make a SassFunction object from  the  named  function.   Function  name  and
                     arguments are automatically inspected.

                     Parameters
                            function (types.FunctionType) -- the named function to be called

                     Returns
                            a custom function wrapper of the function

                     Return type
                            SassFunction

              property signature
                     Signature string of the function.

       class sass.SassList(items, separator, bracketed=False)

       class sass.SassMap(*args, **kwargs)
              Because  sass  maps  can  have mapping types as keys, we need an immutable hashable
              mapping type.

              New in version 0.7.0.

       class sass.SassNumber(value, unit)

       class sass.SassWarning(msg)

       sass.and_join(strings)
              Join the given strings by commas with last ' and ' conjunction.

              >>> and_join(['Korea', 'Japan', 'China', 'Taiwan'])
              'Korea, Japan, China, and Taiwan'

              Parameters
                     strings -- a list of words to join

              Returns
                     a joined string

              Return type
                     str, basestring

       sass.compile(**kwargs)
              There are three modes of parameters  compile()  can  take:  string,  filename,  and
              dirname.

              The  string  parameter  is  the  most basic way to compile Sass.  It simply takes a
              string of Sass code, and then returns a compiled CSS string.

              Parametersstring (str) -- Sass source code to compile.  it's exclusive  to  filename
                       and dirname parameters

                     • output_style  (str)  --  an  optional coding style of the compiled result.
                       choose one of: 'nested' (default), 'expanded', 'compact', 'compressed'source_comments (bool) -- whether to  add  comments  about  source  lines.
                       False by default

                     • source_map_contents (bool) -- embed include contents in map

                     • source_map_embed (bool) -- embed sourceMappingUrl as data URI

                     • omit_source_map_url (bool) -- omit source map URL comment from output

                     • source_map_root (str) -- base path, will be emitted in source map as is

                     • include_paths  (collections.abc.Sequence)  -- an optional list of paths to
                       find @imported Sass/CSS source files

                     • precision (int) -- optional precision for numbers. 5 by default.

                     • custom_functions (set, collections.abc.Sequence,  collections.abc.Mapping)
                       --  optional mapping of custom functions.  see also below custom functions
                       description

                     • custom_import_extensions -- (ignored, for backward compatibility)

                     • indented (bool) -- optional declaration that the string is Sass, not  SCSS
                       formatted. False by default

                     • importers  (collections.abc.Callable) -- optional callback functions.  see
                       also below importer callbacks description

              Returns
                     the compiled CSS string

              Return type
                     str

              Raises sass.CompileError -- when it fails for any reason  (for  example  the  given
                     Sass has broken syntax)

              The  filename  is  the most commonly used way.  It takes a string of Sass filename,
              and then returns a compiled CSS string.

              Parametersfilename (str) -- the filename of  Sass  source  code  to  compile.   it's
                       exclusive to string and dirname parameters

                     • output_style  (str)  --  an  optional coding style of the compiled result.
                       choose one of: 'nested' (default), 'expanded', 'compact', 'compressed'source_comments (bool) -- whether to  add  comments  about  source  lines.
                       False by default

                     • source_map_filename  (str)  -- use source maps and indicate the source map
                       output filename.  None means not using source maps.  None by default.

                     • source_map_contents (bool) -- embed include contents in map

                     • source_map_embed (bool) -- embed sourceMappingUrl as data URI

                     • omit_source_map_url (bool) -- omit source map URL comment from output

                     • source_map_root (str) -- base path, will be emitted in source map as is

                     • include_paths (collections.abc.Sequence) -- an optional list of  paths  to
                       find @imported Sass/CSS source files

                     • precision (int) -- optional precision for numbers. 5 by default.

                     • custom_functions  (set, collections.abc.Sequence, collections.abc.Mapping)
                       -- optional mapping of custom functions.  see also below custom  functions
                       description

                     • custom_import_extensions -- (ignored, for backward compatibility)

                     • importers  (collections.abc.Callable) -- optional callback functions.  see
                       also below importer callbacks description

              Returns
                     the compiled CSS string, or a pair of the compiled CSS string and the source
                     map string if source_map_filename is set

              Return type
                     str, tuple

              Raisessass.CompileError  --  when it fails for any reason (for example the given
                       Sass has broken syntax)

                     • exceptions.IOError -- when the filename doesn't exist or cannot be read

              The dirname is useful for automation.  It takes a pair of paths.  The first of  the
              dirname  pair  refers  the  source directory, contains several Sass source files to
              compiled.  Sass source files can be nested in directories.  The second of the  pair
              refers the output directory that compiled CSS files would be saved.  Directory tree
              structure of the source directory will be maintained in  the  output  directory  as
              well.  If dirname parameter is used the function returns None.

              Parametersdirname  (tuple) -- a pair of (source_dir, output_dir).  it's exclusive to
                       string and filename parameters

                     • output_style (str) -- an optional coding style  of  the  compiled  result.
                       choose one of: 'nested' (default), 'expanded', 'compact', 'compressed'source_comments  (bool)  --  whether  to  add comments about source lines.
                       False by default

                     • source_map_contents (bool) -- embed include contents in map

                     • source_map_embed (bool) -- embed sourceMappingUrl as data URI

                     • omit_source_map_url (bool) -- omit source map URL comment from output

                     • source_map_root (str) -- base path, will be emitted in source map as is

                     • include_paths (collections.abc.Sequence) -- an optional list of  paths  to
                       find @imported Sass/CSS source files

                     • precision (int) -- optional precision for numbers. 5 by default.

                     • custom_functions  (set, collections.abc.Sequence, collections.abc.Mapping)
                       -- optional mapping of custom functions.  see also below custom  functions
                       description

                     • custom_import_extensions -- (ignored, for backward compatibility)

              Raises sass.CompileError  --  when  it  fails for any reason (for example the given
                     Sass has broken syntax)

              The custom_functions parameter can take three types of forms:

              set/Sequence of SassFunctions
                 It is the most general form.  Although pretty verbose, it can take any  kind  of
                 callables like type objects, unnamed functions, and user-defined callables.

                     sass.compile(
                         ...,
                         custom_functions={
                             sass.SassFunction('func-name', ('$a', '$b'), some_callable),
                             ...
                         }
                     )

              Mapping of names to functions
                     Less  general,  but  easier-to-use  form.  Although it's not it can take any
                     kind of callables, it can take any kind of  functions  defined  using  def/‐
                     lambda  syntax.   It  cannot take callables other than them since inspecting
                     arguments is not always available for every kind of callables.

                        sass.compile(
                            ...,
                            custom_functions={
                                'func-name': lambda a, b: ...,
                                ...
                            }
                        )

              set/Sequence of named functions
                 Not general, but the easiest-to-use form for named functions.  It can take  only
                 named  functions,  defined  using  def.   It  cannot take lambdas sinc names are
                 unavailable for them.

                     def func_name(a, b):
                         return ...

                     sass.compile(
                         ...,
                         custom_functions={func_name}
                     )

              Newer versions of libsass allow developers to define callbacks  to  be  called  and
              given  a chance to process @import directives. You can define yours by passing in a
              list of callables via the importers parameter. The  callables  must  be  passed  as
              2-tuples in the form:

                 (priority_int, callback_fn)

              A  priority  of  zero  is  acceptable;  priority determines the order callbacks are
              attempted.

              These callbacks can accept one or two string arguments. The first argument  is  the
              path  that  was  passed to the @import directive; the second (optional) argument is
              the previous resolved path, where the @import directive was  found.  The  callbacks
              must  either  return  None to indicate the path wasn't handled by that callback (to
              continue with others or fall back on internal libsass filesystem  behaviour)  or  a
              list of one or more tuples, each in one of three forms:

              • A 1-tuple representing an alternate path to handle internally; or,

              • A  2-tuple  representing  an alternate path and the content that path represents;
                or,

              • A  3-tuple  representing  the  same  as  the  2-tuple  with  the  addition  of  a
                "sourcemap".

              All tuple return values must be strings. As a not overly realistic example:

                 def my_importer(path, prev):
                     return [(path, '#' + path + ' { color: red; }')]

                 sass.compile(
                         ...,
                         importers=[(0, my_importer)]
                     )

              Now,  within  the style source, attempting to @import 'button'; will instead attach
              color: red as a property of an element with the imported name.

              New in version 0.4.0: Added source_comments and source_map_filename parameters.

              Changed in version 0.6.0: The source_comments parameter becomes to take  only  bool
              instead of str.

              Deprecated  since  version 0.6.0: Values like 'none', 'line_numbers', and 'map' for
              the source_comments parameter are deprecated.

              New in version 0.7.0: Added precision parameter.

              New in version 0.7.0: Added custom_functions parameter.

              New in version 0.11.0: source_map_filename no longer implies source_comments.

              New   in   version    0.17.0:    Added    source_map_contents,    source_map_embed,
              omit_source_map_url, and source_map_root parameters.

              New  in  version 0.18.0: The importer callbacks can now take a second argument, the
              previously- resolved path, so that importers can do relative path resolution.

   sassutils --- Additional utilities related to Sass
       This package provides several additional  utilities  related  to  Sass  which  depends  on
       libsass core (sass module).

   sassutils.builder --- Build the whole directory
       class       sassutils.builder.Manifest(sass_path,      css_path=None,      wsgi_path=None,
       strip_extension=None)
              Building manifest of Sass/SCSS.

              Parameterssass_path (str, basestring) -- the path of  the  directory  that  contains
                       Sass/SCSS source files

                     • css_path  (str, basestring) -- the path of the directory to store compiled
                       CSS files

                     • strip_extension (bool) -- whether to remove the original file extension

              build(package_dir, output_style='nested')
                     Builds the Sass/SCSS files in the specified sass_path.  It  finds  sass_path
                     and locates css_path as relative to the given package_dir.

                     Parameterspackage_dir (str, basestring) -- the path of package directory

                            • output_style  (str)  --  an  optional  coding style of the compiled
                              result.  choose one of: 'nested' (default), 'expanded',  'compact',
                              'compressed'

                     Returns
                            the set of compiled CSS filenames

                     Return type
                            frozenset

                     New in version 0.6.0: The output_style parameter.

              build_one(package_dir, filename, source_map=False)
                     Builds one Sass/SCSS file.

                     Parameterspackage_dir (str, basestring) -- the path of package directory

                            • filename  (str,  basestring) -- the filename of Sass/SCSS source to
                              compile

                            • source_map (bool) -- whether to use source maps.  if True  it  also
                              write  a source map to a filename followed by .map suffix.  default
                              is False

                     Returns
                            the filename of compiled CSS

                     Return type
                            str, basestring

                     New in version 0.4.0: Added optional source_map parameter.

              resolve_filename(package_dir, filename)
                     Gets a proper full relative path of Sass source and CSS source that will  be
                     generated, according to package_dir and filename.

                     Parameterspackage_dir (str, basestring) -- the path of package directory

                            • filename  (str,  basestring) -- the filename of Sass/SCSS source to
                              compile

                     Returns
                            a pair of (sass, css) path

                     Return type
                            tuple

              unresolve_filename(package_dir, filename)
                     Retrieves the probable source path from the output filename.  Pass in a .css
                     path to get out a .scss path.

                     Parameterspackage_dir (str) -- the path of the package directory

                            • filename (str) -- the css filename

                     Returns
                            the scss filename

                     Return type
                            str

       sassutils.builder.SUFFIXES = frozenset({'sass', 'scss'})
              (frozenset) The set of supported filename suffixes.

       sassutils.builder.SUFFIX_PATTERN = re.compile('[.](sass|scss)$')
              (re.RegexObject)  The  regular  expression  pattern  which  matches to filenames of
              supported SUFFIXES.

       sassutils.builder.build_directory(sass_path,       css_path,        output_style='nested',
       _root_sass=None, _root_css=None, strip_extension=False)
              Compiles all Sass/SCSS files in path to CSS.

              Parameterssass_path  (str,  basestring)  -- the path of the directory which contains
                       source files to compile

                     • css_path (str, basestring) -- the path of the directory compiled CSS files
                       will go

                     • output_style  (str)  --  an  optional coding style of the compiled result.
                       choose one of: 'nested' (default), 'expanded', 'compact', 'compressed'

              Returns
                     a dictionary of source filenames to compiled CSS filenames

              Return type
                     collections.abc.Mapping

              New in version 0.6.0: The output_style parameter.

   sassutils.distutils --- setuptools/distutils integration
       This module provides extensions (and some magical monkey-patches, sorry) of  the  standard
       distutils and setuptools (now it's named Distribute) for libsass.

       To use this, add libsass into setup_requires (not install_requires) option of the setup.py
       script:

          from setuptools import setup

          setup(
              # ...,
              setup_requires=['libsass >= 0.6.0']
          )

       It will adds build_sass command to the setup.py script:

          $ python setup.py build_sass

       This commands builds Sass/SCSS files to compiled CSS files of the project  and  makes  the
       package archive (made by sdist, bdist, and so on) to include these compiled CSS files.

       To  set  the  directory  of Sass/SCSS source files and the directory to store compiled CSS
       files, specify sass_manifests option:

          from setuptools import find_packages, setup

          setup(
              name='YourPackage',
              packages=find_packages(),
              sass_manifests={
                  'your.webapp': ('static/sass', 'static/css')
              },
              setup_requires=['libsass >= 0.6.0']
          )

       The option should be a mapping of package names to pairs of paths, e.g.:

          {
              'package': ('static/sass', 'static/css'),
              'package.name': ('static/scss', 'static')
          }

       The option can also be a mapping of package names to manifest dictionaries:

          {
              'package': {
                  'sass_path': 'static/sass',
                  'css_path': 'static/css',
                  'strip_extension': True,
              },
          }

       New in version 0.15.0: Added strip_extension so a.scss is compiled  to  a.css  instead  of
       a.scss.css.  This option will default to True in the future.

       New in version 0.6.0: Added --output-style/-s option to build_sass command.

       class sassutils.distutils.build_sass(dist, **kw)
              Builds Sass/SCSS files to CSS files.

              finalize_options()
                     Set  final  values  for all the options that this command supports.  This is
                     always called as late as possible, ie.  after any  option  assignments  from
                     the  command-line  or from other commands have been done.  Thus, this is the
                     place to code option dependencies: if 'foo' depends on  'bar',  then  it  is
                     safe  to  set  'foo' from 'bar' as long as 'foo' still has the same value it
                     was assigned in 'initialize_options()'.

                     This method must be implemented by all command classes.

              get_package_dir(package)
                     Returns the directory, relative to the top of the source distribution, where
                     package  package  should  be  found  (at  least according to the package_dir
                     option, if any).

                     Copied from distutils.command.build_py.get_package_dir() method.

              initialize_options()
                     Set default values for all the options that  this  command  supports.   Note
                     that  these  defaults  may  be  overridden  by  other commands, by the setup
                     script, by config files, or by the command-line.   Thus,  this  is  not  the
                     place     to     code     dependencies     between    options;    generally,
                     'initialize_options()' implementations are just a bunch of "self.foo = None"
                     assignments.

                     This method must be implemented by all command classes.

              run()  A  command's  raison  d'etre:  carry  out  the  action it exists to perform,
                     controlled by the options initialized in 'initialize_options()',  customized
                     by other commands, the setup script, the command-line, and config files, and
                     finalized in  'finalize_options()'.   All  terminal  output  and  filesystem
                     interaction should be done by 'run()'.

                     This method must be implemented by all command classes.

       sassutils.distutils.validate_manifests(dist, attr, value)
              Verifies    that    value    is    an    expected    mapping    of    package    to
              sassutils.builder.Manifest.

   sassutils.wsgi --- WSGI middleware for development purpose
       class sassutils.wsgi.SassMiddleware(app, manifests, package_dir={}, error_status='200 OK')
              WSGI middleware for development purpose.  Every time a CSS file  has  requested  it
              finds a matched Sass/SCSS source file and then compiled it into CSS.

              It shows syntax errors in three ways:

              Heading comment
                     The  result  CSS  includes detailed error message in the heading CSS comment
                     e.g.:

                        /*
                        Error: invalid property name
                        */

              Red text in body:before
                     The result CSS draws detailed error message in :before pseudo-class of  body
                     element e.g.:

                        body:before {
                            content: 'Error: invalid property name';
                            color: maroon;
                            background-color: white;
                        }

                     In  most cases you could be aware of syntax error by refreshing your working
                     document because it will removes all other styles  and  leaves  only  a  red
                     text.

              logging
                     It    logs    syntax    errors    if    exist    during    compilation    to
                     sassutils.wsgi.SassMiddleware logger with level ERROR.

                     To enable this:

                        from logging import Formatter, StreamHandler, getLogger
                        logger = getLogger('sassutils.wsgi.SassMiddleware')
                        handler = StreamHandler(level=logging.ERROR)
                        formatter = Formatter(fmt='*' * 80 + '\n%(message)s\n' + '*' * 80)
                        handler.setFormatter(formatter)
                        logger.addHandler(handler)

                     Or simply:

                        import logging
                        logging.basicConfig()

              Parametersapp (collections.abc.Callable) -- the WSGI application to wrap

                     • manifests (collections.abc.Mapping) -- build settings.  the same format to
                       setup.py script's sass_manifests option

                     • package_dir (collections.abc.Mapping) -- optional mapping of package names
                       to directories.  the same format to setup.py script's package_dir option

              Changed in version 0.4.0: It creates also source map files with filenames  followed
              by .map suffix.

              New  in  version  0.8.0:  It  logs  syntax  errors  if  exist during compilation to
              sassutils.wsgi.SassMiddleware logger with level ERROR.

              static quote_css_string(s)
                     Quotes a string as CSS string literal.

CREDIT

       Hong Minhee wrote this Python binding of LibSass.

       Hampton Catlin and Aaron Leung wrote LibSass, which is portable  C/C++  implementation  of
       Sass.

       Hampton   Catlin   originally  designed  Sass  language  and  wrote  the  first  reference
       implementation of it in Ruby.

       The above three  are all distributed under MIT license.

OPEN SOURCE

       GitHub (Git repository + issues)
              https://github.com/sass/libsass-python

       Azure Pipelines CI (linux + windows)
              https://dev.azure.com/asottile/asottile/_build/latest?definitionId=22&branchName=master
              Build      Status.TP      Azure      Pipelines     Coverage     (Test     coverage)
              https://dev.azure.com/asottile/asottile/_build/latest?definitionId=22&branchName=master
              Coverage Status.TP PyPI https://pypi.org/pypi/libsass/ PyPI.TP Changelog Changelog

INDICES AND TABLES

IndexModule IndexSearch Page

AUTHOR

       Hong Minhee

COPYRIGHT

       2022, Hong Minhee