Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-oslo.reports for 
openSUSE:Factory checked in at 2021-12-12 00:57:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.reports (Old)
 and      /work/SRC/openSUSE:Factory/.python-oslo.reports.new.2520 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-oslo.reports"

Sun Dec 12 00:57:36 2021 rev:13 rq:939538 version:2.3.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.reports/python-oslo.reports.changes  
2020-10-26 16:17:43.603003336 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-oslo.reports.new.2520/python-oslo.reports.changes
        2021-12-12 00:57:45.866590759 +0100
@@ -1,0 +2,18 @@
+Tue Oct 26 21:42:27 UTC 2021 - [email protected]
+
+- update to version 2.3.0
+  - Switch testing to Xena testing runtime
+  - Fix hacking min version to 3.0.1
+  - Remove all six usage
+  - Remove lower-constraints remnants
+  - Update master for stable/victoria
+  - Move flake8 as a pre-commit local target.
+  - Use py3 as the default runtime for tox
+  - Dropping lower constraints testing
+  - setup.cfg: Replace dashes with underscores
+  - Add Python3 wallaby unit tests
+  - Use TOX_CONSTRAINTS_FILE
+  - Adding pre-commit
+  - Replace concatenation with f-strings
+
+-------------------------------------------------------------------

Old:
----
  oslo.reports-2.2.0.tar.gz

New:
----
  oslo.reports-2.3.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-oslo.reports.spec ++++++
--- /var/tmp/diff_new_pack.1j3t7f/_old  2021-12-12 00:57:46.730591352 +0100
+++ /var/tmp/diff_new_pack.1j3t7f/_new  2021-12-12 00:57:46.734591355 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-oslo.reports
 #
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,13 +17,13 @@
 
 
 Name:           python-oslo.reports
-Version:        2.2.0
+Version:        2.3.0
 Release:        0
 Summary:        OpenStack oslo.reports library
 License:        Apache-2.0
 Group:          Development/Languages/Python
-URL:            https://launchpad.net/oslo.reports
-Source0:        
https://files.pythonhosted.org/packages/source/o/oslo.reports/oslo.reports-2.2.0.tar.gz
+URL:            https://docs.openstack.org/oslo.reports
+Source0:        
https://files.pythonhosted.org/packages/source/o/oslo.reports/oslo.reports-2.3.0.tar.gz
 BuildRequires:  openstack-macros
 BuildRequires:  python3-Jinja2 >= 2.10
 BuildRequires:  python3-eventlet
@@ -35,7 +35,7 @@
 BuildRequires:  python3-oslotest
 BuildRequires:  python3-pbr >= 2.0.0
 BuildRequires:  python3-psutil >= 3.2.2
-BuildRequires:  python3-six >= 1.10.0
+BuildRequires:  python3-six
 BuildRequires:  python3-stestr
 BuildArch:      noarch
 
@@ -45,13 +45,12 @@
 
 %package -n python3-oslo.reports
 Summary:        OpenStack oslo.reports library
-Group:          Development/Languages/Python
 Requires:       python3-Jinja2 >= 2.10
 Requires:       python3-oslo.i18n >= 3.15.3
 Requires:       python3-oslo.serialization >= 2.18.0
 Requires:       python3-oslo.utils >= 3.33.0
 Requires:       python3-psutil >= 3.2.2
-Requires:       python3-six >= 1.10.0
+Requires:       python3-six
 
 %description -n python3-oslo.reports
 The project oslo.reports hosts a general purpose error report generation
@@ -59,7 +58,6 @@
 
 %package -n python-oslo.reports-doc
 Summary:        Documentation for OpenStack reports library
-Group:          Development/Languages/Python
 BuildRequires:  python3-Sphinx
 BuildRequires:  python3-openstackdocstheme
 BuildRequires:  python3-sphinxcontrib-apidoc
@@ -70,7 +68,7 @@
 This package contains the documentation.
 
 %prep
-%autosetup -p1 -n oslo.reports-2.2.0
+%autosetup -p1 -n oslo.reports-2.3.0
 %py_req_cleanup
 
 %build

++++++ _service ++++++
--- /var/tmp/diff_new_pack.1j3t7f/_old  2021-12-12 00:57:46.762591374 +0100
+++ /var/tmp/diff_new_pack.1j3t7f/_new  2021-12-12 00:57:46.762591374 +0100
@@ -1,8 +1,8 @@
 <services>
   <service mode="disabled" name="renderspec">
-    <param 
name="input-template">https://opendev.org/openstack/rpm-packaging/raw/branch/stable/victoria/openstack/oslo.reports/oslo.reports.spec.j2</param>
+    <param 
name="input-template">https://opendev.org/openstack/rpm-packaging/raw/master/openstack/oslo.reports/oslo.reports.spec.j2</param>
     <param name="output-name">python-oslo.reports.spec</param>
-    <param 
name="requirements">https://opendev.org/openstack/oslo.reports/raw/branch/stable/victoria/requirements.txt</param>
+    <param 
name="requirements">https://opendev.org/openstack/oslo.reports/raw/master/requirements.txt</param>
     <param name="changelog-email">[email protected]</param>
     <param name="changelog-provider">gh,openstack,oslo.reports</param>
   </service>

