Skip to content

Releases: mdomke/schwifty

2024.08.0

13 Aug 09:13
2024.08.0
a5b1595
Compare
Choose a tag to compare

Added

Changed

  • Extended the Danish bank registry, including many more banks now.
  • Updated the Belgian bank registry @sennebos
  • Updated bank registries for Austria, Germany, Poland, Czech Republic, Switzerland, Italy, Norway, and Netherlands.

2024.06.1

10 Jun 11:13
2024.06.1
074d71c
Compare
Choose a tag to compare

Fixed

  • The BIC.from_bank_code now handles banks correctly that have no value for the BIC field in the registry.

Changed

  • Use hatch fmt and hatch test commands for internal development.

2024.06.0

04 Jun 08:55
2024.06.0
3de4b0d
Compare
Choose a tag to compare

Changed

  • Stop using the “elfprooef” algorithm when validating Dutch IBANs, since the administrative authority says it should not be checked anymore. See #205 for more information.

2024.05.4

25 May 21:30
2024.05.4
c467335
Compare
Choose a tag to compare

Added

  • The IBAN and BBAN classes now have an additional property currency_code for countries like Seychelles, Guatemala, or Mauritius.

Fixed

  • Also allow the BIC lookup for non-primary banks. For countries like Switzerland, the lookup did fail for banks which did not have the primary-flag set, even though an appropriate mapping was available.
  • IBAN.random() now also works for countries which have a currency code included in their BBAN e.g., Mauritius or Seychelles. #206 (thanks to @noamshalev for reporting).
  • IBAN.random() now also works for aspirational countries, where no information of the BBAN structure is available, e.g., Comoros. #206

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.