(self, strict=False)
return missing, warnings
Check if the metadata is compliant. If strict is True then raise if
        no Name or Version are provided
Check if the metadata is compliant. If strict is True then raise if
        no Name or Version are provided
Check if the metadata is compliant . If strict is True then raise if no Name or Version are provided
def check(self, strict=False):
        """Check if the metadata is compliant. If strict is True then raise if
        no Name or Version are provided"""
        self.set_metadata_version()

        # XXX should check the versions (if the file was loaded)
        missing, warnings = [], []

        for attr in ('Name', 'Version'):  # required by PEP 345
            if attr not in self:
                missing.append(attr)

        if strict and missing != []:
            msg = 'missing required metadata: %s' % ', '.join(missing)
            raise MetadataMissingError(msg)

        for attr in ('Home-page', 'Author'):
            if attr not in self:
                missing.append(attr)

        # checking metadata 1.2 (XXX needs to check 1.1, 1.0)
        if self['Metadata-Version'] != '1.2':
            return missing, warnings

        scheme = get_scheme(self.scheme)

        def are_valid_constraints(value):
            for v in value:
                if not scheme.is_valid_matcher(v.split(';')[0]):
                    return False
            return True

        for fields, controller in ((_PREDICATE_FIELDS, are_valid_constraints),
                                   (_VERSIONS_FIELDS,
                                    scheme.is_valid_constraint_list),
                                   (_VERSION_FIELDS,
                                    scheme.is_valid_version)):
            for field in fields:
                value = self.get(field, None)
                if value is not None and not controller(value):
                    warnings.append("Wrong value for '%s': %s" % (field, value))

        return missing, warnings
def check ( self , strict = False ) : self . set_metadata_version ( ) # XXX should check the versions (if the file was loaded) missing , warnings = [ ] , [ ] for attr in ( 'Name' , 'Version' ) : # required by PEP 345 if attr not in self : missing . append ( attr ) if strict and missing != [ ] : msg = 'missing required metadata: %s' % ', ' . join ( missing ) raise MetadataMissingError ( msg ) for attr in ( 'Home-page' , 'Author' ) : if attr not in self : missing . append ( attr ) # checking metadata 1.2 (XXX needs to check 1.1, 1.0) if self [ 'Metadata-Version' ] != '1.2' : return missing , warnings scheme = get_scheme ( self . scheme ) def are_valid_constraints ( value ) : for v in value : if not scheme . is_valid_matcher ( v . split ( ';' ) [ 0 ] ) : return False return True for fields , controller in ( ( _PREDICATE_FIELDS , are_valid_constraints ) , ( _VERSIONS_FIELDS , scheme . is_valid_constraint_list ) , ( _VERSION_FIELDS , scheme . is_valid_version ) ) : for field in fields : value = self . get ( field , None ) if value is not None and not controller ( value ) : warnings . append ( "Wrong value for '%s': %s" % ( field , value ) ) return missing , warnings