def updateArgs(self, *args, **keywords):
        if len(args) is 2:
            name = args[1]
            if ':' not in name:
                name = name + ':rpm'

            if not self.provisions.get(name):
                self.provisions[name] = deps.DependencySet()

            reMatch = self.provisionRe.match(args[0])
            if not reMatch or len(reMatch.groups()) != 3:
                return

            depClass = reMatch.group(1).strip().lower()
            if depClass != 'rpm' and depClass != 'rpmlib':
                raise policy.PolicyError, "RPMProvides cannot be used to " \
                    "provide the non-rpm dependency: '%s'" % args[0]
            dep = reMatch.group(2).strip()
            flags = reMatch.group(3).strip().split()
            flags = [(x, deps.FLAG_SENSE_REQUIRED) for x in flags if x]

            if not self.provisions.get(name):
                self.provisions[name] = deps.DependencySet()
            self.provisions[name].addDep(
                deps.dependencyClassesByName[depClass],
                deps.Dependency(dep, flags))

        exceptDeps = keywords.pop('exceptDeps', None)
        if exceptDeps:
            if type(exceptDeps) is str:
                exceptDeps = ('.*', exceptDeps)
            assert(type(exceptDeps) == tuple)
            if type(exceptDeps[0]) is tuple:
                self.exceptDeps.extend(exceptDeps)
            else:
                self.exceptDeps.append(exceptDeps)

        # CNY-3518: set the default for whether to merge modules --
        # this should be passed in only from RPMRequires
        if '_mergeKmodSymbols' in keywords:
            self.mergeKmodSymbols = keywords.pop('_mergeKmodSymbols')

        policy.Policy.updateArgs(self, **keywords)
dataset/ETHPy150Open sassoftware/conary/conary/build/capsulepolicy.py/RPMProvides.updateArgs/original