Найти - Пользователи
Полная версия: Как принято делать Help в программе?
Начало » Python для новичков » Как принято делать Help в программе?
1
doza_and
Уважаемые знатоки питона как принято делать в программе на питоне помощь для пользователей программы (не программистов а пользователей). Насколько тут может оказаться полезным Сфинкс?
Я так понимаю что должен быть какой-нибудь кроссплатформенный подход (html,pdf ?)
ArtemPonomarenko
пример для консольных приложений при –help выводиться хелп реализацию смотри ниже
 def argvParse(self, argvlist):
# "parse" sys.argv function
for i in range(len(argvlist)):
if argvlist[i] == '-l':
if int(argvlist[i + 1]) > 131070:
print "Password length is too big, using default length..."
else:
self.passLength = int(argvlist[i + 1])
if argvlist[i] == '-s':
self.useSpecials = 1
if argvlist[i] == '--spcount':
self.specialsCount = int(argvlist[i + 1])
if argvlist[i] == '--os':
newSpecials = argvlist[i + 1]
newSpecials = newSpecials.split(',')
for i in range(len(newSpecials)):
if len(newSpecials[i]) > 1:
newSpecials[i] = newSpecials[i][0]
self.specials = newSpecials
print "New list of special symbols:\n"
print newSpecials
if argvlist[i] == '--help':
print """ Password generator
usage:
\t./key_gen.py [-l <number>] [-s] [-os <symbol1>,<symbol2>...] [--spcount <number>] [--help]
parameters:
\t-l <number> - length of the password, symbols
\t-s - use special symbols, such as !@#$%^&*()_+=-?. Warning, you must use the predefined in program types of symbols!
\t This option is turned off by default.
\t--os <symbol1>,... - set your own list of special symbols.
\t\tFor ex., ./key_gen.py -s -os !,@,$
\t--spcount <number> - count of special symbols in password, no more than <number>.
\t--help - this help"""
quit()
ArtemPonomarenko
если тебе такой вариант подходит
doza_and
Это неплохой вариант, я и сам таким пользуюсь (моим друзьям программистам этого достаточно). Но конечный пользователь обычно хочет что-то красивое. Те GUI у которого из разных мест можно вызвать чтото типа броузера на нужной странице или pdf на нужной закладке. Хороший пример winhelp. Меня интересуют именно такие технологии. Но поднимать для каждого пользователя веб сервер не хочется.
Андрей Светлов
sphinx, html в качестве вывода. Сервер не нужен, поиск делается на javascript.
Эти же исходники выгоняются в pdf, если нужно печатать.
ArtemPonomarenko
В книге
Гифт Н.,Джонс Д.
Python в системном администрировании UNIX и Linux - Пер. с англ. - СПб.:
Символ-Плюс, 2009. - 512 с, ил.

есть раздел 4. Создание документации и отчетов

там описан метод сбора информации и вывод ее в формате HTML можно на этой базе написать генератор хелпа в формате HTML не уверен что это то что нужно но почитай полезно
doza_and
А как открывание разделов в html сфинкса будет выглядеть со стороны питона?
нужен файл a.html позиция в файле с символьным именем bbb
webbrowser.open(?????)
а что написать?
Я правильно вообще понимаю методику использования?
Андрей Светлов
У вас же винда, верно?
Делайте выход в формате htmlhelp - это стандартная опция.
А потом скормите этот chm файл стандартному вызову HtmlHelp (заверните его через ctypes или еще как).
doza_and
Спасибо всем за исчерпывающие ответы.
p.s.
htmlhelp конечно хорошо, но я уже много наелся с изменением форматов у микрософта.
разрешите маленький оффтопик
У меня вообще-то был док который я хотел использовать - pdf генеренный из исходников на LaTeX
1 можно замучить его акробатом Acrobat.exe /A “nameddest=MyLabel=OpenActions” “main.pdf”
MyLabel - места помеченные латехом (правда есть некоторые нюансы в простановке мест ссылок в самом латехе)
2 webbrowser.open(“file:///C:/main.html#tth_sEc1.4”)
отличная штука в этом случае - НО этот пакет откусывает #xeid_dyn1 - команду позиционирования в файле
Это только для протокола file.
3 IEXPLORE.EXE file:///C:/main.html#tth_sEc1.4 прекрасно пускается - но куда он позиционируется - одному богу известно. есть еще возможность:
import win32com.client
import win32api
ie = win32com.client.Dispatch( "InternetExplorer.Application" )
ie.Visible = 1
ie.FullScreen = 1
ie.Navigate("file:///C:/main.html#tth_sEc1.4")
while ie.Busy == True:
win32api.Sleep(1000)
не пробовал - както не по вкусу и длинно.
4 firefox.exe file:///C:/main.html#tth_sEc1.4 - все Ок

Вот такая странная получилась универсальность. Если поднять сервак, то почти все странности уйдут.

Таким образом из питона остался вопрос должен-ли webbrowser.open понимать url вида file:///C:/main.html#tth_sEc1.4 И если у него есть проблемы, то почему он молчит?
:)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB