Я начал использовать библиотеку Python CommandLine для инструмента, который будет иметь как графический интерфейс, так и выполнение командной строки. Запуск графического интерфейса выполняется с помощью опции командной строки.
Поэтому мне хотелось бы иметь необходимые параметры, если программа выполняется в режиме командной строки. В принципе, я бы хотел, чтобы опция 1 и вариант 2 требовались, если параметр "Gui" не установлен.
Я попытался объединить атрибуты MutuallyExclusiveSet и Required, как показано ниже, но он не работает, как я думал. Не понял ли я концепцию "MutuallyExclusiveSet" или просто неправильно ее использовал? Или это то, что библиотека еще не поддерживает?
public class CommandLineOptions : CommandLineOptionsBase
{
[Option(null, "gui", Required = false, HelpText = "Launch the GUI", MutuallyExclusiveSet = "Gui")]
public bool Gui { get; set; }
[Option(null, "opt1", HelpText = "Option 1", MutuallyExclusiveSet = "CommandLine", Required = true)]
public string Option1 { get; set; }
[Option(null, "opt2", HelpText = "Option 2", MutuallyExclusiveSet = "CommandLine", Required = true)]
public string Option2 { get; set; }
}