mirror of
https://github.com/status-im/PyGithub.git
synced 2026-08-31 10:51:14 +00:00
24 lines
972 B
Python
24 lines
972 B
Python
import itertools
|
|
|
|
class ArgumentsChecker:
|
|
def __init__( self, mandatoryParameters, optionalParameters ):
|
|
self.__mandatoryParameters = mandatoryParameters
|
|
self.__optionalParameters = optionalParameters
|
|
|
|
def check( self, args, kwds ):
|
|
data = dict( kwds )
|
|
if len( args ) + len( kwds ) == 0:
|
|
raise TypeError()
|
|
for arg, argumentName in itertools.izip( args, itertools.chain( self.__mandatoryParameters, self.__optionalParameters ) ):
|
|
if argumentName in kwds:
|
|
raise TypeError()
|
|
else:
|
|
data[ argumentName ] = arg
|
|
for argumentName in data:
|
|
if argumentName not in itertools.chain( self.__mandatoryParameters, self.__optionalParameters ):
|
|
raise TypeError()
|
|
for argumentName in self.__mandatoryParameters:
|
|
if argumentName not in data:
|
|
raise TypeError()
|
|
return data
|