コード例 #1
0
ファイル: search.py プロジェクト: vutruong1711/leaf
    def execute(self, args, uargs):
        pm = PackageManager()

        metafilter = MetaPackageFilter()
        if args.only_master_packages:
            metafilter.only_master_packages()

        if args.tags is not None:
            for t in args.tags:
                metafilter.with_tag(t)

        if args.keywords is not None and len(args.keywords) > 0:
            for kw in args.keywords:
                metafilter.with_keyword(kw)

        # Pkg list
        mflist = sorted(pm.list_available_packages().values(), key=IDENTIFIER_GETTER)
        # manage tags
        TagUtils.tag_latest(mflist)
        TagUtils.tag_installed(mflist, pm.list_installed_packages().keys())

        # Print filtered packages
        rend = ManifestListRenderer(metafilter)
        rend.extend(filter(metafilter.matches, mflist))
        pm.print_renderer(rend)
コード例 #2
0
 def test_pkgnames(self):
     f = MetaPackageFilter()
     f.with_names(["container-A", "version"])
     print("Filter:", f)
     self.assertEqual(7, len(list(filter(f.matches, self.content))))
     f.only_master_packages()
     print("Filter:", f)
     self.assertEqual(2, len(list(filter(f.matches, self.content))))
コード例 #3
0
ファイル: package.py プロジェクト: NicolasLambert/leaf
    def execute(self, args, uargs):
        pm = PackageManager()
        metafilter = MetaPackageFilter()

        if not get_optional_arg(args, "show_all_packages", False):
            metafilter.only_master_packages()

        for t in get_optional_arg(args, "tags", []):
            metafilter.with_tag(t)

        for kw in get_optional_arg(args, "keywords", []):
            metafilter.with_keyword(kw)

        # Print filtered packages
        rend = ManifestListRenderer(metafilter)
        mflist = pm.list_installed_packages().values()
        rend.extend(filter(metafilter.matches, mflist))
        pm.print_renderer(rend)
コード例 #4
0
    def test_tags(self):
        f = MetaPackageFilter()
        f.with_tag("foo")
        print("Filter:", f)
        self.assertEqual(5, len(list(filter(f.matches, self.content))))

        f = MetaPackageFilter()
        f.with_tag("foo,bar")
        print("Filter:", f)
        self.assertEqual(7, len(list(filter(f.matches, self.content))))

        f = MetaPackageFilter()
        f.with_tag("bar")
        print("Filter:", f)
        self.assertEqual(5, len(list(filter(f.matches, self.content))))
        f.with_tag("foo")
        print("Filter:", f)
        self.assertEqual(3, len(list(filter(f.matches, self.content))))
        f.with_tag("foo2")
        print("Filter:", f)
        self.assertEqual(0, len(list(filter(f.matches, self.content))))

        f = MetaPackageFilter()
        f.with_tag("bar")
        print("Filter:", f)
        self.assertEqual(5, len(list(filter(f.matches, self.content))))
        f.with_tag("foo")
        print("Filter:", f)
        self.assertEqual(3, len(list(filter(f.matches, self.content))))
        f.with_keyword("container-A")
        print("Filter:", f)
        self.assertEqual(2, len(list(filter(f.matches, self.content))))
コード例 #5
0
    def test_keywords(self):
        f = MetaPackageFilter()
        f.with_keyword("compress")
        print("Filter:", f)
        self.assertEqual(4, len(list(filter(f.matches, self.content))))

        f = MetaPackageFilter()
        f.with_keyword("container")
        print("Filter:", f)
        self.assertEqual(9, len(list(filter(f.matches, self.content))))

        f = MetaPackageFilter()
        f.with_keyword("container,compress")
        print("Filter:", f)
        self.assertEqual(13, len(list(filter(f.matches, self.content))))
        f.with_keyword("gz")
        print("Filter:", f)
        self.assertEqual(1, len(list(filter(f.matches, self.content))))
        f.only_master_packages()
        print("Filter:", f)
        self.assertEqual(0, len(list(filter(f.matches, self.content))))
コード例 #6
0
 def test_master(self):
     f = MetaPackageFilter()
     f.only_master_packages()
     print("Filter:", f)
     self.assertEqual(4, len(list(filter(f.matches, self.content))))