1#! /usr/bin/env python 2# Copyright (c) 2015, Intel Corporation 3# All rights reserved. 4# 5# Redistribution and use in source and binary forms, with or without modification, 6# are permitted provided that the following conditions are met: 7# 8# 1. Redistributions of source code must retain the above copyright notice, this 9# list of conditions and the following disclaimer. 10# 11# 2. Redistributions in binary form must reproduce the above copyright notice, 12# this list of conditions and the following disclaimer in the documentation and/or 13# other materials provided with the distribution. 14# 15# 3. Neither the name of the copyright holder nor the names of its contributors 16# may be used to endorse or promote products derived from this software without 17# specific prior written permission. 18# 19# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 20# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 21# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 23# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 26# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 28# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 30import PyPfw 31import sys 32import logging 33 34class MyLogger(PyPfw.ILogger): 35 def __init__(self): 36 # Calling the base constructor is necessary: if you don't, MyLogger 37 # won't be recognised as a derived class of PyPfw.ILogger 38 super(MyLogger, self).__init__() 39 40 def log(self, is_warning, log): 41 log_func = logging.warning if is_warning else logging.info 42 log_func(log) 43 44 45logging.root.setLevel(logging.INFO) 46 47pfw = PyPfw.ParameterFramework(sys.argv[1]) 48 49# warning: don't pass MyLogger() directly as argument to setLogger() or it will 50# be garbage collected 51mylogger = MyLogger() 52pfw.setLogger(mylogger); 53 54moodType = pfw.createSelectionCriterionType(False) 55for numerical, literal in enumerate(["mad", "sad", "glad"]): 56 moodType.addValuePair(numerical, literal) 57 58mood = pfw.createSelectionCriterion("Mood", moodType) 59 60ok, error = pfw.start() 61if not ok: 62 print("Error while starting the pfw: {}".format(error)) 63 64raw_input("[Press enter to exit]") 65