{ "info": { "author": "Vahid Mardani", "author_email": "vahid.mardani@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Communications :: Email", "Topic :: Software Development :: Libraries", "Topic :: Utilities" ], "description": "isass\n=====\n\n**isass** (Indented SASS) compiles\n`SASS-indented-syntax `__\ninto CSS or SCSS.\n\n::\n\n import isass\n\n sass = '''\n body\n width: 500px\n '''\n\n print isass.get_css(sass)\n print isass.get_scss(sass)\n\n**isass** uses `pyScss `__ as its\ninternal compiler, to compile *scss* to *css*. So **isass** is a *sass*\nto *scss* convertor, including:\n\n- `All <#syntax-reference>`__ pyScss\n `features `__ are\n supported\n- A `**Command Line Interface** <#command-line-interface>`__\n- A `**Watchdog** <#watchdog>`__ to automatically reproduce output.css\n when one or more source files are changed.\n\nInstallation\n~~~~~~~~~~~~\n\nLatest stable version:\n\n::\n\n $ pip install isass\n # or\n $ easy_install isass\n\nDevelopment version:\n\n::\n\n pip install git+git@github.com:pylover/isass.git\n\nFrom source:\n\n::\n\n $ cd source_dir\n $ python setup.py install\n\nSyntax Reference\n~~~~~~~~~~~~~~~~\n\nLine extensions\n^^^^^^^^^^^^^^^\n\nLines ending with ``,`` will be continued to the next line:\n\n::\n\n #container, #article_container, #sidebar_container,\n #footer_container, #useless_container\n background-color: #DDD\n\nThat first line is treated is one whole line:\n\n::\n\n #container, #article_container, #sidebar_container #footer_container, #useless_container {\n background-color: #DDD; }\n\nComments\n^^^^^^^^\n\nComments are prefaced with ``/*`` and is implemented on a per-line\nbasis:\n\n::\n\n /* This is a comment\n /* This is another comment\n body\n /* Yep, a short width\n width: 50px \n\nWill give:\n\n::\n\n /* This is a comment */\n /* This is another comment */\n body {\n /* Yep, a short width */\n width: 50px; }\n\nImports\n^^^^^^^\n\nA handy little command is ``@import`` that - surprise surprise - imports\nan external ``.sass`` file into the current ``.sass`` file.\n\nSo let's say you have a ``night.sass``:\n\n::\n\n body\n background-color: black\n color: white\n\nThen in your file ``style.sass``:\n\n::\n\n @import night.sass\n\n #sunny-message\n background-color: white\n color: yellow\n\nWhich produces:\n\n::\n\n body {\n background-color: #000000;\n color: #ffffff;\n }\n #sunny-message {\n background-color: #ffffff;\n color: #ffff00;\n }\n\n``isass`` looks for the filenames relative to the current working\ndirectory. Please don't abuse the imports, it doesn't check for circular\nimports - that would be your bad.\n\nBut of course you want to take advantage of the programmatic syntax\nextensions introduced by SASS. This will require that you pre-install\nthe ``PySCSS`` module, and the compilation is then:\n\n::\n\n import isass\n\n s = '''\n @mixin box($width)\n width: $width px\n body\n @include box(500)\n '''\n\n print isass.get_css(s)\n\nVariable substitution\n^^^^^^^^^^^^^^^^^^^^^\n\nYou can use variables, prefaced by a ``$``:\n\n::\n\n $highlight-color: #999\n #big-box\n border: 1px solid $highlight-color\n #message\n color: $highlight-color \n\nWhich makes it much easier to pass colors around, as in the resultant\nCSS:\n\n::\n\n #big-box {\n border: 1px solid #999999;\n }\n #message {\n color: #999999;\n }\n\nExpressions\n^^^^^^^^^^^\n\nCobble together simple expressions:\n\n::\n\n $big-width: 500\n #container\n width: $big-width px\n $panel-left\n float: left\n width: $big-width/2 px\n\nAnd we get, in the CSS:\n\n::\n\n #container {\n width: 500 px;\n }\n $panel-left {\n float: left;\n width: 250 px;\n }\n\nJust beware that ``/`` will be intrepreted as a division expression, so\nif ``/`` appears in ``url()`` parameters, wrap it with quotation marks\n``\"\"``.\n\nMix-ins with arguments\n^^^^^^^^^^^^^^^^^^^^^^\n\nMix-ins that group common elements, and can take arguments, which are\nprefaced by ``@``:\n\n::\n\n @mixin left($dist)\n float: left\n margin-left: -$dist\n width: $dist - 20\n padding-right: 20\n\n #sidebar\n @include left(200px) \n\nGives:\n\n::\n\n #sidebar {\n float: left;\n margin-left: -200px;\n width: 180px;\n padding-right: 20;\n }\n\nNesting\n^^^^^^^\n\nHandy nesting, and self reference ``&`` to save even more typing:\n\n::\n\n #article\n a\n font:\n family: Garamond\n &:link\n text-decoration: none\n &:hover\n text-decoration: underline\n\nFlattens out into:\n\n::\n\n #article a {\n font-family: Garamond;\n }\n #article a:link {\n text-decoration: none;\n }\n #article a:hover {\n text-decoration: underline;\n }\n\nClass Extensions\n^^^^^^^^^^^^^^^^\n\nExtend a class with a new twist:\n\n::\n\n #message\n border: 1px solid red\n\n #bad-message\n @extend #message\n background-color: red\n\nCreates a similar class quite easily:\n\n::\n\n #bad-message, #message {\n border: 1px solid #ff0000;\n }\n #bad-message {\n background-color: #ff0000;\n }\n\nThe canonical syntax reference is\n`sass-lang.com `__\n\nCommand Line Interface\n~~~~~~~~~~~~~~~~~~~~~~\n\n::\n\n $ isass --help\n\n usage: isass [-h] [-o OUTPUT] [-c] [-l [LIB_DIRS]] [-e [EXTENSION]] [-w]\n [sources [sources ...]]\n\n isass compiles SASS-indented-syntax into CSS or SCSS.\n\n positional arguments:\n sources Source files or directories to process. default:\n standard input. example: `./*.sass` or `.`\n\n optional arguments:\n -h, --help show this help message and exit\n -o OUTPUT, --output OUTPUT Output file. default: standard output\n -c, --scss Skip scss compilation, just return scss contents.\n -l [LIB_DIRS], --lib-dir [LIB_DIRS] Library dir to search for @imports.\n -e [EXTENSION], --extension [EXTENSION] Search for this file extension.\n -w, --watch Watch for source modifications, and update output.\n \n \n\nCLI examples:\n^^^^^^^^^^^^^\n\nRead SASS from sources.sass , and writes produced CSS into standard\noutput\n\n::\n\n $ isass < source.sass\n $ isass < source.sass > out.css\n\nRead SASS from all \\*.sass files in sources, extra-sources dirs and\nmyfile.sass , then writes produced CSS into standard output\n\n::\n\n $ isass sources/ extra-sources/ myfile.sass > out.css\n\nYou can use -o or --output options to write the generated result into\nspecific file.\n\n::\n\n $ isass -o out.css sources/\n\nGenerates SCSS instead of CSS, from SASS file\n\n::\n\n $ isass -c < source.sass\n\nWatches for changes in source files, and automatically update output on\nany changes.\n\n::\n\n $ isass -wo out.css source-dir/\n\nWatchdog\n~~~~~~~~\n\nYou can use watchdog by CLI that mentioned above, Or from code:\n\n::\n\n from isass import SassObserver\n\n observer = SassObserver() \n observer.add_output('style.css', dirs='my-source-dir', lib_dirs='sass-libs')\n observer.start()\n try:\n while True:\n time.sleep(1)\n except KeyboardInterrupt:\n observer.stop()\n observer.join() \n\nManifests\n~~~~~~~~~\n\nYou can create a manifest file about compiler's input/output files. see\nexample:\n\n::\n\n #file: myproject.manifest\n public:\n output: 'style.css'\n libdirs:\n - libdir\n sources:\n - sass_dir1\n - sass_dir2\n - file1.sass\n - file2.sass\n\n admin:\n output:\n minified: 'admin.min.css'\n normal: 'admin.css'\n libdirs:\n - libdir\n sources:\n - sass_dir2\n - sass_dir3\n - file1.sass\n - file3.sass\n\n\n\n\n from isass import SassObserver\n\n observer = SassObserver()\n observer.add_manifest('myproject.manifest')\n observer.start()\n try:\n while True:\n time.sleep(1)\n except KeyboardInterrupt:\n observer.stop()\n observer.join()", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/pylover/isass", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "isass", "package_url": "https://pypi.org/project/isass/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/isass/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/pylover/isass" }, "release_url": "https://pypi.org/project/isass/0.1.14/", "requires_dist": null, "requires_python": null, "summary": "compiles indented-SASS-syntax to CSS stylesheets", "version": "0.1.14" }, "last_serial": 1166160, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "427b05fa0d2f3c7f37c2fb12c4c7386e", "sha256": "a3b4af33022dc6f6131b1e1480ae95a75ab05caa0bd8ba686e9626ebd3b5f085" }, "downloads": -1, "filename": "isass-0.1.tar.gz", "has_sig": false, "md5_digest": "427b05fa0d2f3c7f37c2fb12c4c7386e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6355, "upload_time": "2013-11-10T21:05:09", "url": "https://files.pythonhosted.org/packages/4d/8b/c2b2a6f18921e4a710f61640ab36d5bcdea7d24a0eaa437a5a7bbb8b2328/isass-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "025f6913b190cd5d6b9d1e4d868749a3", "sha256": "9d734e75d89dedbca6e32b8880c523c18eb74ac0ccffa715b0959fa9e9293c54" }, "downloads": -1, "filename": "isass-0.1.1.tar.gz", "has_sig": false, "md5_digest": "025f6913b190cd5d6b9d1e4d868749a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6356, "upload_time": "2013-11-10T21:36:22", "url": "https://files.pythonhosted.org/packages/22/69/a6fffd8e3472c127ca8cd96088fd4e8c082043274a267f73ebf088852347/isass-0.1.1.tar.gz" } ], "0.1.10": [ { "comment_text": "", "digests": { "md5": "824431c8125ac96927741d9f3c45664c", "sha256": "10af3226f64ac79b8235cfa9714695c5a280f982d8304bf8b4d59291396fb2f3" }, "downloads": -1, "filename": "isass-0.1.10.tar.gz", "has_sig": false, "md5_digest": "824431c8125ac96927741d9f3c45664c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12574, "upload_time": "2014-07-18T10:34:14", "url": "https://files.pythonhosted.org/packages/61/fa/edf54442dccde6aebca180a97d5409316a258b185c0d72a3a977218b692c/isass-0.1.10.tar.gz" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "81c813781bd701bc4ce3c69e42f77bc2", "sha256": "ae4777720ff9b162944f36ff7d88ce218e96279b783fdff29ca45ce4ac1f0ade" }, "downloads": -1, "filename": "isass-0.1.11.tar.gz", "has_sig": false, "md5_digest": "81c813781bd701bc4ce3c69e42f77bc2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12574, "upload_time": "2014-07-18T10:42:28", "url": "https://files.pythonhosted.org/packages/14/35/c3ecfb8b78a723784d718f658804cdf21113cf6307c2d952117f014b516b/isass-0.1.11.tar.gz" } ], "0.1.13": [ { "comment_text": "", "digests": { "md5": "df9121935b6e66065f44b75e92980500", "sha256": "d81d4ac00bfb8e22e2d4640165a43c2bffa730ae1b67353b2fae2210a26e9bc4" }, "downloads": -1, "filename": "isass-0.1.13.tar.gz", "has_sig": false, "md5_digest": "df9121935b6e66065f44b75e92980500", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13060, "upload_time": "2014-07-23T01:27:03", "url": "https://files.pythonhosted.org/packages/38/11/9a4d87439446983f05949ffb70ddc00239e7d71b2ad888d52b4a0152c801/isass-0.1.13.tar.gz" } ], "0.1.14": [ { "comment_text": "", "digests": { "md5": "4b60047f81dcb768c435efb29fe47350", "sha256": "240b7c3b185d1ea8a17b1f163f2189f69dd6a2b8b77f2d977150bea4319b1ae4" }, "downloads": -1, "filename": "isass-0.1.14.tar.gz", "has_sig": false, "md5_digest": "4b60047f81dcb768c435efb29fe47350", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13065, "upload_time": "2014-07-23T01:35:06", "url": "https://files.pythonhosted.org/packages/79/49/91529ffdad55cddee948e772fcd763bfe3e7d7572397c0dd0a908d870f7d/isass-0.1.14.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "b6eb4410adfd2c55db591871b1ca1e81", "sha256": "a382a12892e9a90c2713068f3817188db3915dce14fb3021192d3850fbe429d1" }, "downloads": -1, "filename": "isass-0.1.2-py2.7.egg", "has_sig": false, "md5_digest": "b6eb4410adfd2c55db591871b1ca1e81", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 15162, "upload_time": "2014-04-16T07:56:20", "url": "https://files.pythonhosted.org/packages/cf/c2/d51d5e48b7d6b73d96a4d184270e7300d1a4b94359814322c45b2dd782ab/isass-0.1.2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "fb55cc6a97b1cfc091683341e996e522", "sha256": "0f6a4822ab35cd6394c3a2e78ffc7b749b8ac71d28293f92eb120edf9c61aad3" }, "downloads": -1, "filename": "isass-0.1.2.tar.gz", "has_sig": false, "md5_digest": "fb55cc6a97b1cfc091683341e996e522", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9178, "upload_time": "2014-04-16T07:56:15", "url": "https://files.pythonhosted.org/packages/be/b3/bc07437144e65f9e721d1008e6557a20852821061758cd9aaf2b41f8d63f/isass-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "d65d254b6745f5d7378dfb68725c80ec", "sha256": "743edd37cdecbc6b6e5bf047ac38ab47adf29920ade346aa793dd6c6d025317d" }, "downloads": -1, "filename": "isass-0.1.3-py2.7.egg", "has_sig": false, "md5_digest": "d65d254b6745f5d7378dfb68725c80ec", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 15119, "upload_time": "2014-04-16T09:15:07", "url": "https://files.pythonhosted.org/packages/ac/18/0f62c80507c9f4262f87bfbac92dbf15de9d22e20ba0c06f48b3e104b184/isass-0.1.3-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "dc1f5fb4e9079d94163402789980283f", "sha256": "45dfca8a2c896f6c101f06fd7da0f76a14cab4c73fcf0aa769bb330054d9fa89" }, "downloads": -1, "filename": "isass-0.1.3.tar.gz", "has_sig": false, "md5_digest": "dc1f5fb4e9079d94163402789980283f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9184, "upload_time": "2014-04-16T09:15:03", "url": "https://files.pythonhosted.org/packages/ba/ee/4edc732c192fe1e43de654aee02538d0b7cd3826c65ddfa5bcaff0908114/isass-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "2bfcf33a77b4575d9d7f03f04fdf0d50", "sha256": "7b2c54681df534006a60bbc9d3f10e98449af56724d057c1f04df7acc17040e8" }, "downloads": -1, "filename": "isass-0.1.4.tar.gz", "has_sig": false, "md5_digest": "2bfcf33a77b4575d9d7f03f04fdf0d50", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9867, "upload_time": "2014-04-18T05:33:39", "url": "https://files.pythonhosted.org/packages/f7/e0/8c305ac859db52604e22836d9337dedafad8ce05cbd90c6c0329d81c1ba7/isass-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "a35fbc2d9faf4721c2d460d80b7708a2", "sha256": "16af819ef3bcb6ff8484cefd54880d3bba836dc287d4ce7b43fd57fe5dbeee89" }, "downloads": -1, "filename": "isass-0.1.5.tar.gz", "has_sig": false, "md5_digest": "a35fbc2d9faf4721c2d460d80b7708a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10116, "upload_time": "2014-04-25T10:11:47", "url": "https://files.pythonhosted.org/packages/d9/61/5fb92d978a542419ea60b8f8c1a32b65a20bf5d6ca7adac537b1188549aa/isass-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "c1286d6b97d8bc2b42e867e0ec67bed0", "sha256": "6e5fb7b0ac2ccf8ccbbf3eb8efd43380ab74a150ef9ee10b9bcb0868ee34d43b" }, "downloads": -1, "filename": "isass-0.1.6.tar.gz", "has_sig": false, "md5_digest": "c1286d6b97d8bc2b42e867e0ec67bed0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9098, "upload_time": "2014-05-05T02:26:03", "url": "https://files.pythonhosted.org/packages/5d/fe/8b53d0884b0a78ace2835e45072a0862db061db939a3e7e73511c46779dc/isass-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "6e4c2db075b1df1ce5b39ea109506048", "sha256": "7db7ad945192b6be4327647ce13eb4763a562910c95370fa11701571ea354eef" }, "downloads": -1, "filename": "isass-0.1.7.tar.gz", "has_sig": false, "md5_digest": "6e4c2db075b1df1ce5b39ea109506048", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9180, "upload_time": "2014-06-25T11:52:53", "url": "https://files.pythonhosted.org/packages/13/b3/8fc342a327fc00e14712e440086b8f738515a88cacc9aae4398a1c7186c1/isass-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "d41ce829b8e630e54ff42739af1d2249", "sha256": "5b808532233dd079067964fdca1ef227e91174cda7c8dd0790a052e99545af94" }, "downloads": -1, "filename": "isass-0.1.8.tar.gz", "has_sig": false, "md5_digest": "d41ce829b8e630e54ff42739af1d2249", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12377, "upload_time": "2014-07-05T08:39:09", "url": "https://files.pythonhosted.org/packages/c9/3b/9a97b3333138a81d6527e9efb351fd9022f626a2c76ed2404f1e94a9daba/isass-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "d460ec9fc19417595e8d6e563a509e82", "sha256": "506eb80d70968baf43d5394e5aaef4af347fb735d21cc50b2d06b78d58f2f804" }, "downloads": -1, "filename": "isass-0.1.9.tar.gz", "has_sig": false, "md5_digest": "d460ec9fc19417595e8d6e563a509e82", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12574, "upload_time": "2014-07-08T00:46:34", "url": "https://files.pythonhosted.org/packages/2f/53/8d7f501af8fa8a1ffc1ed4ee2c11d901eb6eaa269ec82bb84fbce3f8db8b/isass-0.1.9.tar.gz" } ], "0.1a": [ { "comment_text": "", "digests": { "md5": "ca60ef3282aceb6bfeb0b41487e863a8", "sha256": "05d1bb1c49d0b6334f74902794fbcdd49964d380fa2752441f5c0350e72953dc" }, "downloads": -1, "filename": "isass-0.1a.tar.gz", "has_sig": false, "md5_digest": "ca60ef3282aceb6bfeb0b41487e863a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4602, "upload_time": "2013-11-10T20:21:40", "url": "https://files.pythonhosted.org/packages/2e/d7/ce3cecd02026c92bd6deb2b0c87756c3702db19baa6eed53a01d15767d53/isass-0.1a.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4b60047f81dcb768c435efb29fe47350", "sha256": "240b7c3b185d1ea8a17b1f163f2189f69dd6a2b8b77f2d977150bea4319b1ae4" }, "downloads": -1, "filename": "isass-0.1.14.tar.gz", "has_sig": false, "md5_digest": "4b60047f81dcb768c435efb29fe47350", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13065, "upload_time": "2014-07-23T01:35:06", "url": "https://files.pythonhosted.org/packages/79/49/91529ffdad55cddee948e772fcd763bfe3e7d7572397c0dd0a908d870f7d/isass-0.1.14.tar.gz" } ] }