From d851405b6b17053f6daa48ef5b3b251b6dcdf8df Mon Sep 17 00:00:00 2001
From: David Kilias <david.kilias@gmail.com>
Date: Thu, 5 Nov 2020 17:04:02 +0100
Subject: [PATCH 01/28] add validator functions and tests

---
 validators/test_validators.py | 37 +++++++++++++++++++++++++++++++++++
 validators/validators.py      | 34 ++++++++++++++++++++++++++++++++
 2 files changed, 71 insertions(+)
 create mode 100644 validators/test_validators.py
 create mode 100644 validators/validators.py

diff --git a/validators/test_validators.py b/validators/test_validators.py
new file mode 100644
index 0000000..b959892
--- /dev/null
+++ b/validators/test_validators.py
@@ -0,0 +1,37 @@
+from validators import mandatory, empty, iso_date, valid_iban, valid_bic
+
+
+def test_mandatory():
+    assert mandatory("Foo") == True
+    assert mandatory("Foo Bar") == True
+    assert mandatory("1970-01-01") == True
+    assert mandatory("") == False
+
+
+def test_empty():
+    assert empty("") == True
+    assert empty(" ") == False
+    assert empty("Foo") == False
+    assert empty("1970-01-01") == False
+
+
+def test_iso_date():
+    assert iso_date("1970-01-01") == True
+    assert iso_date("1970-1-1") == True
+    assert iso_date("70-01-01") == False
+    assert iso_date("1970/01/01") == False
+    assert iso_date("1.1.1970") == False
+    assert iso_date("01.01.1970") == False
+
+
+def test_valid_iban():
+    assert valid_iban("DE89 3704 0044 0532 0130 00") == True
+    assert valid_iban("DX89 3704 0044 0532 0130 00") == False
+    assert valid_iban("DE99 3704 0044 0532 0130 00") == False
+
+
+def test_valid_bic():
+    assert valid_bic("PBNKDEFFXXX") == True
+    assert valid_bic("PBNKDXFFXXX") == False
+    assert valid_bic("PBNKDXFFXXXX") == False
+    assert valid_bic("PBN1DXFFXXX") == False
diff --git a/validators/validators.py b/validators/validators.py
new file mode 100644
index 0000000..aadab3e
--- /dev/null
+++ b/validators/validators.py
@@ -0,0 +1,34 @@
+import datetime
+from schwifty import IBAN, BIC
+
+
+def mandatory(field: str) -> bool:
+    return bool(field)
+
+
+def empty(field: str) -> bool:
+    return not bool(field)
+
+
+def iso_date(field: str) -> bool:
+    try:
+        datetime.datetime.strptime(field, "%Y-%m-%d")
+        return True
+    except ValueError:
+        return False
+
+
+def valid_iban(field: str) -> bool:
+    try:
+        IBAN(field)
+        return True
+    except ValueError:
+        return False
+
+
+def valid_bic(field: str) -> bool:
+    try:
+        BIC(field)
+        return True
+    except ValueError:
+        return False

From f4aa0b403d7c0632de2ef2a1d7a0b0dbdff5412c Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Sat, 29 Jul 2023 19:36:03 +0000
Subject: [PATCH 02/28] Add renovate.json

---
 renovate.json | 3 +++
 1 file changed, 3 insertions(+)
 create mode 100644 renovate.json

diff --git a/renovate.json b/renovate.json
new file mode 100644
index 0000000..7190a60
--- /dev/null
+++ b/renovate.json
@@ -0,0 +1,3 @@
+{
+  "$schema": "https://docs.renovatebot.com/renovate-schema.json"
+}

From 8c3d8ae96e7976c6c53a9a50cfbbf21c9f39e958 Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Thu, 7 Sep 2023 19:18:29 +0000
Subject: [PATCH 03/28] Update dependency pytest to v7

---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index b803341..cf389bc 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
 tornado==6.0.4
 isodate==0.6.0
-pytest==5.4.1
+pytest==7.4.2
 GitPython==3.1.12
\ No newline at end of file

From 53595bebda84b5d0ad3053dd1e18fe1b78779aad Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Fri, 1 Sep 2023 20:17:28 +0000
Subject: [PATCH 04/28] Update python Docker tag to v3.11

---
 Dockerfile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Dockerfile b/Dockerfile
index 488d25c..41407f0 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -8,7 +8,7 @@ COPY . /git/
 RUN find . -type d -name .git -exec git describe --always --dirty > /git-version.txt \;
 
 
-FROM python:3.8
+FROM python:3.11
 
 EXPOSE 8080
 

From d1845d7bbaa19cd72ff95e83f1711cf44ccc018e Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Fri, 1 Sep 2023 19:17:29 +0000
Subject: [PATCH 05/28] Update dependency tornado to v6.3.3

---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index cf389bc..c3a2079 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
-tornado==6.0.4
+tornado==6.3.3
 isodate==0.6.0
 pytest==7.4.2
 GitPython==3.1.12
\ No newline at end of file

