Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-validators for openSUSE:Factory checked in at 2024-07-10 16:47:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-validators (Old)
and /work/SRC/openSUSE:Factory/.python-validators.new.2080 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-validators"
Wed Jul 10 16:47:55 2024 rev:26 rq:1186395 version:0.31.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-validators/python-validators.changes 2024-07-05 19:49:34.930849359 +0200
+++ /work/SRC/openSUSE:Factory/.python-validators.new.2080/python-validators.changes 2024-07-10 16:48:01.232324473 +0200
@@ -1,0 +2,8 @@
+Tue Jul 9 12:49:35 UTC 2024 - Mia Herkt <mia(a)0x0.st>
+
+- Update to 0.31.0
+Features:
+ * add validators for base16 and base32 encodings
+ gh#kvesteri/validators#386
+
+-------------------------------------------------------------------
Old:
----
validators-0.30.0.tar.gz
New:
----
validators-0.31.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-validators.spec ++++++
--- /var/tmp/diff_new_pack.yhPgCo/_old 2024-07-10 16:48:01.912349443 +0200
+++ /var/tmp/diff_new_pack.yhPgCo/_new 2024-07-10 16:48:01.916349590 +0200
@@ -18,7 +18,7 @@
%{?sle15_python_module_pythons}
Name: python-validators
-Version: 0.30.0
+Version: 0.31.0
Release: 0
Summary: Python Data Validation
License: MIT
++++++ validators-0.30.0.tar.gz -> validators-0.31.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/validators-0.30.0/CHANGES.md new/validators-0.31.0/CHANGES.md
--- old/validators-0.30.0/CHANGES.md 2024-07-04 04:34:28.000000000 +0200
+++ new/validators-0.31.0/CHANGES.md 2024-07-08 14:01:34.000000000 +0200
@@ -9,6 +9,24 @@
-->
+## 0.31.0 (2024-07-08)
+
+_**Breaking**_
+
+> No breaking changes were introduced in this version.
+
+_**Features**_
+
+- feat: add validators for `base16` and `base32` encodings by @msamsami in [#386](https://github.com/python-validators/validators/pull/386)
+
+_**Maintenance**_
+
+- maint: bump version by @msamsami in [#386](https://github.com/python-validators/validators/pull/386)
+
+**Full Changelog**: [`0.30.0...0.31.0`](https://github.com/python-validators/validators/compare/0.30.0...0.31.0)
+
+---
+
## 0.30.0 (2024-07-04)
_**Breaking**_
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/validators-0.30.0/PKG-INFO new/validators-0.31.0/PKG-INFO
--- old/validators-0.30.0/PKG-INFO 2024-07-04 04:35:55.351689600 +0200
+++ new/validators-0.31.0/PKG-INFO 2024-07-08 14:06:19.879531400 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: validators
-Version: 0.30.0
+Version: 0.31.0
Summary: Python Data Validation for Humans™
Author-email: Konsta Vesterinen <konsta(a)fastmonkeys.com>
License: MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/validators-0.30.0/docs/api/encoding.md new/validators-0.31.0/docs/api/encoding.md
--- old/validators-0.30.0/docs/api/encoding.md 2024-07-01 06:00:02.000000000 +0200
+++ new/validators-0.31.0/docs/api/encoding.md 2024-07-08 14:01:34.000000000 +0200
@@ -1,4 +1,6 @@
# encoding
+::: validators.encoding.base16
+::: validators.encoding.base32
::: validators.encoding.base58
::: validators.encoding.base64
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/validators-0.30.0/docs/api/encoding.rst new/validators-0.31.0/docs/api/encoding.rst
--- old/validators-0.30.0/docs/api/encoding.rst 2024-07-04 04:35:51.000000000 +0200
+++ new/validators-0.31.0/docs/api/encoding.rst 2024-07-08 14:06:16.000000000 +0200
@@ -2,5 +2,7 @@
--------
.. module:: validators.encoding
+.. autofunction:: base16
+.. autofunction:: base32
.. autofunction:: base58
.. autofunction:: base64
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/validators-0.30.0/docs/validators.1 new/validators-0.31.0/docs/validators.1
--- old/validators-0.30.0/docs/validators.1 2024-07-04 04:35:52.000000000 +0200
+++ new/validators-0.31.0/docs/validators.1 2024-07-08 14:06:17.000000000 +0200
@@ -27,7 +27,7 @@
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "VALIDATORS" "1" "Jul 04, 2024" "0.30.0" "validators"
+.TH "VALIDATORS" "1" "Jul 08, 2024" "0.31.0" "validators"
.SH NAME
validators \- Python Data Validation for Humans™
.sp
@@ -784,6 +784,62 @@
.SS encoding
.INDENT 0.0
.TP
+.B validators.encoding.base16(value: str, /)
+Return whether or not given value is a valid base16 encoding.
+.sp
+Examples
+.sp
+.nf
+.ft C
+>>> base16(\(aqa3f4b2\(aq)
+# Output: True
+>>> base16(\(aqa3f4Z1\(aq)
+# Output: ValidationError(func=base16, args={\(aqvalue\(aq: \(aqa3f4Z1\(aq})
+.ft P
+.fi
+.INDENT 7.0
+.TP
+.B Parameters
+\fBvalue\fP \-\- base16 string to validate.
+.TP
+.B Returns
+If \fIvalue\fP is a valid base16 encoding.
+(ValidationError): If \fIvalue\fP is an invalid base16 encoding.
+.TP
+.B Return type
+(Literal[True])
+.UNINDENT
+.UNINDENT
+.INDENT 0.0
+.TP
+.B validators.encoding.base32(value: str, /)
+Return whether or not given value is a valid base32 encoding.
+.sp
+Examples
+.sp
+.nf
+.ft C
+>>> base32(\(aqMFZWIZLTOQ======\(aq)
+# Output: True
+>>> base32(\(aqMfZW3zLT9Q======\(aq)
+# Output: ValidationError(func=base32, args={\(aqvalue\(aq: \(aqMfZW3zLT9Q======\(aq})
+.ft P
+.fi
+.INDENT 7.0
+.TP
+.B Parameters
+\fBvalue\fP \-\- base32 string to validate.
+.TP
+.B Returns
+If \fIvalue\fP is a valid base32 encoding.
+(ValidationError): If \fIvalue\fP is an invalid base32 encoding.
+.TP
+.B Return type
+(Literal[True])
+.UNINDENT
+.UNINDENT
+.INDENT 0.0
+.TP
.B validators.encoding.base58(value: str, /)
Return whether or not given value is a valid base58 encoding.
.sp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/validators-0.30.0/src/validators/__init__.py new/validators-0.31.0/src/validators/__init__.py
--- old/validators-0.30.0/src/validators/__init__.py 2024-07-04 04:34:28.000000000 +0200
+++ new/validators-0.31.0/src/validators/__init__.py 2024-07-08 14:01:34.000000000 +0200
@@ -8,7 +8,7 @@
from .crypto_addresses import btc_address, eth_address, trx_address
from .domain import domain
from .email import email
-from .encoding import base58, base64
+from .encoding import base16, base32, base58, base64
from .finance import cusip, isin, sedol
from .hashes import md5, sha1, sha224, sha256, sha512
from .hostname import hostname
@@ -60,6 +60,8 @@
# ...
"email",
# encodings
+ "base16",
+ "base32",
"base58",
"base64",
# finance
@@ -105,4 +107,4 @@
"validator",
)
-__version__ = "0.30.0"
+__version__ = "0.31.0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/validators-0.30.0/src/validators/encoding.py new/validators-0.31.0/src/validators/encoding.py
--- old/validators-0.30.0/src/validators/encoding.py 2024-07-01 05:30:21.000000000 +0200
+++ new/validators-0.31.0/src/validators/encoding.py 2024-07-08 14:01:34.000000000 +0200
@@ -8,6 +8,48 @@
@validator
+def base16(value: str, /):
+ """Return whether or not given value is a valid base16 encoding.
+
+ Examples:
+ >>> base16('a3f4b2')
+ # Output: True
+ >>> base16('a3f4Z1')
+ # Output: ValidationError(func=base16, args={'value': 'a3f4Z1'})
+
+ Args:
+ value:
+ base16 string to validate.
+
+ Returns:
+ (Literal[True]): If `value` is a valid base16 encoding.
+ (ValidationError): If `value` is an invalid base16 encoding.
+ """
+ return re.match(r"^[0-9A-Fa-f]+$", value) if value else False
+
+
+@validator
+def base32(value: str, /):
+ """Return whether or not given value is a valid base32 encoding.
+
+ Examples:
+ >>> base32('MFZWIZLTOQ======')
+ # Output: True
+ >>> base32('MfZW3zLT9Q======')
+ # Output: ValidationError(func=base32, args={'value': 'MfZW3zLT9Q======'})
+
+ Args:
+ value:
+ base32 string to validate.
+
+ Returns:
+ (Literal[True]): If `value` is a valid base32 encoding.
+ (ValidationError): If `value` is an invalid base32 encoding.
+ """
+ return re.match(r"^[A-Z2-7]+=*$", value) if value else False
+
+
+@validator
def base58(value: str, /):
"""Return whether or not given value is a valid base58 encoding.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/validators-0.30.0/src/validators.egg-info/PKG-INFO new/validators-0.31.0/src/validators.egg-info/PKG-INFO
--- old/validators-0.30.0/src/validators.egg-info/PKG-INFO 2024-07-04 04:35:55.000000000 +0200
+++ new/validators-0.31.0/src/validators.egg-info/PKG-INFO 2024-07-08 14:06:19.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: validators
-Version: 0.30.0
+Version: 0.31.0
Summary: Python Data Validation for Humans™
Author-email: Konsta Vesterinen <konsta(a)fastmonkeys.com>
License: MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/validators-0.30.0/tests/test_encoding.py new/validators-0.31.0/tests/test_encoding.py
--- old/validators-0.30.0/tests/test_encoding.py 2024-07-01 05:30:21.000000000 +0200
+++ new/validators-0.31.0/tests/test_encoding.py 2024-07-08 14:01:34.000000000 +0200
@@ -4,7 +4,71 @@
import pytest
# local
-from validators import ValidationError, base58, base64
+from validators import ValidationError, base16, base32, base58, base64
+
+# ==> base16 <== #
+
+
+(a)pytest.mark.parametrize(
+ "value",
+ [
+ "a3f4b2",
+ "01ef",
+ "abcdef0123456789",
+ "1234567890abcdef",
+ "1a2b3c",
+ "abcdef",
+ "000102030405060708090A0B0C0D0E0F",
+ ],
+)
+def test_returns_true_on_valid_base16(value: str):
+ """Test returns true on valid base16."""
+ assert base16(value)
+
+
+(a)pytest.mark.parametrize(
+ "value",
+ ["12345g", "hello world", "1234567890abcdeg", "GHIJKL", "12345G", "!@#$%^", "1a2h3c", "a3f4Z1"],
+)
+def test_returns_failed_validation_on_invalid_base16(value: str):
+ """Test returns failed validation on invalid base16."""
+ assert isinstance(base16(value), ValidationError)
+
+
+# ==> base32 <== #
+
+
+(a)pytest.mark.parametrize(
+ "value",
+ [
+ "JBSWY3DPEHPK3PXP",
+ "MFRGGZDFMZTWQ2LK",
+ "MZXW6YTBOI======",
+ "MFZWIZLTOQ======",
+ "GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ",
+ "MFRGGZDFMZTWQ2LKNNWG23Q=",
+ ],
+)
+def test_returns_true_on_valid_base32(value: str):
+ """Test returns true on valid base32."""
+ assert base32(value)
+
+
+(a)pytest.mark.parametrize(
+ "value",
+ [
+ "ThisIsNotBase32!",
+ "12345!",
+ "Any==invalid=base32=",
+ "MzXW6yTBOI======",
+ "JBSWY8DPEHPK9PXP",
+ "MfZW3zLT9Q======",
+ ],
+)
+def test_returns_failed_validation_on_invalid_base32(value: str):
+ """Test returns failed validation on invalid base32."""
+ assert isinstance(base32(value), ValidationError)
+
# ==> base58 <== #