/usr/bin/smartypants is in python-smartypants 1.8.6-1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | #!/usr/bin/python
# Copyright (c) 2013, 2014 Yu-Jie Lin
# Licensed under the BSD License, for detailed license information, see COPYING
"""
============
Command-line
============
smartypants
===========
``smartypants`` provides a command-line interface for :py:mod:`smartypants`
module, which is named as same as the module.
It takes input from either standard input or files and output the result to
standard output.
Usage
=====
Syntax::
smartypants [-h] [-v] [-a ATTR] [-s SKIP] [FILE [FILE ...]]
Some examples::
$ smartypants inputfile
$ command-foo inputfile | command-bar | smartypants
Options
=======
``-a``, ``--attr``:
processe attrbutes tells smartypants how to translate,
The attributes is a string of characters, which are taken from the names of
attributes of :py:class:`smartypants.Attr <smartypants._Attr>`.
For example, the default attribute is
:py:attr:`smartypants.Attr.set1 <smartypants._Attr.set1>`::
smartypants -a 1
If you want :py:attr:`smartypants.Attr.q <smartypants._Attr.q>` and
:py:attr:`smartypants.Attr.w <smartypants._Attr.w>` then it would be invoked
as::
smartypants -a qw
``-s``, ``--skip``:
skip specified HTML elements.
It is a comma-separated string. For example::
smartypants -s tag1,tag2,tag3
``FILE``:
files to be processed.
If no ``FILE`` is specified, the input is taken from standard input.
"""
from __future__ import print_function
import argparse
import sys
import warnings
import smartypants
def main():
parser = argparse.ArgumentParser(description=smartypants.__description__)
parser.add_argument('-v', '--version', action='version',
version=smartypants.__version__)
parser.add_argument('-a', '--attr', default='1',
help='processing attributes (Default: %(default)s)')
parser.add_argument('-s', '--skip',
default=','.join(smartypants.tags_to_skip),
help='skip HTML elements (Default: %(default)s)')
parser.add_argument('files', metavar='FILE', type=argparse.FileType('r'),
nargs='*', help='files to be processed ')
args = parser.parse_args()
with warnings.catch_warnings(record=True) as w:
attr = smartypants._str_attr_to_int(args.attr)
if len(w):
print(w[-1].message)
sys.exit(1)
smartypants.tags_to_skip = args.skip.split(',')
if args.files:
for f in args.files:
print(smartypants.smartypants(f.read(), attr), end='')
else:
print(smartypants.smartypants(sys.stdin.read(), attr), end='')
if __name__ == '__main__':
main()
|