pygglib 0.2 released

16 stycznia 2008, 18:37:35

Poziom: 0 | Kategoria: Komputerowo-internetowo, Python, Studia, Techblog. | 14 komentarzy

Można powiedzieć, że dzisiaj światło dzienne ujrzała wersja 0.2 pygglib — biblioteki do obsługi protokołu Gadu-Gadu napisanej w pythonie. Wersja ta implementuje już większą część protokołu opisanego na stronach EKG.

Przy okazji pisania testów i implementacji okazało się, że panowie z Gadu-Gadu znowu mieszają coś w protokole, poza tym opis na stronach EKG jest już trochę nieaktualny (szczegóły zostały wysłane na listę dyskusyjną ekg-devel). W każdym razie dzisiaj miała miejsce prezentacja projektu na zajęciach i muszę przyznać, że większość prac, która została przewidziana, została zaimplementowana. Niestety zabrakło czasu na obsługę bezpośrednich połączeń oraz takich rzeczy jak połączenia konferencyjne, czy rozmowy głosowe, jednak jestem zadowolony z tego, co zostało napisane.

Przy okazji muszę ponarzekać na pythona... Przyzwyczajony byłem do tej pory do składni języka Ruby i trochę trudno było mi się przestawić na wcięcia i dwukropki. Poza tym podobno python jest językiem obiektowym, więc tym bardziej denerwowało mnie na przykład to, że lista nie ma metody "len" bądź "length", tylko jej długość możemy sprawdzić funkcją len(lista), co już, według mnie, za bardzo obiektowe nie jest.

Na osobną notkę zasługuje również coś, co według mnie powinno zostać naprawione wieki temu — w pythonie nie da się (pod Windowsem i w sposób najbardziej naturalny) przechwytywać sygnału SIGINT po wciśnięciu Ctrl+C (czyli wyjątku KeyboardInterrupt) w programach wielowątkowych! Jest to absolutna kompromitacja. W programie demonstrującym działanie pygglib chciałem stworzyć proste echo, które byłoby wyłączane przez wciśnięcie Ctrl+C, jednak, ponieważ biblioteka korzysta z listenera i obsługuje zdarzenia, przez co jest wielowątkowa, stało się to niemożliwe. Pod linuxem można ten błąd w dosyć prosty sposób ominąć poprzez zastosowanie os.fork(), jednak pod Windowsem takiej opcji nie ma.

To tyle narzekania na Pythona. Zainteresowanych zapraszam do pobrania źródeł biblioteki oraz testowania. Ewentualnie błędy i sugestie proszę zgłaszać na Trac projektu.

EDIT: Wypuściliśmy wersję 0.2.1, w której poprawiony został odczyt wiadomości wysyłanych z niektórych wersji Gadu-Gadu, na końcu których występowały czasem śmieci. Link do źródeł został zaktualizowany.

Tagi:

Wcześniejsze wpisy Nowsze wpisy