%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 - 0.8.4-1 - Package Spec generated