++++++ oslo.reports-2.2.0.tar.gz -> oslo.reports-2.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.reports-2.2.0/.pre-commit-config.yaml 
new/oslo.reports-2.3.0/.pre-commit-config.yaml
--- old/oslo.reports-2.2.0/.pre-commit-config.yaml      1970-01-01 
01:00:00.000000000 +0100
+++ new/oslo.reports-2.3.0/.pre-commit-config.yaml      2021-07-01 
14:36:20.000000000 +0200
@@ -0,0 +1,39 @@
+# We from the Oslo project decided to pin repos based on the
+# commit hash instead of the version tag to prevend arbitrary
+# code from running in developer's machines.  To update to a
+# newer version, run `pre-commit autoupdate` and then replace
+# the newer versions with their commit hash.
+
+default_language_version:
+  python: python3
+
+repos:
+  - repo: https://github.com/pre-commit/pre-commit-hooks
+    rev: 9136088a246768144165fcc3ecc3d31bb686920a # v3.3.0
+    hooks:
+      - id: trailing-whitespace
+      # Replaces or checks mixed line ending
+      - id: mixed-line-ending
+        args: ['--fix', 'lf']
+        exclude: '.*\.(svg)$'
+      # Forbid files which have a UTF-8 byte-order marker
+      - id: check-byte-order-marker
+      # Checks that non-binary executables have a proper shebang
+      - id: check-executables-have-shebangs
+      # Check for files that contain merge conflict strings.
+      - id: check-merge-conflict
+      # Check for debugger imports and py37+ breakpoint()
+      # calls in python source
+      - id: debug-statements
+      - id: check-yaml
+        files: .*\.(yaml|yml)$
+  - repo: local
+    hooks:
+      - id: flake8
+        name: flake8
+        additional_dependencies:
+          - hacking>=3.0.1,<3.1.0
+        language: python
+        entry: flake8
+        files: '^.*\.py$'
+        exclude: '^(doc|releasenotes|tools)/.*$'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.reports-2.2.0/.zuul.yaml 
new/oslo.reports-2.3.0/.zuul.yaml
--- old/oslo.reports-2.2.0/.zuul.yaml   2020-09-11 21:18:26.000000000 +0200
+++ new/oslo.reports-2.3.0/.zuul.yaml   2021-07-01 14:36:20.000000000 +0200
@@ -2,8 +2,7 @@
     templates:
       - check-requirements
       - lib-forward-testing-python3
-      - openstack-lower-constraints-jobs
-      - openstack-python3-victoria-jobs
+      - openstack-python3-xena-jobs
       - periodic-stable-jobs
       - publish-openstack-docs-pti
       - release-notes-jobs-python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.reports-2.2.0/AUTHORS 
new/oslo.reports-2.3.0/AUTHORS
--- old/oslo.reports-2.2.0/AUTHORS      2020-09-11 21:19:28.000000000 +0200
+++ new/oslo.reports-2.3.0/AUTHORS      2021-07-01 14:36:53.000000000 +0200
@@ -12,6 +12,7 @@
 Corey Bryant <[email protected]>
 D G Lee <[email protected]>
 Daisuke Fujita <[email protected]>
+Daniel Bengtsson <[email protected]>
 Davanum Srinivas <[email protected]>
 Davanum Srinivas <[email protected]>
 Dirk Mueller <[email protected]>
@@ -55,4 +56,8 @@
 pengyuesheng <[email protected]>
 tanlin <[email protected]>
 wangqi <[email protected]>
+wangzihao <[email protected]>
+wu.shiming <[email protected]>
+yangyawei <[email protected]>
 [email protected] <[email protected]>
+zhoulinhui <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.reports-2.2.0/ChangeLog 
new/oslo.reports-2.3.0/ChangeLog
--- old/oslo.reports-2.2.0/ChangeLog    2020-09-11 21:19:28.000000000 +0200
+++ new/oslo.reports-2.3.0/ChangeLog    2021-07-01 14:36:53.000000000 +0200
@@ -1,6 +1,23 @@
 CHANGES
 =======
 
+2.3.0
+-----
+
+* Switch testing to Xena testing runtime
+* setup.cfg: Replace dashes with underscores
+* Move flake8 as a pre-commit local target
+* Remove lower-constraints remnants
+* Dropping lower constraints testing
+* Replace concatenation with f-strings
+* Use TOX\_CONSTRAINTS\_FILE
+* Use py3 as the default runtime for tox
+* Fix hacking min version to 3.0.1
+* Remove all six usage
+* Adding pre-commit
+* Add Python3 wallaby unit tests
+* Update master for stable/victoria
+
 2.2.0
 -----
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.reports-2.2.0/PKG-INFO 
new/oslo.reports-2.3.0/PKG-INFO
--- old/oslo.reports-2.2.0/PKG-INFO     2020-09-11 21:19:28.000000000 +0200
+++ new/oslo.reports-2.3.0/PKG-INFO     2021-07-01 14:36:53.990810900 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.2
 Name: oslo.reports
-Version: 2.2.0
+Version: 2.3.0
 Summary: oslo.reports library
 Home-page: https://docs.openstack.org/oslo.reports/latest
 Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.reports-2.2.0/doc/source/conf.py 
new/oslo.reports-2.3.0/doc/source/conf.py
--- old/oslo.reports-2.2.0/doc/source/conf.py   2020-09-11 21:18:26.000000000 
+0200
+++ new/oslo.reports-2.3.0/doc/source/conf.py   2021-07-01 14:36:20.000000000 
+0200
@@ -1,4 +1,6 @@
 # -*- coding: utf-8 -*-
