def _try_buy(self, person): trial_counts = 0 while (trial_counts < self.trade_trial_counts): print "Trying to buy {} for: {}".format(person.username, person.display_price) me = Person(api.get_me()) time.sleep(0.500) person = Person(api.get_person(person.id)) if not all(p(person) for p in self.trade_predicates): break if any([p(me) for p in self.halt_predicates]): break if me.balance > person.display_price: try: api.buy(person.id, person.purchase_uuid) except InvalidRequest as ex: trial_counts += 1 continue else: break # Buy successful else: print "Display price {} higher than balance {}".format(person.display_price, me.balance) break trial_count += 1
def from_id(id): data = api.get_person(id) return Person(data)