Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-oslo.utils for
openSUSE:Factory checked in at 2023-07-18 22:09:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.utils (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.utils.new.3193 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.utils"
Tue Jul 18 22:09:09 2023 rev:31 rq:1099312 version:6.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.utils/python-oslo.utils.changes
2023-01-05 15:00:55.609043664 +0100
+++
/work/SRC/openSUSE:Factory/.python-oslo.utils.new.3193/python-oslo.utils.changes
2023-07-18 22:09:41.747516098 +0200
@@ -1,0 +2,16 @@
+Tue Jul 18 16:41:01 UTC 2023 - [email protected]
+
+- update to version 6.2.0
+ - Replace deprecated assertAlmostEquals method
+ - Fix compatibility with Python 3.8
+ - Moves supported python runtimes from version 3.8 to 3.10
+ - Bump bandit
+ - strutils: update string_to_bytes
+ - Implement zoneinfo support to drop dependency to pytz
+ - Add netutils.get_my_ipv6()
+ - Use the new openstack-python3-jobs template
+ - Revert "Moves supported python runtimes from version 3.8 to 3.10"
+ - Update units for current SI prefixes
+ - Update master for stable/2023.1
+
+-------------------------------------------------------------------
Old:
----
oslo.utils-6.1.0.tar.gz
New:
----
oslo.utils-6.2.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.utils.spec ++++++
--- /var/tmp/diff_new_pack.4rgIy8/_old 2023-07-18 22:09:42.399519743 +0200
+++ /var/tmp/diff_new_pack.4rgIy8/_new 2023-07-18 22:09:42.403519765 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-oslo.utils
#
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 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.utils
-Version: 6.1.0
+Version: 6.2.0
Release: 0
Summary: OpenStack Utils Library
License: Apache-2.0
Group: Development/Languages/Python
URL: https://docs.openstack.org/oslo.utils
-Source0:
https://files.pythonhosted.org/packages/source/o/oslo.utils/oslo.utils-6.1.0.tar.gz
+Source0:
https://files.pythonhosted.org/packages/source/o/oslo.utils/oslo.utils-6.2.0.tar.gz
BuildRequires: openstack-macros
BuildRequires: python3-Babel
BuildRequires: python3-ddt
@@ -72,7 +72,7 @@
Documentation for OpenStack utils library.
%prep
-%autosetup -p1 -n oslo.utils-6.1.0
+%autosetup -p1 -n oslo.utils-6.2.0
%py_req_cleanup
@@ -83,14 +83,14 @@
%py3_install
# generate html docs
-PBR_VERSION=6.1.0 %sphinx_build -b html doc/source doc/build/html
+PBR_VERSION=6.2.0 %sphinx_build -b html doc/source doc/build/html
# remove the sphinx-build leftovers
rm -rf doc/build/html/.{doctrees,buildinfo}
%check
# tests fail with python 3.8
rm -v oslo_utils/tests/test_reflection.py
-python3 -m stestr.cli run
+%{openstack_stestr_run}
%files -n python3-oslo.utils
%license LICENSE
++++++ oslo.utils-6.1.0.tar.gz -> oslo.utils-6.2.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.1.0/.zuul.yaml
new/oslo.utils-6.2.0/.zuul.yaml
--- old/oslo.utils-6.1.0/.zuul.yaml 2022-11-17 11:04:40.000000000 +0100
+++ new/oslo.utils-6.2.0/.zuul.yaml 2023-07-06 10:55:34.000000000 +0200
@@ -2,7 +2,7 @@
templates:
- check-requirements
- lib-forward-testing-python3
- - openstack-python3-antelope-jobs
+ - openstack-python3-jobs
- periodic-stable-jobs
- publish-openstack-docs-pti
- release-notes-jobs-python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.1.0/AUTHORS new/oslo.utils-6.2.0/AUTHORS
--- old/oslo.utils-6.1.0/AUTHORS 2022-11-17 11:05:08.000000000 +0100
+++ new/oslo.utils-6.2.0/AUTHORS 2023-07-06 10:56:01.000000000 +0200
@@ -25,6 +25,7 @@
Bence Romsics <[email protected]>
Bin Zhou <[email protected]>
Brant Knudson <[email protected]>
+Brian Haley <[email protected]>
Brian Rosmaita <[email protected]>
BubaVV <[email protected]>
Cedric Brandily <[email protected]>
@@ -64,6 +65,7 @@
Flaper Fesp <[email protected]>
Flavio Percoco <[email protected]>
Gary Kotton <[email protected]>
+Ghanshyam <[email protected]>
Ghanshyam Mann <[email protected]>
Ghe Rivero <[email protected]>
Guang Yee <[email protected]>
@@ -110,6 +112,7 @@
Omar Shykhkerimov <[email protected]>
OpenStack Release Bot <[email protected]>
Paul Belanger <[email protected]>
+Petr VanÄk <[email protected]>
Pierre Riteau <[email protected]>
Radomir Dopieralski <[email protected]>
Rahul Nair <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.1.0/ChangeLog
new/oslo.utils-6.2.0/ChangeLog
--- old/oslo.utils-6.1.0/ChangeLog 2022-11-17 11:05:08.000000000 +0100
+++ new/oslo.utils-6.2.0/ChangeLog 2023-07-06 10:56:01.000000000 +0200
@@ -1,6 +1,21 @@
CHANGES
=======
+6.2.0
+-----
+
+* Replace deprecated assertAlmostEquals method
+* strutils: update string\_to\_bytes
+* Add netutils.get\_my\_ipv6()
+* Bump bandit
+* Fix compatibility with Python 3.8
+* Revert "Moves supported python runtimes from version 3.8 to 3.10"
+* Moves supported python runtimes from version 3.8 to 3.10
+* Update units for current SI prefixes
+* Implement zoneinfo support to drop dependency to pytz
+* Use the new openstack-python3-jobs template
+* Update master for stable/2023.1
+
6.1.0
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.1.0/PKG-INFO
new/oslo.utils-6.2.0/PKG-INFO
--- old/oslo.utils-6.1.0/PKG-INFO 2022-11-17 11:05:08.786223000 +0100
+++ new/oslo.utils-6.2.0/PKG-INFO 2023-07-06 10:56:01.374003600 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.2
Name: oslo.utils
-Version: 6.1.0
+Version: 6.2.0
Summary: Oslo Utility library
Home-page: https://docs.openstack.org/oslo.utils/latest/
Author: OpenStack
@@ -47,6 +47,7 @@
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Requires-Python: >=3.8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.1.0/oslo.utils.egg-info/PKG-INFO
new/oslo.utils-6.2.0/oslo.utils.egg-info/PKG-INFO
--- old/oslo.utils-6.1.0/oslo.utils.egg-info/PKG-INFO 2022-11-17
11:05:08.000000000 +0100
+++ new/oslo.utils-6.2.0/oslo.utils.egg-info/PKG-INFO 2023-07-06
10:56:01.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.2
Name: oslo.utils
-Version: 6.1.0
+Version: 6.2.0
Summary: Oslo Utility library
Home-page: https://docs.openstack.org/oslo.utils/latest/
Author: OpenStack
@@ -47,6 +47,7 @@
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Requires-Python: >=3.8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.1.0/oslo.utils.egg-info/SOURCES.txt
new/oslo.utils-6.2.0/oslo.utils.egg-info/SOURCES.txt
--- old/oslo.utils-6.1.0/oslo.utils.egg-info/SOURCES.txt 2022-11-17
11:05:08.000000000 +0100
+++ new/oslo.utils-6.2.0/oslo.utils.egg-info/SOURCES.txt 2023-07-06
10:56:01.000000000 +0200
@@ -102,13 +102,16 @@
releasenotes/notes/drop-python27-support-f97f680651693b47.yaml
releasenotes/notes/fix_mask_password_regex-c0661f95a23369a4.yaml
releasenotes/notes/image-utils-handle-scientific-notation-6f65d46e9c8c8f8c.yaml
+releasenotes/notes/implement-zoneinfo-to-remove-pytz-fba6f70db09ecdb8.yaml
releasenotes/notes/introduce-keystoneidsentinel-16bf3e7f2ae7e9f3.yaml
releasenotes/notes/mask-dict-passwords-99357ffb7972fb0b.yaml
releasenotes/notes/mask-password-pattern-c8c880098743de3e.yaml
releasenotes/notes/mask-password-patterns-f41524069b8ae488.yaml
releasenotes/notes/netutils-get_mac_addr_by_ipv6-c3ce6a35a69f7c2b.yaml
+releasenotes/notes/netutils-get_my_ipv6-c9f124374655326b.yaml
releasenotes/notes/remove-fnmatch-f227b54f237a02c2.yaml
releasenotes/notes/remove-timeutils-deprecated-helpers-5de68c21dd281529.yaml
+releasenotes/source/2023.1.rst
releasenotes/source/conf.py
releasenotes/source/index.rst
releasenotes/source/newton.rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.1.0/oslo.utils.egg-info/pbr.json
new/oslo.utils-6.2.0/oslo.utils.egg-info/pbr.json
--- old/oslo.utils-6.1.0/oslo.utils.egg-info/pbr.json 2022-11-17
11:05:08.000000000 +0100
+++ new/oslo.utils-6.2.0/oslo.utils.egg-info/pbr.json 2023-07-06
10:56:01.000000000 +0200
@@ -1 +1 @@
-{"git_version": "d49d594", "is_release": true}
\ No newline at end of file
+{"git_version": "8115085", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.1.0/oslo.utils.egg-info/requires.txt
new/oslo.utils-6.2.0/oslo.utils.egg-info/requires.txt
--- old/oslo.utils-6.1.0/oslo.utils.egg-info/requires.txt 2022-11-17
11:05:08.000000000 +0100
+++ new/oslo.utils-6.2.0/oslo.utils.egg-info/requires.txt 2023-07-06
10:56:01.000000000 +0200
@@ -6,3 +6,4 @@
packaging>=20.4
pyparsing>=2.1.0
pytz>=2013.6
+tzdata>=2022.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.1.0/oslo_utils/netutils.py
new/oslo.utils-6.2.0/oslo_utils/netutils.py
--- old/oslo.utils-6.1.0/oslo_utils/netutils.py 2022-11-17 11:04:40.000000000
+0100
+++ new/oslo.utils-6.2.0/oslo_utils/netutils.py 2023-07-06 10:55:34.000000000
+0200
@@ -414,6 +414,52 @@
return LOCALHOST
+def get_my_ipv6():
+ """Returns the actual IPv6 address of the local machine.
+
+ This code figures out what source address would be used if some traffic
+ were to be sent out to some well known address on the Internet. In this
+ case, IPv6 from RFC3849 is used, but the specific address does not
+ matter much. No traffic is actually sent.
+
+ .. versionadded:: 6.1
+ Return ``'::1'`` if there is no default interface.
+ """
+ try:
+ csock = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM)
+ csock.connect(('2001:db8::1', 80))
+ (addr, _, _, _) = csock.getsockname()
+ csock.close()
+ return addr
+ except socket.error:
+ return _get_my_ipv6_address()
+
+
+def _get_my_ipv6_address():
+ """Figure out the best IPv6 address
+ """
+ LOCALHOST = '::1'
+ gtw = netifaces.gateways()
+ try:
+ interface = gtw['default'][netifaces.AF_INET6][1]
+ except (KeyError, IndexError):
+ LOG.info('Could not determine default network interface, '
+ 'using %s for IPv6 address', LOCALHOST)
+ return LOCALHOST
+
+ try:
+ return netifaces.ifaddresses(interface)[netifaces.AF_INET6][0]['addr']
+ except (KeyError, IndexError):
+ LOG.info('Could not determine IPv6 address for interface '
+ '%(interface)s, using %(address)s',
+ {'interface': interface, 'address': LOCALHOST})
+ except Exception as e:
+ LOG.info('Could not determine IPv6 address for '
+ 'interface %(interface)s: %(error)s',
+ {'interface': interface, 'error': e})
+ return LOCALHOST
+
+
class _ModifiedSplitResult(parse.SplitResult):
"""Split results class for urlsplit."""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.1.0/oslo_utils/strutils.py
new/oslo.utils-6.2.0/oslo_utils/strutils.py
--- old/oslo.utils-6.1.0/oslo_utils/strutils.py 2022-11-17 11:04:40.000000000
+0100
+++ new/oslo.utils-6.2.0/oslo_utils/strutils.py 2023-07-06 10:55:34.000000000
+0200
@@ -37,11 +37,24 @@
'Gi': 3,
'T': 4,
'Ti': 4,
+ 'P': 5,
+ 'Pi': 5,
+ 'E': 6,
+ 'Ei': 6,
+ 'Z': 7,
+ 'Zi': 7,
+ 'Y': 8,
+ 'Yi': 8,
+ 'R': 9,
+ 'Ri': 9,
+ 'Q': 10,
+ 'Qi': 10,
}
UNIT_SYSTEM_INFO = {
- 'IEC': (1024, re.compile(r'(^[-+]?\d*\.?\d+)([KMGT]i?)?(b|bit|B)$')),
- 'SI': (1000, re.compile(r'(^[-+]?\d*\.?\d+)([kMGT])?(b|bit|B)$')),
- 'mixed': (None, re.compile(r'(^[-+]?\d*\.?\d+)([kKMGT]i?)?(b|bit|B)$')),
+ 'IEC': (1024, re.compile(r'(^[-+]?\d*\.?\d+)([KMGTPEZYRQ]i?)?(b|bit|B)$')),
+ 'SI': (1000, re.compile(r'(^[-+]?\d*\.?\d+)([kMGTPEZYRQ])?(b|bit|B)$')),
+ 'mixed': (None, re.compile(
+ r'(^[-+]?\d*\.?\d+)([kKMGTPEZYRQ]i?)?(b|bit|B)$')),
}
TRUE_STRINGS = ('1', 't', 'true', 'on', 'y', 'yes')
@@ -182,13 +195,19 @@
The units supported for IEC / mixed::
- Kb(it), Kib(it), Mb(it), Mib(it), Gb(it), Gib(it), Tb(it), Tib(it)
- KB, KiB, MB, MiB, GB, GiB, TB, TiB
+ Kb(it), Kib(it), Mb(it), Mib(it), Gb(it), Gib(it), Tb(it), Tib(it),
+ Pb(it), Pib(it), Eb(it), Eib(it), Zb(it), Zib(it), Yb(it), Yib(it),
+ Rb(it), Rib(it), Qb(it), Qib(it)
+
+ KB, KiB, MB, MiB, GB, GiB, TB, TiB, PB, PiB, EB, EiB, ZB, ZiB,
+ YB, YiB, RB, RiB, QB, QiB
The units supported for SI ::
- kb(it), Mb(it), Gb(it), Tb(it)
- kB, MB, GB, TB
+ kb(it), Mb(it), Gb(it), Tb(it), Pb(it), Eb(it), Zb(it), Yb(it),
+ Rb(it), Qb(it)
+
+ kB, MB, GB, TB, PB, EB, ZB, YB, RB, QB
SI units are interpreted as power-of-ten (e.g. 1kb = 1000b). Note
that the SI unit system does not support capital letter 'K'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.1.0/oslo_utils/tests/test_netutils.py
new/oslo.utils-6.2.0/oslo_utils/tests/test_netutils.py
--- old/oslo.utils-6.1.0/oslo_utils/tests/test_netutils.py 2022-11-17
11:04:40.000000000 +0100
+++ new/oslo.utils-6.2.0/oslo_utils/tests/test_netutils.py 2023-07-06
10:55:34.000000000 +0200
@@ -276,13 +276,21 @@
for input_str in invalid_inputs:
self.assertFalse(netutils.is_valid_port(input_str))
- def test_get_my_ip(self):
+ def test_get_my_ipv4(self):
sock_attrs = {
'return_value.getsockname.return_value': ['1.2.3.4', '']}
with mock.patch('socket.socket', **sock_attrs):
addr = netutils.get_my_ipv4()
self.assertEqual(addr, '1.2.3.4')
+ def test_get_my_ipv6(self):
+ sock_attrs = {
+ 'return_value.getsockname.return_value': ['2001:db8::2', '',
+ '', '']}
+ with mock.patch('socket.socket', **sock_attrs):
+ addr = netutils.get_my_ipv6()
+ self.assertEqual(addr, '2001:db8::2')
+
def test_is_int_in_range(self):
valid_inputs = [(1, -100, 100),
('1', -100, 100),
@@ -323,37 +331,44 @@
@mock.patch('socket.socket')
@mock.patch('oslo_utils.netutils._get_my_ipv4_address')
- def test_get_my_ip_socket_error(self, ip, mock_socket):
+ def test_get_my_ipv4_socket_error(self, ip, mock_socket):
mock_socket.side_effect = socket.error
ip.return_value = '1.2.3.4'
addr = netutils.get_my_ipv4()
self.assertEqual(addr, '1.2.3.4')
+ @mock.patch('socket.socket')
+ @mock.patch('oslo_utils.netutils._get_my_ipv6_address')
+ def test_get_my_ipv6_socket_error(self, ip, mock_socket):
+ mock_socket.side_effect = socket.error
+ ip.return_value = '2001:db8::2'
+ addr = netutils.get_my_ipv6()
+ self.assertEqual(addr, '2001:db8::2')
+
@mock.patch('netifaces.gateways')
@mock.patch('netifaces.ifaddresses')
- def test_get_my_ipv4_address_with_default_route(
+ def test_get_my_ip_address_with_default_route(
self, ifaddr, gateways):
- with mock.patch.dict(netifaces.__dict__, {'AF_INET': '0'}):
- ifaddr.return_value = {'0': [{'addr': '172.18.204.1'}]}
- addr = netutils._get_my_ipv4_address()
- self.assertEqual('172.18.204.1', addr)
+ ifaddr.return_value = {netifaces.AF_INET: [{'addr': '172.18.204.1'}],
+ netifaces.AF_INET6: [{'addr': '2001:db8::2'}]}
+ self.assertEqual('172.18.204.1', netutils._get_my_ipv4_address())
+ self.assertEqual('2001:db8::2', netutils._get_my_ipv6_address())
@mock.patch('netifaces.gateways')
@mock.patch('netifaces.ifaddresses')
- def test_get_my_ipv4_address_without_default_route(
+ def test_get_my_ip_address_without_default_route(
self, ifaddr, gateways):
- with mock.patch.dict(netifaces.__dict__, {'AF_INET': '0'}):
- ifaddr.return_value = {}
- addr = netutils._get_my_ipv4_address()
- self.assertEqual('127.0.0.1', addr)
+ ifaddr.return_value = {}
+ self.assertEqual('127.0.0.1', netutils._get_my_ipv4_address())
+ self.assertEqual('::1', netutils._get_my_ipv6_address())
@mock.patch('netifaces.gateways')
@mock.patch('netifaces.ifaddresses')
def test_get_my_ipv4_address_without_default_interface(
self, ifaddr, gateways):
gateways.return_value = {}
- addr = netutils._get_my_ipv4_address()
- self.assertEqual('127.0.0.1', addr)
+ self.assertEqual('127.0.0.1', netutils._get_my_ipv4_address())
+ self.assertEqual('::1', netutils._get_my_ipv6_address())
self.assertFalse(ifaddr.called)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.1.0/oslo_utils/tests/test_strutils.py
new/oslo.utils-6.2.0/oslo_utils/tests/test_strutils.py
--- old/oslo.utils-6.1.0/oslo_utils/tests/test_strutils.py 2022-11-17
11:04:40.000000000 +0100
+++ new/oslo.utils-6.2.0/oslo_utils/tests/test_strutils.py 2023-07-06
10:55:34.000000000 +0200
@@ -207,10 +207,22 @@
('M', dict(unit_prefix='M')),
('G', dict(unit_prefix='G')),
('T', dict(unit_prefix='T')),
+ ('P', dict(unit_prefix='P')),
+ ('E', dict(unit_prefix='E')),
+ ('Z', dict(unit_prefix='Z')),
+ ('Y', dict(unit_prefix='Y')),
+ ('R', dict(unit_prefix='R')),
+ ('Q', dict(unit_prefix='Q')),
('Ki', dict(unit_prefix='Ki')),
('Mi', dict(unit_prefix='Mi')),
('Gi', dict(unit_prefix='Gi')),
('Ti', dict(unit_prefix='Ti')),
+ ('Pi', dict(unit_prefix='Pi')),
+ ('Ei', dict(unit_prefix='Ei')),
+ ('Zi', dict(unit_prefix='Zi')),
+ ('Yi', dict(unit_prefix='Yi')),
+ ('Ri', dict(unit_prefix='Ri')),
+ ('Qi', dict(unit_prefix='Qi')),
('invalid_unit_prefix', dict(unit_prefix='B', assert_error=True)),
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.1.0/oslo_utils/tests/test_timeutils.py
new/oslo.utils-6.2.0/oslo_utils/tests/test_timeutils.py
--- old/oslo.utils-6.1.0/oslo_utils/tests/test_timeutils.py 2022-11-17
11:04:40.000000000 +0100
+++ new/oslo.utils-6.2.0/oslo_utils/tests/test_timeutils.py 2023-07-06
10:55:34.000000000 +0200
@@ -192,8 +192,8 @@
before = timeutils.utcnow()
after = before + datetime.timedelta(days=7, seconds=59,
microseconds=123456)
- self.assertAlmostEquals(604859.123456,
- timeutils.delta_seconds(before, after))
+ self.assertAlmostEqual(604859.123456,
+ timeutils.delta_seconds(before, after))
def test_is_soon(self):
expires = timeutils.utcnow() + datetime.timedelta(minutes=5)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.1.0/oslo_utils/timeutils.py
new/oslo.utils-6.2.0/oslo_utils/timeutils.py
--- old/oslo.utils-6.1.0/oslo_utils/timeutils.py 2022-11-17
11:04:40.000000000 +0100
+++ new/oslo.utils-6.2.0/oslo_utils/timeutils.py 2023-07-06
10:55:34.000000000 +0200
@@ -24,7 +24,13 @@
import time
import iso8601
-import pytz
+
+try:
+ import zoneinfo
+except ImportError:
+ # zoneinfo is available in Python >= 3.9
+ import pytz
+ zoneinfo = None
from oslo_utils import reflection
@@ -225,8 +231,14 @@
if tzname:
# Need to handle either iso8601 or python UTC format
tzname = 'UTC' if tzname == 'UTC+00:00' else tzname
- tzinfo = pytz.timezone(tzname)
- dt = tzinfo.localize(dt)
+
+ if zoneinfo:
+ tzinfo = zoneinfo.ZoneInfo(tzname)
+ dt = dt.replace(tzinfo=tzinfo)
+ else:
+ tzinfo = pytz.timezone(tzname)
+ dt = tzinfo.localize(dt)
+
return dt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.1.0/oslo_utils/units.py
new/oslo.utils-6.2.0/oslo_utils/units.py
--- old/oslo.utils-6.1.0/oslo_utils/units.py 2022-11-17 11:04:40.000000000
+0100
+++ new/oslo.utils-6.2.0/oslo_utils/units.py 2023-07-06 10:55:34.000000000
+0200
@@ -34,6 +34,10 @@
"Binary zetta unit"
Yi = 1024 ** 8
"Binary yotta unit"
+Ri = 1024 ** 9
+"Binary ronna unit"
+Qi = 1024 ** 10
+"Binary quetta unit"
# Decimal unit constants.
k = 1000
@@ -52,3 +56,7 @@
"Decimal zetta unit"
Y = 1000 ** 8
"Decimal yotta unit"
+R = 1000 ** 9
+"Decimal ronna unit"
+Q = 1000 ** 10
+"Decimal quetta unit"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.utils-6.1.0/releasenotes/notes/implement-zoneinfo-to-remove-pytz-fba6f70db09ecdb8.yaml
new/oslo.utils-6.2.0/releasenotes/notes/implement-zoneinfo-to-remove-pytz-fba6f70db09ecdb8.yaml
---
old/oslo.utils-6.1.0/releasenotes/notes/implement-zoneinfo-to-remove-pytz-fba6f70db09ecdb8.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/oslo.utils-6.2.0/releasenotes/notes/implement-zoneinfo-to-remove-pytz-fba6f70db09ecdb8.yaml
2023-07-06 10:55:34.000000000 +0200
@@ -0,0 +1,5 @@
+---
+other:
+ - |
+ Implement zoneinfo to allow us to remove pytz's dependency for Python 3.9
+ and 3.10.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.utils-6.1.0/releasenotes/notes/netutils-get_my_ipv6-c9f124374655326b.yaml
new/oslo.utils-6.2.0/releasenotes/notes/netutils-get_my_ipv6-c9f124374655326b.yaml
---
old/oslo.utils-6.1.0/releasenotes/notes/netutils-get_my_ipv6-c9f124374655326b.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/oslo.utils-6.2.0/releasenotes/notes/netutils-get_my_ipv6-c9f124374655326b.yaml
2023-07-06 10:55:34.000000000 +0200
@@ -0,0 +1,5 @@
+---
+features:
+ - |
+ New method ``netutils.get_my_ipv6()`` returns the IPv6 address
+ of the local machine.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.1.0/releasenotes/source/2023.1.rst
new/oslo.utils-6.2.0/releasenotes/source/2023.1.rst
--- old/oslo.utils-6.1.0/releasenotes/source/2023.1.rst 1970-01-01
01:00:00.000000000 +0100
+++ new/oslo.utils-6.2.0/releasenotes/source/2023.1.rst 2023-07-06
10:55:34.000000000 +0200
@@ -0,0 +1,6 @@
+===========================
+2023.1 Series Release Notes
+===========================
+
+.. release-notes::
+ :branch: stable/2023.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.1.0/releasenotes/source/index.rst
new/oslo.utils-6.2.0/releasenotes/source/index.rst
--- old/oslo.utils-6.1.0/releasenotes/source/index.rst 2022-11-17
11:04:40.000000000 +0100
+++ new/oslo.utils-6.2.0/releasenotes/source/index.rst 2023-07-06
10:55:34.000000000 +0200
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ 2023.1
zed
yoga
xena
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.1.0/requirements.txt
new/oslo.utils-6.2.0/requirements.txt
--- old/oslo.utils-6.1.0/requirements.txt 2022-11-17 11:04:40.000000000
+0100
+++ new/oslo.utils-6.2.0/requirements.txt 2023-07-06 10:55:34.000000000
+0200
@@ -11,3 +11,4 @@
debtcollector>=1.2.0 # Apache-2.0
pyparsing>=2.1.0 # MIT
packaging>=20.4 # BSD
+tzdata>=2022.4 # MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.1.0/setup.cfg
new/oslo.utils-6.2.0/setup.cfg
--- old/oslo.utils-6.1.0/setup.cfg 2022-11-17 11:05:08.790223000 +0100
+++ new/oslo.utils-6.2.0/setup.cfg 2023-07-06 10:56:01.374003600 +0200
@@ -17,6 +17,7 @@
Programming Language :: Python :: 3
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
+ Programming Language :: Python :: 3.10
Programming Language :: Python :: 3 :: Only
Programming Language :: Python :: Implementation :: CPython
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.1.0/test-requirements.txt
new/oslo.utils-6.2.0/test-requirements.txt
--- old/oslo.utils-6.1.0/test-requirements.txt 2022-11-17 11:04:40.000000000
+0100
+++ new/oslo.utils-6.2.0/test-requirements.txt 2023-07-06 10:55:34.000000000
+0200
@@ -21,6 +21,6 @@
oslo.config>=5.2.0 # Apache-2.0
# Bandit security code scanner
-bandit>=1.6.0,<1.7.0 # Apache-2.0
+bandit>=1.7.0,<1.8.0 # Apache-2.0
pre-commit>=2.6.0 # MIT