+# Copyright (C) 2020 Red Hat, Inc.
+#
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.reports-2.2.0/lower-constraints.txt 
new/oslo.reports-2.3.0/lower-constraints.txt
--- old/oslo.reports-2.2.0/lower-constraints.txt        2020-09-11 
21:18:26.000000000 +0200
+++ new/oslo.reports-2.3.0/lower-constraints.txt        1970-01-01 
01:00:00.000000000 +0100
@@ -1,50 +0,0 @@
-alabaster==0.7.10
-appdirs==1.3.0
-Babel==2.3.4
-bandit==1.1.0
-coverage==4.0
-debtcollector==1.2.0
-docutils==0.11
-dulwich==0.15.0
-eventlet==0.18.2
-extras==1.0.0
-fixtures==3.0.0
-gitdb==0.6.4
-GitPython==1.0.1
-greenlet==0.4.15
-imagesize==0.7.1
-iso8601==0.1.11
-Jinja2==2.10
-keystoneauth1==3.4.0
-linecache2==1.0.0
-MarkupSafe==1.1.1
-mox3==0.20.0
-msgpack-python==0.4.0
-netaddr==0.7.18
-netifaces==0.10.4
-os-client-config==1.28.0
-oslo.config==5.2.0
-oslo.i18n==3.15.3
-oslo.serialization==2.18.0
-oslo.utils==3.33.0
-oslotest==3.2.0
-pbr==2.0.0
-psutil==3.2.2
-Pygments==2.2.0
-pyparsing==2.1.0
-python-mimeparse==1.6.0
-python-subunit==1.0.0
-pytz==2013.6
-PyYAML==3.13
-requests==2.14.2
-requestsexceptions==1.2.0
-rfc3986==0.3.1
-six==1.10.0
-smmap==0.9.0
-snowballstemmer==1.2.1
-stestr==2.0.0
-stevedore==1.20.0
-testtools==2.2.0
-traceback2==1.4.0
-unittest2==1.1.0
-wrapt==1.7.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.reports-2.2.0/oslo.reports.egg-info/PKG-INFO 
new/oslo.reports-2.3.0/oslo.reports.egg-info/PKG-INFO
--- old/oslo.reports-2.2.0/oslo.reports.egg-info/PKG-INFO       2020-09-11 
21:19:28.000000000 +0200
+++ new/oslo.reports-2.3.0/oslo.reports.egg-info/PKG-INFO       2021-07-01 
14:36:53.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.2
 Name: oslo.reports
-Version: 2.2.0
+Version: 2.3.0
 Summary: oslo.reports library
 Home-page: https://docs.openstack.org/oslo.reports/latest
 Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.reports-2.2.0/oslo.reports.egg-info/SOURCES.txt 
new/oslo.reports-2.3.0/oslo.reports.egg-info/SOURCES.txt
--- old/oslo.reports-2.2.0/oslo.reports.egg-info/SOURCES.txt    2020-09-11 
21:19:28.000000000 +0200
+++ new/oslo.reports-2.3.0/oslo.reports.egg-info/SOURCES.txt    2021-07-01 
14:36:53.000000000 +0200
@@ -1,5 +1,6 @@
 .coveragerc
 .mailmap
+.pre-commit-config.yaml
 .stestr.conf
 .zuul.yaml
 AUTHORS
@@ -8,7 +9,6 @@
 HACKING.rst
 LICENSE
 README.rst
-lower-constraints.txt
 requirements.txt
 setup.cfg
 setup.py
@@ -80,6 +80,7 @@
 releasenotes/source/train.rst
 releasenotes/source/unreleased.rst
 releasenotes/source/ussuri.rst
+releasenotes/source/victoria.rst
 releasenotes/source/_static/.placeholder
 releasenotes/source/_templates/.placeholder
 releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.reports-2.2.0/oslo.reports.egg-info/pbr.json 
new/oslo.reports-2.3.0/oslo.reports.egg-info/pbr.json
--- old/oslo.reports-2.2.0/oslo.reports.egg-info/pbr.json       2020-09-11 
21:19:28.000000000 +0200
+++ new/oslo.reports-2.3.0/oslo.reports.egg-info/pbr.json       2021-07-01 
14:36:53.000000000 +0200
@@ -1 +1 @@
-{"git_version": "bc631ae", "is_release": true}
\ No newline at end of file
+{"git_version": "f2799dc", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.reports-2.2.0/oslo.reports.egg-info/requires.txt 
new/oslo.reports-2.3.0/oslo.reports.egg-info/requires.txt
--- old/oslo.reports-2.2.0/oslo.reports.egg-info/requires.txt   2020-09-11 
21:19:28.000000000 +0200
+++ new/oslo.reports-2.3.0/oslo.reports.egg-info/requires.txt   2021-07-01 
14:36:53.000000000 +0200
@@ -4,4 +4,3 @@
 oslo.utils>=3.33.0
 pbr!=2.1.0,>=2.0.0
 psutil>=3.2.2
-six>=1.10.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.reports-2.2.0/oslo_reports/_utils.py 
new/oslo.reports-2.3.0/oslo_reports/_utils.py
--- old/oslo.reports-2.2.0/oslo_reports/_utils.py       2020-09-11 
21:18:26.000000000 +0200
+++ new/oslo.reports-2.3.0/oslo_reports/_utils.py       2021-07-01 
14:36:20.000000000 +0200
@@ -18,10 +18,8 @@
 used in generating reports.
 """
 
-import six
 
-
-class StringWithAttrs(six.text_type):
+class StringWithAttrs(str):
     """A String that can have arbitrary attributes"""
 
     pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.reports-2.2.0/oslo_reports/models/base.py 
new/oslo.reports-2.3.0/oslo_reports/models/base.py
--- old/oslo.reports-2.2.0/oslo_reports/models/base.py  2020-09-11 
21:18:26.000000000 +0200
+++ new/oslo.reports-2.3.0/oslo_reports/models/base.py  2021-07-01 
14:36:20.000000000 +0200
@@ -28,8 +28,6 @@
 except ImportError:  # python 2
     import collections as abc
 
-import six
-
 
 class ReportModel(abc.MutableMapping):
     """A Report Data Model
@@ -71,7 +69,7 @@
         self_cpy = copy.deepcopy(self)
         for key in self_cpy:
             if getattr(self_cpy[key], 'attached_view', None) is not None:
-                self_cpy[key] = six.text_type(self_cpy[key])
+                self_cpy[key] = str(self_cpy[key])
 
         if self.attached_view is not None:
             return self.attached_view(self_cpy)
@@ -147,7 +145,7 @@
 
             # don't die on recursive structures,
             # and don't treat strings like sequences
-            if oid in visited or isinstance(obj, six.string_types):
+            if oid in visited or isinstance(obj, str):
                 return
 
             visited.add(oid)
@@ -160,7 +158,7 @@
                     traverse_obj(item)
 
             elif isinstance(obj, abc.Mapping):
-                for val in six.itervalues(obj):
+                for val in obj.values():
                     traverse_obj(val)
 
         traverse_obj(self)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.reports-2.2.0/oslo_reports/report.py 
new/oslo.reports-2.3.0/oslo_reports/report.py
--- old/oslo.reports-2.2.0/oslo_reports/report.py       2020-09-11 
21:18:26.000000000 +0200
+++ new/oslo.reports-2.3.0/oslo_reports/report.py       2021-07-01 
14:36:20.000000000 +0200
@@ -19,7 +19,6 @@
 sections.
 """
 
-import six
 
 from oslo_reports.views.text import header as header_views
 
@@ -74,7 +73,7 @@
         :returns: the serialized report
         """
 
-        return "\n".join(six.text_type(sect) for sect in self.sections)
+        return "\n".join(str(sect) for sect in self.sections)
 
 
 class ReportSection(object):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.reports-2.2.0/oslo_reports/tests/test_base_report.py 
new/oslo.reports-2.3.0/oslo_reports/tests/test_base_report.py
--- old/oslo.reports-2.2.0/oslo_reports/tests/test_base_report.py       
2020-09-11 21:18:26.000000000 +0200
+++ new/oslo.reports-2.3.0/oslo_reports/tests/test_base_report.py       
2021-07-01 14:36:20.000000000 +0200
@@ -20,7 +20,6 @@
     import collections as abc
 
 from oslotest import base
-import six
 
 from oslo_reports.models import base as base_model
 from oslo_reports import report
@@ -30,7 +29,7 @@
     def __call__(self, model):
         res = ""
         for k in sorted(model.keys()):
-            res += six.text_type(k) + ": " + six.text_type(model[k]) + ";"
+            res += str(k) + ": " + str(model[k]) + ";"
         return res
 
 
@@ -71,7 +70,7 @@
     def test_submodel_attached_view(self):
         class TmpView(object):
             def __call__(self, model):
-                return '{len: ' + six.text_type(len(model.c)) + '}'
+                return '{len: ' + str(len(model.c)) + '}'
 
         def generate_model_with_submodel():
             base_m = basic_generator()
@@ -87,13 +86,13 @@
         model = base_model.ReportModel(data={'c': [1, 2, 3]})
         self.assertRaisesRegex(Exception,
                                'Cannot stringify model: no attached view',
-                               six.text_type, model)
+                               str, model)
 
     def test_str_returns_string_with_attached_view(self):
         model = base_model.ReportModel(data={'a': 1, 'b': 2},
                                        attached_view=BasicView())
 
-        self.assertEqual(six.text_type(model), 'a: 1;b: 2;')
+        self.assertEqual(str(model), 'a: 1;b: 2;')
 
     def test_model_repr(self):
         model1 = base_model.ReportModel(data={'a': 1, 'b': 2},
@@ -120,7 +119,7 @@
         model.attached_view = BasicView()
 
         # if we don't handle lists properly, we'll get a TypeError here
-        self.assertEqual('0: a;1: b;', six.text_type(model))
+        self.assertEqual('0: a;1: b;', str(model))
 
     def test_immutable_mappings_produce_mutable_models(self):
         class SomeImmutableMapping(abc.Mapping):
@@ -140,9 +139,9 @@
         model = base_model.ReportModel(data=mp)
         model.attached_view = BasicView()
 
-        self.assertEqual('a: 2;b: 4;c: 8;', six.text_type(model))
+        self.assertEqual('a: 2;b: 4;c: 8;', str(model))
 
         model['d'] = 16
 
-        self.assertEqual('a: 2;b: 4;c: 8;d: 16;', six.text_type(model))
+        self.assertEqual('a: 2;b: 4;c: 8;d: 16;', str(model))
         self.assertEqual({'a': 2, 'b': 4, 'c': 8}, mp.data)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.reports-2.2.0/oslo_reports/tests/test_guru_meditation_report.py 
new/oslo.reports-2.3.0/oslo_reports/tests/test_guru_meditation_report.py
--- old/oslo.reports-2.2.0/oslo_reports/tests/test_guru_meditation_report.py    
2020-09-11 21:18:26.000000000 +0200
+++ new/oslo.reports-2.3.0/oslo_reports/tests/test_guru_meditation_report.py    
2021-07-01 14:36:20.000000000 +0200
@@ -13,6 +13,7 @@
 #    under the License.
 
 import datetime
+import io
 import os
 import re
 import signal
@@ -24,7 +25,6 @@
 import fixtures
 import greenlet
 from oslotest import base
-import six
 
 import oslo_config
 from oslo_config import fixture
@@ -189,7 +189,7 @@
     def test_register_autorun(self):
         gmr.TextGuruMeditation.setup_autorun(FakeVersionObj())
         self.old_stderr = sys.stderr
-        sys.stderr = six.StringIO()
+        sys.stderr = io.StringIO()
 
         os.kill(os.getpid(), signal.SIGUSR2)
         self.assertIn('Guru Meditation', sys.stderr.getvalue())
@@ -236,7 +236,7 @@
         run_mock.side_effect = RunFail()
         gmr.TextGuruMeditation.setup_autorun(FakeVersionObj())
         self.old_stderr = sys.stderr
-        sys.stderr = six.StringIO()
+        sys.stderr = io.StringIO()
 
         os.kill(os.getpid(), signal.SIGUSR2)
         self.assertIn('RunFail', sys.stderr.getvalue())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.reports-2.2.0/oslo_reports/tests/test_openstack_generators.py 
new/oslo.reports-2.3.0/oslo_reports/tests/test_openstack_generators.py
--- old/oslo.reports-2.2.0/oslo_reports/tests/test_openstack_generators.py      
2020-09-11 21:18:26.000000000 +0200
+++ new/oslo.reports-2.3.0/oslo_reports/tests/test_openstack_generators.py      
2021-07-01 14:36:20.000000000 +0200
@@ -19,7 +19,6 @@
 import greenlet
 from oslo_config import cfg
 from oslotest import base
-import six
 
 from oslo_reports.generators import conf as os_cgen
 from oslo_reports.generators import threading as os_tgen
@@ -43,7 +42,7 @@
         self.assertTrue(was_ok)
 
         model.set_current_view_type('text')
-        self.assertIsNotNone(six.text_type(model))
+        self.assertIsNotNone(str(model))
 
     def test_thread_generator_tb(self):
         class FakeModel(object):
@@ -73,7 +72,7 @@
         self.assertTrue(was_ok)
 
         model.set_current_view_type('text')
-        self.assertIsNotNone(six.text_type(model))
+        self.assertIsNotNone(str(model))
 
     def test_config_model(self):
         conf = cfg.ConfigOpts()
@@ -114,7 +113,7 @@
                       '%s'
                       '  crackers = triscuit\n'
                       '  secrets = ***') % config_source_line
-        self.assertEqual(target_str, six.text_type(model))
+        self.assertEqual(target_str, str(model))
 
     def test_package_report_generator(self):
         class VersionObj(object):
@@ -133,7 +132,7 @@
         target_str = ('product = Sharp Cheddar\n'
                       'vendor = Cheese Shoppe\n'
                       'version = 1.0.0')
-        self.assertEqual(target_str, six.text_type(model))
+        self.assertEqual(target_str, str(model))
 
     def test_package_report_generator_without_vendor_string(self):
         class VersionObj(object):
@@ -149,4 +148,4 @@
         target_str = ('product = Sharp Cheddar\n'
                       'vendor = None\n'
                       'version = 1.0.0')
-        self.assertEqual(target_str, six.text_type(model))
+        self.assertEqual(target_str, str(model))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.reports-2.2.0/oslo_reports/tests/test_views.py 
new/oslo.reports-2.3.0/oslo_reports/tests/test_views.py
--- old/oslo.reports-2.2.0/oslo_reports/tests/test_views.py     2020-09-11 
21:18:26.000000000 +0200
+++ new/oslo.reports-2.3.0/oslo_reports/tests/test_views.py     2021-07-01 
14:36:20.000000000 +0200
@@ -16,7 +16,6 @@
 from unittest import mock
 
 from oslotest import base
-import six
 
 from oslo_reports.models import base as base_model
 from oslo_reports.models import with_default_views as mwdv
@@ -35,15 +34,15 @@
         model = mwdv_generator()
 
         model.set_current_view_type('text')
-        self.assertEqual('int = 1\nstring = value', six.text_type(model))
+        self.assertEqual('int = 1\nstring = value', str(model))
 
         model.set_current_view_type('json')
-        self.assertEqual('{"int": 1, "string": "value"}', six.text_type(model))
+        self.assertEqual('{"int": 1, "string": "value"}', str(model))
 
         model.set_current_view_type('xml')
 
         self.assertEqual('<model><int>1</int><string>value</string></model>',
-                         six.text_type(model))
+                         str(model))
 
     def test_recursive_type_propagation_with_nested_models(self):
         model = mwdv_generator()
@@ -85,7 +84,7 @@
 
     def test_report_of_type(self):
         rep = report.ReportOfType('json')
-        rep.add_section(lambda x: six.text_type(x), mwdv_generator)
+        rep.add_section(lambda x: str(x), mwdv_generator)
 
         self.assertEqual('{"int": 1, "string": "value"}', rep.run())
 
@@ -134,7 +133,7 @@
                       '<dt><a>1</a><b>2</b></dt>'
                       '<int>1</int>'
                       '<string>value</string></model>')
-        self.assertEqual(target_str, six.text_type(self.model))
+        self.assertEqual(target_str, str(self.model))
 
     def test_list_serialization(self):
         self.model['lt'] = ['a', 'b']
@@ -143,7 +142,7 @@
                       '<int>1</int>'
                       '<lt><item>a</item><item>b</item></lt>'
                       '<string>value</string></model>')
