def add_source(self, source_class, *constructor_args):
if not IIPSource.implementedBy(source_class):<EOL><INDENT>raise TypeError("<STR_LIT>".format(source_class))<EOL><DEDENT>else:<EOL><INDENT>self._sources.add((source_class, constructor_args))<EOL><DEDENT>
Adds a source to the factory provided it's type and constructor arguments
:param source_class: The class used to instantiate the source
:type source_class: type
:param constructor_args: Arguments to be passed into the constructor
:type constructor_args: Iterable