Po paromiesięcznym przestoju przyszedł czas na kolejną, może nieco drobniejszą niż poprzednim razem, aktualizację pwn2dict. Prawdę mówiąc, zmiany były już gotowe w grudniu, ale przez natłok innych zajęć nie miałem czasu wydać nowej wersji.
Nową funkcją jest wstępny eksport do formatu dictd obsługiwanego między innymi przez program S60Dict. Konwersji do tego nowo dodanego formatu można dokonać za pomocą nowego przełącznika -d / --dictd, analogicznie do formatu tabfile. Korzystając z okazji poprawiłem też jeden drobny bug, który mógł wywołać problemy z indeksem haseł, jeśli z jakiejś przyczyny słownik zawierał puste definicje.
Poza tym, w tak zwanym międzyczasie postanowiłem utworzyć dla skryptu repozytorium na Gitoriousie. Jeśli z jakiegoś powodu potrzebujecie którejś starszej wersji albo chcecie prześledzić zmiany, teraz macie taką możliwość. Umieściłem tam też przetłumaczoną na angielski instrukcję użytkowania skryptu. Podczas prac nad skryptem i tak używałem Gita, więc był to dość oczywisty wybór.
Linki:
pwn2dict, Instrukcja obsługi
Ten DeprecationWarning to cena za obsługiwanie jednocześnie Pythona 2.6+ i Pythona 3.1+. Jest to zupełnie nieszkodliwe. A konwersja byłaby szybka, gdyby pod Pythona 3.x istniało psyco.
A nazwa python-2.7-9.10.2.x86_64 sugeruje, że 9 to wersja patchsetu w twoim distro, nie oficjalna.
macias writes:
No u mnie jest taka, python-2.7-9.10.2.x86_64, i w repo widze, ze moge co najwyzej uzyc zamiast 9 — 8. Ale tez dopiero teraz zauwazylem, ze python 3 nie jest inna paczka pythona, tylko figuruje jako odrebna. Zainstalowalem i kilka wrazen — "./pwn2dict.py:530: DeprecationWarning: With-statements now directly support multiple context managers
open(book_name + ".ifo", "wb")) as (dictionary, idx, ifo):" A poza tym dla polang.win (70MB) konwersja jest dosc wolna (Core2Quad), na szczescie robi sie ja tylko raz. Zaraz bede patrzyl co dalej ;-)
Swoją drogą, nie ma takiej wersji jak 2.7.9. Najnowsza to z serii 2.7 to 2.7.2 według strony Pythona.
macias writes:
Mam 2.7.9, popatrze co sie da z tym zrobic, dzieki za wskazowke. Off-topiczna uwaga, Linux moze sobie pomarzyc o desktopie, jesli ludzie nie moga sie wymienic nawet kodem, bo co dystrybucja to inny zestaw bugow, ech… (openSUSE 11.4).
Ewentualnie, jeśli masz równolegle zainstalowanego Pythona 3.x, możesz z niego skorzystać. Skrypt jest do niego przystosowany.
Sprawdziłem teraz pod 2.6.6, 2.7.1 i 3.1.3. Pod wszystkimi działa. Podejrzewam, że masz uszkodzoną instalację Pythona.
EDIT: A skrypt możesz ściagnąć też stąd -> http://gitorious.org/pwn2dict/pwn2dict/blobs/raw/master/pwn2dict.py
EDIT2: Wygląda to na bug w Pythonie 2.7.0 -> http://bugs.python.org/issue9161
macias writes:
Nie jestem pewien, czy sie rozwiazalo na blogu, bo mam dokladnie ten sam blad. Jakiej wersji Pythona uzywasz u siebie?
Co do Gitoriousa to optycznie nie widze w co mam kliknac, zeby poprac pliki, wiec tutaj na razie spasuje.
Widzę, że My Opera przywróciła starszą wersję pliku, uszkadzając go przy okazji. Nie wiem o co chodzi i nie mogę wrzucić najnowszego skryptu. Ściągnij skrypt z mojego repozytorium na Gitoriousie i powiedz czy problem nadal występuje.
EDIT: Ok, problem się rozwiązał. Na blogu jest znów wersja 2.4.
macias writes:
Mam Pythona 2.7 i programik mi sie wyklada.
"Traceback (most recent call last):
File "./pwn2dict.py", line 651, in
help="convert to tabfile format instead")
File "/usr/lib64/python2.7/optparse.py", line 1018, in add_option
raise TypeError, "invalid arguments"
TypeError: invalid arguments"
Wyszukalem OptionParser, czy skladnia sie zgadza, a tam u samej gory:
"Deprecated since version 2.7: The optparse module is deprecated and will not be developed further; development will continue with the argparse module."
Michal writes:
Czesc Michal
Przekonwertowalem uzywajac Twojego skryptu do formatu tab a nastepnie do opf i na koncu do mobi.Uzywam tego na kindle i problemem sa formy fleksyjne. Jako przyklad wszystkie rzeczowniki angielskie sa rozpoznawane tylko w formie pojedynczej. Pytanie czy jest inna droga aby takie formy fleksyjne zachowac.?