-        self.assertEqual(target_str, six.text_type(self.model))
+        self.assertEqual(target_str, str(self.model))
 
     def test_list_in_dict_serialization(self):
         self.model['dt'] = {'a': 1, 'b': [2, 3]}
@@ -153,7 +152,7 @@
                       '<b><item>2</item><item>3</item></b></dt>'
                       '<int>1</int>'
                       '<string>value</string></model>')
-        self.assertEqual(target_str, six.text_type(self.model))
+        self.assertEqual(target_str, str(self.model))
 
     def test_dict_in_list_serialization(self):
         self.model['lt'] = [1, {'b': 2, 'c': 3}]
@@ -163,7 +162,7 @@
                       '<lt><item>1</item>'
                       '<item><b>2</b><c>3</c></item></lt>'
                       '<string>value</string></model>')
-        self.assertEqual(target_str, six.text_type(self.model))
+        self.assertEqual(target_str, str(self.model))
 
     def test_submodel_serialization(self):
         sm = mwdv_generator()
@@ -178,7 +177,7 @@
                       '<model><int>1</int><string>value</string></model>'
                       '</submodel>'
                       '</model>')
-        self.assertEqual(target_str, six.text_type(self.model))
+        self.assertEqual(target_str, str(self.model))
 
     def test_wrapper_name(self):
         self.model.attached_view.wrapper_name = 'cheese'
@@ -187,7 +186,7 @@
                       '<int>1</int>'
                       '<string>value</string>'
                       '</cheese>')
-        self.assertEqual(target_str, six.text_type(self.model))
+        self.assertEqual(target_str, str(self.model))
 
 
 class TestGenericJSONViews(base.BaseTestCase):
@@ -203,7 +202,7 @@
                                             attached_view=attached_view)
 
         self.assertEqual('{"int": 1, "string": "value"}',
-                         six.text_type(self.model))
+                         str(self.model))
 
     def test_dict_serialization(self):
         self.model['dt'] = {'a': 1, 'b': 2}
@@ -213,7 +212,7 @@
                       '"int": 1, '
                       '"string": "value"'
                       '}')
-        self.assertEqual(target_str, six.text_type(self.model))
+        self.assertEqual(target_str, str(self.model))
 
     def test_list_serialization(self):
         self.model['lt'] = ['a', 'b']
@@ -223,7 +222,7 @@
                       '"lt": ["a", "b"], '
                       '"string": "value"'
                       '}')
-        self.assertEqual(target_str, six.text_type(self.model))
+        self.assertEqual(target_str, str(self.model))
 
     def test_list_in_dict_serialization(self):
         self.model['dt'] = {'a': 1, 'b': [2, 3]}
@@ -233,7 +232,7 @@
                       '"int": 1, '
                       '"string": "value"'
                       '}')
-        self.assertEqual(target_str, six.text_type(self.model))
+        self.assertEqual(target_str, str(self.model))
 
     def test_dict_in_list_serialization(self):
         self.model['lt'] = [1, {'b': 2, 'c': 3}]
@@ -243,7 +242,7 @@
                       '"lt": [1, {"b": 2, "c": 3}], '
                       '"string": "value"'
                       '}')
-        self.assertEqual(target_str, six.text_type(self.model))
+        self.assertEqual(target_str, str(self.model))
 
     def test_submodel_serialization(self):
         sm = mwdv_generator()
@@ -256,7 +255,7 @@
                       '"string": "value", '
                       '"submodel": {"int": 1, "string": "value"}'
                       '}')
-        self.assertEqual(target_str, six.text_type(self.model))
+        self.assertEqual(target_str, str(self.model))
 
 
 class TestGenericTextViews(base.BaseTestCase):
@@ -280,7 +279,7 @@
                       'string = value\n'
                       'int = 2\n'
                       'string = value')
-        self.assertEqual(target_str, six.text_type(self.model))
+        self.assertEqual(target_str, str(self.model))
 
     def test_basic_kv_view(self):
         attached_view = text_generic.BasicKeyValueView()
@@ -288,7 +287,7 @@
                                             attached_view=attached_view)
 
         self.assertEqual('int = 1\nstring = value\n',
-                         six.text_type(self.model))
+                         str(self.model))
 
     def test_table_view(self):
         column_names = ['Column A', 'Column B']
@@ -305,7 +304,7 @@
                       '                 1                 |                 2  
                \n'   # noqa
                       '                 3                 |                 4  
                \n')  # noqa
 
-        self.assertEqual(target_str, six.text_type(self.model))
+        self.assertEqual(target_str, str(self.model))
 
     def test_dict_serialization(self):
         self.model['dt'] = {'a': 1, 'b': 2}
@@ -315,7 +314,7 @@
                       '  b = 2\n'
                       'int = 1\n'
                       'string = value')
-        self.assertEqual(target_str, six.text_type(self.model))
+        self.assertEqual(target_str, str(self.model))
 
     def test_list_serialization(self):
         self.model['lt'] = ['a', 'b']
@@ -325,7 +324,7 @@
                       '  a\n'
                       '  b\n'
                       'string = value')
-        self.assertEqual(target_str, six.text_type(self.model))
+        self.assertEqual(target_str, str(self.model))
 
     def test_list_in_dict_serialization(self):
         self.model['dt'] = {'a': 1, 'b': [2, 3]}
@@ -338,7 +337,7 @@
                       'int = 1\n'
                       'string = value')
 
-        self.assertEqual(target_str, six.text_type(self.model))
+        self.assertEqual(target_str, str(self.model))
 
     def test_dict_in_list_serialization(self):
         self.model['lt'] = [1, {'b': 2, 'c': 3}]
