コード例 #1
0
    def map_api_data(self, apidata: dict, pkgs_installed: Optional[dict],
                     categories: Dict[str, List[str]]) -> ArchPackage:
        data = pkgs_installed.get(
            apidata.get('Name')) if pkgs_installed else None
        app = ArchPackage(name=apidata.get('Name'),
                          installed=bool(data),
                          repository='aur',
                          i18n=self.i18n)
        app.status = PackageStatus.LOADING_DATA

        if categories:
            app.categories = categories.get(app.name)

        if data:
            app.version = data.get('version')
            app.description = data.get('description')

        self.fill_api_data(app, apidata, fill_version=not data)

        if app.orphan or app.out_of_date:
            if app.categories is None:
                app.categories = []

            if app.orphan:
                app.categories.append('orphan')

            if app.out_of_date:
                app.categories.append('out_of_date')

        return app
コード例 #2
0
ファイル: mapper.py プロジェクト: jayvdb/bauh
    def map_api_data(self, apidata: dict, installed: dict) -> ArchPackage:
        data = installed.get(apidata.get('Name'))
        app = ArchPackage(name=apidata.get('Name'),
                          installed=bool(data),
                          mirror='aur')
        app.status = PackageStatus.LOADING_DATA

        if data:
            app.version = data.get('version')
            app.description = data.get('description')

        self.fill_api_data(app, apidata, fill_version=not data)
        return app
コード例 #3
0
    def map_api_data(self, apidata: dict, installed: dict,
                     categories: dict) -> ArchPackage:
        data = installed.get(apidata.get('Name'))
        app = ArchPackage(name=apidata.get('Name'),
                          installed=bool(data),
                          repository='aur',
                          i18n=self.i18n)
        app.status = PackageStatus.LOADING_DATA

        if categories:
            app.categories = categories.get(app.name)

        if data:
            app.version = data.get('version')
            app.description = data.get('description')

        self.fill_api_data(app, apidata, fill_version=not data)

        return app
コード例 #4
0
ファイル: controller.py プロジェクト: dik-b/bauh
    def _fill_aur_pkgs(self, not_signed: dict, pkgs: list,
                       disk_loader: DiskCacheLoader, internet_available: bool):
        downgrade_enabled = git.is_enabled()

        if internet_available:
            try:
                pkgsinfo = self.aur_client.get_info(not_signed.keys())

                if pkgsinfo:
                    for pkgdata in pkgsinfo:
                        pkg = self.mapper.map_api_data(pkgdata, not_signed,
                                                       self.categories)
                        pkg.downgrade_enabled = downgrade_enabled

                        if disk_loader:
                            disk_loader.fill(pkg)
                            pkg.status = PackageStatus.READY

                        pkgs.append(pkg)

                return
            except requests.exceptions.ConnectionError:
                self.logger.warning(
                    'Could not retrieve installed AUR packages API data. It seems the internet connection is off.'
                )
                self.logger.info("Reading only local AUR packages data")

        for name, data in not_signed.items():
            pkg = ArchPackage(name=name,
                              version=data.get('version'),
                              latest_version=data.get('version'),
                              description=data.get('description'),
                              installed=True,
                              mirror='aur')

            pkg.categories = self.categories.get(pkg.name)
            pkg.downgrade_enabled = downgrade_enabled

            if disk_loader:
                disk_loader.fill(pkg)
                pkg.status = PackageStatus.READY

            pkgs.append(pkg)