Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 23, 2010 14:02:33

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Как принято делать Help в программе?

Уважаемые знатоки питона как принято делать в программе на питоне помощь для пользователей программы (не программистов а пользователей). Насколько тут может оказаться полезным Сфинкс?
Я так понимаю что должен быть какой-нибудь кроссплатформенный подход (html,pdf ?)



Офлайн

#2 Ноя. 23, 2010 14:17:05

ArtemPonomarenko
От:
Зарегистрирован: 2010-11-17
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Как принято делать Help в программе?

пример для консольных приложений при –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()



Отредактировано (Ноя. 23, 2010 14:25:51)

Офлайн

#3 Ноя. 23, 2010 14:18:28

ArtemPonomarenko
От:
Зарегистрирован: 2010-11-17
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Как принято делать Help в программе?

если тебе такой вариант подходит



Офлайн

#4 Ноя. 23, 2010 14:25:34

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Как принято делать Help в программе?

Это неплохой вариант, я и сам таким пользуюсь (моим друзьям программистам этого достаточно). Но конечный пользователь обычно хочет что-то красивое. Те GUI у которого из разных мест можно вызвать чтото типа броузера на нужной странице или pdf на нужной закладке. Хороший пример winhelp. Меня интересуют именно такие технологии. Но поднимать для каждого пользователя веб сервер не хочется.



Офлайн

#5 Ноя. 23, 2010 14:34:35

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Как принято делать Help в программе?

sphinx, html в качестве вывода. Сервер не нужен, поиск делается на javascript.
Эти же исходники выгоняются в pdf, если нужно печатать.



Офлайн

#6 Ноя. 23, 2010 14:40:36

ArtemPonomarenko
От:
Зарегистрирован: 2010-11-17
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Как принято делать Help в программе?

В книге
Гифт Н.,Джонс Д.
Python в системном администрировании UNIX и Linux - Пер. с англ. - СПб.:
Символ-Плюс, 2009. - 512 с, ил.

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

там описан метод сбора информации и вывод ее в формате HTML можно на этой базе написать генератор хелпа в формате HTML не уверен что это то что нужно но почитай полезно



Офлайн

#7 Ноя. 23, 2010 16:39:55

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Как принято делать Help в программе?

А как открывание разделов в html сфинкса будет выглядеть со стороны питона?
нужен файл a.html позиция в файле с символьным именем bbb
webbrowser.open(?????)
а что написать?
Я правильно вообще понимаю методику использования?



Офлайн

#8 Ноя. 23, 2010 18:01:03

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Как принято делать Help в программе?

У вас же винда, верно?
Делайте выход в формате htmlhelp - это стандартная опция.
А потом скормите этот chm файл стандартному вызову HtmlHelp (заверните его через ctypes или еще как).



Офлайн

#9 Ноя. 23, 2010 19:17:35

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Как принято делать Help в программе?

Спасибо всем за исчерпывающие ответы.
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 И если у него есть проблемы, то почему он молчит?
:)



Отредактировано (Ноя. 23, 2010 20:54:32)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version