def __init__(self, traffic_alpha, debug=False): self.engine = EventEngine() # self.inter_arrival_mu = inter_arrival_mu # all parameters will be in a config file later # self.inter_arrival_sigma = inter_arrival_sigma self.traffic_alpha = traffic_alpha self.am_pm = 'PM' self.section_occupancy = [0, 0, 0] self.section_queueing = [0, 0, 0, 0] self.section_data = np.empty((0, 4)) self.travel_times = [] self.alpha_cdf = [] for a in [0.5, 0.75, 1, 1.25, 1.5]: fname = 'interarrival_times/interarrival-{:.2f}-cdf.dat'.format(a) cdf = np.genfromtxt(fname, delimiter=',') self.alpha_cdf.append(cdf) if debug: logging.basicConfig(level=logging.DEBUG)
class Data(pw.Model): last_price = pw.DecimalField(null=False, default=0.0) timestamp = pw.DateTimeField(null=False) created_at = pw.DateTimeField(default=datetime.datetime.now) class Meta: database = db db_table = 'tick_data' def init(): db.create_tables([ Data, ]) def on_tick(e): print 'On tick' print e.dict_ if __name__ == '__main__': from main import register_all_handlers ee = EventEngine() register_all_handlers(ee) ee.start() time.sleep(1) ee.put(Event('on_tick', id=1))
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') # add formatter to ch ch.setFormatter(formatter) # add ch to logger logger.addHandler(ch) client = pm.MongoClient('localhost', 27017) db = client['data-db'] event_handlers = [{ 'name': 'on_tick', 'func': 'test.on_tick' }] orders = Queue() # order manager main_engine = EventEngine() def register_all_handlers(ee, handlers): if not isinstance(ee, EventEngine): raise Exception('Parameter must be the instance of EventEngine') def parse_func(full_name): p = re.compile(r'^(\S+)\.([\S^.]+)$') m = p.match(full_name) return m.groups() if m else (__name__, full_name) for handler in handlers: event_name = handler.get('name') module, func = parse_func(handler.get('func')) try: