Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-unpaddedbase64 for 
openSUSE:Factory checked in at 2022-02-17 00:31:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-unpaddedbase64 (Old)
 and      /work/SRC/openSUSE:Factory/.python-unpaddedbase64.new.1956 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-unpaddedbase64"

Thu Feb 17 00:31:11 2022 rev:3 rq:955433 version:2.1.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-unpaddedbase64/python-unpaddedbase64.changes  
    2018-12-07 14:36:17.611004739 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-unpaddedbase64.new.1956/python-unpaddedbase64.changes
    2022-02-17 00:32:32.089412572 +0100
@@ -1,0 +2,11 @@
+Wed Feb 16 16:15:17 UTC 2022 - Matej Cepl <mc...@suse.com>
+
+- Update to 2.1.0:
+  - Includes PEP 561 marker file so modules depending on this one
+    can take advantage of its inline type hints.
+  - Including the `py.typed` marker file required rearranging
+    files in this repository, but the exposed API is identical to
+    prior releases.
+  - Removal of py2k code.
+
+-------------------------------------------------------------------

Old:
----
  python-unpaddedbase64-1.1.0.tar.gz

New:
----
  python-unpaddedbase64-2.1.0.tar.gz

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

Other differences:
------------------
++++++ python-unpaddedbase64.spec ++++++
--- /var/tmp/diff_new_pack.rL2Ybv/_old  2022-02-17 00:32:32.565412490 +0100
+++ /var/tmp/diff_new_pack.rL2Ybv/_new  2022-02-17 00:32:32.569412490 +0100
@@ -1,7 +1,7 @@
 #
-# spec file for package python-unpaddedbase64
+# spec file
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2022 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -19,14 +19,17 @@
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 %define         short_name unpaddedbase64
 Name:           python-%{short_name}
-Version:        1.1.0
+Version:        2.1.0
 Release:        0
 Summary:        Unpadded Base64
 License:        Apache-2.0
 Group:          Development/Languages/Python
 URL:            https://github.com/matrix-org/python-unpaddedbase64
 Source:         
https://github.com/matrix-org/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz
+BuildRequires:  %{python_module pip}
+BuildRequires:  %{python_module poetry-core}
 BuildRequires:  %{python_module setuptools}
+BuildRequires:  %{python_module wheel}
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
 BuildArch:      noarch
@@ -40,13 +43,13 @@
 Base64 without the "=" padding.
 
 %prep
-%setup -q
+%autosetup -p1
 
 %build
-%python_build
+%pyproject_wheel
 
 %install
-%python_install
+%pyproject_install
 %python_expand %fdupes %{buildroot}%{$python_sitelib}
 
 %check

++++++ python-unpaddedbase64-1.1.0.tar.gz -> python-unpaddedbase64-2.1.0.tar.gz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-unpaddedbase64-1.1.0/.flake8 
new/python-unpaddedbase64-2.1.0/.flake8
--- old/python-unpaddedbase64-1.1.0/.flake8     1970-01-01 01:00:00.000000000 
+0100
+++ new/python-unpaddedbase64-2.1.0/.flake8     2021-03-08 21:50:51.000000000 
+0100
@@ -0,0 +1,3 @@
+[flake8]
+max-line-length = 88
+extend-ignore = E203, W503
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-unpaddedbase64-1.1.0/.github/workflows/continuous-integration.yml 
new/python-unpaddedbase64-2.1.0/.github/workflows/continuous-integration.yml
--- 
old/python-unpaddedbase64-1.1.0/.github/workflows/continuous-integration.yml    
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/python-unpaddedbase64-2.1.0/.github/workflows/continuous-integration.yml    
    2021-03-08 21:50:51.000000000 +0100
@@ -0,0 +1,48 @@
+name: Continuous Integration
+
+on:
+  push:
+    branches: [ master ]
+  pull_request:
+    branches: [ master ]
+
+jobs:
+  lint:
+    runs-on: ubuntu-latest
+
+    steps:
+    - uses: actions/checkout@v2
+    - name: Set up Python ${{ matrix.python-version }}
+      uses: actions/setup-python@v2
+      with:
+        python-version: '3.x'
+    - name: Install dependencies
+      run: |
+        python -m pip install --upgrade pip
+        python -m pip install flake8 black mypy
+    - name: Lint with flake8
+      run: |
+        flake8 unpaddedbase64/ tests/
+    - name: Lint with black
+      run: |
+        black --check --diff unpaddedbase64/ tests/
+    - name: Lint with mypy
+      run: |
+        mypy --strict unpaddedbase64/ tests/
+
+  test:
+    needs: lint
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        python-version: ['3.x', '3.6', 'pypy-3.6']
+
+    steps:
+    - uses: actions/checkout@v2
+    - name: Set up Python ${{ matrix.python-version }}
+      uses: actions/setup-python@v2
+      with:
+        python-version: ${{ matrix.python-version }}
+    - name: Test with unittest
+      run: |
+        python -m unittest --verbose
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-unpaddedbase64-1.1.0/.gitignore 
new/python-unpaddedbase64-2.1.0/.gitignore
--- old/python-unpaddedbase64-1.1.0/.gitignore  2016-02-18 12:38:27.000000000 
+0100
+++ new/python-unpaddedbase64-2.1.0/.gitignore  2021-03-08 21:50:51.000000000 
+0100
@@ -1,7 +1,5 @@
 .coverage
 .tox/
 __pycache__/
-unpaddedbase64.egg-info/
-unpaddedbase64.pyc
-build/
 dist/
+poetry.lock
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-unpaddedbase64-1.1.0/.travis.yml 
new/python-unpaddedbase64-2.1.0/.travis.yml
--- old/python-unpaddedbase64-1.1.0/.travis.yml 2016-02-18 12:38:27.000000000 
+0100
+++ new/python-unpaddedbase64-2.1.0/.travis.yml 1970-01-01 01:00:00.000000000 
+0100
@@ -1,15 +0,0 @@
-language: python
-env:
-- TOXENV=packaging
-- TOXENV=pep8
-- TOXENV=py3pep8
-- TOXENV=py27
-- TOXENV=py33
-- TOXENV=py34
-- TOXENV=pypy
-
-install:
-- pip install tox
-
-script:
-- tox
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-unpaddedbase64-1.1.0/MANIFEST.in 
new/python-unpaddedbase64-2.1.0/MANIFEST.in
--- old/python-unpaddedbase64-1.1.0/MANIFEST.in 2016-02-18 12:38:27.000000000 
+0100
+++ new/python-unpaddedbase64-2.1.0/MANIFEST.in 1970-01-01 01:00:00.000000000 
+0100
@@ -1,4 +0,0 @@
-include *.in
-include *.py
-include LICENSE
-include tox.ini
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-unpaddedbase64-1.1.0/README.rst 
new/python-unpaddedbase64-2.1.0/README.rst
--- old/python-unpaddedbase64-1.1.0/README.rst  2016-02-18 12:38:27.000000000 
+0100
+++ new/python-unpaddedbase64-2.1.0/README.rst  2021-03-08 21:50:51.000000000 
+0100
@@ -1,18 +1,10 @@
 Unpadded Base64
 ===============
 
-.. image:: https://img.shields.io/pypi/v/unpaddedbase64.svg
-    :target: https://pypi.python.org/pypi/unpaddedbase64/
-    :alt: Latest Version
-
-.. image:: https://img.shields.io/travis/matrix-org/python-unpaddedbase64.svg
-   :target: https://travis-ci.org/matrix-org/python-unpaddedbase64
-
 Encode and decode Base64 without "=" padding.
 
 `RFC 4648`_ specifies that Base64 should be padded to a multiple of 4 bytes
