mar 12

GAE 3rdparty libs

Zamieszczony przez jarek.zgoda 2009-03-12 o 12:34 | | »

Google AppEngine jest ubogie w biblioteki (poza nieco zubożoną biblioteką standardową Pythona dostępne tylko PyYaml, WebOb i Django-0.96), więc każdy kto robi aplikację na to środowisko musi dołączać do aplikacji wszystko, co jest mu potrzebne. Jeżeli aplikacja jest jedna, to pół biedy, da się to utrzymać. Jeżeli jest kilka, to wypadałoby zadbać jakoś o synchronizację. Ta potrzeba doprowadziła mnie do wynalazku, który nie ma nazwy, tylko funkcjonalność — repozytorium bibliotek, których używam na AppEngine. Od repozytoriów źródłowych różni się to tym, że w u mnie biblioteki są w formie takiej, że nic tylko wrzucać i jechać — powycinane są z nich wszystkie te moduły, które nie są potrzebne lub nie mają szansy zadziałać na AppEngine, a w kilku przypadkach zostały odchudzone lub przerobione, żeby nie stanowić nadmiernego obciążenia dla GAE.

W chwili obecnej zawartość repozytorium przedstawia się następująco (w nawiasie opis zmian względem oryginału, brak podanej wersji oznacza wersję rozwojową):

  • babel, wersja 0.9.4 (tylko funkcje l10n, zawiera lokalizacje dla en, en_US, en_GB, de, de_DE, de_AT, pl i pl_PL);
  • jinja2 (usunięte moduł z przyspieszaczami w C i wsparcie dla IronPythona);
  • openid, wersja 2.2.1 (tylko consumer);
  • pytz, wersja 2009a (wraz z ułatwiaczem dla AppEngine, zawiera wszystkie strefy czasowe!);
  • werkzeug (usunięte parę contribów, które nie mają szans zadziałać na AppEngine);
  • wtforms (bez dodatków dla Django).

Wszystkie biblioteki są aktualizowane na bieżąco w miarę pojawiania się nowych wydań lub zmian w repozytoriach źródłowych, co może oznaczać, że incydentalnie mogą się w nich pojawiać błędy, a także (w przypadku wersji rozwojowych) mogą pojawiać się zmiany interfejsu bibliotek. Repozytorium jest trzymane w SVN, więc żądni adrenaliny mogą je dołączyć przez svn:externals. Bardziej stateczni mogą sobie po prostu ściągnąć i porobić symlinki.

No i czas wreszcie na zaspokojenie apetytu. URL repozytorium to http://gae-3rdparty-libs.googlecode.com/svn/trunk/ — repozytorium jest publiczne, więc możliwy jest anonimowy checkout, bez konieczności zakładania konta Google.

Na koniec jeszcze konieczny disklajma: używasz tego na własną odpowiedzialność. Staram się nie umieszczać tam kodu, który jest zepsuty, ale nie gwarantuję poprawnego działania.

Oceń artykuł

Nie ma jeszcze żadnych głosów.

Zaloguj się aby ocenić ten tekst.