FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
validators/validators/iban.py at master · pythonthings/validators · GitHub
pythonthings
validators
Repository navigation
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
validators
/
validators
/
iban.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
52 lines (38 loc) · 1.14 KB
Breadcrumbs
validators
/
validators
/
iban.py
Copy path
File metadata and controls
52 lines (38 loc) · 1.14 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import
re
from
.
utils
import
validator
regex
=
(
r'^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$'
)
pattern
=
re
.
compile
(
regex
)
def
char_value
(
char
):
"""A=10, B=11, ..., Z=35
"""
if
char
.
isdigit
():
return
int
(
char
)
else
:
return
10
+
ord
(
char
)
-
ord
(
'A'
)
def
modcheck
(
value
):
"""Check if the value string passes the mod97-test.
"""
# move country code and check numbers to end
rearranged
=
value
[
4
:]
+
value
[:
4
]
# convert letters to numbers
converted
=
[
char_value
(
char
)
for
char
in
rearranged
]
# interpret as integer
integerized
=
int
(
''
.
join
([
str
(
i
)
for
i
in
converted
]))
return
(
integerized
%
97
==
1
)
@
validator
def
iban
(
value
):
"""
Return whether or not given value is a valid IBAN code.
If the value is a valid IBAN this function returns ``True``, otherwise
:class:`~validators.utils.ValidationFailure`.
Examples::
>>> iban('DE29100500001061045672')
True
>>> iban('123456')
ValidationFailure(func=iban, ...)
.. versionadded:: 0.8
:param value: IBAN string to validate
"""
return
pattern
.
match
(
value
)
and
modcheck
(
value
)
Back
|
FazBrowse Home
|
New Git URL