-using "=" characters. However this conveys no benefit so many protocols choose
-to use Base64 without the "=" padding.
+using "=" characters. However many protocols choose to omit the "=" padding.
 
 .. _`RFC 4648`: https://tools.ietf.org/html/rfc4648
 
@@ -21,7 +13,7 @@
 
 .. code:: bash
 
-   pip install unpaddedbase64
+   python3 -m pip install unpaddedbase64
 
 Using
 -----
@@ -29,5 +21,5 @@
 .. code:: python
 
     import unpaddedbase64
-    assert (unpaddedbase64.encode_base64(b'\x00')) == u'AA'
-    assert (unpaddedbase64.decode_base64(u'AA')) == b'\x00'
+    assert (unpaddedbase64.encode_base64(b'\x00')) == 'AA'
+    assert (unpaddedbase64.decode_base64('AA')) == b'\x00'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-unpaddedbase64-1.1.0/pyproject.toml 
new/python-unpaddedbase64-2.1.0/pyproject.toml
--- old/python-unpaddedbase64-1.1.0/pyproject.toml      1970-01-01 
01:00:00.000000000 +0100
+++ new/python-unpaddedbase64-2.1.0/pyproject.toml      2021-03-08 
21:50:51.000000000 +0100
@@ -0,0 +1,24 @@
+[build-system]
+requires = ["poetry_core>=1.0.0"]
+build-backend = "poetry.core.masonry.api"
+
+[tool.poetry]
+name = "unpaddedbase64"
+version = "2.1.0"
+description = 'Encode and decode Base64 without "=" padding'
+license = "Apache-2.0"
+authors = [ "The Matrix.org Foundation C.I.C." ]
+readme = "README.rst"
+homepage = "https://github.com/matrix-org/python-unpaddedbase64";
+keywords = ["base64"]
+
+[tool.poetry.urls]
+"Issue Tracker" = "https://github.com/matrix-org/python-unpaddedbase64/issues";
+
+[tool.poetry.dependencies]
+python = "^3.6"
+
+[tool.poetry.dev-dependencies]
+black = "*"
+flake8 = "*"
+mypy = "*"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-unpaddedbase64-1.1.0/setup.py 
new/python-unpaddedbase64-2.1.0/setup.py
--- old/python-unpaddedbase64-1.1.0/setup.py    2016-02-18 12:38:27.000000000 
+0100
+++ new/python-unpaddedbase64-2.1.0/setup.py    1970-01-01 01:00:00.000000000 
+0100
@@ -1,49 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright 2015 OpenMarket Ltd
-#
-# 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
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from setuptools import setup
-from codecs import open
-import os
-
-here = os.path.abspath(os.path.dirname(__file__))
-
-
-def read_file(path_segments):
-    """Read a UTF-8 file from the package. Takes a list of strings to join to
-    make the path"""
-    file_path = os.path.join(here, *path_segments)
-    with open(file_path, encoding="utf-8") as f:
-        return f.read()
-
-
-def exec_file(path_segments, name):
-    """Extract a constant from a python file by looking for a line defining
-    the constant and executing it."""
-    result = {}
-    code = read_file(path_segments)
-    lines = [line for line in code.split('\n') if line.startswith(name)]
-    exec("\n".join(lines), result)
-    return result[name]
-
-
-setup(
-    name="unpaddedbase64",
-    version=exec_file(("unpaddedbase64.py",), "__version__"),
-    py_modules=["unpaddedbase64"],
-    description="Unpadded Base64",
-    long_description=read_file(("README.rst",)),
-    keywords="base64",
-)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-unpaddedbase64-1.1.0/test_unpaddedbase64.py 
new/python-unpaddedbase64-2.1.0/test_unpaddedbase64.py
--- old/python-unpaddedbase64-1.1.0/test_unpaddedbase64.py      2016-02-18 
12:38:27.000000000 +0100
+++ new/python-unpaddedbase64-2.1.0/test_unpaddedbase64.py      1970-01-01 
01:00:00.000000000 +0100
@@ -1,41 +0,0 @@
-# Copyright 2015 OpenMarket Ltd
-#
-# 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
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from unpaddedbase64 import encode_base64, decode_base64
-import unittest
-
-
-class TestUnpaddedBase64(unittest.TestCase):
-
-    def test_encode(self):
-        self.assertEqual(encode_base64(b''), u'')
-        self.assertEqual(encode_base64(b'\x00'), u'AA')
-        self.assertEqual(encode_base64(b'\x00\x00'), u'AAA')
-        self.assertEqual(encode_base64(b'\x00\x00\x00'), u'AAAA')
-
-    def test_decode(self):
-        self.assertEqual(decode_base64(u''), b'')
-        self.assertEqual(decode_base64(u'AA'), b'\x00')
-        self.assertEqual(decode_base64(u'AAA'), b'\x00\x00')
-        self.assertEqual(decode_base64(u'AAAA'), b'\x00\x00\x00')
-        with self.assertRaises(Exception):
-            decode_base64(u'A')
-
-    def test_encode_urlunsafe_chars(self):
-        self.assertEqual(encode_base64(b'\xff\xe6\x9a'), u'/+aa')
-        self.assertEqual(encode_base64(b'\xff\xe6\x9a', True), u'_-aa')
-
-    def test_decode_urlunsafe_chars(self):
-        self.assertEqual(decode_base64(u'/+aa'), b'\xff\xe6\x9a')
-        self.assertEqual(decode_base64(u'_-aa'), b'\xff\xe6\x9a')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-unpaddedbase64-1.1.0/tests/test_unpaddedbase64.py 
new/python-unpaddedbase64-2.1.0/tests/test_unpaddedbase64.py
--- old/python-unpaddedbase64-1.1.0/tests/test_unpaddedbase64.py        
1970-01-01 01:00:00.000000000 +0100
+++ new/python-unpaddedbase64-2.1.0/tests/test_unpaddedbase64.py        
2021-03-08 21:50:51.000000000 +0100
@@ -0,0 +1,41 @@
+# Copyright 2015 OpenMarket Ltd
+# Copyright 2021 The Matrix.org Foundation C.I.C.
+#
+# 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
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from unpaddedbase64 import encode_base64, decode_base64
+import unittest
+
+
+class TestUnpaddedBase64(unittest.TestCase):
+    def test_encode(self) -> None:
+        self.assertEqual(encode_base64(b""), "")
+        self.assertEqual(encode_base64(b"\x00"), "AA")
+        self.assertEqual(encode_base64(b"\x00\x00"), "AAA")
+        self.assertEqual(encode_base64(b"\x00\x00\x00"), "AAAA")
+
+    def test_decode(self) -> None:
+        self.assertEqual(decode_base64(""), b"")
+        self.assertEqual(decode_base64("AA"), b"\x00")
+        self.assertEqual(decode_base64("AAA"), b"\x00\x00")
+        self.assertEqual(decode_base64("AAAA"), b"\x00\x00\x00")
+        with self.assertRaises(Exception):
+            decode_base64("A")
+
+    def test_encode_urlunsafe_chars(self) -> None:
+        self.assertEqual(encode_base64(b"\xff\xe6\x9a"), "/+aa")
+        self.assertEqual(encode_base64(b"\xff\xe6\x9a", True), "_-aa")
+
+    def test_decode_urlunsafe_chars(self) -> None:
+        self.assertEqual(decode_base64("/+aa"), b"\xff\xe6\x9a")
+        self.assertEqual(decode_base64("_-aa"), b"\xff\xe6\x9a")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-unpaddedbase64-1.1.0/tox.ini 
new/python-unpaddedbase64-2.1.0/tox.ini
--- old/python-unpaddedbase64-1.1.0/tox.ini     2016-02-18 12:38:27.000000000 
+0100
+++ new/python-unpaddedbase64-2.1.0/tox.ini     1970-01-01 01:00:00.000000000 
+0100
@@ -1,27 +0,0 @@
-[tox]
-envlist = packaging, pep8, py3pep8, py27, py33, py34, pypy
-
-[testenv]
-deps =
-    coverage
-    pytest
-commands =
-    coverage run --source unpaddedbase64 -m pytest
-    coverage report -m --fail-under 100
-
-[testenv:packaging]
-deps =
-    check-manifest
-commands = check-manifest
-
-[testenv:pep8]
-basepython = python2.7
-deps =
-    flake8
-commands = flake8 .
-
-[testenv:py3pep8]
-basepython = python3.4
-deps =
-    flake8
-commands = flake8 .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-unpaddedbase64-1.1.0/unpaddedbase64/__init__.py 
new/python-unpaddedbase64-2.1.0/unpaddedbase64/__init__.py
--- old/python-unpaddedbase64-1.1.0/unpaddedbase64/__init__.py  1970-01-01 
01:00:00.000000000 +0100
+++ new/python-unpaddedbase64-2.1.0/unpaddedbase64/__init__.py  2021-03-08 
21:50:51.000000000 +0100
@@ -0,0 +1,41 @@
+# Copyright 2014, 2015 OpenMarket Ltd
+# Copyright 2021 The Matrix.org Foundation C.I.C.
+#
+# 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
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import base64
+
+
+def encode_base64(input_bytes: bytes, urlsafe: bool = False) -> str:
+    """Encode bytes as an unpadded base64 string."""
+
+    if urlsafe:
+        encode = base64.urlsafe_b64encode
+    else:
+        encode = base64.b64encode
+
+    output_bytes = encode(input_bytes)
+    output_string = output_bytes.decode("ascii")
+    return output_string.rstrip("=")
+
+
+def decode_base64(input_string: str) -> bytes:
+    """Decode an unpadded standard or urlsafe base64 string to bytes."""
+
+    input_bytes = input_string.encode("ascii")
+    input_len = len(input_bytes)
+    padding = b"=" * (3 - ((input_len + 3) % 4))
+
+    # Passing altchars here allows decoding both standard and urlsafe base64
+    output_bytes = base64.b64decode(input_bytes + padding, altchars=b"-_")
+    return output_bytes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-unpaddedbase64-1.1.0/unpaddedbase64.py 
new/python-unpaddedbase64-2.1.0/unpaddedbase64.py
--- old/python-unpaddedbase64-1.1.0/unpaddedbase64.py   2016-02-18 
12:38:27.000000000 +0100
+++ new/python-unpaddedbase64-2.1.0/unpaddedbase64.py   1970-01-01 
01:00:00.000000000 +0100
@@ -1,40 +0,0 @@
-# Copyright 2014, 2015 OpenMarket Ltd
-#
-# 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
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import base64
-
-__version__ = "1.1.0"
-
-
-def encode_base64(input_bytes, urlsafe=False):
-    """Encode bytes as a base64 string without any padding."""
-
-    encode = base64.urlsafe_b64encode if urlsafe else base64.b64encode
-    output_bytes = encode(input_bytes)
-    output_string = output_bytes.decode("ascii")
-    return output_string.rstrip(u"=")
-
-
-def decode_base64(input_string):
-    """Decode a base64 string to bytes inferring padding from the length of the
-    string."""
-
-    input_bytes = input_string.encode("ascii")
-    input_len = len(input_bytes)
-    padding = b"=" * (3 - ((input_len + 3) % 4))
-    decode = base64.b64decode
-    if u'-' in input_string or u'_' in input_string:
-        decode = base64.urlsafe_b64decode
-    output_bytes = decode(input_bytes + padding)
-    return output_bytes

Reply via email to