diff --git a/.gitignore b/.gitignore index afa2b5e7..02d0143a 100755 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ __pycache__ *.orig dist *.egg-info +build diff --git a/CHANGELOG.md b/CHANGELOG.md index 85ec25b2..b8f0b92a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,6 +38,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Fixes: - cached Flatpak app current version - disk loader not filling all requested cached data from the disk +- [Ubuntu 19.04 pip3 install issue] (https://github.com/vinifmor/bauh/issues/3) ### Code - Code was internally modularized as: **api** (conceptual classes used to create custom software managers), **gems** (software managers), **commons** (common classes shared between the **view** and **gems**), **view** (UI code) diff --git a/bauh/app.py b/bauh/app.py index 3de034f2..43f808fc 100755 --- a/bauh/app.py +++ b/bauh/app.py @@ -14,68 +14,70 @@ from bauh.view.qt.window import ManageWindow from bauh.view.util.cache import CacheCleaner, DefaultMemoryCacheFactory from bauh.view.util.disk import DefaultDiskCacheLoaderFactory -args = app_args.read() -logger = logs.new_logger(__app_name__, bool(args.logs)) -app_args.validate(args, logger) -i18n = util.get_locale_keys(args.locale) +def main(): + args = app_args.read() + logger = logs.new_logger(__app_name__, bool(args.logs)) + app_args.validate(args, logger) -cache_cleaner = CacheCleaner() -cache_factory = DefaultMemoryCacheFactory(expiration_time=args.cache_exp, cleaner=cache_cleaner) -icon_cache = cache_factory.new(args.icon_exp) + i18n = util.get_locale_keys(args.locale) -context = ApplicationContext(i18n=i18n, - http_client=HttpClient(logger), - disk_cache=args.disk_cache, - download_icons=args.download_icons, - app_root_dir=ROOT_DIR, - cache_factory=cache_factory, - disk_loader_factory=DefaultDiskCacheLoaderFactory(disk_cache_enabled=args.disk_cache, logger=logger), - logger=logger) -user_config = config.read() + cache_cleaner = CacheCleaner() + cache_factory = DefaultMemoryCacheFactory(expiration_time=args.cache_exp, cleaner=cache_cleaner) + icon_cache = cache_factory.new(args.icon_exp) -app = QApplication(sys.argv) -app.setApplicationName(__app_name__) -app.setApplicationVersion(__version__) -app.setWindowIcon(QIcon(resource.get_path('img/logo.svg'))) + context = ApplicationContext(i18n=i18n, + http_client=HttpClient(logger), + disk_cache=args.disk_cache, + download_icons=args.download_icons, + app_root_dir=ROOT_DIR, + cache_factory=cache_factory, + disk_loader_factory=DefaultDiskCacheLoaderFactory(disk_cache_enabled=args.disk_cache, logger=logger), + logger=logger) + user_config = config.read() -if user_config.style: - app.setStyle(user_config.style) -else: - if app.style().objectName().lower() not in {'fusion', 'breeze'}: - app.setStyle('Fusion') + app = QApplication(sys.argv) + app.setApplicationName(__app_name__) + app.setApplicationVersion(__version__) + app.setWindowIcon(QIcon(resource.get_path('img/logo.svg'))) -managers = gems.load_managers(context=context, locale=args.locale, enabled_gems=user_config.enabled_gems if user_config.enabled_gems else None) + if user_config.style: + app.setStyle(user_config.style) + else: + if app.style().objectName().lower() not in {'fusion', 'breeze'}: + app.setStyle('Fusion') -manager = GenericSoftwareManager(managers, context=context, app_args=args) -manager.prepare() + managers = gems.load_managers(context=context, locale=args.locale, enabled_gems=user_config.enabled_gems if user_config.enabled_gems else None) -manage_window = ManageWindow(i18n=i18n, + manager = GenericSoftwareManager(managers, context=context, app_args=args) + manager.prepare() + + manage_window = ManageWindow(i18n=i18n, + manager=manager, + icon_cache=icon_cache, + disk_cache=args.disk_cache, + download_icons=bool(args.download_icons), + screen_size=app.primaryScreen().size(), + suggestions=args.sugs, + display_limit=args.max_displayed, + config=user_config, + context=context) + + if args.tray: + tray_icon = TrayIcon(locale_keys=i18n, manager=manager, - icon_cache=icon_cache, - disk_cache=args.disk_cache, - download_icons=bool(args.download_icons), - screen_size=app.primaryScreen().size(), - suggestions=args.sugs, - display_limit=args.max_displayed, - config=user_config, - context=context) + manage_window=manage_window, + check_interval=args.check_interval, + update_notification=bool(args.update_notification),) + manage_window.set_tray_icon(tray_icon) + tray_icon.show() -if args.tray: - tray_icon = TrayIcon(locale_keys=i18n, - manager=manager, - manage_window=manage_window, - check_interval=args.check_interval, - update_notification=bool(args.update_notification),) - manage_window.set_tray_icon(tray_icon) - tray_icon.show() + if args.show_panel: + tray_icon.show_manage_window() + else: + manage_window.refresh_apps() + manage_window.show() - if args.show_panel: - tray_icon.show_manage_window() -else: - manage_window.refresh_apps() - manage_window.show() + cache_cleaner.start() -cache_cleaner.start() - -sys.exit(app.exec_()) + sys.exit(app.exec_()) diff --git a/setup.py b/setup.py index daf11dde..1fa96690 100644 --- a/setup.py +++ b/setup.py @@ -35,7 +35,7 @@ setup( install_requires=requirements, entry_points={ "console_scripts": [ - "{name}={name}.app".format(name=NAME) + "{name}={name}.app:main".format(name=NAME) ] }, include_package_data=True,