def directlyProvides(object, *interfaces):
 cls = getattr(object, '__class__', None)
 if ((cls is not None) and (getattr(cls, '__class__', None) is cls)):
  if (not isinstance(object, DescriptorAwareMetaClasses)):
   raise TypeError('Attempt to make an interface declaration on a non-descriptor-aware class')
 interfaces = _normalizeargs(interfaces)
 if (cls is None):
  cls = type(object)
 issub = False
 for damc in DescriptorAwareMetaClasses:
  if issubclass(cls, damc):
   issub = True
   break
 if issub:
  object.__provides__ = ClassProvides(object, cls, *interfaces)
 else:
  object.__provides__ = Provides(cls, *interfaces)

def directlyProvides ( object , * interfaces ) : cls = getattr ( object , '__class__' , None ) if ( ( cls is not None ) and ( getattr ( cls , '__class__' , None ) is cls ) ) : if ( not isinstance ( object , DescriptorAwareMetaClasses ) ) : raise TypeError ( 'Attempt to make an interface declaration on a non-descriptor-aware class' ) interfaces = _normalizeargs ( interfaces ) if ( cls is None ) : cls = type ( object ) issub = False for damc in DescriptorAwareMetaClasses : if issubclass ( cls , damc ) : issub = True break if issub : object . __provides__ = ClassProvides ( object , cls , * interfaces ) else : object . __provides__ = Provides ( cls , * interfaces )
declare interfaces declared directly for an object the arguments after the object are one or more interfaces or interface specifications .