コード例 #1
0
ファイル: orderedset.py プロジェクト: josefbacik/pykickstart
    def runTest(self):
        # __eq__, __len__, etc.
        self.assertEqual(OrderedSet([]), OrderedSet([]))
        self.assertEqual(OrderedSet([1, 2, 3]), OrderedSet([1, 2, 3]))
        self.assertEqual(OrderedSet([1, 2, 3]), [1, 2, 3])

        # __reversed__
        self.assertEqual(reversed(OrderedSet([2, 4, 1, 3])), OrderedSet([3, 1, 4, 2]))

        # discard
        self.assertEqual(len(OrderedSet(["one", "two", "three"])), 3)
        os = OrderedSet(["one", "two", "three"])
        os.discard("two")
        self.assertEqual(len(os), 2)
        os = OrderedSet(["one", "two", "three"])
        os.discard("four")
        self.assertEqual(len(os), 3)

        # pop
        self.assertRaises(KeyError, OrderedSet().pop)
        self.assertEqual(OrderedSet(["one", "two", "three"]).pop(), "three")
        self.assertEqual(OrderedSet(["one"]).pop(), "one")
        os = OrderedSet(["one"])
        os.pop()
        self.assertEqual(len(os), 0)

        # __repr__
        self.assertEqual(repr(OrderedSet()), "OrderedSet()")
        self.assertEqual(repr(OrderedSet([1, 2, 3])), "OrderedSet([1, 2, 3])")
コード例 #2
0
ファイル: parser.py プロジェクト: jasontibbitts/pykickstart
    def add(self, pkgList):
        """Given a list of lines from the input file, strip off any leading
           symbols and add the result to the appropriate list.
        """
        existingExcludedSet = OrderedSet(self.excludedList)
        existingPackageSet = OrderedSet(self.packageList)
        newExcludedSet = OrderedSet()
        newPackageSet = OrderedSet()

        excludedGroupList = []

        for pkg in pkgList:
            stripped = pkg.strip()

            if stripped[0:2] == "@^":
                self.environment = stripped[2:]
            elif stripped[0] == "@":
                self._processGroup(stripped[1:])
            elif stripped[0] == "-":
                if stripped[1:3] == "@^" and self.environment == stripped[3:]:
                    self.environment = None
                elif stripped[1] == "@":
                    excludedGroupList.append(Group(name=stripped[2:]))
                else:
                    newExcludedSet.add(stripped[1:])
            else:
                newPackageSet.add(stripped)

        # Groups have to be excluded in two different ways (note: can't use
        # sets here because we have to store objects):
        excludedGroupNames = [g.name for g in excludedGroupList]

        # First, an excluded group may be cancelling out a previously given
        # one.  This is often the case when using %include.  So there we should
        # just remove the group from the list.
        self.groupList = [
            g for g in self.groupList if g.name not in excludedGroupNames
        ]

        # Second, the package list could have included globs which are not
        # processed by pykickstart.  In that case we need to preserve a list of
        # excluded groups so whatever tool doing package/group installation can
        # take appropriate action.
        self.excludedGroupList.extend(excludedGroupList)

        existingPackageSet = (existingPackageSet -
                              newExcludedSet) | newPackageSet
        existingExcludedSet = (existingExcludedSet -
                               existingPackageSet) | newExcludedSet

        self.packageList = list(existingPackageSet)
        self.excludedList = list(existingExcludedSet)
コード例 #3
0
ファイル: parser.py プロジェクト: puiterwijk/pykickstart
    def add (self, pkgList):    # type: (Packages, List[str]) -> None
        """Given a list of lines from the input file, strip off any leading
           symbols and add the result to the appropriate list.
        """
        existingExcludedSet = OrderedSet(self.excludedList)
        existingPackageSet = OrderedSet(self.packageList)
        newExcludedSet = OrderedSet()
        newPackageSet = OrderedSet()

        excludedGroupList = []

        for pkg in pkgList:
            stripped = pkg.strip()

            if stripped[0:2] == "@^":
                self.environment = stripped[2:]
            elif stripped[0] == "@":
                self._processGroup(stripped[1:])
            elif stripped[0] == "-":
                if stripped[1:3] == "@^" and self.environment == stripped[3:]:
                    self.environment = None
                elif stripped[1] == "@":
                    excludedGroupList.append(Group(name=stripped[2:]))
                else:
                    newExcludedSet.add(stripped[1:])
            else:
                newPackageSet.add(stripped)

        # Groups have to be excluded in two different ways (note: can't use
        # sets here because we have to store objects):
        excludedGroupNames = [g.name for g in excludedGroupList]

        # First, an excluded group may be cancelling out a previously given
        # one.  This is often the case when using %include.  So there we should
        # just remove the group from the list.
        self.groupList = [g for g in self.groupList if g.name not in excludedGroupNames]

        # Second, the package list could have included globs which are not
        # processed by pykickstart.  In that case we need to preserve a list of
        # excluded groups so whatever tool doing package/group installation can
        # take appropriate action.
        self.excludedGroupList.extend(excludedGroupList)

        existingPackageSet = (existingPackageSet - newExcludedSet) | newPackageSet
        existingExcludedSet = (existingExcludedSet - existingPackageSet) | newExcludedSet

        # FIXME: figure these types out
        self.packageList = list(existingPackageSet) # type: ignore
        self.excludedList = list(existingExcludedSet)   # type: ignore
コード例 #4
0
ファイル: orderedset.py プロジェクト: rkuska/pykickstart
    def runTest(self):
        # __eq__, __len__, etc.
        self.assertEqual(OrderedSet([]), OrderedSet([]))
        self.assertEqual(OrderedSet([1, 2, 3]), OrderedSet([1, 2, 3]))
        self.assertEqual(OrderedSet([1, 2, 3]), [1, 2, 3])

        # __reversed__
        self.assertEqual(reversed(OrderedSet([2, 4, 1, 3])),
                         OrderedSet([3, 1, 4, 2]))

        # discard
        self.assertEqual(len(OrderedSet(["one", "two", "three"])), 3)
        os = OrderedSet(["one", "two", "three"])
        os.discard("two")
        self.assertEqual(len(os), 2)
        os = OrderedSet(["one", "two", "three"])
        os.discard("four")
        self.assertEqual(len(os), 3)

        # add
        self.assertEqual(len(OrderedSet(["one", "two", "three"])), 3)
        os = OrderedSet(["one", "two", "three"])
        os.add("two")
        self.assertEqual(len(os), 3)
        os = OrderedSet(["one", "two", "three"])
        os.add("four")
        self.assertEqual(len(os), 4)

        # pop
        self.assertRaises(KeyError, OrderedSet().pop)
        self.assertEqual(OrderedSet(["one", "two", "three"]).pop(), "three")
        self.assertEqual(OrderedSet(["one"]).pop(), "one")
        os = OrderedSet(["one"])
        os.pop()
        self.assertEqual(len(os), 0)

        # __repr__
        self.assertEqual(repr(OrderedSet()), "OrderedSet()")
        self.assertEqual(repr(OrderedSet([1, 2, 3])), "OrderedSet([1, 2, 3])")