%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
* Fri Apr 21 2023 Python_Bot <Python_Bot@openeuler.org> - 0.8.4-1
- Package Spec generated