From deaeca5f0b045ef0210f02aa972be9cfd2299cb5 Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Tue, 24 Oct 2023 20:17:22 +0000
Subject: [PATCH 06/28] Update dependency pytest to v7.4.3

---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index c3a2079..d8380c1 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
 tornado==6.3.3
 isodate==0.6.0
-pytest==7.4.2
+pytest==7.4.3
 GitPython==3.1.12
\ No newline at end of file

From 1995b738686d3590597c389dae82d565d0e58e7a Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Tue, 3 Oct 2023 03:17:22 +0000
Subject: [PATCH 07/28] Update python Docker tag to v3.12

---
 Dockerfile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Dockerfile b/Dockerfile
index 41407f0..45eb9ba 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -8,7 +8,7 @@ COPY . /git/
 RUN find . -type d -name .git -exec git describe --always --dirty > /git-version.txt \;
 
 
-FROM python:3.11
+FROM python:3.12
 
 EXPOSE 8080
 

From 90395cd7a3e05b23b0a3d56c462f7f6a4163e4bd Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Sun, 5 Nov 2023 16:17:19 +0000
Subject: [PATCH 08/28] Update dependency GitPython to v3.1.40

---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index d8380c1..3a34529 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
 tornado==6.3.3
 isodate==0.6.0
 pytest==7.4.3
-GitPython==3.1.12
\ No newline at end of file
+GitPython==3.1.40
\ No newline at end of file

From d3badfe3d4a2b371c606c107b2d75c73ddf57094 Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Sun, 5 Nov 2023 16:17:24 +0000
Subject: [PATCH 09/28] Update dependency isodate to v0.6.1

---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index 3a34529..87c39f9 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
 tornado==6.3.3
-isodate==0.6.0
+isodate==0.6.1
 pytest==7.4.3
 GitPython==3.1.40
\ No newline at end of file

From 33544d3e90eae64f73d3d884ce155a08580515b3 Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Fri, 26 Jan 2024 19:22:20 +0000
Subject: [PATCH 10/28] Update dependency pytest to v7.4.4

---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index 87c39f9..a169d64 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
 tornado==6.3.3
 isodate==0.6.1
-pytest==7.4.3
+pytest==7.4.4
 GitPython==3.1.40
\ No newline at end of file

From cdef92e8fa56aa97c1fee291f539339e7dc7b5ff Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Wed, 24 Jan 2024 19:22:31 +0000
Subject: [PATCH 11/28] Update dependency tornado to v6.4

---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index a169d64..ca6a49d 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
-tornado==6.3.3
+tornado==6.4
 isodate==0.6.1
 pytest==7.4.4
 GitPython==3.1.40
\ No newline at end of file

From e8886b53ad33b43ea811ab35ed99c13adaa2f9af Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Fri, 23 Feb 2024 20:41:04 +0000
Subject: [PATCH 12/28] Update dependency pytest to v8

---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index ca6a49d..a403f9a 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
 tornado==6.4
 isodate==0.6.1
-pytest==7.4.4
+pytest==8.0.1
 GitPython==3.1.40
\ No newline at end of file

From e8a6de078a0f4fb6bf8d27eeb4bcd50c37efc2ff Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Sat, 9 Mar 2024 12:17:22 +0000
Subject: [PATCH 13/28] Update dependency pytest to v8.1.1

---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index a403f9a..71835aa 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
 tornado==6.4
 isodate==0.6.1
-pytest==8.0.1
+pytest==8.1.1
 GitPython==3.1.40
\ No newline at end of file

From 24c6a4d7647d1e0a84a482eb8d208d3792a4c76c Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Sun, 17 Mar 2024 20:17:19 +0000
Subject: [PATCH 14/28] Update dependency GitPython to v3.1.42

---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index 71835aa..1b65af0 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
 tornado==6.4
 isodate==0.6.1
 pytest==8.1.1
-GitPython==3.1.40
\ No newline at end of file
+GitPython==3.1.42
\ No newline at end of file

From a4b7025c078bad346f6dd5a5e820348caf90836d Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Thu, 6 Jun 2024 19:17:23 +0000
Subject: [PATCH 15/28] Update dependency tornado to v6.4.1

---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index 1b65af0..1d68897 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
-tornado==6.4
+tornado==6.4.1
 isodate==0.6.1
 pytest==8.1.1
 GitPython==3.1.42
\ No newline at end of file

From c582e6f47ab23a9afbaf6663542df3e4ce59bb07 Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Tue, 4 Jun 2024 14:17:18 +0000
Subject: [PATCH 16/28] Update dependency pytest to v8.2.2

---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index 1d68897..b28d797 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
 tornado==6.4.1
 isodate==0.6.1
-pytest==8.1.1
+pytest==8.2.2
 GitPython==3.1.42
\ No newline at end of file

From 7c9ea635ce457b6d421d650064bc8b398af54071 Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Thu, 6 Jun 2024 21:18:59 +0000
Subject: [PATCH 17/28] Update dependency GitPython to v3.1.43

