#-*- coding: utf-8 -*-u"""Prosty pomocnik APITen program jest częścią książki "Zanurkuj w Pythonie", podręcznikao Pythonie dla doświadczonych programistów. Najnowszą wersję możnaznaleźć tu: http://pl.wikibooks.org/wiki/Zanurkuj_w_Pythonie.Program ten został oparty na przykładach zawartych w książce"Dive Into Python", a dostępnej stąd: http://www.diveintopython.org."""__author__="Mark Pilgrim (mark@diveintopython.org)"__version__="$Revision: 1.3 $"__date__="$Date: 2004/05/05 21:57:19 $"__copyright__="Copyright (c) 2001 Mark Pilgrim"__license__="Python"# Jest to dobry skrypt do nauki introspekcji,# jednak w prawdziwym świecie lepiej wykorzystywać PyDoc, który jest częścią# standardowej biblioteki Pythona w wersjach Python 2.1 i nowszych.## Być może twój IDE może już na starcie zaimportował funkcję "help"# z modułu pydoc, a jeśli nie, zrób to tak:## >>> from pydoc import help## Do funkcja help z tego modułu przekazujemy dowolny obiekt, na którego temat# chcemy uzyskać pomoc. Możemy do tej funkcji także przekazać# łańcuch znaków:## >>> help("string") # pomoc na temat modułu string# >>> help("apihelper.info") # pomoc na temat poniższej funkcji# >>> help() # włącza interaktywny tryb pomocy## PyDoc może także działać jako serwer HTTP i dynamicznie tworzyć# dokumentację dowolnego modułu sformatowaną jako HTML.# Jest to bardzo fajne narzędzie. Więcej na temat PyDoc możemy znaleźć tutaj:# http://www.onlamp.com/pub/a/python/2001/04/18/pydoc.htmldefinfo(object,spacing=10,collapse=1):u"""Wypisuje metody i ich notki dokumentacyjne. Argumentem może być moduł, klasa, lista, słownik, czy też łańcuch znaków."""methodList=[eforeindir(object)ifcallable(getattr(object,e))]processFunc=collapseand(lambdas:" ".join(s.split()))or(lambdas:s)print"\n".join(["%s%s"%(method.ljust(spacing),processFunc(unicode(getattr(object,method).__doc__)))formethodinmethodList])if__name__=="__main__":printinfo.__doc__