<s> from lxml import etree <EOL> import os . path <EOL> class BadArgumentError ( Exception ) : <EOL> pass <EOL> def validate ( argspec , dict ) : <EOL> exclusive = None <EOL> for arg_name , arg_type in argspec . items ( ) : <EOL> if arg_type == '<STR_LIT>' : <EOL> exclusive = arg_name <EOL> for key , value in dict . items ( ) : <EOL> if not argspec . has_key ( key ) : <EOL> msg = "<STR_LIT>" % key <EOL> raise BadArgumentError , msg <EOL> if not isinstance ( value , basestring ) : <EOL> raise BadArgumentError , "<STR_LIT>" <EOL> if dict . has_key ( exclusive ) : <EOL> if len ( dict ) > <NUM_LIT:1> : <EOL> msg = ( "<STR_LIT>" <EOL> "<STR_LIT>" % exclusive ) <EOL> raise BadArgumentError , msg <EOL> return <EOL> for arg_name , arg_type in argspec . items ( ) : <EOL> if arg_type == '<STR_LIT>' : <EOL> msg = "<STR_LIT>" % arg_name <EOL> if not dict . has_key ( arg_name ) : <EOL> raise BadArgumentError , msg <EOL> return <EOL> class ValidationSpec ( object ) : <EOL> GetRecord = { <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' <EOL> } <EOL> Identify = { <EOL> } <EOL> ListIdentifiers = { <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> } <EOL> ListMetadataFormats = { <EOL> '<STR_LIT>' : '<STR_LIT>' <EOL> } <EOL> ListRecords = { <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> } <EOL> ListSets = { <EOL> } <EOL> class ResumptionValidationSpec ( ValidationSpec ) : <EOL> ListIdentifiers = { <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> } <EOL> ListRecords = { <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> } <EOL> ListSets = { <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> } <EOL> def validateArguments ( verb , kw ) : <EOL> validate ( getattr ( ValidationSpec , verb ) , kw ) <EOL> def validateResumptionArguments ( verb , kw ) : <EOL> validate ( getattr ( ResumptionValidationSpec , verb ) , kw ) </s>
