Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package rainbow for openSUSE:Factory checked in at 2022-05-30 12:43:43 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rainbow (Old) and /work/SRC/openSUSE:Factory/.rainbow.new.2254 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rainbow" Mon May 30 12:43:43 2022 rev:3 rq:979672 version:2.8.0 Changes: -------- --- /work/SRC/openSUSE:Factory/rainbow/rainbow.changes 2020-03-11 18:51:01.987559167 +0100 +++ /work/SRC/openSUSE:Factory/.rainbow.new.2254/rainbow.changes 2022-05-30 12:44:28.320432183 +0200 @@ -1,0 +2,8 @@ +Thu May 26 18:55:31 UTC 2022 - Andreas Stieger <andreas.stie...@gmx.de> + +- update to 2.8.0: + * add support for light variant of all colors + * add builtin config for tcpdump +- Correct license to GPL-3.0-or-later and ship it in all packages + +------------------------------------------------------------------- Old: ---- rainbow-2.7.1.tar.gz New: ---- rainbow-2.8.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rainbow.spec ++++++ --- /var/tmp/diff_new_pack.WqfLxD/_old 2022-05-30 12:44:29.072433184 +0200 +++ /var/tmp/diff_new_pack.WqfLxD/_new 2022-05-30 12:44:29.080433194 +0200 @@ -1,7 +1,7 @@ # # spec file for package rainbow # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2022 SUSE LLC # Copyright (c) 2019, Martin Hauke <mar...@gmx.de> # # All modifications and additions to the file contributed by third parties @@ -18,10 +18,10 @@ Name: rainbow -Version: 2.7.1 +Version: 2.8.0 Release: 0 Summary: Colorize commands output or STDIN using patterns -License: GPL-3.0-only +License: GPL-3.0-or-later Group: System/Console URL: https://github.com/nicoulaj/rainbow Source: https://github.com/nicoulaj/rainbow/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz @@ -56,7 +56,7 @@ %prep %setup -q -sed -i 's|#!/usr/bin/python|#!/usr/bin/python3|g' scripts/rainbow +sed -i 's|#!%{_bindir}/python|#!%{_bindir}/python3|g' scripts/rainbow %build %python3_build @@ -76,9 +76,11 @@ %{_mandir}/man1/%{name}.1%{?ext_man} %files bash-completion +%license COPYING %{_datadir}/bash-completion/completions/%{name} %files zsh-completion +%license COPYING %dir %{_sysconfdir}/zsh_completion.d %config %{_sysconfdir}/zsh_completion.d/%{name} ++++++ rainbow-2.7.1.tar.gz -> rainbow-2.8.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/.github/dependabot.yml new/rainbow-2.8.0/.github/dependabot.yml --- old/rainbow-2.7.1/.github/dependabot.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/rainbow-2.8.0/.github/dependabot.yml 2022-01-09 20:56:55.000000000 +0100 @@ -0,0 +1,13 @@ +version: 2 + +updates: + + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: weekly + + - package-ecosystem: pip + directory: "/" + schedule: + interval: weekly diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/.github/workflows/benchmarks.yml new/rainbow-2.8.0/.github/workflows/benchmarks.yml --- old/rainbow-2.7.1/.github/workflows/benchmarks.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/rainbow-2.8.0/.github/workflows/benchmarks.yml 2022-01-09 20:56:55.000000000 +0100 @@ -0,0 +1,27 @@ +name: Benchmarks + +on: [push, pull_request] + +jobs: + benchmark: + + name: 'benchmarks' + + runs-on: 'ubuntu-latest' + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.10' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install tox + + - name: Run benchmarks + run: tox -e benchmarks diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/.github/workflows/lint.yml new/rainbow-2.8.0/.github/workflows/lint.yml --- old/rainbow-2.7.1/.github/workflows/lint.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/rainbow-2.8.0/.github/workflows/lint.yml 2022-01-09 20:56:55.000000000 +0100 @@ -0,0 +1,27 @@ +name: Lint + +on: [push, pull_request] + +jobs: + lint: + + name: 'lint' + + runs-on: 'ubuntu-latest' + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.10' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install tox + + - name: Run checks + run: tox -e lint diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/.github/workflows/packages.yml new/rainbow-2.8.0/.github/workflows/packages.yml --- old/rainbow-2.7.1/.github/workflows/packages.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/rainbow-2.8.0/.github/workflows/packages.yml 2022-01-09 20:56:55.000000000 +0100 @@ -0,0 +1,39 @@ +name: Packages + +on: + push: + pull_request: + release: + types: [released] + +jobs: + + python-packages: + + name: 'wheel' + + runs-on: 'ubuntu-latest' + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.10' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install wheel + + - name: Build source distribution and wheel package + run: python setup.py sdist bdist_wheel + + - name: Publish on PyPI repository + if: github.event_name == 'release' && github.event.action == 'released' + uses: pypa/gh-action-pypi-publish@release/v1 + with: + user: __token__ + password: ${{ secrets.PYPI_API_TOKEN }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/.github/workflows/tests.yml new/rainbow-2.8.0/.github/workflows/tests.yml --- old/rainbow-2.7.1/.github/workflows/tests.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/rainbow-2.8.0/.github/workflows/tests.yml 2022-01-09 20:56:55.000000000 +0100 @@ -0,0 +1,48 @@ +name: Tests + +on: [push, pull_request] + +jobs: + test: + + strategy: + fail-fast: false + matrix: + os: [ 'ubuntu-latest', 'macos-latest' ] + python: [ '3.6', '3.7', '3.8', '3.9', '3.10', 'pypy-3.6', 'pypy-3.7', 'pypy-3.8' ] + + runs-on: ${{ matrix.os }} + + name: ${{ matrix.os }} - python ${{ matrix.python }} + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Set up Python ${{ matrix.python }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python }} + + - name: Set up pip cache + uses: actions/cache@v2 + with: + path: ~/.cache/pip + key: ${{ matrix.os }}-pip + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install tox tox-gh-actions + + - name: Run tests + run: tox + + - name: Publish code coverage to CodeClimate + uses: paambaati/codeclimate-action@v3.0.0 + if: matrix.os == 'ubuntu-latest' && matrix.python == '3.10' + continue-on-error: true + with: + coverageLocations: ${{github.workspace}}/build/tests/*/reports/coverage.xml:coverage.py + env: + CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/.gitignore new/rainbow-2.8.0/.gitignore --- old/rainbow-2.7.1/.gitignore 2018-09-29 21:21:00.000000000 +0200 +++ new/rainbow-2.8.0/.gitignore 2022-01-09 20:56:55.000000000 +0100 @@ -36,3 +36,6 @@ .coverage.* out/ .pytest_cache/ +*.rpm +*.deb +*.tar.* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/.travis.yml new/rainbow-2.8.0/.travis.yml --- old/rainbow-2.7.1/.travis.yml 2018-09-29 21:21:00.000000000 +0200 +++ new/rainbow-2.8.0/.travis.yml 1970-01-01 01:00:00.000000000 +0100 @@ -1,84 +0,0 @@ -# ---------------------------------------------------------------------- -# rainbow, a terminal colorizer - https://github.com/nicoulaj/rainbow -# copyright (c) 2010-2018 rainbow contributors -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -# ---------------------------------------------------------------------- - -sudo: false - -language: python - -cache: pip - -matrix: - include: - - python: 2.7 - - python: 3.4 - - python: 3.5 - - python: 3.6 - - python: 3.7 - dist: xenial - sudo: true - - python: 3.8-dev - dist: xenial - sudo: true - - python: nightly - dist: xenial - sudo: true - - python: pypy - - python: pypy3 - allow_failures: - - python: 3.8-dev - - python: nightly - -install: - - pip install tox-travis codeclimate-test-reporter - -script: - - tox - - tox -e lint - - tox -e benchmarks - -after_success: - - bash <(curl -s https://codecov.io/bash) - - codeclimate-test-reporter - -deploy: - provider: pypi - distributions: sdist bdist_wheel - user: nicoulaj - password: - secure: "PH03sct2gKSxhfefRCNVYUqHGi5gPxBfMBe4ZIdNXR6WbfoLn/tOv1MkIasptABMHkhuSJ+Rr7o4GfsCXUmSuOPdMx9xsFhWyA/HBAeHRJpg4auDPUNIxGn89YJNVsWipJhL9vxjEXhuI1ySzaPR2KQ7wgYa6rfT9yGn34aQUBA=" - on: - tags: true - python: 3.6 - -addons: - code_climate: - repo_token: $CODECLIMATE_REPO_TOKEN - -notifications: - email: false - webhooks: - urls: https://webhooks.gitter.im/e/3d9dabdef1a3d8b2ae8d - irc: - channels: - - "chat.freenode.net#nicoulaj" - on_success: never - on_failure: change - on_start: never - use_notice: true - template: - - "%{repository}/%{branch}#%{build_number}: %{message} | changes : %{compare_url} | build : %{build_url}" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/README.rst new/rainbow-2.8.0/README.rst --- old/rainbow-2.7.1/README.rst 2018-09-29 21:21:00.000000000 +0200 +++ new/rainbow-2.8.0/README.rst 2022-01-09 20:56:55.000000000 +0100 @@ -13,13 +13,13 @@ :target: https://pypi.org/project/rainbow :alt: python versions -.. image:: https://travis-ci.org/nicoulaj/rainbow.svg?branch=master - :target: https://travis-ci.org/nicoulaj/rainbow +.. image:: https://github.com/nicoulaj/rainbow/actions/workflows/tests.yml/badge.svg + :target: https://github.com/nicoulaj/rainbow/actions :alt: continuous integration -.. image:: https://codecov.io/gh/nicoulaj/rainbow/branch/master/graph/badge.svg - :target: https://codecov.io/gh/nicoulaj/rainbow - :alt: test coverage +.. image:: https://api.codeclimate.com/v1/badges/724f29330eb898c7516b/test_coverage + :target: https://codeclimate.com/github/nicoulaj/rainbow/test_coverage + :alt: test Coverage .. image:: https://badges.gitter.im/nicoulaj/rainbow.svg :target: https://gitter.im/nicoulaj/rainbow diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/packagecore.yaml new/rainbow-2.8.0/packagecore.yaml --- old/rainbow-2.7.1/packagecore.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/rainbow-2.8.0/packagecore.yaml 2022-01-09 20:56:55.000000000 +0100 @@ -0,0 +1,40 @@ +name: rainbow +maintainer: Julien Nicoulaud <julien.nicoul...@gmail.com> +license: GPL3 +summary: Easily colorize commands output using patterns. +homepage: https://github.com/nicoulaj/rainbow + +commands: + compile: | + python3 -m pip install --user '.[build]' + python3 setup.py build + install: | + python3 setup.py install --prefix=/usr --root="${BP_DESTDIR}/" --optimize=1 --skip-build --single-version-externally-managed --install-lib $(python3 -c 'import site; print(site.getsitepackages()[0])') + install -v -m755 -d "${BP_DESTDIR}/etc/bash_completion.d" + install -v -m644 build/completion/rainbow "${BP_DESTDIR}/etc/bash_completion.d/" + install -v -m755 -d "${BP_DESTDIR}/usr/share/zsh/site-functions" + install -v -m644 build/completion/_rainbow "${BP_DESTDIR}/usr/share/zsh/site-functions/" + install -v -m755 -d "${BP_DESTDIR}/usr/share/man/man1" + install -v -m644 build/man/rainbow.1.gz "${pkgdir}/usr/share/man/man1/" + testinstall: | + /usr/bin/rainbow --help + /usr/bin/rainbow --version + +packages: + centos7.7: &dependencies-default + builddeps: + - python3 + - python3-pip + - python3-setuptools + deps: + - python3 + centos8.0: *dependencies-default + debian9: *dependencies-default + debian10: *dependencies-default + fedora32: *dependencies-default + opensuse.tumbleweed: *dependencies-default + opensuse42.3: *dependencies-default + opensuse15.1: *dependencies-default + opensuse15.2: *dependencies-default + ubuntu18.04: *dependencies-default + ubuntu20.04: *dependencies-default diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/rainbow/__init__.py new/rainbow-2.8.0/rainbow/__init__.py --- old/rainbow-2.7.1/rainbow/__init__.py 2018-09-29 21:21:00.000000000 +0200 +++ new/rainbow-2.8.0/rainbow/__init__.py 2022-01-09 20:56:55.000000000 +0100 @@ -28,7 +28,7 @@ __copyright__ = 'copyright 2010-2018 rainbow contributors' __license__ = 'GPLv3' __description__ = 'Colorize commands output using patterns.' -__version__ = '2.7.1' +__version__ = '2.8.0' LOGGER = logging.getLogger(__prog__) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/rainbow/ansi.py new/rainbow-2.8.0/rainbow/ansi.py --- old/rainbow-2.7.1/rainbow/ansi.py 2018-09-29 21:21:00.000000000 +0200 +++ new/rainbow-2.8.0/rainbow/ansi.py 2022-01-09 20:56:55.000000000 +0100 @@ -17,19 +17,29 @@ # ---------------------------------------------------------------------- ANSI_FOREGROUND_RED = chr(27) + '[31m' +ANSI_FOREGROUND_LIGHT_RED = chr(27) + '[91m' ANSI_FOREGROUND_GREEN = chr(27) + '[32m' +ANSI_FOREGROUND_LIGHT_GREEN = chr(27) + '[92m' ANSI_FOREGROUND_YELLOW = chr(27) + '[33m' +ANSI_FOREGROUND_LIGHT_YELLOW = chr(27) + '[93m' ANSI_FOREGROUND_BLUE = chr(27) + '[34m' +ANSI_FOREGROUND_LIGHT_BLUE = chr(27) + '[94m' ANSI_FOREGROUND_MAGENTA = chr(27) + '[35m' ANSI_FOREGROUND_CYAN = chr(27) + '[36m' +ANSI_FOREGROUND_LIGHT_CYAN = chr(27) + '[96m' ANSI_FOREGROUND_RESET = chr(27) + '[39m' ANSI_BACKGROUND_RED = chr(27) + '[41m' +ANSI_BACKGROUND_LIGHT_RED = chr(27) + '[101m' ANSI_BACKGROUND_GREEN = chr(27) + '[42m' +ANSI_BACKGROUND_LIGHT_GREEN = chr(27) + '[102m' ANSI_BACKGROUND_YELLOW = chr(27) + '[43m' +ANSI_BACKGROUND_LIGHT_YELLOW = chr(27) + '[103m' ANSI_BACKGROUND_BLUE = chr(27) + '[44m' +ANSI_BACKGROUND_LIGHT_BLUE = chr(27) + '[104m' ANSI_BACKGROUND_MAGENTA = chr(27) + '[45m' ANSI_BACKGROUND_CYAN = chr(27) + '[46m' +ANSI_BACKGROUND_LIGHT_CYAN = chr(27) + '[106m' ANSI_BACKGROUND_RESET = chr(27) + '[49m' ANSI_BOLD = chr(27) + '[1m' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/rainbow/build.py new/rainbow-2.8.0/rainbow/build.py --- old/rainbow-2.7.1/rainbow/build.py 2018-09-29 21:21:00.000000000 +0200 +++ new/rainbow-2.8.0/rainbow/build.py 2022-01-09 20:56:55.000000000 +0100 @@ -22,7 +22,6 @@ import logging import os import shutil -from distutils import log from distutils.command.build import build from distutils.command.clean import clean from distutils.core import Command @@ -42,15 +41,15 @@ class Clean(clean): # no cover - def __init__(self, dist, **kwargs): - self.paths = None - clean.__init__(self, dist, **kwargs) + def __init__(self, dist): + clean.__init__(self, dist) self.user_options += [ ('paths=', 'p', 'paths'), ] def initialize_options(self): - clean.initialize_options(self) + super(clean, self).initialize_options() + self.paths = None def finalize_options(self): clean.finalize_options(self) @@ -64,10 +63,10 @@ if os.path.isdir(path): remove_tree(path) elif os.path.isfile(path): - log.info("removing '%s'", path) + self.announce("removing '%s'" % path) os.remove(path) else: - log.info("'%s' does not exist -- can't clean it", path) + self.announce("'%s' does not exist -- can't clean it" % path) class GenerateCompletion(Command): @@ -78,13 +77,9 @@ ('output=', 'O', 'output file') ] - def __init__(self, dist, **kwargs): + def initialize_options(self): self.shell = None self.output = None - Command.__init__(self, dist, **kwargs) - - def initialize_options(self): - pass def finalize_options(self): if self.shell is None: # no cover @@ -114,12 +109,8 @@ ('output=', 'O', 'output file') ] - def __init__(self, dist, **kwargs): - self.output = None - Command.__init__(self, dist, **kwargs) - def initialize_options(self): - pass + self.output = None def finalize_options(self): if self.output is None: # no cover diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/rainbow/config/builtin/tcpdump.cfg new/rainbow-2.8.0/rainbow/config/builtin/tcpdump.cfg --- old/rainbow-2.7.1/rainbow/config/builtin/tcpdump.cfg 1970-01-01 01:00:00.000000000 +0100 +++ new/rainbow-2.8.0/rainbow/config/builtin/tcpdump.cfg 2022-01-09 20:56:55.000000000 +0100 @@ -0,0 +1,36 @@ +[filters] +# IPv4 address+port: +reset-all-after: (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,5}|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) +magenta-before: \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} +blue-after: \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\. +reset-after: \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} + +# MAC address: +yellow: ([0-9a-f]{2}\:){5}[0-9a-f]{2} + +# TCP/UDP flags: +# 1. TCP Flags +# 2. UDP indicator +# 3. UDP indicator with checksum indicator +# Note: Bare "[udp sum ok]" is highlighted because tcpdump will +# sometimes omit the "UDP" +cyan: (?<=Flags )\[[SP\.RFU]+\] + (?<=\: )UDP + (?<=\: )\[udp sum ok\]( UDP)? + +# error conditions (UDP, TCP, IPv4): +red: (?<=\: )\[bad udp cksum.*?\] + cksum \S+ \(incorrect.*?\) + bad cksum .*?! + +# Network-layer Description (e.g. "IP") +# 1. With -e flag +# 2. With -e flag where no link layer addresses exist (e.g. VPN interface) +# 3. Without -e flag +bold: (?<=ethertype )\S+ \S+(?=,) + (?<=^\d{2}\:\d{2}\:\d{2}\.\d{6} AF )[^\s\:]+\s + (?<=^\d{2}\:\d{2}\:\d{2}\.\d{6} )[^\s\:]+\s + +# Time stamp: +faint: \d{2}\:\d{2}\:\d{2}\.\d{6} + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/rainbow/config/parser.py new/rainbow-2.8.0/rainbow/config/parser.py --- old/rainbow-2.7.1/rainbow/config/parser.py 2018-09-29 21:21:00.000000000 +0200 +++ new/rainbow-2.8.0/rainbow/config/parser.py 2022-01-09 20:56:55.000000000 +0100 @@ -80,7 +80,7 @@ elif key == 'enable-stderr-filtering': try: enable_stderr_filtering = config_parser.getboolean(section, 'enable-stderr-filtering') - except ValueError as e: + except ValueError: self.error_handler( 'Invalid value "%s" for key "%s" in config "%s"' % (value, key, config_file)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/rainbow/filter.py new/rainbow-2.8.0/rainbow/filter.py --- old/rainbow-2.7.1/rainbow/filter.py 2018-09-29 21:21:00.000000000 +0200 +++ new/rainbow-2.8.0/rainbow/filter.py 2022-01-09 20:56:55.000000000 +0100 @@ -53,24 +53,44 @@ help='print pattern in red', before=ansi.ANSI_FOREGROUND_RED, after=ansi.ANSI_FOREGROUND_RESET), + Filter(name='foreground-light-red', + long_option='lightred', + help='print pattern in light red', + before=ansi.ANSI_FOREGROUND_LIGHT_RED, + after=ansi.ANSI_FOREGROUND_RESET), Filter(name='foreground-green', short_option='g', long_option='green', help='print pattern in green', before=ansi.ANSI_FOREGROUND_GREEN, after=ansi.ANSI_FOREGROUND_RESET), + Filter(name='foreground-light-green', + long_option='lightgreen', + help='print pattern in light green', + before=ansi.ANSI_FOREGROUND_LIGHT_GREEN, + after=ansi.ANSI_FOREGROUND_RESET), Filter(name='foreground-yellow', short_option='y', long_option='yellow', help='print pattern in yellow', before=ansi.ANSI_FOREGROUND_YELLOW, after=ansi.ANSI_FOREGROUND_RESET), + Filter(name='foreground-light-yellow', + long_option='lightyellow', + help='print pattern in light yellow', + before=ansi.ANSI_FOREGROUND_LIGHT_YELLOW, + after=ansi.ANSI_FOREGROUND_RESET), Filter(name='foreground-blue', short_option='b', long_option='blue', help='print pattern in blue', before=ansi.ANSI_FOREGROUND_BLUE, after=ansi.ANSI_FOREGROUND_RESET), + Filter(name='foreground-light-blue', + long_option='lightblue', + help='print pattern in light blue', + before=ansi.ANSI_FOREGROUND_LIGHT_BLUE, + after=ansi.ANSI_FOREGROUND_RESET), Filter(name='foreground-magenta', short_option='m', long_option='magenta', @@ -83,22 +103,43 @@ help='print pattern in cyan', before=ansi.ANSI_FOREGROUND_CYAN, after=ansi.ANSI_FOREGROUND_RESET), + Filter(name='foreground-light-cyan', + long_option='lightcyan', + help='print pattern in light cyan', + before=ansi.ANSI_FOREGROUND_LIGHT_CYAN, + after=ansi.ANSI_FOREGROUND_RESET), Filter(name='foreground-red-before', long_option='red-before', help='toggle foreground to red on beginning of pattern', before=ansi.ANSI_FOREGROUND_RED), + Filter(name='foreground-light-red-before', + long_option='lightred-before', + help='toggle foreground to light red on beginning of pattern', + before=ansi.ANSI_FOREGROUND_LIGHT_RED), Filter(name='foreground-green-before', long_option='green-before', help='toggle foreground to green on beginning of pattern', before=ansi.ANSI_FOREGROUND_GREEN), + Filter(name='foreground-light-green-before', + long_option='lightgreen-before', + help='toggle foreground to light green on beginning of pattern', + before=ansi.ANSI_FOREGROUND_LIGHT_GREEN), Filter(name='foreground-yellow-before', long_option='yellow-before', help='toggle foreground to yellow on beginning of pattern', before=ansi.ANSI_FOREGROUND_YELLOW), + Filter(name='foreground-light-yellow-before', + long_option='lightyellow-before', + help='toggle foreground to light yellow on beginning of pattern', + before=ansi.ANSI_FOREGROUND_LIGHT_YELLOW), Filter(name='foreground-blue-before', long_option='blue-before', help='toggle foreground to blue on beginning of pattern', before=ansi.ANSI_FOREGROUND_BLUE), + Filter(name='foreground-light-blue-before', + long_option='lightblue-before', + help='toggle foreground to light blue on beginning of pattern', + before=ansi.ANSI_FOREGROUND_LIGHT_BLUE), Filter(name='foreground-magenta-before', long_option='magenta-before', help='toggle foreground to magenta on beginning of pattern', @@ -107,6 +148,10 @@ long_option='cyan-before', help='toggle foreground to cyan on beginning of pattern', before=ansi.ANSI_FOREGROUND_CYAN), + Filter(name='foreground-light-cyan-before', + long_option='lightcyan-before', + help='toggle foreground to light cyan on beginning of pattern', + before=ansi.ANSI_FOREGROUND_LIGHT_CYAN), Filter(name='foreground-reset-before', long_option='reset-before', help='reset foreground color on beginning of pattern', @@ -115,18 +160,34 @@ long_option='red-after', help='toggle foreground to red on end of pattern', after=ansi.ANSI_FOREGROUND_RED), + Filter(name='foreground-light-red-after', + long_option='lightred-after', + help='toggle foreground to light red on end of pattern', + after=ansi.ANSI_FOREGROUND_LIGHT_RED), Filter(name='foreground-green-after', long_option='green-after', help='toggle foreground to green on end of pattern', after=ansi.ANSI_FOREGROUND_GREEN), + Filter(name='foreground-light-green-after', + long_option='lightgreen-after', + help='toggle foreground to light green on end of pattern', + after=ansi.ANSI_FOREGROUND_LIGHT_GREEN), Filter(name='foreground-yellow-after', long_option='yellow-after', help='toggle foreground to yellow on end of pattern', after=ansi.ANSI_FOREGROUND_YELLOW), + Filter(name='foreground-light-yellow-after', + long_option='lightyellow-after', + help='toggle foreground to light yellow on end of pattern', + after=ansi.ANSI_FOREGROUND_LIGHT_YELLOW), Filter(name='foreground-blue-after', long_option='blue-after', help='toggle foreground to blue on end of pattern', after=ansi.ANSI_FOREGROUND_BLUE), + Filter(name='foreground-light-blue-after', + long_option='lightblue-after', + help='toggle foreground to light blue on end of pattern', + after=ansi.ANSI_FOREGROUND_LIGHT_BLUE), Filter(name='foreground-magenta-after', long_option='magenta-after', help='toggle foreground to magenta on end of pattern', @@ -135,6 +196,10 @@ long_option='cyan-after', help='toggle foreground to cyan on end of pattern', after=ansi.ANSI_FOREGROUND_CYAN), + Filter(name='foreground-light-cyan-after', + long_option='lightcyan-after', + help='toggle foreground to light cyan on end of pattern', + after=ansi.ANSI_FOREGROUND_LIGHT_CYAN), Filter(name='foreground-reset-after', long_option='reset-after', help='reset foreground color on end of pattern', @@ -150,21 +215,41 @@ help='print pattern with red background', before=ansi.ANSI_BACKGROUND_RED, after=ansi.ANSI_BACKGROUND_RESET), + Filter(name='background-light-red', + long_option='background-lightred', + help='print pattern with light red background', + before=ansi.ANSI_BACKGROUND_LIGHT_RED, + after=ansi.ANSI_BACKGROUND_RESET), Filter(name='background-green', long_option='background-green', help='print pattern with green background', before=ansi.ANSI_BACKGROUND_GREEN, after=ansi.ANSI_BACKGROUND_RESET), + Filter(name='background-light-green', + long_option='background-lightgreen', + help='print pattern with light green background', + before=ansi.ANSI_BACKGROUND_LIGHT_GREEN, + after=ansi.ANSI_BACKGROUND_RESET), Filter(name='background-yellow', long_option='background-yellow', help='print pattern with yellow background', before=ansi.ANSI_BACKGROUND_YELLOW, after=ansi.ANSI_BACKGROUND_RESET), + Filter(name='background-light-yellow', + long_option='background-lightyellow', + help='print pattern with light yellow background', + before=ansi.ANSI_BACKGROUND_LIGHT_YELLOW, + after=ansi.ANSI_BACKGROUND_RESET), Filter(name='background-blue', long_option='background-blue', help='print pattern with blue background', before=ansi.ANSI_BACKGROUND_BLUE, after=ansi.ANSI_BACKGROUND_RESET), + Filter(name='background-light-blue', + long_option='background-lightblue', + help='print pattern with light blue background', + before=ansi.ANSI_BACKGROUND_LIGHT_BLUE, + after=ansi.ANSI_BACKGROUND_RESET), Filter(name='background-magenta', long_option='background-magenta', help='print pattern with magenta background', @@ -175,22 +260,43 @@ help='print pattern with cyan background', before=ansi.ANSI_BACKGROUND_CYAN, after=ansi.ANSI_BACKGROUND_RESET), + Filter(name='background-light-cyan', + long_option='background-lightcyan', + help='print pattern with light cyan background', + before=ansi.ANSI_BACKGROUND_LIGHT_CYAN, + after=ansi.ANSI_BACKGROUND_RESET), Filter(name='background-red-before', long_option='background-red-before', help='toggle background to red on beginning of pattern', before=ansi.ANSI_BACKGROUND_RED), + Filter(name='background-light-red-before', + long_option='background-lightred-before', + help='toggle background to light red on beginning of pattern', + before=ansi.ANSI_BACKGROUND_LIGHT_RED), Filter(name='background-green-before', long_option='background-green-before', help='toggle background to green on beginning of pattern', before=ansi.ANSI_BACKGROUND_GREEN), + Filter(name='background-light-green-before', + long_option='background-lightgreen-before', + help='toggle background to light green on beginning of pattern', + before=ansi.ANSI_BACKGROUND_LIGHT_GREEN), Filter(name='background-yellow-before', long_option='background-yellow-before', help='toggle background to yellow on beginning of pattern', before=ansi.ANSI_BACKGROUND_YELLOW), + Filter(name='background-light-yellow-before', + long_option='background-lightyellow-before', + help='toggle background to light yellow on beginning of pattern', + before=ansi.ANSI_BACKGROUND_LIGHT_YELLOW), Filter(name='background-blue-before', long_option='background-blue-before', help='toggle background to blue on beginning of pattern', before=ansi.ANSI_BACKGROUND_BLUE), + Filter(name='background-light-blue-before', + long_option='background-lightblue-before', + help='toggle background to light blue on beginning of pattern', + before=ansi.ANSI_BACKGROUND_LIGHT_BLUE), Filter(name='background-magenta-before', long_option='background-magenta-before', help='toggle background to magenta on beginning of pattern', @@ -199,6 +305,10 @@ long_option='background-cyan-before', help='toggle background to cyan on beginning of pattern', before=ansi.ANSI_BACKGROUND_CYAN), + Filter(name='background-light-cyan-before', + long_option='background-lightcyan-before', + help='toggle background to light cyan on beginning of pattern', + before=ansi.ANSI_BACKGROUND_LIGHT_CYAN), Filter(name='background-reset-before', long_option='background-reset-before', help='reset background color on beginning of pattern', @@ -207,18 +317,34 @@ long_option='background-red-after', help='toggle background to red on end of pattern', after=ansi.ANSI_BACKGROUND_RED), + Filter(name='background-light-red-after', + long_option='background-lightred-after', + help='toggle background to light red on end of pattern', + after=ansi.ANSI_BACKGROUND_LIGHT_RED), Filter(name='background-green-after', long_option='background-green-after', help='toggle background to green on end of pattern', after=ansi.ANSI_BACKGROUND_GREEN), + Filter(name='background-light-green-after', + long_option='background-lightgreen-after', + help='toggle background to light green on end of pattern', + after=ansi.ANSI_BACKGROUND_LIGHT_GREEN), Filter(name='background-yellow-after', long_option='background-yellow-after', help='toggle background to yellow on end of pattern', after=ansi.ANSI_BACKGROUND_YELLOW), + Filter(name='background-light-yellow-after', + long_option='background-lightyellow-after', + help='toggle background to light yellow on end of pattern', + after=ansi.ANSI_BACKGROUND_LIGHT_YELLOW), Filter(name='background-blue-after', long_option='background-blue-after', help='toggle background to blue on end of pattern', after=ansi.ANSI_BACKGROUND_BLUE), + Filter(name='background-light-blue-after', + long_option='background-lightblue-after', + help='toggle background to light blue on end of pattern', + after=ansi.ANSI_BACKGROUND_LIGHT_BLUE), Filter(name='background-magenta-after', long_option='background-magenta-after', help='toggle background to magenta on end of pattern', @@ -227,6 +353,10 @@ long_option='background-cyan-after', help='toggle background to cyan on end of pattern', after=ansi.ANSI_BACKGROUND_CYAN), + Filter(name='background-light-cyan-after', + long_option='background-lightcyan-after', + help='toggle background to light cyan on end of pattern', + after=ansi.ANSI_BACKGROUND_LIGHT_CYAN), Filter(name='background-reset-after', long_option='background-reset-after', help='reset background color on end of pattern', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/scripts/rainbow new/rainbow-2.8.0/scripts/rainbow --- old/rainbow-2.7.1/scripts/rainbow 2018-09-29 21:21:00.000000000 +0200 +++ new/rainbow-2.8.0/scripts/rainbow 2022-01-09 20:56:55.000000000 +0100 @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 # ---------------------------------------------------------------------- # rainbow, a terminal colorizer - https://github.com/nicoulaj/rainbow # copyright (c) 2010-2018 rainbow contributors diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/setup.cfg new/rainbow-2.8.0/setup.cfg --- old/rainbow-2.7.1/setup.cfg 2018-09-29 21:21:00.000000000 +0200 +++ new/rainbow-2.8.0/setup.cfg 2022-01-09 20:56:55.000000000 +0100 @@ -37,3 +37,6 @@ [bdist_wheel] universal = 1 + +[flake8] +max-line-length = 120 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/setup.py new/rainbow-2.8.0/setup.py --- old/rainbow-2.7.1/setup.py 2018-09-29 21:21:00.000000000 +0200 +++ new/rainbow-2.8.0/setup.py 2022-01-09 20:56:55.000000000 +0100 @@ -45,35 +45,33 @@ 'Intended Audience :: System Administrators', 'Natural Language :: English', 'Programming Language :: Python', - 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.4', - 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: Implementation :: CPython', 'Programming Language :: Python :: Implementation :: PyPy', 'License :: OSI Approved :: GNU General Public License (GPL)' ], packages=find_packages(exclude=['tests*']), include_package_data=True, + python_requires='>=3.6', extras_require={ 'build': [ - 'Jinja2==2.7.2', + 'Jinja2==3.0.3', ], 'test': [ - # stuck on pytest 3.2.x until next pytest-benchmark release, see - # https://github.com/ionelmc/pytest-benchmark/commit/cb3ea794bf6019efb63190fa5cc4e53067d87f0a - 'pytest==3.2.5', - 'coverage==4.5.1', - 'pytest-cov==2.6.0', - 'pytest-html==1.17.0', - 'pytest-timeout==1.2.1', - 'pytest-flake8==1.0.0', - 'pytest-benchmark==3.1.1', - 'pygal==2.4.0', - 'pygaljs==1.0.1' + 'pytest==6.2.5', + 'coverage==6.2', + 'pytest-cov==3.0.0', + 'pytest-html==3.1.1', + 'pytest-timeout==2.0.2', + 'flake8==4.0.1', + 'pygal==3.0.0', + 'pygaljs==1.0.2', + 'pytest-benchmark==3.4.1' ] }, scripts=['scripts/rainbow'], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/tests/config/test_builtin.py new/rainbow-2.8.0/tests/config/test_builtin.py --- old/rainbow-2.7.1/tests/config/test_builtin.py 2018-09-29 21:21:00.000000000 +0200 +++ new/rainbow-2.8.0/tests/config/test_builtin.py 2022-01-09 20:56:55.000000000 +0100 @@ -20,12 +20,20 @@ import pytest -from rainbow.ansi import ANSI_BACKGROUND_BLUE, ANSI_BACKGROUND_CYAN, ANSI_BACKGROUND_GREEN, ANSI_BACKGROUND_MAGENTA, \ - ANSI_BACKGROUND_RED, ANSI_BACKGROUND_RESET, ANSI_BACKGROUND_YELLOW, ANSI_BLINK, ANSI_BLINK_RAPID, ANSI_BOLD, \ - ANSI_FAINT, ANSI_FOREGROUND_BLUE, ANSI_FOREGROUND_CYAN, ANSI_FOREGROUND_GREEN, ANSI_FOREGROUND_MAGENTA, \ - ANSI_FOREGROUND_RED, ANSI_FOREGROUND_RESET, ANSI_FOREGROUND_YELLOW, ANSI_HIDE, ANSI_ITALIC, ANSI_NEGATIVE, \ - ANSI_RESET_ALL, ANSI_RESET_BLINK, ANSI_RESET_HIDE, ANSI_RESET_INTENSITY, ANSI_RESET_ITALIC, ANSI_RESET_NEGATIVE, \ - ANSI_RESET_UNDERLINE, ANSI_UNDERLINE, ANSI_UNDERLINE_DOUBLE +from rainbow.ansi import ANSI_BACKGROUND_BLUE, ANSI_BACKGROUND_CYAN, \ + ANSI_BACKGROUND_GREEN, ANSI_BACKGROUND_MAGENTA, ANSI_BACKGROUND_RED, \ + ANSI_BACKGROUND_RESET, ANSI_BACKGROUND_YELLOW, ANSI_BACKGROUND_LIGHT_RED, \ + ANSI_BACKGROUND_LIGHT_GREEN, ANSI_BACKGROUND_LIGHT_YELLOW, \ + ANSI_BACKGROUND_LIGHT_BLUE, ANSI_BACKGROUND_LIGHT_CYAN, ANSI_BLINK, \ + ANSI_BLINK_RAPID, ANSI_BOLD, ANSI_FAINT, ANSI_FOREGROUND_BLUE, \ + ANSI_FOREGROUND_CYAN, ANSI_FOREGROUND_GREEN, ANSI_FOREGROUND_MAGENTA, \ + ANSI_FOREGROUND_RED, ANSI_FOREGROUND_RESET, ANSI_FOREGROUND_YELLOW, \ + ANSI_FOREGROUND_LIGHT_RED, ANSI_FOREGROUND_LIGHT_GREEN, \ + ANSI_FOREGROUND_LIGHT_YELLOW, ANSI_FOREGROUND_LIGHT_BLUE, \ + ANSI_FOREGROUND_LIGHT_CYAN, ANSI_HIDE, ANSI_ITALIC, ANSI_NEGATIVE, \ + ANSI_RESET_ALL, ANSI_RESET_BLINK, ANSI_RESET_HIDE, ANSI_RESET_INTENSITY, \ + ANSI_RESET_ITALIC, ANSI_RESET_NEGATIVE, ANSI_RESET_UNDERLINE, \ + ANSI_UNDERLINE, ANSI_UNDERLINE_DOUBLE from rainbow.config.loader import ConfigLoader from rainbow.transformer import DummyTransformerBuilder, TransformerBuilder, ListTransformer, ReplaceTransformer from tests.test_utils import BUILTIN_CONFIGS_NAMES, BUILTIN_CONFIGS_REFERENCES, BUILTIN_CONFIGS_REFERENCE_PAIRS @@ -42,7 +50,7 @@ stderr_builder=DummyTransformerBuilder(), paths=['rainbow/config/builtin'], error_handler=errors.append) \ - .load_config_by_name(config, ) + .load_config_by_name(config) return stdout_builder.build(), errors @@ -79,12 +87,22 @@ ReplaceTransformer(ANSI_FOREGROUND_MAGENTA, '[FOREGROUND_MAGENTA]'), ReplaceTransformer(ANSI_FOREGROUND_CYAN, '[FOREGROUND_CYAN]'), ReplaceTransformer(ANSI_FOREGROUND_RESET, '[FOREGROUND_RESET]'), + ReplaceTransformer(ANSI_FOREGROUND_LIGHT_RED, '[FOREGROUND_LIGHT_RED]'), + ReplaceTransformer(ANSI_FOREGROUND_LIGHT_GREEN, '[FOREGROUND_LIGHT_GREEN]'), + ReplaceTransformer(ANSI_FOREGROUND_LIGHT_YELLOW, '[FOREGROUND_LIGHT_YELLOW]'), + ReplaceTransformer(ANSI_FOREGROUND_LIGHT_BLUE, '[FOREGROUND_LIGHT_BLUE]'), + ReplaceTransformer(ANSI_FOREGROUND_LIGHT_CYAN, '[ANSI_FOREGROUND_LIGHT_CYAN]'), ReplaceTransformer(ANSI_BACKGROUND_RED, '[BACKGROUND_RED]'), ReplaceTransformer(ANSI_BACKGROUND_GREEN, '[BACKGROUND_GREEN]'), ReplaceTransformer(ANSI_BACKGROUND_YELLOW, '[BACKGROUND_YELLOW]'), ReplaceTransformer(ANSI_BACKGROUND_BLUE, '[BACKGROUND_BLUE]'), ReplaceTransformer(ANSI_BACKGROUND_MAGENTA, '[BACKGROUND_MAGENTA]'), ReplaceTransformer(ANSI_BACKGROUND_CYAN, '[BACKGROUND_CYAN]'), + ReplaceTransformer(ANSI_BACKGROUND_LIGHT_RED, '[BACKGROUND_LIGHT_RED]'), + ReplaceTransformer(ANSI_BACKGROUND_LIGHT_GREEN, '[BACKGROUND_LIGHT_GREEN]'), + ReplaceTransformer(ANSI_BACKGROUND_LIGHT_YELLOW, '[BACKGROUND_LIGHT_YELLOW]'), + ReplaceTransformer(ANSI_BACKGROUND_LIGHT_BLUE, '[BACKGROUND_LIGHT_BLUE]'), + ReplaceTransformer(ANSI_BACKGROUND_LIGHT_CYAN, '[BACKGROUND_LIGHT_CYAN]'), ReplaceTransformer(ANSI_BACKGROUND_RESET, '[BACKGROUND_RESET]'), ReplaceTransformer(ANSI_BOLD, '[BOLD]'), ReplaceTransformer(ANSI_FAINT, '[FAINT]'), @@ -105,7 +123,7 @@ ]) with open(input_file) as f: - actual_lines = [transformer.transform(l) for l in f.read().splitlines()] + actual_lines = [transformer.transform(line) for line in f.read().splitlines()] if GENERATE_REFERENCES: with open(expected_file, 'w') as f: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/tests/config/test_loader.py new/rainbow-2.8.0/tests/config/test_loader.py --- old/rainbow-2.7.1/tests/config/test_loader.py 2018-09-29 21:21:00.000000000 +0200 +++ new/rainbow-2.8.0/tests/config/test_loader.py 2022-01-09 20:56:55.000000000 +0100 @@ -57,14 +57,14 @@ def test_load_empty_config_file(): - (stdout_transformer, stderr_transformer, errors) = load_by_name('tests/data/cfg/config001.cfg') + (stdout_transformer, stderr_transformer, errors) = load_by_name(u'tests/data/cfg/config001.cfg') assert not errors assert isinstance(stdout_transformer, IdentityTransformer) assert isinstance(stderr_transformer, IdentityTransformer) def test_load_empty_config_file_from_command_line(): - (stdout_transformer, stderr_transformer, errors) = load_from_command_line(['config001']) + (stdout_transformer, stderr_transformer, errors) = load_from_command_line([u'config001']) assert not errors assert isinstance(stdout_transformer, IdentityTransformer) assert isinstance(stderr_transformer, IdentityTransformer) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/tests/data/cfg/config031.cfg new/rainbow-2.8.0/tests/data/cfg/config031.cfg --- old/rainbow-2.7.1/tests/data/cfg/config031.cfg 2018-09-29 21:21:00.000000000 +0200 +++ new/rainbow-2.8.0/tests/data/cfg/config031.cfg 2022-01-09 20:56:55.000000000 +0100 @@ -20,68 +20,128 @@ foreground-red: test r: test red: test +foreground-light-red: test +lightred: test foreground-green: test g: test green: test +foreground-light-green: test +lightgreen: test foreground-yellow: test y: test yellow: test +foreground-light-yellow: test +lightyellow: test foreground-blue: test b: test blue: test +foreground-light-blue: test +lightblue: test foreground-magenta: test m: test magenta: test foreground-cyan: test c: test cyan: test +foreground-light-cyan: test +lightcyan: test foreground-red-before: test red-before: test +foreground-light-red-before: test +lightred-before: test foreground-green-before: test green-before: test +foreground-light-green-before: test +lightgreen-before: test foreground-yellow-before: test yellow-before: test +foreground-light-yellow-before: test +lightyellow-before: test foreground-blue-before: test blue-before: test foreground-magenta-before: test +foreground-light-blue-before: test +lightblue-before: test magenta-before: test foreground-cyan-before: test cyan-before: test +foreground-light-cyan-before: test +lightcyan-before: test foreground-reset-before: test reset-before: test foreground-red-after: test red-after: test +foreground-light-red-after: test +lightred-after: test foreground-green-after: test green-after: test +foreground-light-green-after: test +lightgreen-after: test foreground-yellow-after: test yellow-after: test +foreground-light-yellow-after: test +lightyellow-after: test foreground-blue-after: test blue-after: test +foreground-light-blue-after: test +lightblue-after: test foreground-magenta-after: test magenta-after: test foreground-cyan-after: test cyan-after: test +foreground-light-cyan-after: test +lightcyan-after: test foreground-reset-after: test reset-after: test background-red: test +background-light-red: test +background-lightred: test background-green: test +background-light-green: test +background-lightgreen: test background-yellow: test +background-light-yellow: test +background-lightyellow: test background-blue: test +background-light-blue: test +background-lightblue: test background-magenta: test background-cyan: test +background-light-cyan: test +background-lightcyan: test background-red-before: test +background-light-red-before: test +background-lightred-before: test background-green-before: test +background-light-green-before: test +background-lightgreen-before: test background-yellow-before: test +background-light-yellow-before: test +background-lightyellow-before: test background-blue-before: test +background-light-blue-before: test +background-lightblue-before: test background-magenta-before: test background-cyan-before: test +background-light-cyan-before: test +background-lightcyan-before: test background-reset-before: test background-red-after: test +background-light-red-after: test +background-lightred-after: test background-green-after: test +background-light-green-after: test +background-lightgreen-after: test background-yellow-after: test +background-light-yellow-after: test +background-lightyellow-after: test background-blue-after: test +background-light-blue-after: test +background-lightblue-after: test background-magenta-after: test background-cyan-after: test +background-light-cyan-after: test +background-lightcyan-after: test background-reset-after: test bold: test bold-before: test diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/tests/data/ref/tcpdump-001.log new/rainbow-2.8.0/tests/data/ref/tcpdump-001.log --- old/rainbow-2.7.1/tests/data/ref/tcpdump-001.log 1970-01-01 01:00:00.000000000 +0100 +++ new/rainbow-2.8.0/tests/data/ref/tcpdump-001.log 2022-01-09 20:56:55.000000000 +0100 @@ -0,0 +1,51 @@ + 1.2.3.4.443 > 4.5.6.7.57434: Flags [.], cksum 0xff56 (incorrect -> 0x2fdc), seq 1504125:1507021, ack 275, win 269, options [nop,nop,TS val 1088319702 ecr 3891091735], length 2896 +18:54:43.133515 IP (tos 0x0, ttl 54, id 52203, offset 0, flags [DF], proto TCP (6), length 2948) + 1.2.3.4.443 > 4.5.6.7.57434: Flags [.], cksum 0xff56 (incorrect -> 0x7864), seq 1507021:1509917, ack 275, win 269, options [nop,nop,TS val 1088319702 ecr 3891091735], length 2896 +18:54:43.133630 IP (tos 0x0, ttl 64, id 9684, offset 0, flags [DF], proto TCP (6), length 52) + 4.5.6.7.57434 > 1.2.3.4.443: Flags [.], cksum 0xf406 (incorrect -> 0x39cc), ack 1509917, win 24576, options [nop,nop,TS val 3891091744 ecr 1088319702], length 0 +18:54:43.134576 IP (tos 0x0, ttl 54, id 52205, offset 0, flags [DF], proto TCP (6), length 1500) + 1.2.3.4.443 > 4.5.6.7.57434: Flags [.], cksum 0x6d2a (correct), seq 1509917:1511365, ack 275, win 269, options [nop,nop,TS val 1088319704 ecr 3891091736], length 1448 +18:54:43.134646 IP (tos 0x0, ttl 54, id 52206, offset 0, flags [DF], proto TCP (6), length 4396) + 1.2.3.4.443 > 4.5.6.7.57434: Flags [.], cksum 0x04ff (incorrect -> 0x6b41), seq 1511365:1515709, ack 275, win 269, options [nop,nop,TS val 1088319704 ecr 3891091736], length 4344 +18:54:43.134697 IP (tos 0x0, ttl 64, id 9685, offset 0, flags [DF], proto TCP (6), length 52) + 4.5.6.7.57434 > 1.2.3.4.443: Flags [.], cksum 0xf406 (incorrect -> 0x2329), ack 1515709, win 24576, options [nop,nop,TS val 3891091745 ecr 1088319704], length 0 +18:54:43.134969 IP (tos 0x0, ttl 54, id 52209, offset 0, flags [DF], proto TCP (6), length 2948) + 1.2.3.4.443 > 4.5.6.7.57434: Flags [.], cksum 0xff56 (incorrect -> 0x2851), seq 1515709:1518605, ack 275, win 269, options [nop,nop,TS val 1088319704 ecr 3891091737], length 2896 +18:54:43.135026 IP (tos 0x0, ttl 54, id 52211, offset 0, flags [DF], proto TCP (6), length 4396) + 1.2.3.4.443 > 4.5.6.7.57434: Flags [.], cksum 0x04ff (incorrect -> 0xee44), seq 1518605:1522949, ack 275, win 269, options [nop,nop,TS val 1088319704 ecr 3891091737], length 4344 +18:54:43.135084 IP (tos 0x0, ttl 64, id 9686, offset 0, flags [DF], proto TCP (6), length 52) + 4.5.6.7.57434 > 1.2.3.4.443: Flags [.], cksum 0xf406 (incorrect -> 0x06e1), ack 1522949, win 24576, options [nop,nop,TS val 3891091745 ecr 1088319704], length 0 +18:54:43.137133 IP (tos 0x0, ttl 54, id 52214, offset 0, flags [DF], proto TCP (6), length 4396) + 1.2.3.4.443 > 4.5.6.7.57434: Flags [.], cksum 0x04ff (incorrect -> 0xd273), seq 1522949:1527293, ack 275, win 269, options [nop,nop,TS val 1088319706 ecr 3891091738], length 4344 +18:54:43.137180 IP (tos 0x0, ttl 54, id 52217, offset 0, flags [DF], proto TCP (6), length 2948) + 1.2.3.4.443 > 4.5.6.7.57434: Flags [.], cksum 0xff56 (incorrect -> 0x941c), seq 1527293:1530189, ack 275, win 269, options [nop,nop,TS val 1088319706 ecr 3891091738], length 2896 +18:54:43.137240 IP (tos 0x0, ttl 64, id 9687, offset 0, flags [DF], proto TCP (6), length 52) + 4.5.6.7.57434 > 1.2.3.4.443: Flags [.], cksum 0xf406 (incorrect -> 0xea94), ack 1530189, win 24576, options [nop,nop,TS val 3891091747 ecr 1088319706], length 0 +18:54:43.137566 IP (tos 0x0, ttl 54, id 52219, offset 0, flags [DF], proto TCP (6), length 4396) + 1.2.3.4.443 > 4.5.6.7.57434: Flags [.], cksum 0x04ff (incorrect -> 0xaca8), seq 1530189:1534533, ack 275, win 269, options [nop,nop,TS val 1088319706 ecr 3891091739], length 4344 +18:54:43.137640 IP (tos 0x0, ttl 54, id 52222, offset 0, flags [DF], proto TCP (6), length 2948) + 1.2.3.4.443 > 4.5.6.7.57434: Flags [.], cksum 0xff56 (incorrect -> 0x5043), seq 1534533:1537429, ack 275, win 269, options [nop,nop,TS val 1088319706 ecr 3891091739], length 2896 +18:54:43.137649 IP (tos 0x0, ttl 64, id 9688, offset 0, flags [DF], proto TCP (6), length 52) + 4.5.6.7.57434 > 1.2.3.4.443: Flags [.], cksum 0xf406 (incorrect -> 0xd99b), ack 1534533, win 24576, options [nop,nop,TS val 3891091748 ecr 1088319706], length 0 +18:54:43.137712 IP (tos 0x0, ttl 64, id 9689, offset 0, flags [DF], proto TCP (6), length 52) + 4.5.6.7.57434 > 1.2.3.4.443: Flags [.], cksum 0xf406 (incorrect -> 0xce4b), ack 1537429, win 24576, options [nop,nop,TS val 3891091748 ecr 1088319706], length 0 +18:54:43.138483 IP (tos 0x0, ttl 54, id 52224, offset 0, flags [DF], proto TCP (6), length 1500) + 1.2.3.4.443 > 4.5.6.7.57434: Flags [.], cksum 0xdb84 (correct), seq 1537429:1538877, ack 275, win 269, options [nop,nop,TS val 1088319707 ecr 3891091740], length 1448 +18:54:43.138539 IP (tos 0x0, ttl 54, id 52225, offset 0, flags [DF], proto TCP (6), length 5491) + 1.2.3.4.443 > 4.5.6.7.57434: Flags [P.], cksum 0x0946 (incorrect -> 0x01e5), seq 1538877:1544316, ack 275, win 269, options [nop,nop,TS val 1088319707 ecr 3891091740], length 5439 +18:54:43.138584 IP (tos 0x0, ttl 64, id 9690, offset 0, flags [DF], proto TCP (6), length 52) + 4.5.6.7.57434 > 1.2.3.4.443: Flags [.], cksum 0xf406 (incorrect -> 0xb362), ack 1544316, win 24576, options [nop,nop,TS val 3891091749 ecr 1088319707], length 0 +18:54:43.139452 IP (tos 0x0, ttl 54, id 52229, offset 0, flags [DF], proto TCP (6), length 2948) + 1.2.3.4.443 > 4.5.6.7.57434: Flags [.], cksum 0xff56 (incorrect -> 0xe254), seq 1544316:1547212, ack 275, win 269, options [nop,nop,TS val 1088319708 ecr 3891091741], length 2896 +18:54:43.139543 IP (tos 0x0, ttl 64, id 9691, offset 0, flags [DF], proto TCP (6), length 52) + 4.5.6.7.57434 > 1.2.3.4.443: Flags [.], cksum 0xf406 (incorrect -> 0xa811), ack 1547212, win 24576, options [nop,nop,TS val 3891091749 ecr 1088319708], length 0 +18:54:43.139745 IP (tos 0x0, ttl 54, id 52231, offset 0, flags [DF], proto TCP (6), length 1500) + 1.2.3.4.443 > 4.5.6.7.57434: Flags [.], cksum 0x895a (correct), seq 1547212:1548660, ack 275, win 269, options [nop,nop,TS val 1088319708 ecr 3891091741], length 1448 +18:54:43.139803 IP (tos 0x0, ttl 54, id 52232, offset 0, flags [DF], proto TCP (6), length 5844) + 1.2.3.4.443 > 4.5.6.7.57434: Flags [.], cksum 0x0aa7 (incorrect -> 0x3f47), seq 1548660:1554452, ack 275, win 269, options [nop,nop,TS val 1088319708 ecr 3891091741], length 5792 +18:54:43.139883 IP (tos 0x0, ttl 64, id 9692, offset 0, flags [DF], proto TCP (6), length 52) + 4.5.6.7.57434 > 1.2.3.4.443: Flags [.], cksum 0xf406 (incorrect -> 0x8bc8), ack 1554452, win 24576, options [nop,nop,TS val 3891091750 ecr 1088319708], length 0 +18:54:43.140658 IP (tos 0x0, ttl 54, id 52236, offset 0, flags [DF], proto TCP (6), length 1500) + 1.2.3.4.443 > 4.5.6.7.57434: Flags [.], cksum 0x77da (correct), seq 1554452:1555900, ack 275, win 269, options [nop,nop,TS val 1088319709 ecr 3891091742], length 1448 +18:54:43.140726 IP (tos 0x0, ttl 54, id 52237, offset 0, flags [DF], proto TCP (6), length 5844) + 1.2.3.4.443 > 4.5.6.7.57434: Flags [.], cksum 0x0aa7 (incorrect -> 0xf06b), seq 1555900:1561692, ack 275, win 269, options [nop,nop,TS val 1088319709 ecr 3891091742], length 5792 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/tests/data/ref/tcpdump-001.log.out new/rainbow-2.8.0/tests/data/ref/tcpdump-001.log.out --- old/rainbow-2.7.1/tests/data/ref/tcpdump-001.log.out 1970-01-01 01:00:00.000000000 +0100 +++ new/rainbow-2.8.0/tests/data/ref/tcpdump-001.log.out 2022-01-09 20:56:55.000000000 +0100 @@ -0,0 +1,51 @@ + [FOREGROUND_MAGENTA]1.2.3.4[FOREGROUND_RESET].[FOREGROUND_BLUE]443[RESET_ALL] > [FOREGROUND_MAGENTA]4.5.6.7[FOREGROUND_RESET].[FOREGROUND_BLUE]57434[RESET_ALL]: Flags [FOREGROUND_CYAN][.][FOREGROUND_RESET], [FOREGROUND_RED]cksum 0xff56 (incorrect -> 0x2fdc)[FOREGROUND_RESET], seq 1504125:1507021, ack 275, win 269, options [nop,nop,TS val 1088319702 ecr 3891091735], length 2896 +[FAINT]18:54:43.133515[RESET_INTENSITY] [BOLD]IP [RESET_INTENSITY](tos 0x0, ttl 54, id 52203, offset 0, flags [DF], proto TCP (6), length 2948) + [FOREGROUND_MAGENTA]1.2.3.4[FOREGROUND_RESET].[FOREGROUND_BLUE]443[RESET_ALL] > [FOREGROUND_MAGENTA]4.5.6.7[FOREGROUND_RESET].[FOREGROUND_BLUE]57434[RESET_ALL]: Flags [FOREGROUND_CYAN][.][FOREGROUND_RESET], [FOREGROUND_RED]cksum 0xff56 (incorrect -> 0x7864)[FOREGROUND_RESET], seq 1507021:1509917, ack 275, win 269, options [nop,nop,TS val 1088319702 ecr 3891091735], length 2896 +[FAINT]18:54:43.133630[RESET_INTENSITY] [BOLD]IP [RESET_INTENSITY](tos 0x0, ttl 64, id 9684, offset 0, flags [DF], proto TCP (6), length 52) + [FOREGROUND_MAGENTA]4.5.6.7[FOREGROUND_RESET].[FOREGROUND_BLUE]57434[RESET_ALL] > [FOREGROUND_MAGENTA]1.2.3.4[FOREGROUND_RESET].[FOREGROUND_BLUE]443[RESET_ALL]: Flags [FOREGROUND_CYAN][.][FOREGROUND_RESET], [FOREGROUND_RED]cksum 0xf406 (incorrect -> 0x39cc)[FOREGROUND_RESET], ack 1509917, win 24576, options [nop,nop,TS val 3891091744 ecr 1088319702], length 0 +[FAINT]18:54:43.134576[RESET_INTENSITY] [BOLD]IP [RESET_INTENSITY](tos 0x0, ttl 54, id 52205, offset 0, flags [DF], proto TCP (6), length 1500) + [FOREGROUND_MAGENTA]1.2.3.4[FOREGROUND_RESET].[FOREGROUND_BLUE]443[RESET_ALL] > [FOREGROUND_MAGENTA]4.5.6.7[FOREGROUND_RESET].[FOREGROUND_BLUE]57434[RESET_ALL]: Flags [FOREGROUND_CYAN][.][FOREGROUND_RESET], cksum 0x6d2a (correct), seq 1509917:1511365, ack 275, win 269, options [nop,nop,TS val 1088319704 ecr 3891091736], length 1448 +[FAINT]18:54:43.134646[RESET_INTENSITY] [BOLD]IP [RESET_INTENSITY](tos 0x0, ttl 54, id 52206, offset 0, flags [DF], proto TCP (6), length 4396) + [FOREGROUND_MAGENTA]1.2.3.4[FOREGROUND_RESET].[FOREGROUND_BLUE]443[RESET_ALL] > [FOREGROUND_MAGENTA]4.5.6.7[FOREGROUND_RESET].[FOREGROUND_BLUE]57434[RESET_ALL]: Flags [FOREGROUND_CYAN][.][FOREGROUND_RESET], [FOREGROUND_RED]cksum 0x04ff (incorrect -> 0x6b41)[FOREGROUND_RESET], seq 1511365:1515709, ack 275, win 269, options [nop,nop,TS val 1088319704 ecr 3891091736], length 4344 +[FAINT]18:54:43.134697[RESET_INTENSITY] [BOLD]IP [RESET_INTENSITY](tos 0x0, ttl 64, id 9685, offset 0, flags [DF], proto TCP (6), length 52) + [FOREGROUND_MAGENTA]4.5.6.7[FOREGROUND_RESET].[FOREGROUND_BLUE]57434[RESET_ALL] > [FOREGROUND_MAGENTA]1.2.3.4[FOREGROUND_RESET].[FOREGROUND_BLUE]443[RESET_ALL]: Flags [FOREGROUND_CYAN][.][FOREGROUND_RESET], [FOREGROUND_RED]cksum 0xf406 (incorrect -> 0x2329)[FOREGROUND_RESET], ack 1515709, win 24576, options [nop,nop,TS val 3891091745 ecr 1088319704], length 0 +[FAINT]18:54:43.134969[RESET_INTENSITY] [BOLD]IP [RESET_INTENSITY](tos 0x0, ttl 54, id 52209, offset 0, flags [DF], proto TCP (6), length 2948) + [FOREGROUND_MAGENTA]1.2.3.4[FOREGROUND_RESET].[FOREGROUND_BLUE]443[RESET_ALL] > [FOREGROUND_MAGENTA]4.5.6.7[FOREGROUND_RESET].[FOREGROUND_BLUE]57434[RESET_ALL]: Flags [FOREGROUND_CYAN][.][FOREGROUND_RESET], [FOREGROUND_RED]cksum 0xff56 (incorrect -> 0x2851)[FOREGROUND_RESET], seq 1515709:1518605, ack 275, win 269, options [nop,nop,TS val 1088319704 ecr 3891091737], length 2896 +[FAINT]18:54:43.135026[RESET_INTENSITY] [BOLD]IP [RESET_INTENSITY](tos 0x0, ttl 54, id 52211, offset 0, flags [DF], proto TCP (6), length 4396) + [FOREGROUND_MAGENTA]1.2.3.4[FOREGROUND_RESET].[FOREGROUND_BLUE]443[RESET_ALL] > [FOREGROUND_MAGENTA]4.5.6.7[FOREGROUND_RESET].[FOREGROUND_BLUE]57434[RESET_ALL]: Flags [FOREGROUND_CYAN][.][FOREGROUND_RESET], [FOREGROUND_RED]cksum 0x04ff (incorrect -> 0xee44)[FOREGROUND_RESET], seq 1518605:1522949, ack 275, win 269, options [nop,nop,TS val 1088319704 ecr 3891091737], length 4344 +[FAINT]18:54:43.135084[RESET_INTENSITY] [BOLD]IP [RESET_INTENSITY](tos 0x0, ttl 64, id 9686, offset 0, flags [DF], proto TCP (6), length 52) + [FOREGROUND_MAGENTA]4.5.6.7[FOREGROUND_RESET].[FOREGROUND_BLUE]57434[RESET_ALL] > [FOREGROUND_MAGENTA]1.2.3.4[FOREGROUND_RESET].[FOREGROUND_BLUE]443[RESET_ALL]: Flags [FOREGROUND_CYAN][.][FOREGROUND_RESET], [FOREGROUND_RED]cksum 0xf406 (incorrect -> 0x06e1)[FOREGROUND_RESET], ack 1522949, win 24576, options [nop,nop,TS val 3891091745 ecr 1088319704], length 0 +[FAINT]18:54:43.137133[RESET_INTENSITY] [BOLD]IP [RESET_INTENSITY](tos 0x0, ttl 54, id 52214, offset 0, flags [DF], proto TCP (6), length 4396) + [FOREGROUND_MAGENTA]1.2.3.4[FOREGROUND_RESET].[FOREGROUND_BLUE]443[RESET_ALL] > [FOREGROUND_MAGENTA]4.5.6.7[FOREGROUND_RESET].[FOREGROUND_BLUE]57434[RESET_ALL]: Flags [FOREGROUND_CYAN][.][FOREGROUND_RESET], [FOREGROUND_RED]cksum 0x04ff (incorrect -> 0xd273)[FOREGROUND_RESET], seq 1522949:1527293, ack 275, win 269, options [nop,nop,TS val 1088319706 ecr 3891091738], length 4344 +[FAINT]18:54:43.137180[RESET_INTENSITY] [BOLD]IP [RESET_INTENSITY](tos 0x0, ttl 54, id 52217, offset 0, flags [DF], proto TCP (6), length 2948) + [FOREGROUND_MAGENTA]1.2.3.4[FOREGROUND_RESET].[FOREGROUND_BLUE]443[RESET_ALL] > [FOREGROUND_MAGENTA]4.5.6.7[FOREGROUND_RESET].[FOREGROUND_BLUE]57434[RESET_ALL]: Flags [FOREGROUND_CYAN][.][FOREGROUND_RESET], [FOREGROUND_RED]cksum 0xff56 (incorrect -> 0x941c)[FOREGROUND_RESET], seq 1527293:1530189, ack 275, win 269, options [nop,nop,TS val 1088319706 ecr 3891091738], length 2896 +[FAINT]18:54:43.137240[RESET_INTENSITY] [BOLD]IP [RESET_INTENSITY](tos 0x0, ttl 64, id 9687, offset 0, flags [DF], proto TCP (6), length 52) + [FOREGROUND_MAGENTA]4.5.6.7[FOREGROUND_RESET].[FOREGROUND_BLUE]57434[RESET_ALL] > [FOREGROUND_MAGENTA]1.2.3.4[FOREGROUND_RESET].[FOREGROUND_BLUE]443[RESET_ALL]: Flags [FOREGROUND_CYAN][.][FOREGROUND_RESET], [FOREGROUND_RED]cksum 0xf406 (incorrect -> 0xea94)[FOREGROUND_RESET], ack 1530189, win 24576, options [nop,nop,TS val 3891091747 ecr 1088319706], length 0 +[FAINT]18:54:43.137566[RESET_INTENSITY] [BOLD]IP [RESET_INTENSITY](tos 0x0, ttl 54, id 52219, offset 0, flags [DF], proto TCP (6), length 4396) + [FOREGROUND_MAGENTA]1.2.3.4[FOREGROUND_RESET].[FOREGROUND_BLUE]443[RESET_ALL] > [FOREGROUND_MAGENTA]4.5.6.7[FOREGROUND_RESET].[FOREGROUND_BLUE]57434[RESET_ALL]: Flags [FOREGROUND_CYAN][.][FOREGROUND_RESET], [FOREGROUND_RED]cksum 0x04ff (incorrect -> 0xaca8)[FOREGROUND_RESET], seq 1530189:1534533, ack 275, win 269, options [nop,nop,TS val 1088319706 ecr 3891091739], length 4344 +[FAINT]18:54:43.137640[RESET_INTENSITY] [BOLD]IP [RESET_INTENSITY](tos 0x0, ttl 54, id 52222, offset 0, flags [DF], proto TCP (6), length 2948) + [FOREGROUND_MAGENTA]1.2.3.4[FOREGROUND_RESET].[FOREGROUND_BLUE]443[RESET_ALL] > [FOREGROUND_MAGENTA]4.5.6.7[FOREGROUND_RESET].[FOREGROUND_BLUE]57434[RESET_ALL]: Flags [FOREGROUND_CYAN][.][FOREGROUND_RESET], [FOREGROUND_RED]cksum 0xff56 (incorrect -> 0x5043)[FOREGROUND_RESET], seq 1534533:1537429, ack 275, win 269, options [nop,nop,TS val 1088319706 ecr 3891091739], length 2896 +[FAINT]18:54:43.137649[RESET_INTENSITY] [BOLD]IP [RESET_INTENSITY](tos 0x0, ttl 64, id 9688, offset 0, flags [DF], proto TCP (6), length 52) + [FOREGROUND_MAGENTA]4.5.6.7[FOREGROUND_RESET].[FOREGROUND_BLUE]57434[RESET_ALL] > [FOREGROUND_MAGENTA]1.2.3.4[FOREGROUND_RESET].[FOREGROUND_BLUE]443[RESET_ALL]: Flags [FOREGROUND_CYAN][.][FOREGROUND_RESET], [FOREGROUND_RED]cksum 0xf406 (incorrect -> 0xd99b)[FOREGROUND_RESET], ack 1534533, win 24576, options [nop,nop,TS val 3891091748 ecr 1088319706], length 0 +[FAINT]18:54:43.137712[RESET_INTENSITY] [BOLD]IP [RESET_INTENSITY](tos 0x0, ttl 64, id 9689, offset 0, flags [DF], proto TCP (6), length 52) + [FOREGROUND_MAGENTA]4.5.6.7[FOREGROUND_RESET].[FOREGROUND_BLUE]57434[RESET_ALL] > [FOREGROUND_MAGENTA]1.2.3.4[FOREGROUND_RESET].[FOREGROUND_BLUE]443[RESET_ALL]: Flags [FOREGROUND_CYAN][.][FOREGROUND_RESET], [FOREGROUND_RED]cksum 0xf406 (incorrect -> 0xce4b)[FOREGROUND_RESET], ack 1537429, win 24576, options [nop,nop,TS val 3891091748 ecr 1088319706], length 0 +[FAINT]18:54:43.138483[RESET_INTENSITY] [BOLD]IP [RESET_INTENSITY](tos 0x0, ttl 54, id 52224, offset 0, flags [DF], proto TCP (6), length 1500) + [FOREGROUND_MAGENTA]1.2.3.4[FOREGROUND_RESET].[FOREGROUND_BLUE]443[RESET_ALL] > [FOREGROUND_MAGENTA]4.5.6.7[FOREGROUND_RESET].[FOREGROUND_BLUE]57434[RESET_ALL]: Flags [FOREGROUND_CYAN][.][FOREGROUND_RESET], cksum 0xdb84 (correct), seq 1537429:1538877, ack 275, win 269, options [nop,nop,TS val 1088319707 ecr 3891091740], length 1448 +[FAINT]18:54:43.138539[RESET_INTENSITY] [BOLD]IP [RESET_INTENSITY](tos 0x0, ttl 54, id 52225, offset 0, flags [DF], proto TCP (6), length 5491) + [FOREGROUND_MAGENTA]1.2.3.4[FOREGROUND_RESET].[FOREGROUND_BLUE]443[RESET_ALL] > [FOREGROUND_MAGENTA]4.5.6.7[FOREGROUND_RESET].[FOREGROUND_BLUE]57434[RESET_ALL]: Flags [FOREGROUND_CYAN][P.][FOREGROUND_RESET], [FOREGROUND_RED]cksum 0x0946 (incorrect -> 0x01e5)[FOREGROUND_RESET], seq 1538877:1544316, ack 275, win 269, options [nop,nop,TS val 1088319707 ecr 3891091740], length 5439 +[FAINT]18:54:43.138584[RESET_INTENSITY] [BOLD]IP [RESET_INTENSITY](tos 0x0, ttl 64, id 9690, offset 0, flags [DF], proto TCP (6), length 52) + [FOREGROUND_MAGENTA]4.5.6.7[FOREGROUND_RESET].[FOREGROUND_BLUE]57434[RESET_ALL] > [FOREGROUND_MAGENTA]1.2.3.4[FOREGROUND_RESET].[FOREGROUND_BLUE]443[RESET_ALL]: Flags [FOREGROUND_CYAN][.][FOREGROUND_RESET], [FOREGROUND_RED]cksum 0xf406 (incorrect -> 0xb362)[FOREGROUND_RESET], ack 1544316, win 24576, options [nop,nop,TS val 3891091749 ecr 1088319707], length 0 +[FAINT]18:54:43.139452[RESET_INTENSITY] [BOLD]IP [RESET_INTENSITY](tos 0x0, ttl 54, id 52229, offset 0, flags [DF], proto TCP (6), length 2948) + [FOREGROUND_MAGENTA]1.2.3.4[FOREGROUND_RESET].[FOREGROUND_BLUE]443[RESET_ALL] > [FOREGROUND_MAGENTA]4.5.6.7[FOREGROUND_RESET].[FOREGROUND_BLUE]57434[RESET_ALL]: Flags [FOREGROUND_CYAN][.][FOREGROUND_RESET], [FOREGROUND_RED]cksum 0xff56 (incorrect -> 0xe254)[FOREGROUND_RESET], seq 1544316:1547212, ack 275, win 269, options [nop,nop,TS val 1088319708 ecr 3891091741], length 2896 +[FAINT]18:54:43.139543[RESET_INTENSITY] [BOLD]IP [RESET_INTENSITY](tos 0x0, ttl 64, id 9691, offset 0, flags [DF], proto TCP (6), length 52) + [FOREGROUND_MAGENTA]4.5.6.7[FOREGROUND_RESET].[FOREGROUND_BLUE]57434[RESET_ALL] > [FOREGROUND_MAGENTA]1.2.3.4[FOREGROUND_RESET].[FOREGROUND_BLUE]443[RESET_ALL]: Flags [FOREGROUND_CYAN][.][FOREGROUND_RESET], [FOREGROUND_RED]cksum 0xf406 (incorrect -> 0xa811)[FOREGROUND_RESET], ack 1547212, win 24576, options [nop,nop,TS val 3891091749 ecr 1088319708], length 0 +[FAINT]18:54:43.139745[RESET_INTENSITY] [BOLD]IP [RESET_INTENSITY](tos 0x0, ttl 54, id 52231, offset 0, flags [DF], proto TCP (6), length 1500) + [FOREGROUND_MAGENTA]1.2.3.4[FOREGROUND_RESET].[FOREGROUND_BLUE]443[RESET_ALL] > [FOREGROUND_MAGENTA]4.5.6.7[FOREGROUND_RESET].[FOREGROUND_BLUE]57434[RESET_ALL]: Flags [FOREGROUND_CYAN][.][FOREGROUND_RESET], cksum 0x895a (correct), seq 1547212:1548660, ack 275, win 269, options [nop,nop,TS val 1088319708 ecr 3891091741], length 1448 +[FAINT]18:54:43.139803[RESET_INTENSITY] [BOLD]IP [RESET_INTENSITY](tos 0x0, ttl 54, id 52232, offset 0, flags [DF], proto TCP (6), length 5844) + [FOREGROUND_MAGENTA]1.2.3.4[FOREGROUND_RESET].[FOREGROUND_BLUE]443[RESET_ALL] > [FOREGROUND_MAGENTA]4.5.6.7[FOREGROUND_RESET].[FOREGROUND_BLUE]57434[RESET_ALL]: Flags [FOREGROUND_CYAN][.][FOREGROUND_RESET], [FOREGROUND_RED]cksum 0x0aa7 (incorrect -> 0x3f47)[FOREGROUND_RESET], seq 1548660:1554452, ack 275, win 269, options [nop,nop,TS val 1088319708 ecr 3891091741], length 5792 +[FAINT]18:54:43.139883[RESET_INTENSITY] [BOLD]IP [RESET_INTENSITY](tos 0x0, ttl 64, id 9692, offset 0, flags [DF], proto TCP (6), length 52) + [FOREGROUND_MAGENTA]4.5.6.7[FOREGROUND_RESET].[FOREGROUND_BLUE]57434[RESET_ALL] > [FOREGROUND_MAGENTA]1.2.3.4[FOREGROUND_RESET].[FOREGROUND_BLUE]443[RESET_ALL]: Flags [FOREGROUND_CYAN][.][FOREGROUND_RESET], [FOREGROUND_RED]cksum 0xf406 (incorrect -> 0x8bc8)[FOREGROUND_RESET], ack 1554452, win 24576, options [nop,nop,TS val 3891091750 ecr 1088319708], length 0 +[FAINT]18:54:43.140658[RESET_INTENSITY] [BOLD]IP [RESET_INTENSITY](tos 0x0, ttl 54, id 52236, offset 0, flags [DF], proto TCP (6), length 1500) + [FOREGROUND_MAGENTA]1.2.3.4[FOREGROUND_RESET].[FOREGROUND_BLUE]443[RESET_ALL] > [FOREGROUND_MAGENTA]4.5.6.7[FOREGROUND_RESET].[FOREGROUND_BLUE]57434[RESET_ALL]: Flags [FOREGROUND_CYAN][.][FOREGROUND_RESET], cksum 0x77da (correct), seq 1554452:1555900, ack 275, win 269, options [nop,nop,TS val 1088319709 ecr 3891091742], length 1448 +[FAINT]18:54:43.140726[RESET_INTENSITY] [BOLD]IP [RESET_INTENSITY](tos 0x0, ttl 54, id 52237, offset 0, flags [DF], proto TCP (6), length 5844) + [FOREGROUND_MAGENTA]1.2.3.4[FOREGROUND_RESET].[FOREGROUND_BLUE]443[RESET_ALL] > [FOREGROUND_MAGENTA]4.5.6.7[FOREGROUND_RESET].[FOREGROUND_BLUE]57434[RESET_ALL]: Flags [FOREGROUND_CYAN][.][FOREGROUND_RESET], [FOREGROUND_RED]cksum 0x0aa7 (incorrect -> 0xf06b)[FOREGROUND_RESET], seq 1555900:1561692, ack 275, win 269, options [nop,nop,TS val 1088319709 ecr 3891091742], length 5792 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/tests/test_build.py new/rainbow-2.8.0/tests/test_build.py --- old/rainbow-2.7.1/tests/test_build.py 2018-09-29 21:21:00.000000000 +0200 +++ new/rainbow-2.8.0/tests/test_build.py 2022-01-09 20:56:55.000000000 +0100 @@ -29,7 +29,9 @@ def generate_completion(request, shell): path = 'build/tests-workspace/completion_' + shell + '_' + request.node.name - command = GenerateCompletion(Distribution(), shell=shell, output=path) + command = GenerateCompletion(Distribution()) + setattr(command, 'shell', shell) + setattr(command, 'output', path) command.run() return open(path).read() @@ -51,7 +53,8 @@ def generate_man_page(request): path = 'build/tests-workspace/manpage_' + request.node.name - command = GenerateManPage(Distribution(), output=path) + command = GenerateManPage(Distribution()) + setattr(command, 'output', path) command.run() return open(path).read() @@ -67,8 +70,8 @@ man_page = generate_man_page(request) for filter in FILTERS: if filter.short_option: - assert '\-' + filter.short_option in man_page - assert '\-\-' + filter.long_option in man_page + assert '\\-' + filter.short_option in man_page + assert '\\-\\-' + filter.long_option in man_page assert filter.help in man_page diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/tests/test_cli.py new/rainbow-2.8.0/tests/test_cli.py --- old/rainbow-2.7.1/tests/test_cli.py 2018-09-29 21:21:00.000000000 +0200 +++ new/rainbow-2.8.0/tests/test_cli.py 2022-01-09 20:56:55.000000000 +0100 @@ -275,7 +275,7 @@ def test_config_file_by_relative_path_short_option(): - (command, errors) = parse(['-f', 'tests/data/cfg/config006.cfg']) + (command, errors) = parse(['-f', u'tests/data/cfg/config006.cfg']) assert not errors assert isinstance(command, STDINCommand) assert command.transformer == TransformerBuilder.make_transformer(re.compile(u'ERROR'), @@ -283,7 +283,7 @@ def test_config_file_by_relative_path_without_extension_short_option(): - (command, errors) = parse(['-f', 'tests/data/cfg/config006']) + (command, errors) = parse(['-f', u'tests/data/cfg/config006']) assert not errors assert isinstance(command, STDINCommand) assert command.transformer == TransformerBuilder.make_transformer(re.compile(u'ERROR'), @@ -291,7 +291,7 @@ def test_config_file_by_relative_path_long_option(): - (command, errors) = parse(['--config', 'tests/data/cfg/config006.cfg']) + (command, errors) = parse(['--config', u'tests/data/cfg/config006.cfg']) assert not errors assert isinstance(command, STDINCommand) assert command.transformer == TransformerBuilder.make_transformer(re.compile(u'ERROR'), @@ -299,7 +299,7 @@ def test_config_file_by_relative_path_without_extension_long_option(): - (command, errors) = parse(['--config', 'tests/data/cfg/config006']) + (command, errors) = parse(['--config', u'tests/data/cfg/config006']) assert not errors assert isinstance(command, STDINCommand) assert command.transformer == TransformerBuilder.make_transformer(re.compile(u'ERROR'), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/tests/test_utils.py new/rainbow-2.8.0/tests/test_utils.py --- old/rainbow-2.7.1/tests/test_utils.py 2018-09-29 21:21:00.000000000 +0200 +++ new/rainbow-2.8.0/tests/test_utils.py 2022-01-09 20:56:55.000000000 +0100 @@ -43,7 +43,10 @@ # Configs collections # ---------------------------------------------------------------------- -BUILTIN_CONFIGS_NAMES = [os.path.splitext(os.path.basename(f))[0] for f in glob.glob('rainbow/config/builtin/*.cfg')] +if sys.version_info.major == 3: + unicode = str +BUILTIN_CONFIGS_NAMES = [unicode(os.path.splitext(os.path.basename(f))[0]) + for f in glob.glob('rainbow/config/builtin/*.cfg')] BUILTIN_CONFIGS_REFERENCES = dict((f, glob.glob('tests/data/ref/%s-*.log' % f)) for f in BUILTIN_CONFIGS_NAMES) BUILTIN_CONFIGS_REFERENCE_PAIRS = [(f, r) for f in BUILTIN_CONFIGS_NAMES for r in BUILTIN_CONFIGS_REFERENCES[f]] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rainbow-2.7.1/tox.ini new/rainbow-2.8.0/tox.ini --- old/rainbow-2.7.1/tox.ini 2018-09-29 21:21:00.000000000 +0200 +++ new/rainbow-2.8.0/tox.ini 2022-01-09 20:56:55.000000000 +0100 @@ -17,7 +17,20 @@ # ---------------------------------------------------------------------- [tox] -envlist = py27,py34,py35,py36,py37,py38,pypy,pypy3,benchmarks,lint +envlist = py36,py37,py38,py39,py310,pypy3,benchmarks,lint + +[gh-actions] +python = + 3.6: py36 + 3.7: py37 + 3.8: py38 + 3.9: py39 + 3.10: py310 + pypy-3.6: pypy3 + pypy-3.7: pypy3 + pypy-3.8: pypy3 + pypy-3.9: pypy3 + pypy-3.10: pypy3 [pytest] flake8-max-line-length = 120 @@ -26,8 +39,9 @@ [testenv] extras = build,test commands = py.test \ + --color=yes \ --basetemp {envtmpdir} \ - --timeout=10 \ + --timeout=600 \ --html=build/tests/{envname}/reports/tests.html \ --cov rainbow \ --cov-report term \ @@ -36,13 +50,11 @@ --benchmark-skip [testenv:lint] -commands = py.test \ - --basetemp {envtmpdir} \ - --flake8 \ - --benchmark-skip +commands = flake8 . [testenv:benchmarks] commands = py.test \ + --color=yes \ --basetemp {envtmpdir} \ --benchmark-only \ --benchmark-verbose \