Skip to content

Releases: mdomke/schwifty

2024.05.3

10 May 14:19
2024.05.3
4aa8d80
Compare
Choose a tag to compare

Added

  • There is a new classmethod IBAN.random() that allows you to create random, but valid IBANs 🎉 .
    >>> IBAN.random()
    <IBAN=LT435012771675726758>
    You can narrow down the generated values by providing the corresponding parameters to this function. E.g., to get only Spanish IBANs you can do
    >>> IBAN.random(country_code="ES")
    <IBAN=ES8801253179194914182449>

Changed

  • Some missing bank associations have been added to the Portuguese bank registry by @tiagoafseixas

2024.05.2

09 May 16:38
2024.05.2
ad71235
Compare
Choose a tag to compare

Fixed

  • Re-add typing-extensions as explicit dependency for Python < 3.11 to support the Self type. This was accidentally removed in aa251c2

2024.05.1

09 May 15:33
2024.05.1
883d826
Compare
Choose a tag to compare

Changed

  • Remove custom collection logic of the bank registry for pyinstaller. The changes introduced in #92 were wrong and have been reverted. Usage example
    $ pyinstaller <script> --collect-data schwifty --copy-metadata schwifty
    

2024.05.0

07 May 13:55
2024.05.0
99a1dcc
Compare
Choose a tag to compare

Fixed

  • Loading JSON data into a Pydantic model with an IBAN or BIC-field (Model.model_validate_json()) was previously broken and has been fixed now.

Added

Changed

  • Updated bank registries #197 @Natim
  • Remove the dependency to iso3166 since its functionality is already covered by pycountry (suggested by @sergei-maertens)

2024.04.0

18 Apr 09:58
2024.04.0
eb9ea8d
Compare
Choose a tag to compare

Added

  • Added Revolut Bank for Spain @brunovilla
  • Added support for Python 3.12
  • Added manually curated bank registry for Montenegro @Djuka

Changed

  • The bank registry is now internally validated, so that all domestic bank codes actually match the specification of the corresponding BBAN structure. As a result, some entries had to be removed, because they did contain invalid bank codes.
  • The Danish national checksum algorithm is considered opaque and the checksum digit is assumed to be part of the account number (which is now always 10 digits long).

Fixed

  • The Czech bank registry was stored in latin-1 encoding, while being read as UTF-8. This resulted in invalid bank names @Natim and @Cogax
  • The Norwegian national checksum algorithm was rendering wrong results in some edge-cases @Natim

2024.01.1

06 Jan 12:30
2024.01.1.post0
9e5896c
Compare
Choose a tag to compare

Added

  • Support aspirational countries:

    • Algeria
    • Angola
    • Benin
    • Burkina Faso
    • Burundi
    • Cabo Verde
    • Cameroon
    • Central African Republic
    • Chad
    • Comoros
    • Congo
    • Côte d'Ivoire
    • Djibouti
    • Equatorial Guinea
    • Gabon,
    • Guinea-Bissau
    • Honduras
    • Iran
    • Madagascar
    • Mali
    • Morocco
    • Mozambique
    • Nicaragua
    • Niger
    • Senegal
    • Togo
  • National checksum algorithms for many countries have been added:

    • Albania
    • Bosnia and Herzegovina
    • Czech Republic
    • East Timor
    • Estonia
    • Finland
    • Iceland
    • Mauritania
    • Montenegro
    • North Macedonia
    • Norway
    • Poland
    • Portugal
    • Serbia
    • Slovakia
    • Slovenia
    • Spain
    • Tunisia
  • Add new banks to the list of French banks @Natim :

    • ARKEA BP Brest
    • Anytime
    • Lydia Bank
    • MEMO BANK
    • Revolut
    • SHINE
    • SumUp Limited
  • New IBAN.in_sepa_zone-property to indicate if the IBAN's country is part of the SEPA
    zone.

  • New manual bank registries for

    • Andorra
    • Arabic Emirates
    • Costa Rica
    • Portugal
  • New attributes IBAN.account_id, IBAN.account_holder_id and
    IBAN.account_type that are available depending on the country's BBAN specification.
    E.g. IBAN.account_holder_id is currently only available for Iceland (Kennitala) and only
    Brazil defines an IBAN.account_id.

Changed

  • Use enhanced IBAN/BBAN format from Wikipedia,
    since the official information from SWIFT is often inaccurate.
  • The support for national checksum digits has been reimplemented.
  • The IBAN-class now has an additional IBAN.bban-attribute, where all country
    specific functionality has been moved to.
  • Updated bank registries.

2023.11.2

27 Nov 09:35
2023.11.2
e8e973f
Compare
Choose a tag to compare

Added

  • Add OKALI to the list of French banks @Natim.

2023.11.1

27 Nov 09:29
2023.11.1.post0
b372a96
Compare
Choose a tag to compare

Changed

  • The Swiss bank registry is now generated from the SIX Group #167
  • Manually add missing bank entry for Spain. #140
  • Updated bank registry for Austria and Poland.

2023.11.0

27 Nov 09:25
2023.11.0
4430672
Compare
Choose a tag to compare

Changed

  • The validation of a BIC is now performed in the context of ISO 9362:2022 which allows numbers in the business party prefix. If strict SWIFT compliance is required the enforce_swift_compliance parameter can be set to True.
  • The BIC.from_bank_code()-method will now select the most generic BIC (e.g. with no branch specifier or the “XXX” value) if multiple BICs are associated to the given domestic bank code. @Natim
  • Many manually curated bank registry entries have been re-added by @dennisxtria

2023.10.0

01 Nov 10:06
2023.10.0
7674b41
Compare
Choose a tag to compare

Added

  • The Pydantic v2 protocol is now supported, so that the IBAN and BIC classes can be directly used as type annotations in Pydantic models

Changed

  • The IBAN and BIC classes are now subclasses of str so that all string related methods and functionalities (e.g. slicing) are directly available.