---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index b28d797..5954c84 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
 tornado==6.4.1
 isodate==0.6.1
 pytest==8.2.2
-GitPython==3.1.42
\ No newline at end of file
+GitPython==3.1.43
\ No newline at end of file

From e903272dd8561b76e7cead5f2274d1b28d7e190b Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Thu, 25 Jul 2024 11:17:18 +0000
Subject: [PATCH 18/28] Update dependency pytest to v8.3.2

---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index 5954c84..c973f24 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
 tornado==6.4.1
 isodate==0.6.1
-pytest==8.2.2
+pytest==8.3.2
 GitPython==3.1.43
\ No newline at end of file

From 3904819032631489f9987fff4f3bcfb70c08ac28 Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Tue, 10 Sep 2024 11:17:41 +0000
Subject: [PATCH 19/28] Update dependency pytest to v8.3.3

---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index c973f24..bb3c017 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
 tornado==6.4.1
 isodate==0.6.1
-pytest==8.3.2
+pytest==8.3.3
 GitPython==3.1.43
\ No newline at end of file

From 2863795580d640dbd177c12f66f26e701f10b8c6 Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Tue, 8 Oct 2024 23:17:22 +0000
Subject: [PATCH 20/28] Update dependency isodate to v0.7.2

---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index bb3c017..96238c0 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
 tornado==6.4.1
-isodate==0.6.1
+isodate==0.7.2
 pytest==8.3.3
 GitPython==3.1.43
\ No newline at end of file

From e36cff1a3d09dd7a1fa3c3aff6cdb5f3156909db Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Tue, 8 Oct 2024 00:17:22 +0000
Subject: [PATCH 21/28] Update python Docker tag to v3.13

---
 Dockerfile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Dockerfile b/Dockerfile
index 45eb9ba..ff34993 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -8,7 +8,7 @@ COPY . /git/
 RUN find . -type d -name .git -exec git describe --always --dirty > /git-version.txt \;
 
 
-FROM python:3.12
+FROM python:3.13
 
 EXPOSE 8080
 

From cde0feab049ce3b6532bce49ce79dd8447334715 Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Sun, 1 Dec 2024 13:17:21 +0000
Subject: [PATCH 22/28] Update dependency pytest to v8.3.4

---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index 96238c0..19eb7da 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
 tornado==6.4.1
 isodate==0.7.2
-pytest==8.3.3
+pytest==8.3.4
 GitPython==3.1.43
\ No newline at end of file

From e297b0026b10df3f5ef789f67fa64d909018d8cc Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Fri, 22 Nov 2024 03:17:22 +0000
Subject: [PATCH 23/28] Update dependency tornado to v6.4.2

---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index 19eb7da..a60ecfc 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
-tornado==6.4.1
+tornado==6.4.2
 isodate==0.7.2
 pytest==8.3.4
 GitPython==3.1.43
\ No newline at end of file

From d08cc901c3c72178257ee6819e06865ba997bac0 Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Thu, 2 Jan 2025 08:17:23 +0000
Subject: [PATCH 24/28] Update dependency GitPython to v3.1.44

---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index a60ecfc..34363f0 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
 tornado==6.4.2
 isodate==0.7.2
 pytest==8.3.4
-GitPython==3.1.43
\ No newline at end of file
+GitPython==3.1.44
\ No newline at end of file

From 4e6f99e09749300d849fe2500f5814567fcf6d13 Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Sun, 2 Mar 2025 13:17:22 +0000
Subject: [PATCH 25/28] Update dependency pytest to v8.3.5

---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index 34363f0..a5bf826 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
 tornado==6.4.2
 isodate==0.7.2
-pytest==8.3.4
+pytest==8.3.5
 GitPython==3.1.44
\ No newline at end of file

From 05221bb3d1442f976f0b60f21d24006fb7fead33 Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Thu, 15 May 2025 21:17:22 +0000
Subject: [PATCH 26/28] Update dependency tornado to v6.5

---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index a5bf826..059171a 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
-tornado==6.4.2
+tornado==6.5
 isodate==0.7.2
 pytest==8.3.5
 GitPython==3.1.44
\ No newline at end of file

From d0c708bc4e606673e5a2a116ab767235e4892066 Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Thu, 22 May 2025 18:17:22 +0000
Subject: [PATCH 27/28] Update dependency tornado to v6.5.1

---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index 059171a..fde0605 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
-tornado==6.5
+tornado==6.5.1
 isodate==0.7.2
 pytest==8.3.5
 GitPython==3.1.44
\ No newline at end of file

From 4c69c27deca9226065a9a122bc114104f3ca989c Mon Sep 17 00:00:00 2001
From: Renovate Bot <accounts+renovatebot@netz39.de>
Date: Mon, 2 Jun 2025 18:17:22 +0000
Subject: [PATCH 28/28] Update dependency pytest to v8.4.0

---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index fde0605..2d455a1 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
 tornado==6.5.1
 isodate==0.7.2
-pytest==8.3.5
+pytest==8.4.0
 GitPython==3.1.44
\ No newline at end of file