123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- """Helpers for an Ubuntu application."""
- import logging
- import os
- from . organiccodeconfig import get_data_file
- from . Builder import Builder
- from locale import gettext as _
- def get_builder(builder_file_name):
- """Return a fully-instantiated Gtk.Builder instance from specified ui
- file
-
- :param builder_file_name: The name of the builder file, without extension.
- Assumed to be in the 'ui' directory under the data path.
- """
-
- ui_filename = get_data_file('ui', '%s.ui' % (builder_file_name,))
- if not os.path.exists(ui_filename):
- ui_filename = None
- builder = Builder()
- builder.set_translation_domain('organiccode')
- builder.add_from_file(ui_filename)
- return builder
- def get_media_file(media_file_name):
- media_filename = get_data_file('media', '%s' % (media_file_name,))
- if not os.path.exists(media_filename):
- media_filename = None
- return "file:///"+media_filename
- class NullHandler(logging.Handler):
- def emit(self, record):
- pass
- def set_up_logging(opts):
-
- root = logging.getLogger()
- null_handler = NullHandler()
- root.addHandler(null_handler)
- formatter = logging.Formatter("%(levelname)s:%(name)s: %(funcName)s() '%(message)s'")
- logger = logging.getLogger('organiccode')
- logger_sh = logging.StreamHandler()
- logger_sh.setFormatter(formatter)
- logger.addHandler(logger_sh)
- lib_logger = logging.getLogger('organiccode_lib')
- lib_logger_sh = logging.StreamHandler()
- lib_logger_sh.setFormatter(formatter)
- lib_logger.addHandler(lib_logger_sh)
-
- if opts.verbose:
- logger.setLevel(logging.DEBUG)
- logger.debug('logging enabled')
- if opts.verbose > 1:
- lib_logger.setLevel(logging.DEBUG)
- def get_help_uri(page=None):
-
- here = os.path.dirname(__file__)
- help_uri = os.path.abspath(os.path.join(here, '..', 'help', 'C'))
- if not os.path.exists(help_uri):
-
- help_uri = 'organiccode'
-
- if page is not None:
- help_uri = '%s#%s' % (help_uri, page)
- return help_uri
- def show_uri(parent, link):
- from gi.repository import Gtk
- screen = parent.get_screen()
- Gtk.show_uri(screen, link, Gtk.get_current_event_time())
- def alias(alternative_function_name):
- '''see http://www.drdobbs.com/web-development/184406073#l9'''
- def decorator(function):
- '''attach alternative_function_name(s) to function'''
- if not hasattr(function, 'aliases'):
- function.aliases = []
- function.aliases.append(alternative_function_name)
- return function
- return decorator
|