Source code for pyticketswitch.ticket_type

from pyticketswitch.price_band import PriceBand
from pyticketswitch.mixins import JSONMixin


[docs]class TicketType(JSONMixin, object): """Describes a collection of tickets. Generally this represents a part of house in a venue, but may have other meanings in contexts outside theater and music. Attributes: code (str): identifier for the ticket type. description (str): human readable description of the ticket type. price_bands (list): list of :class:`PriceBands <pyticketswitch.price_band.PriceBand>` objects wich further subdivided available tickets/seats by price. """ def __init__(self, code=None, description=None, price_bands=None): self.code = code self.description = description self.price_bands = price_bands
[docs] @classmethod def from_api_data(cls, data): """Creates a new PriceBand object from API data from ticketswitch. Args: data (dict): the part of the response from a ticketswitch API call that concerns a price band. Returns: :class:`PriceBand <pyticketswitch.price_band.PriceBand>`: a new :class:`PriceBand <pyticketswitch.price_band.PriceBand>` object populated with the data from the api. """ price_bands = [] api_price_bands = data.get('price_band', []) for single_band in api_price_bands: price_bands.append(PriceBand.from_api_data(single_band)) kwargs = { 'code': data.get('ticket_type_code', None), 'description': data.get('ticket_type_desc', None), 'price_bands': price_bands, } return cls(**kwargs)
[docs] def get_seats(self): """Get seats in the ticket type. Returns: list: list of :class:`Seats <pyticketswitch.seat.Seat>` objects. """ if not self.price_bands: return [] return [ seat for price_band in self.price_bands for seat in price_band.get_seats() ]
def __repr__(self): return u'<TicketType {}: {}>'.format( self.code, self.description.encode('ascii', 'ignore'))