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 \

Reply via email to