@@ -350,7 +349,7 @@
                       '    b = 2\n'
                       '    c = 3\n'
                       'string = value')
-        self.assertEqual(target_str, six.text_type(self.model))
+        self.assertEqual(target_str, str(self.model))
 
     def test_submodel_serialization(self):
         sm = mwdv_generator()
@@ -363,7 +362,7 @@
                       'submodel = \n'
                       '  int = 1\n'
                       '  string = value')
-        self.assertEqual(target_str, six.text_type(self.model))
+        self.assertEqual(target_str, str(self.model))
 
     def test_custom_indent_string(self):
         view = text_generic.KeyValueView(indent_str='~~')
@@ -376,7 +375,7 @@
                       '~~a\n'
                       '~~b\n'
                       'string = value')
-        self.assertEqual(target_str, six.text_type(self.model))
+        self.assertEqual(target_str, str(self.model))
 
 
 def get_open_mocks(rv):
@@ -401,14 +400,14 @@
         self.model.attached_view = jv.JinjaView(path='a/b/c/d.jinja.txt')
 
         self.assertEqual('int is 1, string is value',
-                         six.text_type(self.model))
+                         str(self.model))
         self.MM_FILE.assert_called_with_once('a/b/c/d.jinja.txt')
 
     def test_direct_pass(self):
         self.model.attached_view = jv.JinjaView(text=self.TEMPL_STR)
 
         self.assertEqual('int is 1, string is value',
-                         six.text_type(self.model))
+                         str(self.model))
 
     def test_load_from_class(self):
         class TmpJinjaView(jv.JinjaView):
@@ -417,7 +416,7 @@
         self.model.attached_view = TmpJinjaView()
 
         self.assertEqual('int is 1, string is value',
-                         six.text_type(self.model))
+                         str(self.model))
 
     def test_is_deepcopiable(self):
         view_orig = jv.JinjaView(text=self.TEMPL_STR)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.reports-2.2.0/oslo_reports/views/text/generic.py 
new/oslo.reports-2.3.0/oslo_reports/views/text/generic.py
--- old/oslo.reports-2.2.0/oslo_reports/views/text/generic.py   2020-09-11 
21:18:26.000000000 +0200
+++ new/oslo.reports-2.3.0/oslo_reports/views/text/generic.py   2021-07-01 
14:36:20.000000000 +0200
@@ -23,8 +23,6 @@
 except ImportError:  # python 2
     import collections as abc
 
-import six
-
 
 class MultiView(object):
     """A Text View Containing Multiple Views
@@ -38,7 +36,7 @@
     """
 
     def __call__(self, model):
-        res = sorted([six.text_type(model[key]) for key in model])
+        res = sorted([str(model[key]) for key in model])
         return "\n".join(res)
 
 
@@ -126,7 +124,7 @@
                 for key in sorted(root):
                     res.extend(serialize(root[key], key, indent + 1))
             elif (isinstance(root, abc.Sequence) and
-                    not isinstance(root, six.string_types)):
+                    not isinstance(root, str)):
                 if rootkey is not None:
                     res[0] += self.list_sep
                     if self.before_list is not None:
@@ -135,7 +133,7 @@
                 for val in sorted(root, key=str):
                     res.extend(serialize(val, None, indent + 1))
             else:
-                str_root = six.text_type(root)
+                str_root = str(root)
                 if '\n' in str_root:
                     # we are in a submodel
                     if rootkey is not None:
@@ -198,7 +196,7 @@
     def __call__(self, model):
         res = self.header_fmt_str.format(ch=self.column_names)
         for raw_row in model[self.table_prop_name]:
-            row = [six.text_type(raw_row[prop_name])
+            row = [str(raw_row[prop_name])
                    for prop_name in self.column_values]
             # double format is in case we have roundoff error
             res += '{0: <72}\n'.format(self.row_fmt_str.format(cv=row))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.reports-2.2.0/oslo_reports/views/text/header.py 
new/oslo.reports-2.3.0/oslo_reports/views/text/header.py
--- old/oslo.reports-2.2.0/oslo_reports/views/text/header.py    2020-09-11 
21:18:26.000000000 +0200
+++ new/oslo.reports-2.3.0/oslo_reports/views/text/header.py    2021-07-01 
14:36:20.000000000 +0200
@@ -17,8 +17,6 @@
 This package defines several text views with headers
 """
 
-import six
-
 
 class HeaderView(object):
     """A Text View With a Header
@@ -33,7 +31,7 @@
         self.header = header
 
     def __call__(self, model):
-        return six.text_type(self.header) + "\n" + six.text_type(model)
+        return f'{self.header}\n{model}'
 
 
 class TitledView(HeaderView):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.reports-2.2.0/oslo_reports/views/xml/generic.py 
new/oslo.reports-2.3.0/oslo_reports/views/xml/generic.py
--- old/oslo.reports-2.2.0/oslo_reports/views/xml/generic.py    2020-09-11 
21:18:26.000000000 +0200
+++ new/oslo.reports-2.3.0/oslo_reports/views/xml/generic.py    2021-07-01 
14:36:20.000000000 +0200
@@ -31,8 +31,6 @@
 except ImportError:  # python 2
     import collections as abc
 
-import six
-
 from oslo_reports import _utils as utils
 
 
@@ -73,13 +71,13 @@
                 for key in sorted(rootmodel):
                     res.append(serialize(rootmodel[key], key))
             elif (isinstance(rootmodel, abc.Sequence) and
-                    not isinstance(rootmodel, six.string_types)):
+                    not isinstance(rootmodel, str)):
                 for val in sorted(rootmodel, key=str):
                     res.append(serialize(val, 'item'))
             elif ET.iselement(rootmodel):
                 res.append(rootmodel)
             else:
-                res.text = six.text_type(rootmodel)
+                res.text = str(rootmodel)
 
             return res
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.reports-2.2.0/releasenotes/source/index.rst 
new/oslo.reports-2.3.0/releasenotes/source/index.rst
--- old/oslo.reports-2.2.0/releasenotes/source/index.rst        2020-09-11 
21:18:26.000000000 +0200
+++ new/oslo.reports-2.3.0/releasenotes/source/index.rst        2021-07-01 
14:36:20.000000000 +0200
@@ -6,6 +6,7 @@
     :maxdepth: 1
 
     unreleased
+    victoria
     ussuri
     train
     stein
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.reports-2.2.0/releasenotes/source/victoria.rst 
new/oslo.reports-2.3.0/releasenotes/source/victoria.rst
--- old/oslo.reports-2.2.0/releasenotes/source/victoria.rst     1970-01-01 
01:00:00.000000000 +0100
+++ new/oslo.reports-2.3.0/releasenotes/source/victoria.rst     2021-07-01 
14:36:20.000000000 +0200
@@ -0,0 +1,6 @@
+=============================
+Victoria Series Release Notes
+=============================
+
+.. release-notes::
+   :branch: stable/victoria
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.reports-2.2.0/requirements.txt 
new/oslo.reports-2.3.0/requirements.txt
--- old/oslo.reports-2.2.0/requirements.txt     2020-09-11 21:18:26.000000000 
+0200
+++ new/oslo.reports-2.3.0/requirements.txt     2021-07-01 14:36:20.000000000 
+0200
@@ -6,6 +6,5 @@
 Jinja2>=2.10 # BSD License (3 clause)
 oslo.serialization!=2.19.1,>=2.18.0 # Apache-2.0
 psutil>=3.2.2 # BSD
-six>=1.10.0 # MIT
 oslo.i18n>=3.15.3 # Apache-2.0
 oslo.utils>=3.33.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.reports-2.2.0/setup.cfg 
new/oslo.reports-2.3.0/setup.cfg
--- old/oslo.reports-2.2.0/setup.cfg    2020-09-11 21:19:28.000000000 +0200
+++ new/oslo.reports-2.3.0/setup.cfg    2021-07-01 14:36:53.990810900 +0200
@@ -1,12 +1,12 @@
 [metadata]
 name = oslo.reports
 summary = oslo.reports library
-description-file = 
+description_file = 
        README.rst
 author = OpenStack
-author-email = [email protected]
-home-page = https://docs.openstack.org/oslo.reports/latest
-python-requires = >=3.6
+author_email = [email protected]
+home_page = https://docs.openstack.org/oslo.reports/latest
+python_requires = >=3.6
 classifier = 
        Environment :: OpenStack
        Intended Audience :: Information Technology
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.reports-2.2.0/test-requirements.txt 
new/oslo.reports-2.3.0/test-requirements.txt
--- old/oslo.reports-2.2.0/test-requirements.txt        2020-09-11 
21:18:26.000000000 +0200
+++ new/oslo.reports-2.3.0/test-requirements.txt        2021-07-01 
14:36:20.000000000 +0200
@@ -2,7 +2,7 @@
 # of appearance. Changing the order has an impact on the overall integration
 # process, which may cause wedges in the gate later.
 
-hacking>=3.0,<3.1.0 # Apache-2.0
+hacking>=3.0.1,<3.1.0 # Apache-2.0
 oslotest>=3.2.0 # Apache-2.0
 stestr>=2.0.0 # Apache-2.0
 
@@ -15,3 +15,5 @@
 
 # Bandit security code scanner
 bandit>=1.6.0,<1.7.0 # Apache-2.0
+
+pre-commit>=2.6.0 # MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.reports-2.2.0/tox.ini 
new/oslo.reports-2.3.0/tox.ini
--- old/oslo.reports-2.2.0/tox.ini      2020-09-11 21:18:26.000000000 +0200
+++ new/oslo.reports-2.3.0/tox.ini      2021-07-01 14:36:20.000000000 +0200
@@ -1,22 +1,22 @@
 [tox]
 minversion = 3.1.1
-envlist = py38,pep8
+envlist = py3,pep8
 ignore_basepython_conflict = true
 
 [testenv]
 basepython = python3
 deps =
-  
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
+  
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
   -r{toxinidir}/test-requirements.txt
   -r{toxinidir}/requirements.txt
 commands = stestr run --slowest {posargs}
 
 [testenv:pep8]
 deps =
-  
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
+  
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
   -r{toxinidir}/test-requirements.txt
 commands =
-  flake8
+  pre-commit run -a
   # Run security linter
   bandit -r oslo_reports tests -n5 --skip B314,B405
 
@@ -51,14 +51,9 @@
 whitelist_externals =
   rm
 deps =
-  
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
+  
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
   -r{toxinidir}/doc/requirements.txt
 commands =
   rm -rf releasenotes/build
   sphinx-build -a -E -W -d releasenotes/build/doctrees --keep-going -b html 
releasenotes/source releasenotes/build/html
 
-[testenv:lower-constraints]
-deps =
-  -c{toxinidir}/lower-constraints.txt
-  -r{toxinidir}/test-requirements.txt
-  -r{toxinidir}/requirements.txt

Reply via email to