summaryrefslogtreecommitdiff
path: root/python-ansiwrap.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-ansiwrap.spec')
-rw-r--r--python-ansiwrap.spec267
1 files changed, 267 insertions, 0 deletions
diff --git a/python-ansiwrap.spec b/python-ansiwrap.spec
new file mode 100644
index 0000000..33c9a2f
--- /dev/null
+++ b/python-ansiwrap.spec
@@ -0,0 +1,267 @@
+%global _empty_manifest_terminate_build 0
+Name: python-ansiwrap
+Version: 0.8.4
+Release: 1
+Summary: textwrap, but savvy to ANSI colors and styles
+License: Apache License 2.0
+URL: https://github.com/jonathaneunice/ansiwrap
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/7c/45/2616341cfcace37d4619d5106a85fcc24f2170d1a161bc5f7fdb81772fbc/ansiwrap-0.8.4.zip
+BuildArch: noarch
+
+
+%description
+
+| |travisci| |version| |versions| |impls| |wheel| |coverage|
+
+.. |travisci| image:: https://api.travis-ci.org/jonathaneunice/ansiwrap.svg
+ :target: http://travis-ci.org/jonathaneunice/ansiwrap
+
+.. |version| image:: http://img.shields.io/pypi/v/ansiwrap.svg?style=flat
+ :alt: PyPI Package latest release
+ :target: https://pypi.python.org/pypi/ansiwrap
+
+.. |versions| image:: https://img.shields.io/pypi/pyversions/ansiwrap.svg
+ :alt: Supported versions
+ :target: https://pypi.python.org/pypi/ansiwrap
+
+.. |impls| image:: https://img.shields.io/pypi/implementation/ansiwrap.svg
+ :alt: Supported implementations
+ :target: https://pypi.python.org/pypi/ansiwrap
+
+.. |wheel| image:: https://img.shields.io/pypi/wheel/ansiwrap.svg
+ :alt: Wheel packaging support
+ :target: https://pypi.python.org/pypi/ansiwrap
+
+.. |coverage| image:: https://img.shields.io/badge/test_coverage-99%25-0000FF.svg
+ :alt: Test line coverage
+ :target: https://pypi.python.org/pypi/ansiwrap
+
+
+``ansiwrap`` wraps text, like the standard ``textwrap`` module.
+But it also correctly wraps text that contains ANSI control
+sequences that colorize or style text.
+
+Where ``textwrap`` is fooled by the raw string length of those control codes,
+``ansiwrap`` is not; it understands that however much those codes affect color
+and display style, they have no logical length.
+
+The API mirrors the ``wrap``, ``fill``, and ``shorten``
+functions of ``textwrap``. For example::
+
+ from __future__ import print_function
+ from colors import * # ansicolors on PyPI
+ from ansiwrap import *
+
+ s = ' '.join([red('this string'),
+ blue('is going on a bit long'),
+ green('and may need to be'),
+ color('shortened a bit', fg='purple')])
+
+ print('-- original string --')
+ print(s)
+ print('-- now filled --')
+ print(fill(s, 20))
+ print('-- now shortened / truncated --')
+ print(shorten(s, 20, placeholder='...'))
+
+It also exports several other functions:
+
+* ``ansilen`` (giving the effective length of a string, ignoring ANSI control codes)
+* ``ansi_terminate_lines`` (propagates control codes though a list of strings/lines
+ and terminates each line.)
+* ``strip_color`` (removes ANSI control codes from a string)
+
+See also the enclosed ``demo.py``.
+
+.. image:: https://content.screencast.com/users/jonathaneunice/folders/Jing/media/8db64be2-01cc-4da4-b46a-789c53c63b44/00000569.png
+ :align: center
+
+
+%package -n python3-ansiwrap
+Summary: textwrap, but savvy to ANSI colors and styles
+Provides: python-ansiwrap
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-ansiwrap
+
+| |travisci| |version| |versions| |impls| |wheel| |coverage|
+
+.. |travisci| image:: https://api.travis-ci.org/jonathaneunice/ansiwrap.svg
+ :target: http://travis-ci.org/jonathaneunice/ansiwrap
+
+.. |version| image:: http://img.shields.io/pypi/v/ansiwrap.svg?style=flat
+ :alt: PyPI Package latest release
+ :target: https://pypi.python.org/pypi/ansiwrap
+
+.. |versions| image:: https://img.shields.io/pypi/pyversions/ansiwrap.svg
+ :alt: Supported versions
+ :target: https://pypi.python.org/pypi/ansiwrap
+
+.. |impls| image:: https://img.shields.io/pypi/implementation/ansiwrap.svg
+ :alt: Supported implementations
+ :target: https://pypi.python.org/pypi/ansiwrap
+
+.. |wheel| image:: https://img.shields.io/pypi/wheel/ansiwrap.svg
+ :alt: Wheel packaging support
+ :target: https://pypi.python.org/pypi/ansiwrap
+
+.. |coverage| image:: https://img.shields.io/badge/test_coverage-99%25-0000FF.svg
+ :alt: Test line coverage
+ :target: https://pypi.python.org/pypi/ansiwrap
+
+
+``ansiwrap`` wraps text, like the standard ``textwrap`` module.
+But it also correctly wraps text that contains ANSI control
+sequences that colorize or style text.
+
+Where ``textwrap`` is fooled by the raw string length of those control codes,
+``ansiwrap`` is not; it understands that however much those codes affect color
+and display style, they have no logical length.
+
+The API mirrors the ``wrap``, ``fill``, and ``shorten``
+functions of ``textwrap``. For example::
+
+ from __future__ import print_function
+ from colors import * # ansicolors on PyPI
+ from ansiwrap import *
+
+ s = ' '.join([red('this string'),
+ blue('is going on a bit long'),
+ green('and may need to be'),
+ color('shortened a bit', fg='purple')])
+
+ print('-- original string --')
+ print(s)
+ print('-- now filled --')
+ print(fill(s, 20))
+ print('-- now shortened / truncated --')
+ print(shorten(s, 20, placeholder='...'))
+
+It also exports several other functions:
+
+* ``ansilen`` (giving the effective length of a string, ignoring ANSI control codes)
+* ``ansi_terminate_lines`` (propagates control codes though a list of strings/lines
+ and terminates each line.)
+* ``strip_color`` (removes ANSI control codes from a string)
+
+See also the enclosed ``demo.py``.
+
+.. image:: https://content.screencast.com/users/jonathaneunice/folders/Jing/media/8db64be2-01cc-4da4-b46a-789c53c63b44/00000569.png
+ :align: center
+
+
+%package help
+Summary: Development documents and examples for ansiwrap
+Provides: python3-ansiwrap-doc
+%description help
+
+| |travisci| |version| |versions| |impls| |wheel| |coverage|
+
+.. |travisci| image:: https://api.travis-ci.org/jonathaneunice/ansiwrap.svg
+ :target: http://travis-ci.org/jonathaneunice/ansiwrap
+
+.. |version| image:: http://img.shields.io/pypi/v/ansiwrap.svg?style=flat
+ :alt: PyPI Package latest release
+ :target: https://pypi.python.org/pypi/ansiwrap
+
+.. |versions| image:: https://img.shields.io/pypi/pyversions/ansiwrap.svg
+ :alt: Supported versions
+ :target: https://pypi.python.org/pypi/ansiwrap
+
+.. |impls| image:: https://img.shields.io/pypi/implementation/ansiwrap.svg
+ :alt: Supported implementations
+ :target: https://pypi.python.org/pypi/ansiwrap
+
+.. |wheel| image:: https://img.shields.io/pypi/wheel/ansiwrap.svg
+ :alt: Wheel packaging support
+ :target: https://pypi.python.org/pypi/ansiwrap
+
+.. |coverage| image:: https://img.shields.io/badge/test_coverage-99%25-0000FF.svg
+ :alt: Test line coverage
+ :target: https://pypi.python.org/pypi/ansiwrap
+
+
+``ansiwrap`` wraps text, like the standard ``textwrap`` module.
+But it also correctly wraps text that contains ANSI control
+sequences that colorize or style text.
+
+Where ``textwrap`` is fooled by the raw string length of those control codes,
+``ansiwrap`` is not; it understands that however much those codes affect color
+and display style, they have no logical length.
+
+The API mirrors the ``wrap``, ``fill``, and ``shorten``
+functions of ``textwrap``. For example::
+
+ from __future__ import print_function
+ from colors import * # ansicolors on PyPI
+ from ansiwrap import *
+
+ s = ' '.join([red('this string'),
+ blue('is going on a bit long'),
+ green('and may need to be'),
+ color('shortened a bit', fg='purple')])
+
+ print('-- original string --')
+ print(s)
+ print('-- now filled --')
+ print(fill(s, 20))
+ print('-- now shortened / truncated --')
+ print(shorten(s, 20, placeholder='...'))
+
+It also exports several other functions:
+
+* ``ansilen`` (giving the effective length of a string, ignoring ANSI control codes)
+* ``ansi_terminate_lines`` (propagates control codes though a list of strings/lines
+ and terminates each line.)
+* ``strip_color`` (removes ANSI control codes from a string)
+
+See also the enclosed ``demo.py``.
+
+.. image:: https://content.screencast.com/users/jonathaneunice/folders/Jing/media/8db64be2-01cc-4da4-b46a-789c53c63b44/00000569.png
+ :align: center
+
+
+%prep
+%autosetup -n ansiwrap-0.8.4
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-ansiwrap -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Mar 07 2023 Python_Bot <Python_Bot@openeuler.org> - 0.8.4-1
+- Package Spec generated