You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
from schwifty.iban import IBAN
iban = IBAN(iban="UA***ukrainian-IBAN-here***")
bic = iban.bic
results in the stacktrace
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "***/venv/lib/python3.8/site-packages/schwifty/iban.py", line 288, in bic
return BIC.from_bank_code(self.country_code, self.bank_code or self.branch_code)
File ***/venv/lib/python3.8/site-packages/schwifty/bic.py", line 114, in from_bank_code
return cls(spec[(country_code, bank_code)]["bic"])
File "***/venv/lib/python3.8/site-packages/schwifty/bic.py", line 52, in __init__
super().__init__(bic)
File "***/venv/lib/python3.8/site-packages/schwifty/common.py", line 13, in __init__
self._code = clean(code)
File "***/venv/lib/python3.8/site-packages/schwifty/common.py", line 50, in clean
return _clean_regex.sub("", s).upper()
TypeError: expected string or bytes-like object
Versions tested
Produced in python 3.8 but I suspect the bug is independent of the python-version.
Versions where the bug appears: 2023.3.0, 2023.2.1, 2023.2.0.
Diagnosis
I think this is the offending commit: e4c4aef - the ukrainian banks have "bic": null. With the BIC.from_bank_code call we initialize a BIC instance with None, which is unexpected. Before it was added, we would catch a KeyError in BIC.from_bank_code which reraises as an InvalidBankCode exception.
I don't know what would we preferred, either catch the null-values or prevent them to be in the generated_ua.json in the first place?
The text was updated successfully, but these errors were encountered:
Hi @bernoreitsma!
Thank you for your detailed problem report. I think it would be best to avoid the null-values in the generated JSON spec. Would you be willing to provide a pull-request for this? Nevertheless, there will be no BICs available for Ukrainian banks because the source we are using doesn't provide this information.
Steps to reproduce
results in the stacktrace
Versions tested
Produced in python 3.8 but I suspect the bug is independent of the python-version.
Versions where the bug appears:
2023.3.0, 2023.2.1, 2023.2.0
.Diagnosis
I think this is the offending commit: e4c4aef - the ukrainian banks have
"bic": null
. With theBIC.from_bank_code
call we initialize aBIC
instance withNone
, which is unexpected. Before it was added, we would catch aKeyError
inBIC.from_bank_code
which reraises as anInvalidBankCode
exception.I don't know what would we preferred, either catch the
null
-values or prevent them to be in thegenerated_ua.json
in the first place?The text was updated successfully, but these errors were encountered: