def __call__(self, instance, *args, **kwargs): ''' Returns getActiveEventTypes and getEvents in a single call. The events returned by getActiveEventTypes are aliased to look like an answer from getEvents @param instance: object whose method is being called @type instance: object (a L{BfApi} subclass) @returns: Betfair API answer @rtype: parsed answer ''' callArgs = self.kwargs.copy() callArgs.update(**kwargs) eventParentId = callArgs.get('eventParentId') if eventParentId == bfglobals.eventRootId: response = instance.getActiveEventTypes() # Alias the .id and .name attributes to those of an event for event in response.eventTypeItems: event.eventTypeId = event.id event.eventId = event.id del event.id event.eventName = event.name del event.name # Create the eventItems and marketItems alias response.eventItems = response.eventTypeItems del response.eventTypeItems response.marketItems = list() return response return BfApi.getEvents(instance, eventParentId=eventParentId)