Мое приложение пытается показать текстовый водяной знак в текстовом поле формы, но я не хочу касаться фактического значения коробки. Итак, я пытаюсь использовать фоновое изображение с текстом водяного знака, используя классы;
.watermarkon input
{
background-image: url('../forms/images/TypeNameWatermark.png');
background-repeat:no-repeat;
}
.watermarkoff input
{
background-image: none;
}
Я устанавливаю текстовые поля CssClass = " с возможностью изменения ...
У меня есть приложение Python, которому требуется довольно много (~ 30) параметров конфигурации. До сих пор я использовал класс OptionParser для определения значений по умолчанию в самом приложении с возможностью изменения отдельных параметров в командной строке при вызове приложения.
Теперь я хотел бы использовать «правильные» файлы конфигурации для пример из класса ConfigParser. В то же время пользователи должны иметь возможность изменять отдельные параметры в командной строке.
Мне было интересно, есть ли способ объединить два шага, например, использовать optparse (или более новый argparse) для обработки параметров командной строки , но считывая значения по умолчанию из файла конфигурации в синтаксисе ConfigParse.
Есть идеи, как это сделать простым способом? Мне не очень нравится вручную вызывать ConfigParse, а затем вручную установить для всех параметров соответствующие значения по умолчанию ...
Я не могу сказать, что это лучший способ, но у меня есть созданный мной класс OptionParser, который делает именно это — действует как optparse.OptionParser со значениями по умолчанию, полученными из раздела файла конфигурации. Вы можете получить его...
class OptionParser(optparse.OptionParser):
def __init__(self, **kwargs):
import sys
import os
config_file = kwargs.pop('config_file',
os.path.splitext(os.path.basename(sys.argv[0]))[0] + '.config')
self.config_section = kwargs.pop('config_section', 'OPTIONS')
self.configParser = ConfigParser()
self.configParser.read(config_file)
optparse.OptionParser.__init__(self, **kwargs)
def add_option(self, *args, **kwargs):
option = optparse.OptionParser.add_option(self, *args, **kwargs)
name = option.get_opt_string()
if name.startswith('--'):
name = name[2:]
if self.configParser.has_option(self.config_section, name):
self.set_default(name, self.configParser.get(self.config_section, name))
Не стесняйтесь просматривать источник. Тесты находятся в родственном каталоге.