def __call__(self, *args, **kwds):
        '''

        Arguments are:
        - positional arguments corresponding to A, B, and C
        - sequence of Point or point equivalents
        - keyword mappings: A, B and C
        '''

        # XXX not happy with this yet

        if len(args) == 0 and len(kwds) == 0:
            return

        if len(args) == 1:
            if issubclass(type(args[0]), Point):
                self.A = args[0]
            else:
                if isinstance(args[0], collections.Iterable):
                    if len(args[0]) == 1:
                        self.A = args[0]
                    if len(args[0]) == 2:
                        self.AB = args[0]
                    if len(args[0]) == 3:
                        self.ABC = args[0]

        if len(args) == 2:
            self.AB = args

        if len(args) >= 3:
            self.ABC = args[:3]

        for name in self.vertexNames:
            try:
                setattr(self, name, kwds[name])
            except:
                pass
def __call__ ( self , * args , ** kwds ) : if len ( args ) == 0 and len ( kwds ) == 0 : return if len ( args ) == 1 : if issubclass ( type ( args [ 0 ] ) , Point ) : self . A = args [ 0 ] else : if isinstance ( args [ 0 ] , collections . Iterable ) : if len ( args [ 0 ] ) == 1 : self . A = args [ 0 ] if len ( args [ 0 ] ) == 2 : self . AB = args [ 0 ] if len ( args [ 0 ] ) == 3 : self . ABC = args [ 0 ] if len ( args ) == 2 : self . AB = args if len ( args ) >= 3 : self . ABC = args [ : 3 ] for name in self . vertexNames : try : setattr ( self , name , kwds [ name ] ) except : pass
Arguments are:
        - positional arguments corresponding to A, B, and C
        - sequence of Point or point equivalents
        - keyword mappings: A, B and C