parameters: (self, strict=False)
return_statement: return missing, warnings
docstring: Check if the metadata is compliant. If strict is True then raise if
          no Name or Version are provided
docstring_summary: Check if the metadata is compliant. If strict is True then raise if
          no Name or Version are provided
docstring_tokens: Check if the metadata is compliant . If strict is True then raise if no Name or Version are provided
function: 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
function_tokens: 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