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 2024-05-03 19:45:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.utils (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.utils.new.1880 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.utils"
Fri May 3 19:45:31 2024 rev:33 rq:1171465 version:7.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.utils/python-oslo.utils.changes
2024-01-05 21:42:50.629418418 +0100
+++
/work/SRC/openSUSE:Factory/.python-oslo.utils.new.1880/python-oslo.utils.changes
2024-05-03 19:45:48.075581265 +0200
@@ -1,0 +2,15 @@
+Thu May 2 22:10:56 UTC 2024 - [email protected]
+
+- update to version 7.1.0
+ - Update python classifier in setup.cfg
+ - add <range-in> spec DSL operator
+ - reno: Update master for unmaintained/yoga
+ - Remove reference to monotonic on PyPI
+ - Remove strict from is_same_callback()
+ - Require pytz only in Python < 3.9
+ - pre-commit: Integrate bandit
+ - Python-3.12: do not use datetime.datetime.utcnow()
+ - pre-commit: Bump versions
+ - Bump hacking
+
+-------------------------------------------------------------------
Old:
----
oslo.utils-6.3.0.tar.gz
New:
----
oslo.utils-7.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.utils.spec ++++++
--- /var/tmp/diff_new_pack.zElDSi/_old 2024-05-03 19:45:48.759606132 +0200
+++ /var/tmp/diff_new_pack.zElDSi/_new 2024-05-03 19:45:48.763606278 +0200
@@ -17,13 +17,13 @@
Name: python-oslo.utils
-Version: 6.3.0
+Version: 7.1.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.3.0.tar.gz
+Source0:
https://files.pythonhosted.org/packages/source/o/oslo.utils/oslo.utils-7.1.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.3.0
+%autosetup -p1 -n oslo.utils-7.1.0
%py_req_cleanup
@@ -83,13 +83,12 @@
%py3_install
# generate html docs
-PBR_VERSION=6.3.0 %sphinx_build -b html doc/source doc/build/html
+PBR_VERSION=7.1.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
+rm -v oslo_utils/tests/test_netutils.py
%{openstack_stestr_run}
%files -n python3-oslo.utils
++++++ oslo.utils-6.3.0.tar.gz -> oslo.utils-7.1.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.3.0/.pre-commit-config.yaml
new/oslo.utils-7.1.0/.pre-commit-config.yaml
--- old/oslo.utils-6.3.0/.pre-commit-config.yaml 2023-11-09
13:30:52.000000000 +0100
+++ new/oslo.utils-7.1.0/.pre-commit-config.yaml 2024-02-22
15:39:13.000000000 +0100
@@ -1,15 +1,6 @@
-# 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
+ rev: v4.5.0
hooks:
- id: trailing-whitespace
# Replaces or checks mixed line ending
@@ -27,13 +18,13 @@
- id: debug-statements
- id: check-yaml
files: .*\.(yaml|yml)$
- - repo: local
+ - repo: https://opendev.org/openstack/hacking
+ rev: 6.1.0
hooks:
- - id: flake8
- name: flake8
- additional_dependencies:
- - hacking>=3.0.1,<3.1.0
- language: python
- entry: flake8
- files: '^.*\.py$'
- exclude: '^(doc|releasenotes|tools)/.*$'
+ - id: hacking
+ additional_dependencies: []
+ - repo: https://github.com/PyCQA/bandit
+ rev: 1.7.6
+ hooks:
+ - id: bandit
+ args: ['-x', 'tests']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.3.0/AUTHORS new/oslo.utils-7.1.0/AUTHORS
--- old/oslo.utils-6.3.0/AUTHORS 2023-11-09 13:31:29.000000000 +0100
+++ new/oslo.utils-7.1.0/AUTHORS 2024-02-22 15:39:59.000000000 +0100
@@ -1,6 +1,7 @@
Abhishek Chanda <[email protected]>
Abhishek Kekane <[email protected]>
Adam Harwell <[email protected]>
+Adam Rozman <[email protected]>
Ade Lee <[email protected]>
Akihiro Motoki <[email protected]>
Akihiro Motoki <[email protected]>
@@ -119,6 +120,7 @@
Rajath Agasthya <[email protected]>
Raymond Pekowski <[email protected]>
Rick Harris <[email protected]>
+Rodolfo Alonso Hernandez <[email protected]>
Ronald Bradford <[email protected]>
RongzeZhu <[email protected]>
Ruby Loo <[email protected]>
@@ -140,6 +142,7 @@
Takashi Kajinami <[email protected]>
Takashi Kajinami <[email protected]>
Timur Sufiev <[email protected]>
+Tobias Urdin <[email protected]>
Tony Breeds <[email protected]>
Tovin Seven <[email protected]>
Valeriy Ponomaryov <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.3.0/ChangeLog
new/oslo.utils-7.1.0/ChangeLog
--- old/oslo.utils-6.3.0/ChangeLog 2023-11-09 13:31:29.000000000 +0100
+++ new/oslo.utils-7.1.0/ChangeLog 2024-02-22 15:39:59.000000000 +0100
@@ -1,6 +1,22 @@
CHANGES
=======
+7.1.0
+-----
+
+* add <range-in> spec DSL operator
+* reno: Update master for unmaintained/yoga
+* pre-commit: Integrate bandit
+* pre-commit: Bump versions
+* Bump hacking
+
+7.0.0
+-----
+
+* Update python classifier in setup.cfg
+* Python-3.12: do not use datetime.datetime.utcnow()
+* Require pytz only in Python < 3.9
+
6.3.0
-----
@@ -23,11 +39,13 @@
* Add netutils.get\_my\_ipv6()
* Bump bandit
* Fix compatibility with Python 3.8
+* Remove reference to monotonic on PyPI
* 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
+* Remove strict from is\_same\_callback()
* Update master for stable/2023.1
6.1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.3.0/PKG-INFO
new/oslo.utils-7.1.0/PKG-INFO
--- old/oslo.utils-6.3.0/PKG-INFO 2023-11-09 13:31:30.012476200 +0100
+++ new/oslo.utils-7.1.0/PKG-INFO 2024-02-22 15:39:59.658798500 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.2
Name: oslo.utils
-Version: 6.3.0
+Version: 7.1.0
Summary: Oslo Utility library
Home-page: https://docs.openstack.org/oslo.utils/latest/
Author: OpenStack
@@ -48,6 +48,7 @@
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
+Classifier: Programming Language :: Python :: 3.11
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.3.0/oslo.utils.egg-info/PKG-INFO
new/oslo.utils-7.1.0/oslo.utils.egg-info/PKG-INFO
--- old/oslo.utils-6.3.0/oslo.utils.egg-info/PKG-INFO 2023-11-09
13:31:29.000000000 +0100
+++ new/oslo.utils-7.1.0/oslo.utils.egg-info/PKG-INFO 2024-02-22
15:39:59.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.2
Name: oslo.utils
-Version: 6.3.0
+Version: 7.1.0
Summary: Oslo Utility library
Home-page: https://docs.openstack.org/oslo.utils/latest/
Author: OpenStack
@@ -48,6 +48,7 @@
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
+Classifier: Programming Language :: Python :: 3.11
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.3.0/oslo.utils.egg-info/SOURCES.txt
new/oslo.utils-7.1.0/oslo.utils.egg-info/SOURCES.txt
--- old/oslo.utils-6.3.0/oslo.utils.egg-info/SOURCES.txt 2023-11-09
13:31:29.000000000 +0100
+++ new/oslo.utils-7.1.0/oslo.utils.egg-info/SOURCES.txt 2024-02-22
15:39:59.000000000 +0100
@@ -109,7 +109,9 @@
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/new_spec_dsl_operator-21c80a46f67c56df.yaml
releasenotes/notes/remove-fnmatch-f227b54f237a02c2.yaml
+releasenotes/notes/remove-strict-from-is_same_callback-cfbff2ada778987e.yaml
releasenotes/notes/remove-timeutils-deprecated-helpers-5de68c21dd281529.yaml
releasenotes/source/2023.1.rst
releasenotes/source/2023.2.rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.3.0/oslo.utils.egg-info/pbr.json
new/oslo.utils-7.1.0/oslo.utils.egg-info/pbr.json
--- old/oslo.utils-6.3.0/oslo.utils.egg-info/pbr.json 2023-11-09
13:31:29.000000000 +0100
+++ new/oslo.utils-7.1.0/oslo.utils.egg-info/pbr.json 2024-02-22
15:39:59.000000000 +0100
@@ -1 +1 @@
-{"git_version": "505d80e", "is_release": true}
\ No newline at end of file
+{"git_version": "17581b5", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.3.0/oslo.utils.egg-info/requires.txt
new/oslo.utils-7.1.0/oslo.utils.egg-info/requires.txt
--- old/oslo.utils-6.3.0/oslo.utils.egg-info/requires.txt 2023-11-09
13:31:29.000000000 +0100
+++ new/oslo.utils-7.1.0/oslo.utils.egg-info/requires.txt 2024-02-22
15:39:59.000000000 +0100
@@ -6,5 +6,9 @@
oslo.i18n>=3.15.3
packaging>=20.4
pyparsing>=2.1.0
+
+[:(python_version<"3.9")]
pytz>=2013.6
+
+[:(python_version>="3.9")]
tzdata>=2022.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.3.0/oslo_utils/excutils.py
new/oslo.utils-7.1.0/oslo_utils/excutils.py
--- old/oslo.utils-6.3.0/oslo_utils/excutils.py 2023-11-09 13:30:52.000000000
+0100
+++ new/oslo.utils-7.1.0/oslo_utils/excutils.py 2024-02-22 15:39:13.000000000
+0100
@@ -138,7 +138,7 @@
finally:
# Leave no references around (especially with regards to
# tracebacks and any variables that it retains internally).
- del(exc_type, exc, exc_tb)
+ del (exc_type, exc, exc_tb)
raise exc_cls(message, *args, **kwargs) from kwargs.get('cause')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.3.0/oslo_utils/reflection.py
new/oslo.utils-7.1.0/oslo_utils/reflection.py
--- old/oslo.utils-6.3.0/oslo_utils/reflection.py 2023-11-09
13:30:52.000000000 +0100
+++ new/oslo.utils-7.1.0/oslo_utils/reflection.py 2024-02-22
15:39:13.000000000 +0100
@@ -160,13 +160,8 @@
return None
-def is_same_callback(callback1, callback2, strict=True):
- """Returns if the two callbacks are the same.
-
- 'strict' arg has no meaning for python 3.8 onwards and will
- always return the equality of both callback based on 'self'
- comparison only.
- """
+def is_same_callback(callback1, callback2):
+ """Returns if the two callbacks are the same."""
if callback1 is callback2:
# This happens when plain methods are given (or static/non-bound
# methods).
@@ -175,31 +170,8 @@
# NOTE(gmann): python3.8 onward, comparison of bound methods is
# changed. It no longer decide the bound method's equality based
# on their bounded objects equality instead it checks the identity
- # of their '__self__'. So python3.8 onward, two different bound
- # methods are no longer equal even __eq__ method return True.
- # Or in other term, 'strict' arg has no meaning from python 3.8
- # onwards above if condition never satisfy if both callback are
- # bounded to two different objects.
- # For backward compatibility for python <3.8, we can keep the 'strict'
- # arg and the below code of comparing 'self' and once minimum
- # supported python version is 3.8 we can remove both because python
- # 3.8 onward == operator itself checks identity of 'self'.
- # Ref bug: https://bugs.launchpad.net/oslo.utils/+bug/1841072
- if not strict:
- LOG.warning('"strict" arg is deprecated because it no '
- 'longer work for python 3.8 onwards')
- return True
- # Until python 3.7, two bound methods are equal if functions
- # themselves are equal and objects they are applied to are equal.
- # This means that a bound method could be the same bound method on
- # another object if the objects have __eq__ methods that return true
- # (when in fact it is a different bound method). Python u so crazy!
- try:
- self1 = operator.attrgetter("__self__")(callback1)
- self2 = operator.attrgetter("__self__")(callback2)
- return self1 is self2
- except AttributeError: # nosec
- pass
+ # of their '__self__'.
+ return True
return False
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.3.0/oslo_utils/specs_matcher.py
new/oslo.utils-7.1.0/oslo_utils/specs_matcher.py
--- old/oslo.utils-6.3.0/oslo_utils/specs_matcher.py 2023-11-09
13:30:52.000000000 +0100
+++ new/oslo.utils-7.1.0/oslo_utils/specs_matcher.py 2024-02-22
15:39:13.000000000 +0100
@@ -27,6 +27,38 @@
return all(val in x for val in y)
+def _range_in(x, *y):
+ x = ast.literal_eval(x)
+ if len(y) != 4:
+ raise TypeError("<range-in> operator has to be followed by 2 "
+ "space separated numeric value surrounded by "
+ "brackets \"range_in [ 10 20 ] \"")
+ num_x = float(x)
+ num_y = float(y[1])
+ num_z = float(y[2])
+ if num_y > num_z:
+ raise TypeError("<range-in> operator's first argument has to be "
+ "smaller or equal to the second argument EG"
+ "\"range_in ( 10 20 ] \"")
+
+ if y[0] == '[':
+ lower = num_x >= num_y
+ elif y[0] == '(':
+ lower = num_x > num_y
+ else:
+ raise TypeError("The first element should be an opening bracket "
+ "(\"(\" or \"[\")")
+
+ if y[3] == ']':
+ upper = num_x <= num_z
+ elif y[3] == ')':
+ upper = num_x < num_z
+ else:
+ raise TypeError("The last element should be a closing bracket "
+ "(\")\" or \"]\")")
+ return lower and upper
+
+
op_methods = {
# This one is special/odd,
# TODO(harlowja): fix it so that it's not greater than or
@@ -51,6 +83,7 @@
'<all-in>': _all_in,
'<in>': lambda x, y: y in x,
'<or>': lambda x, *y: any(x == a for a in y),
+ '<range-in>': _range_in,
}
@@ -79,9 +112,12 @@
* ``s>= :`` Greater than or equal
Other operations:
- * ``<all-in> :`` All items 'in' value
- * ``<in> :`` Item 'in' value, like a substring in a string.
- * ``<or> :`` Logical 'or'
+ * ``<all-in> :`` All items 'in' value
+ * ``<in> :`` Item 'in' value, like a substring in a string.
+ * ``<or> :`` Logical 'or'
+ * ``<range-in>:`` Range tester with customizable boundary conditions, tests
+ whether value is in the range, boundary condition could be
+ inclusve \'[\' or exclusive \'(\'.
If no operator is specified the default is ``s==`` (string equality comparison)
@@ -91,6 +127,9 @@
* ``"s== 2.1.0"`` Is the string value equal to ``2.1.0``
* ``"<in> gcc"`` Is the string ``gcc`` contained in the value string
* ``"<all-in> aes mmx"`` Are both ``aes`` and ``mmx`` in the value
+ * ``"<range-in> [ 10 20 ]"`` float(value) >= 10 and float(value) <= 20
+ * ``"<range-in> ( 10 20 ]"`` float(value) > 10 and float(value) <= 20
+ * ``"<range-in> ( 10 20 )"`` float(value) > 10 and float(value) < 20
:returns: A pyparsing.MatchFirst object. See
https://pythonhosted.org/pyparsing/ for details on pyparsing.
@@ -113,18 +152,21 @@
all_in_nary_op = pyparsing.Literal("<all-in>")
or_ = pyparsing.Literal("<or>")
+ range_in_binary_op = pyparsing.Literal("<range-in>")
# An atom is anything not an keyword followed by anything but whitespace
- atom = ~(unary_ops | all_in_nary_op | or_) + pyparsing.Regex(r"\S+")
+ atom = ~(unary_ops | all_in_nary_op | or_ | range_in_binary_op) + \
+ pyparsing.Regex(r"\S+")
unary = unary_ops + atom
+ range_op = range_in_binary_op + atom + atom + atom + atom
nary = all_in_nary_op + pyparsing.OneOrMore(atom)
disjunction = pyparsing.OneOrMore(or_ + atom)
# Even-numbered tokens will be '<or>', so we drop them
disjunction.setParseAction(lambda _s, _l, t: ["<or>"] + t[1::2])
- expr = disjunction | nary | unary | atom
+ expr = disjunction | nary | range_op | unary | atom
return expr
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.3.0/oslo_utils/tests/test_reflection.py
new/oslo.utils-7.1.0/oslo_utils/tests/test_reflection.py
--- old/oslo.utils-6.3.0/oslo_utils/tests/test_reflection.py 2023-11-09
13:30:52.000000000 +0100
+++ new/oslo.utils-7.1.0/oslo_utils/tests/test_reflection.py 2024-02-22
15:39:13.000000000 +0100
@@ -15,7 +15,6 @@
# under the License.
import functools
-import sys
from oslotest import base as test_base
@@ -151,16 +150,7 @@
c = A()
self.assertFalse(reflection.is_same_callback(b.b, c.b))
- # NOTE(gmann): python3.8 onwards, comparision of bound methods is
- # changed and 'strict' arg has no meaning.
- # Ref bug: https://bugs.launchpad.net/oslo.utils/+bug/1841072
- if sys.version_info < (3, 8):
- self.assertTrue(reflection.is_same_callback(b.b, c.b,
- strict=False))
- else:
- self.assertFalse(reflection.is_same_callback(b.b, c.b,
- strict=False))
- self.assertTrue(reflection.is_same_callback(b.b, b.b))
+ self.assertTrue(reflection.is_same_callback(b.b, b.b))
class BoundMethodTest(test_base.BaseTestCase):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.utils-6.3.0/oslo_utils/tests/test_specs_matcher.py
new/oslo.utils-7.1.0/oslo_utils/tests/test_specs_matcher.py
--- old/oslo.utils-6.3.0/oslo_utils/tests/test_specs_matcher.py 2023-11-09
13:30:52.000000000 +0100
+++ new/oslo.utils-7.1.0/oslo_utils/tests/test_specs_matcher.py 2024-02-22
15:39:13.000000000 +0100
@@ -435,3 +435,195 @@
specs_matcher.match,
value="^&*($",
req='<all-in> aes')
+
+ def test_specs_fails_not_enough_args_with_op_rangein(self):
+ self.assertRaises(
+ TypeError,
+ specs_matcher.match,
+ value="23",
+ req='<range-in> [ 10 ]')
+
+ def test_specs_fails_no_brackets_with_op_rangein(self):
+ self.assertRaises(
+ TypeError,
+ specs_matcher.match,
+ value="23",
+ req='<range-in> 10 20')
+
+ def test_specs_fails_no_opening_bracket_with_op_rangein(self):
+ self.assertRaises(
+ TypeError,
+ specs_matcher.match,
+ value="23",
+ req='<range-in> 10 20 ]')
+
+ def test_specs_fails_no_closing_bracket_with_op_rangein(self):
+ self.assertRaises(
+ TypeError,
+ specs_matcher.match,
+ value="23",
+ req='<range-in> [ 10 20')
+
+ def test_specs_fails_invalid_brackets_with_op_rangein(self):
+ self.assertRaises(
+ TypeError,
+ specs_matcher.match,
+ value="23",
+ req='<range-in> { 10 20 }')
+
+ def test_specs_fails_not_opening_brackets_with_op_rangein(self):
+ self.assertRaises(
+ TypeError,
+ specs_matcher.match,
+ value="23",
+ req='<range-in> ) 10 20 )')
+
+ def test_specs_fails_not_closing_brackets_with_op_rangein(self):
+ self.assertRaises(
+ TypeError,
+ specs_matcher.match,
+ value="23",
+ req='<range-in> ( 10 20 (')
+
+ def test_specs_fails_reverse_brackets_with_op_rangein(self):
+ self.assertRaises(
+ TypeError,
+ specs_matcher.match,
+ value="23",
+ req='<range-in> ) 10 20 (')
+
+ def test_specs_fails_too_many_args_with_op_rangein(self):
+ self.assertRaises(
+ TypeError,
+ specs_matcher.match,
+ value="23",
+ req='<range-in> [ 10 20 30 ]')
+
+ def test_specs_fails_bad_limits_with_op_rangein(self):
+ self.assertRaises(
+ TypeError,
+ specs_matcher.match,
+ value="23",
+ req='<range-in> [ 20 10 ]')
+
+ def test_specs_fails_match_beyond_scope_with_op_rangein_le(self):
+ self._do_specs_matcher_test(
+ matches=False,
+ value="23",
+ req='<range-in> [ 10 20 ]')
+
+ def test_specs_fails_match_beyond_scope_with_op_rangein_lt(self):
+ self._do_specs_matcher_test(
+ matches=False,
+ value="23",
+ req='<range-in> [ 10 20 )')
+
+ def test_specs_fails_match_under_scope_with_op_rangein_ge(self):
+ self._do_specs_matcher_test(
+ matches=False,
+ value="5",
+ req='<range-in> [ 10 20 ]')
+
+ def test_specs_fails_match_under_scope_with_op_rangein_gt(self):
+ self._do_specs_matcher_test(
+ matches=False,
+ value="5",
+ req='<range-in> ( 10 20 ]')
+
+ def test_specs_fails_match_float_beyond_scope_with_op_rangein_le(self):
+ self._do_specs_matcher_test(
+ matches=False,
+ value="20.3",
+ req='<range-in> [ 10.1 20.2 ]')
+
+ def test_specs_fails_match_float_beyond_scope_with_op_rangein_lt(self):
+ self._do_specs_matcher_test(
+ matches=False,
+ value="20.3",
+ req='<range-in> [ 10.1 20.2 )')
+
+ def test_specs_fails_match_float_under_scope_with_op_rangein_ge(self):
+ self._do_specs_matcher_test(
+ matches=False,
+ value="5.0",
+ req='<range-in> [ 5.1 20.2 ]')
+
+ def test_specs_fails_match_float_under_scope_with_op_rangein_gt(self):
+ self._do_specs_matcher_test(
+ matches=False,
+ value="5.0",
+ req='<range-in> ( 5.1 20.2 ]')
+
+ def test_specs_matches_int_lower_int_range_with_op_rangein_ge(self):
+ self._do_specs_matcher_test(
+ matches=True,
+ value="10",
+ req='<range-in> [ 10 20 ]')
+
+ def test_specs_fails_matchesint_lower_int_range_with_op_rangein_gt(self):
+ self._do_specs_matcher_test(
+ matches=False,
+ value="10",
+ req='<range-in> ( 10 20 ]')
+
+ def test_specs_matches_float_lower_float_range_with_op_rangein_ge(self):
+ self._do_specs_matcher_test(
+ matches=True,
+ value="10.1",
+ req='<range-in> [ 10.1 20 ]')
+
+ def test_specs_fails_matche_float_lower_float_range_with_op_rangein_gt(
+ self):
+ self._do_specs_matcher_test(
+ matches=False,
+ value="10.1",
+ req='<range-in> ( 10.1 20 ]')
+
+ def test_specs_matches_int_with_int_range_with_op_rangein(self):
+ self._do_specs_matcher_test(
+ matches=True,
+ value="15",
+ req='<range-in> [ 10 20 ]')
+
+ def test_specs_matches_float_with_int_limit_with_op_rangein(self):
+ self._do_specs_matcher_test(
+ matches=True,
+ value="15.5",
+ req='<range-in> [ 10 20 ]')
+
+ def test_specs_matches_int_upper_int_range_with_op_rangein(self):
+ self._do_specs_matcher_test(
+ matches=True,
+ value="20",
+ req='<range-in> [ 10 20 ]')
+
+ def test_specs_fails_matche_int_upper_int_range_with_op_rangein_lt(self):
+ self._do_specs_matcher_test(
+ matches=False,
+ value="20",
+ req='<range-in> [ 10 20 )')
+
+ def test_specs_matches_float_upper_mixed_range_with_op_rangein(self):
+ self._do_specs_matcher_test(
+ matches=True,
+ value="20.5",
+ req='<range-in> [ 10 20.5 ]')
+
+ def test_specs_fails_matche_float_upper_mixed_range_with_op_rangein_lt(
+ self):
+ self._do_specs_matcher_test(
+ matches=False,
+ value="20.5",
+ req='<range-in> [ 10 20.5 )')
+
+ def test_specs_matches_float_with_float_limit_with_op_rangein(self):
+ self._do_specs_matcher_test(
+ matches=True,
+ value="12.5",
+ req='<range-in> [ 10.1 20.1 ]')
+
+ def test_specs_matches_only_one_with_op_rangein(self):
+ self._do_specs_matcher_test(
+ matches=True,
+ value="10.1",
+ req='<range-in> [ 10.1 10.1 ]')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.3.0/oslo_utils/tests/test_timeutils.py
new/oslo.utils-7.1.0/oslo_utils/tests/test_timeutils.py
--- old/oslo.utils-6.3.0/oslo_utils/tests/test_timeutils.py 2023-11-09
13:30:52.000000000 +0100
+++ new/oslo.utils-7.1.0/oslo_utils/tests/test_timeutils.py 2024-02-22
15:39:13.000000000 +0100
@@ -66,7 +66,7 @@
@mock.patch('datetime.datetime', wraps=datetime.datetime)
def _test_is_older_than(self, fn, datetime_mock):
- datetime_mock.utcnow.return_value = self.skynet_self_aware_time
+ datetime_mock.now.return_value = self.skynet_self_aware_time
expect_true = timeutils.is_older_than(fn(self.one_minute_before), 59)
self.assertTrue(expect_true)
expect_false = timeutils.is_older_than(fn(self.one_minute_before), 60)
@@ -89,7 +89,7 @@
@mock.patch('datetime.datetime', wraps=datetime.datetime)
def _test_is_newer_than(self, fn, datetime_mock):
- datetime_mock.utcnow.return_value = self.skynet_self_aware_time
+ datetime_mock.now.return_value = self.skynet_self_aware_time
expect_true = timeutils.is_newer_than(fn(self.one_minute_after),
59)
self.assertTrue(expect_true)
@@ -202,7 +202,7 @@
self.assertTrue(timeutils.is_soon(expires, 600))
with mock.patch('datetime.datetime') as datetime_mock:
- datetime_mock.utcnow.return_value = self.skynet_self_aware_time
+ datetime_mock.now.return_value = self.skynet_self_aware_time
expires = timeutils.utcnow()
self.assertTrue(timeutils.is_soon(expires, 0))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.3.0/oslo_utils/timeutils.py
new/oslo.utils-7.1.0/oslo_utils/timeutils.py
--- old/oslo.utils-6.3.0/oslo_utils/timeutils.py 2023-11-09
13:30:52.000000000 +0100
+++ new/oslo.utils-7.1.0/oslo_utils/timeutils.py 2024-02-22
15:39:13.000000000 +0100
@@ -137,7 +137,7 @@
return utcnow.override_time
if with_timezone:
return datetime.datetime.now(tz=iso8601.iso8601.UTC)
- return datetime.datetime.utcnow()
+ return datetime.datetime.now(datetime.timezone.utc).replace(tzinfo=None)
utcnow.override_time = None
@@ -153,7 +153,9 @@
:param override_time: datetime instance or list thereof. If not
given, defaults to the current UTC time.
"""
- utcnow.override_time = override_time or datetime.datetime.utcnow()
+ utcnow.override_time = (
+ override_time or
+ datetime.datetime.now(datetime.timezone.utc).replace(tzinfo=None))
def advance_time_delta(timedelta):
@@ -351,12 +353,6 @@
when operations are performed in a thread-safe manner on these objects by
wrapping those operations with locks.
- It will use the `monotonic`_ pypi library to find an appropriate
- monotonically increasing time providing function (which typically varies
- depending on operating system and python version).
-
- .. _monotonic: https://pypi.org/project/monotonic/
-
.. versionadded:: 1.4
"""
_STARTED = 'STARTED'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.utils-6.3.0/releasenotes/notes/new_spec_dsl_operator-21c80a46f67c56df.yaml
new/oslo.utils-7.1.0/releasenotes/notes/new_spec_dsl_operator-21c80a46f67c56df.yaml
---
old/oslo.utils-6.3.0/releasenotes/notes/new_spec_dsl_operator-21c80a46f67c56df.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/oslo.utils-7.1.0/releasenotes/notes/new_spec_dsl_operator-21c80a46f67c56df.yaml
2024-02-22 15:39:13.000000000 +0100
@@ -0,0 +1,17 @@
+---
+features:
+ - |
+ Introducing a new spec DSL operator called ``<range-in>`` that allows users
+ to match a numeric value against a range of numbers that are delimited with
+ lower and upper limits. The new operator is a binary operator that accepts
+ 4 arguments.
+
+ - The first one and the last one are brackets. ``[`` and ``]`` defines
+ inclusive limits while ``(`` and ``)`` defines exclusive limits.
+
+ - The second one is the lower limit while the third one is the upper
+ limit.
+
+ Example: "<range-in> [ 10.4 20 )" will match a value against an range
+ such as the lower limit of the range is 10.4 and the upper limit is 20.
+ Note that 10.4 is included while 20 is excluded.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.utils-6.3.0/releasenotes/notes/remove-strict-from-is_same_callback-cfbff2ada778987e.yaml
new/oslo.utils-7.1.0/releasenotes/notes/remove-strict-from-is_same_callback-cfbff2ada778987e.yaml
---
old/oslo.utils-6.3.0/releasenotes/notes/remove-strict-from-is_same_callback-cfbff2ada778987e.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/oslo.utils-7.1.0/releasenotes/notes/remove-strict-from-is_same_callback-cfbff2ada778987e.yaml
2024-02-22 15:39:13.000000000 +0100
@@ -0,0 +1,5 @@
+---
+upgrade:
+ - |
+ The ``strict`` argument has been removed from the ``is_same_callback``
+ function. The argument has had no effect in Python 3.8.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.3.0/releasenotes/source/yoga.rst
new/oslo.utils-7.1.0/releasenotes/source/yoga.rst
--- old/oslo.utils-6.3.0/releasenotes/source/yoga.rst 2023-11-09
13:30:52.000000000 +0100
+++ new/oslo.utils-7.1.0/releasenotes/source/yoga.rst 2024-02-22
15:39:13.000000000 +0100
@@ -3,4 +3,4 @@
=========================
.. release-notes::
- :branch: stable/yoga
+ :branch: unmaintained/yoga
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.3.0/requirements.txt
new/oslo.utils-7.1.0/requirements.txt
--- old/oslo.utils-6.3.0/requirements.txt 2023-11-09 13:30:52.000000000
+0100
+++ new/oslo.utils-7.1.0/requirements.txt 2024-02-22 15:39:13.000000000
+0100
@@ -5,11 +5,11 @@
iso8601>=0.1.11 # MIT
oslo.i18n>=3.15.3 # Apache-2.0
-pytz>=2013.6 # MIT
+pytz>=2013.6;python_version<"3.9" # MIT
netaddr>=0.7.18 # BSD
netifaces>=0.10.4 # MIT
debtcollector>=1.2.0 # Apache-2.0
pyparsing>=2.1.0 # MIT
packaging>=20.4 # BSD
-tzdata>=2022.4 # MIT
+tzdata>=2022.4;python_version>="3.9" # MIT
PyYAML>=3.13 # MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.3.0/setup.cfg
new/oslo.utils-7.1.0/setup.cfg
--- old/oslo.utils-6.3.0/setup.cfg 2023-11-09 13:31:30.012476200 +0100
+++ new/oslo.utils-7.1.0/setup.cfg 2024-02-22 15:39:59.658798500 +0100
@@ -18,6 +18,7 @@
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
+ Programming Language :: Python :: 3.11
Programming Language :: Python :: 3 :: Only
Programming Language :: Python :: Implementation :: CPython
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.3.0/test-requirements.txt
new/oslo.utils-7.1.0/test-requirements.txt
--- old/oslo.utils-6.3.0/test-requirements.txt 2023-11-09 13:30:52.000000000
+0100
+++ new/oslo.utils-7.1.0/test-requirements.txt 2024-02-22 15:39:13.000000000
+0100
@@ -1,9 +1,3 @@
-# The order of packages is significant, because pip processes them in the order
-# of appearance. Changing the order has an impact on the overall integration
-# process, which may cause wedges in the gate later.
-
-hacking>=3.0.1,<3.1.0 # Apache-2.0
-
eventlet>=0.18.2,!=0.18.3,!=0.20.1,!=0.21.0,!=0.23.0 # MIT
fixtures>=3.0.0 # Apache-2.0/BSD
testscenarios>=0.4 # Apache-2.0/BSD
@@ -19,8 +13,3 @@
# used for oslotest cross-testing scripts
oslo.config>=5.2.0 # Apache-2.0
-
-# Bandit security code scanner
-bandit>=1.7.0,<1.8.0 # Apache-2.0
-
-pre-commit>=2.6.0 # MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-6.3.0/tox.ini new/oslo.utils-7.1.0/tox.ini
--- old/oslo.utils-6.3.0/tox.ini 2023-11-09 13:30:52.000000000 +0100
+++ new/oslo.utils-7.1.0/tox.ini 2024-02-22 15:39:13.000000000 +0100
@@ -12,10 +12,10 @@
commands = stestr run --slowest {posargs}
[testenv:pep8]
+deps =
+ pre-commit
commands =
pre-commit run -a
- # Run security linter
- bandit -r oslo_utils -x tests -n5
[testenv:venv]
commands = {posargs}
@@ -32,9 +32,6 @@
[testenv:cover]
commands = python setup.py test --coverage --coverage-package-name=oslo_utils
--testr-args='{posargs}'
-[testenv:bandit]
-commands = bandit -r oslo_utils -x tests -n5
-
[flake8]
# E731 skipped as assign a lambda expression
# W504 line break after binary operator