Alternativen

Authors:
  • Christian Tissmer
  • Felix Schwarz
  • Martin v. Löwis
  • Veit Schiele
Date:

2013-03-01

ICU

ICU ist die C++-Referenzimplementierung, die High-Level-Access zu den CLDR- Daten ermöglicht. Dabei werden die CLDR-Daten in einer Shared Library gespeichert.

  • Pro:
    • weit verbreitete und bewährte Bibliothek
    • effizienter RAM-Verbrauch da das Betriebssystem die libicudata.so zwischen den Prozessen teilt.
  • Kontra:
    • stellt nicht die vollständigen CLDR-Daten bereit. So wird z.B. bis ICU 51 orientation (right-to-left) nicht bereitgestellt.
    • Ändern der Daten ist schwierig da die ein Rebuild von ICU und ggf. auch Python erforderlich würde.
    • Ein Wrapper für alle Klassen würde einigen Aufwand bedeuten, zumindest wenn das API PEP-8-kompatibel sein soll.
PyICU

übernimmt die Beschränkungen von ICU.

Darüberhinaus beschränkt PyICU die Verwendung noch weiter, da nur eine Untermenge von ICU implementiert wird und die Methodennamen nicht PEP-8- kompatibel sind.

Eigene ICU-Implementierung

Hierbei sollten ggf. jedoch nur diejenigen Teile implementiert werden, die nicht bereits in Python vorhanden sind, also nicht

  • die Unicode-Database

  • reguläre Ausdrücke für Unicode-Strings

  • Pro:

    Erwartet werden

    • geringere Download- und Speichergröße
    • hohe Performance
    • geringer RAM-Verbrauch
  • Kontra:

    • Unvollständige CLDR-Daten