Skip to content

Commit 3aa5d2d

Browse files
committed
Deprecate sassc for pysassc
1 parent a0308b0 commit 3aa5d2d

File tree

8 files changed

+266
-218
lines changed

8 files changed

+266
-218
lines changed

docs/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ References
105105
.. toctree::
106106
:maxdepth: 2
107107

108-
sassc
108+
pysassc
109109
sass
110110
sassutils
111111

docs/sassc.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
.. program:: sassc
2+
.. program:: pysassc
33

4-
.. automodule:: sassc
4+
.. automodule:: pysassc
55
:members:

pysassc.py

Lines changed: 182 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,182 @@
1+
#!/usr/bin/env python
2+
r""":mod:`pysassc` --- SassC compliant command line interface
3+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4+
5+
This provides SassC_ compliant CLI executable named :program:`pysassc`:
6+
7+
.. sourcecode:: console
8+
9+
$ pysassc
10+
Usage: pysassc [options] SCSS_FILE [CSS_FILE]
11+
12+
There are options as well:
13+
14+
.. option:: -t <style>, --style <style>
15+
16+
Coding style of the compiled result. The same as :func:`sass.compile()`
17+
function's ``output_style`` keyword argument. Default is ``nested``.
18+
19+
.. option:: -s <style>, --output-style <style>
20+
21+
Alias for -t / --style.
22+
23+
.. deprecated:: 0.11.0
24+
25+
.. option:: -I <dir>, --include-path <dir>
26+
27+
Optional directory path to find ``@import``\ ed (S)CSS files.
28+
Can be multiply used.
29+
30+
.. option:: -m, -g, --sourcemap
31+
32+
Emit source map. Requires the second argument (output CSS filename).
33+
The filename of source map will be the output CSS filename followed by
34+
:file:`.map`.
35+
36+
.. versionadded:: 0.4.0
37+
38+
.. option:: -p, --precision
39+
40+
Set the precision for numbers. Default is 5.
41+
42+
.. versionadded:: 0.7.0
43+
44+
.. option:: --source-comments
45+
46+
Include debug info in output.
47+
48+
.. versionadded:: 0.11.0
49+
50+
.. option:: -v, --version
51+
52+
Prints the program version.
53+
54+
.. option:: -h, --help
55+
56+
Prints the help message.
57+
58+
.. _SassC: https://github.com/sass/sassc
59+
60+
"""
61+
from __future__ import print_function
62+
63+
import functools
64+
import io
65+
import optparse
66+
import sys
67+
68+
import sass
69+
70+
71+
def main(argv=sys.argv, stdout=sys.stdout, stderr=sys.stderr):
72+
parser = optparse.OptionParser(
73+
usage='%prog [options] SCSS_FILE [OUT_CSS_FILE]',
74+
version='%prog {} (sass/libsass {})'.format(
75+
sass.__version__, sass.libsass_version,
76+
),
77+
)
78+
output_styles = list(sass.OUTPUT_STYLES)
79+
output_styles = ', '.join(output_styles[:-1]) + ', or ' + output_styles[-1]
80+
parser.add_option(
81+
'-t', '--style', '-s', '--output-style', metavar='STYLE',
82+
type='choice', choices=list(sass.OUTPUT_STYLES), default='nested',
83+
help=(
84+
'Coding style of the compiled result. Choose one of ' +
85+
output_styles + '. [default: %default]'
86+
),
87+
)
88+
parser.add_option(
89+
'-m', '-g', '--sourcemap', dest='source_map',
90+
action='store_true', default=False,
91+
help='Emit source map. Requires the second argument '
92+
'(output css filename).',
93+
)
94+
parser.add_option(
95+
'-I', '--include-path', metavar='DIR',
96+
dest='include_paths', action='append',
97+
help='Path to find "@import"ed (S)CSS source files. '
98+
'Can be multiply used.',
99+
)
100+
parser.add_option(
101+
'-p', '--precision', action='store', type='int', default=5,
102+
help='Set the precision for numbers. [default: %default]',
103+
)
104+
parser.add_option(
105+
'--source-comments', action='store_true', default=False,
106+
help='Include debug info in output',
107+
)
108+
parser.add_option(
109+
'--import-extensions',
110+
dest='custom_import_extensions', action='append',
111+
help='Extra extensions allowed for sass imports. '
112+
'Can be multiply used.',
113+
)
114+
options, args = parser.parse_args(argv[1:])
115+
error = functools.partial(
116+
print,
117+
parser.get_prog_name() + ': error:',
118+
file=stderr,
119+
)
120+
if not args:
121+
parser.print_usage(stderr)
122+
error('too few arguments')
123+
return 2
124+
elif len(args) > 2:
125+
parser.print_usage(stderr)
126+
error('too many arguments')
127+
return 2
128+
filename = args[0]
129+
if options.source_map and len(args) < 2:
130+
parser.print_usage(stderr)
131+
error(
132+
'-m/-g/--sourcemap requires the second argument, the output '
133+
'css filename.',
134+
)
135+
return 2
136+
137+
try:
138+
if options.source_map:
139+
source_map_filename = args[1] + '.map' # FIXME
140+
css, source_map = sass.compile(
141+
filename=filename,
142+
output_style=options.style,
143+
source_comments=options.source_comments,
144+
source_map_filename=source_map_filename,
145+
output_filename_hint=args[1],
146+
include_paths=options.include_paths,
147+
precision=options.precision,
148+
custom_import_extensions=options.custom_import_extensions,
149+
)
150+
else:
151+
source_map_filename = None
152+
source_map = None
153+
css = sass.compile(
154+
filename=filename,
155+
output_style=options.style,
156+
source_comments=options.source_comments,
157+
include_paths=options.include_paths,
158+
precision=options.precision,
159+
custom_import_extensions=options.custom_import_extensions,
160+
)
161+
except (IOError, OSError) as e:
162+
error(e)
163+
return 3
164+
except sass.CompileError as e:
165+
error(e)
166+
return 1
167+
else:
168+
if len(args) < 2:
169+
print(css, file=stdout)
170+
else:
171+
with io.open(args[1], 'w', encoding='utf-8', newline='') as f:
172+
f.write(css)
173+
if source_map_filename:
174+
with io.open(
175+
source_map_filename, 'w', encoding='utf-8', newline='',
176+
) as f:
177+
f.write(source_map)
178+
return 0
179+
180+
181+
if __name__ == '__main__':
182+
sys.exit(main())

sass.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -551,7 +551,7 @@ def my_importer(path):
551551
"values like 'none', 'line_numbers', and 'map' for "
552552
'the source_comments parameter are deprecated; ' +
553553
deprecation_message,
554-
DeprecationWarning,
554+
FutureWarning,
555555
)
556556
if not isinstance(source_comments, bool):
557557
raise TypeError('source_comments must be bool, not ' +

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy