Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
help=u"save logs output to the given file")
group = parser.add_mutually_exclusive_group()
group.add_argument("-v", "--verbose", dest='logging', action='store_const', const=logging.DEBUG,
help=u"report more information about operations", default=logging.INFO)
group.add_argument("-q", "--quiet", dest='logging', action='store_const', const=logging.WARNING,
help=u"report only errors and warnings", default=logging.INFO)
options, _args = parser.parse_known_args()
configure_logging(options.logging, '[ %(levelname)-8s] %(name)-18s: %(message)s', filename=options.log)
plugin_manager = create_plugin_manager()
# Load the configuration and languages
config = PiConfigParser("~/.config/pibooth/pibooth.cfg", plugin_manager)
language.init(config.join_path("translations.cfg"), options.reset)
# Register plugins
custom_paths = [p for p in config.gettuple('GENERAL', 'plugins', 'path') if p]
load_plugins(plugin_manager, *custom_paths)
LOGGER.info("Installed plugins: %s", ", ".join(list_plugin_names(plugin_manager)))
# Update configuration with plugins ones
plugin_manager.hook.pibooth_configure(cfg=config)
# Ensure config files are present in case of first pibooth launch
if not options.reset:
if not osp.isfile(config.filename):
config.save(default=True)
plugin_manager.hook.pibooth_reset(cfg=config, hard=False)
help=u"generate a diagnostic report for debugging and exit")
parser.add_argument("--log", default=None,
help=u"save logs output to the given file")
group = parser.add_mutually_exclusive_group()
group.add_argument("-v", "--verbose", dest='logging', action='store_const', const=logging.DEBUG,
help=u"report more information about operations", default=logging.INFO)
group.add_argument("-q", "--quiet", dest='logging', action='store_const', const=logging.WARNING,
help=u"report only errors and warnings", default=logging.INFO)
options, _args = parser.parse_known_args()
configure_logging(options.logging, '[ %(levelname)-8s] %(name)-18s: %(message)s', filename=options.log)
config = PiConfigParser("~/.config/pibooth/pibooth.cfg", options.reset)
language.init("~/.config/pibooth/translations.cfg", options.reset)
if options.config:
LOGGER.info("Editing the pibooth configuration...")
config.edit()
elif options.translate:
LOGGER.info("Editing the GUI translations...")
language.edit()
elif options.fonts:
LOGGER.info("Listing all fonts available...")
print_columns_words(get_available_fonts(), 3)
elif options.diagnostic:
LOGGER.info("Starting diagnostic of DSLR camera...")
diagnostic.main()
elif not options.reset:
LOGGER.info("Starting the photo booth application...")
def main():
"""Application entry point.
"""
configure_logging()
plugin_manager = create_plugin_manager()
config = PiConfigParser("~/.config/pibooth/pibooth.cfg", plugin_manager)
# Register plugins
custom_paths = [p for p in config.gettuple('GENERAL', 'plugins', 'path') if p]
load_plugins(plugin_manager, *custom_paths)
# Update configuration with plugins ones
plugin_manager.hook.pibooth_configure(cfg=config)
for path in config.gettuple('GENERAL', 'directory', 'path'):
regenerate_all_images(plugin_manager, config, path)
def main():
"""Application entry point.
"""
configure_logging()
plugin_manager = create_plugin_manager()
config = PiConfigParser("~/.config/pibooth/pibooth.cfg", plugin_manager)
counters = Counters(config.join_path("counters.pickle"),
taken=0, printed=0, forgotten=0,
remaining_duplicates=config.getint('PRINTER', 'max_duplicates'))
if '--json' in sys.argv:
print(json.dumps(counters.data))
elif '--update' in sys.argv:
try:
print("\nUpdating counters (current value in square bracket):\n")
for name in counters:
value = input(" -> {:.<18} [{:>4}] : ".format(name.capitalize(), counters[name]))
if value.strip():
setattr(counters, name, int(value))
except KeyboardInterrupt:
pass
def reload(self):
"""Reload current configuration file.
"""
self.read(self.filename)
# Handle the language configuration, save it as a class attribute for easy access
language = self.get('GENERAL', 'language')
if language not in get_supported_languages():
LOGGER.warning("Unsupported language '%s', fallback to English", language)
else:
PiConfigParser.language = language
# Handle autostart of the application
self.enable_autostart(self.getboolean('GENERAL', 'autostart'))