示例#1
0
 def post(self, *args):
     doctor = Doctor()
     user = User()
     order = Order()
     self.set_header("Content-Type", "application/json")
     if args[0] == 'addorderpeople':
         self.write(
             user.update_order_people_info(
                 self.current_user, self.get_argument('name'),
                 self.get_argument('id_card'),
                 self.get_argument('telephone'),
                 self.get_argument('hospital_card')))
     elif args[0] == 'getordersize':
         self.write(
             doctor.get_ordersize_by_date(self.get_argument("date"),
                                          self.get_argument("doctor_id")))
     elif args[0] == 'createorder':
         order_info = {
             'user_id': self.current_user,
             'doctor_id': self.get_argument('doctor_id'),
             'community': self.get_argument('community'),
             'doctor': self.get_argument('doctor'),
             'hospital_card': self.get_argument('hospital_card'),
             'id_card': self.get_argument('id_card'),
             'name': self.get_argument('name'),
             'telephone': self.get_argument('telephone'),
             'time': self.get_argument('time')
         }
         self.write(order.create_order(order_info))
示例#2
0
 def get(self, *args):
     doctor = Doctor()
     user = User()
     order = Order()
     if args[0] == '':
         self.render('doctor/index.html')
     elif args[0] == 'neworder':
         self.render('doctor/choose-doctor.html',
                     doctor_info=doctor.get_all_doctors())
     elif args[0] == 'choosetime':
         self.render('doctor/choose-time.html')
     elif args[0] == 'createorder':
         self.render('doctor/create-order.html',
                     doctor_info=doctor.get_doctor_by_id(
                         self.get_argument("doctor_id")),
                     order_people_info=user.get_order_people_info(
                         self.current_user))
     elif args[0] == 'addorderpeople':
         self.render('doctor/add-order-people.html')
     elif args[0] == 'listorder':
         self.render('doctor/list-order.html',
                     order_info=order.get_all_order_by_user(
                         self.current_user))
     elif args[0] == 'orderdetail':
         self.render('doctor/order-detail.html',
                     order_info=order.get_order_by_id(
                         self.get_argument('order_id')))
     else:
         self.write('<h1>功能正在开发,请耐心等待</h1>')
示例#3
0
 def getInitActiveOrders(self,market=None):
     ackMsg = self.trading_client.get_openorders(market)
     if type(ackMsg) == dict and ackMsg['success'] == True:
         if not len(ackMsg['result']):
             return ackMsg
         else:
             tmpActiveOrderList = []
             ackResult = ackMsg['result']
             for i in range(len(ackResult)):
                 obj         = ackResult[i]
                 odid        = str(obj['OrderUuid'])
                 symbol      = str(obj['Exchange']).upper().split("-")
                 sym_        = symbol[:3]
                 _sym        = symbol[3:]
                 orderType   = str(obj['OrderType']).upper().split("_")[0]
                 price       = float(obj['Price'])
                 side        = str(obj['OrderType']).upper().split("_")[1]
                 qty         = float(obj['QuantityRemaining'])
                 o = Order(self.exchCode, sym_, _sym, orderType, price, side, qty)
                 o.odid = odid
                 o.status = 'ACTIVE'
                 o.activeTs = nowStr()
                 tmpActiveOrderList.append(o)
             return tmpActiveOrderList
     else:
         intAckMsg = self.handleUnknownMsg(ackMsg['message'])
         '''log.error('Unexpected ackMsg::getInitActiveOrders %s %s' % (self.exchCode, intAckMsg))'''
         return intAckMsg
示例#4
0
    def getInitActiveOrders(self):
        ackMsg = self.trading_client.get_openorders()
        if type(ackMsg) == dict:
            if len(ackMsg['result']) == 0:
                return ackMsg
            else:
                tmpActiveOrderList = []

                for i in range(len(ackMsg['result'])):
                    obj = ackMsg['result'][i]
                    odid = str(obj['orderId'])
                    symbol = str(obj['instrument'])
                    sym_ = symbol.split('-')[0]
                    _sym = symbol.split('-')[1]
                    orderType = str(obj['type'])
                    price = float(obj['price'])
                    side = str(obj['direction'])
                    qty = float(obj['quantity'])
                    o = Order(self.exchCode, sym_, _sym, orderType, price,
                              side, qty)
                    o.odid = odid
                    o.status = 'ACTIVE'
                    o.activeTs = nowStr()
                    tmpActiveOrderList.append(o)
                return tmpActiveOrderList
        else:
            intAckMsg = self.handleUnknownMsg(ackMsg['message'])
            return intAckMsg
示例#5
0
    def customer_loop(self, id, containers_list, orders):
        print("Hello in Klient App")

        select_char = "s"
        while select_char != "q":
            select_char = input("Select action:\n"
                                "\t1. Show available offer\n"
                                "\t2. Submit your order\n"
                                "\t3. My orders\n"
                                "\t4. Exit\n").upper()

            if select_char not in "1234" or len(select_char) != 1:
                print("No such action")
                continue

            if select_char == '1':
                for i in range(len(containers_list)):
                    containers_list[i].print_info(i)

            elif select_char == '2':
                order = Order()
                for i in range(len(containers_list)):
                    containers_list[i].print_info(i)

                container_id = int(input("Enter the container id: "))
                order.set_order(id, containers_list[container_id], False)
                orders.append(order)

            elif select_char == '3':
                for i in range(len(orders)):
                    if orders[i].id == id:
                        orders[i].print_order(i)

            elif select_char == "4":
                return
示例#6
0
 def VerifyCustomer(self,Command:VerifyCustomerCommand):
     NewOrder = Order()
     Saga = SagaParticipant()
     Events = NewOrder.proccessForVerifyCustomerCommand(Command)
     Saga.Create(Command.OrderId,Events[1].EventJsonData(),Command.SagaType)        
     NewOrder.applyForVerifyCustomerEvent(Events[0])
     CustomerRepository().Create((NewOrder,Saga),Events,MessageId=Command.MessageId) #Insert the event to the database
示例#7
0
    def change(self):
        i = 0
        if (User[CurrentUser[1]].getType() == 0):
            void.setAddress(self.Page2_Address.text())

        self.stackedWidget.setCurrentIndex(2)
        randFood = random.randint(0, len(Menu) - 1)
        temp = CurrentCart.copy()
        if (User[CurrentUser[1]].getType() == 0):
            addPendingOrder(Order(void, temp))

        elif (User[CurrentUser[1]].getType() != 0):
            if (User[CurrentUser[1]].getType() == 2):

                randomFood = Food(Menu[randFood].getName() + " *Free*", 0,
                                  Menu[randFood].getCate(),
                                  Menu[randFood].getSpice())
                User[CurrentUser[1]].addUserOrder(randomFood)
                addCurrentCart(randomFood)
                self.Page3_label4.show()

            addPendingOrder(Order(User[CurrentUser[1]], temp))
        while i < len(User[CurrentUser[1]].order):
            self.Page3_listView.addItem(
                User[CurrentUser[1]].order[i].getName() + "\t\t\t" +
                format(User[CurrentUser[1]].order[i].getPrice(), '.2f'))
            i += 1

        User[CurrentUser[1]].order.clear()
        print(currentCartSize())
示例#8
0
文件: Backtest.py 项目: rushic/RC
def manage_fx_hedge(portfolio, bar, order):
    if Cp.hedge_fx is True and get_ccy(order.ticker) == 'USD':

        # Case 1: New equity position opened, hedge the USD consideration
        if portfolio.fx_position[order.ticker] == 0.0:
            usd_amount_to_hedge = -1.0 * order.price * order.quantity
            portfolio.fx_position[order.ticker] = usd_amount_to_hedge

            fx_order = Order(open_date=bar['DealDate'],
                             ticker='USD-GBP',
                             quantity=usd_amount_to_hedge,
                             price=order.fx,
                             order_type='MKT',
                             ccy='GBP',
                             fx=1.0,
                             trade_status='OPEN')

        # Case 2: Equity position being closed
        else:
            usd_amount_to_hedge = -1.0 * portfolio.fx_position[order.ticker]
            portfolio.fx_position[order.ticker] = 0.0

            fx_order = Order(open_date=bar['DealDate'],
                             ticker='USD-GBP',
                             quantity=usd_amount_to_hedge,
                             price=order.fx,
                             order_type='MKT',
                             ccy='GBP',
                             fx=1.0,
                             trade_status='CLOSE')

        fx_order.trade_id = '{}_{}'.format(order.trade_id, order.ticker)
        portfolio.orders.append(fx_order)
class DialogFrameSimple:
    def __init__(self):
        self.FrameName = "DialogFrameSimple"
        self.customer_preferred_order = {}
        self.cur_order = Order()
        self.ongoing_order = {}

    def ifPhoneHasArchived(self):
        return self.cur_order.phone in self.customer_preferred_order

    def ifCurOrderStarted(self):
        return self.cur_order.ifOrderStarted()

    def curUnfilledItem(self):
        return self.cur_order.NotFilledAttribute()

    def ifCurOrderOnlyPhone(self):
        return self.cur_order.ifOnlyPhone()

    def addCurOrderToArchive(self):
        self.customer_preferred_order[self.cur_order.phone] = self.cur_order
        self.ongoing_order[self.cur_order.phone] = self.cur_order
        self.cur_order = Order()

    def resetCurOrder(self):
        self.cur_order = Order()
示例#10
0
	def __init__(self, sequence, id, slot, subtype, turns, resources, *args, **kw):
		Order.__init__(self, sequence, id, slot, subtype, turns, resources)

		assert subtype == self.subtype, "Type %s does not match this class %s" % (subtype, self.__class__)

		# Figure out if we are in single or multiple mode
		# Short mode:     NOp(*args, (0, 1))
		# Multiple Mode:  NOp(*args, 0, 1)
		short = (len(args) == len(self.names))

		for name, type in self.names:
			struct, size = ARG_STRUCTMAP[type]

			if short:
				size = 1

			if size == 1:
				setattr(self, name, args[0])
			else:
				if len(args) < size:
					raise ValueError("Incorrect number of arguments, the arguments required for %s (of type %s) are %s" % (name, type, struct))
				setattr(self, name, args[:size])

			args = args[size:]
	
		# FIXME: Need to figure out the length a better way
		self.length = len(self.__str__()) - Header.size
示例#11
0
文件: Backtest.py 项目: rushic/RC
def exit_position(portfolio, bar, ticker):
    """Creates new MKT orders to flatten current position for a ticker and cancels any associated STP orders"""
    qty = -portfolio.position[ticker]
    deal_date = bar['DealDate']
    deal_price = bar['EntryPrice_' + ticker]

    if qty != 0:
        ccy = get_ccy(ticker)
        fx = get_fx(bar, ticker)

        # Add a Market Order to close current position
        market_order = Order(open_date=deal_date,
                             ticker=ticker,
                             quantity=qty,
                             order_type='MKT',
                             price=deal_price,
                             ccy=ccy,
                             fx=fx)
        market_order.trade_id = portfolio.trade_id[ticker]
        market_order.trade_status = 'CLOSE'
        portfolio.orders.append(market_order)

        # Cancel any OPEN STP orders for the ticker
        for stop_order in portfolio.orders:
            if stop_order.ticker == ticker and stop_order.status == 'OPEN' and stop_order.order_type == 'STP':
                stop_order.cancel_order(deal_date)

        # Remove FX Hedge
        manage_fx_hedge(portfolio, bar, market_order)
示例#12
0
 def from_dict(self, flower_shop_dict):
     self.logged_user = None
     self.name = ""
     if 'name' in flower_shop_dict:
         self.name = flower_shop_dict['name']
     self.flowers = []
     if 'flowers' in flower_shop_dict:
         for flower_dict in flower_shop_dict['flowers']:
             flower = Flower()
             flower.from_dict(flower_dict)
             self.flowers.append(flower)
     self.bouquets = []
     if 'bouquets' in flower_shop_dict:
         for bouquet_dict in flower_shop_dict['bouquets']:
             bouquet = Bouquet()
             bouquet.from_dict(bouquet_dict, self.flowers)
             self.bouquets.append(bouquet)
     self.users = []
     if 'users' in flower_shop_dict:
         for user_dict in flower_shop_dict['users']:
             user = User()
             user.from_dict(user_dict)
             self.users.append(user)
     self.orders = []
     if 'orders' in flower_shop_dict:
         for order_dict in flower_shop_dict['orders']:
             order = Order()
             order.from_dict(order_dict, self.bouquets)
             self.orders.append(order)
     self.orders_id_counter = len(self.orders)
     self.users_id_counter = len(self.users)
     self.flowers_id_counter = len(self.flowers)
     self.bouquets_id_counter = len(self.bouquets)
示例#13
0
def utest_CheckOrders():
    print '-- CheckOrders function --',
    o1, o2  = [Order(BID,  999, 123.45,  100, 100) for _ in range(2)]
    checkOrders(o1, o2)
    o1, o2  = [Order(ASK, 9191,  32.54, 1000, 100) for _ in range(2)] # icebergs
    checkOrders(o1, o2)
    print 'OK'
示例#14
0
 def post(self, *args):
     doctor = Doctor()
     user = User()
     order = Order()
     self.set_header("Content-Type", "application/json")
     if args[0] == 'addorderpeople':
         self.write(user.update_order_people_info(
             self.current_user,
             self.get_argument('name'),
             self.get_argument('id_card'),
             self.get_argument('telephone'),
             self.get_argument('hospital_card')
         ))
     elif args[0] == 'getordersize':
         self.write(doctor.get_ordersize_by_date(self.get_argument("date"), self.get_argument("doctor_id")))
     elif args[0] == 'createorder':
         order_info = {
             'user_id': self.current_user,
             'doctor_id': self.get_argument('doctor_id'),
             'community': self.get_argument('community'),
             'doctor': self.get_argument('doctor'),
             'hospital_card': self.get_argument('hospital_card'),
             'id_card': self.get_argument('id_card'),
             'name': self.get_argument('name'),
             'telephone': self.get_argument('telephone'),
             'time': self.get_argument('time')
         }
         self.write(order.create_order(order_info))
示例#15
0
 def run(self):
     global stop
     while not stop:
         time.sleep(5)
         command = input("commande : ").split()
         if len(command) > 0:
             if command[0] == "order":
                 start = float(time.time()) + float(command[2])
                 end = start + float(command[3])
                 order = Order(float(command[1]), start, end, time.time())
                 lock.acquire(1)
                 Agent.send({"order": Agregate(AgType.COM, order)})
                 lock.release()
             if command[0] == "go":
                 for i in range(60):
                     print("top ", i)
                     start = float(time.time()) + float(command[2])
                     end = start + float(command[3])
                     order = Order(float(command[1]), start, end,
                                   time.time())
                     lock.acquire(1)
                     Agent.send({"ORDER": Agregate(AgType.COM, order)})
                     lock.release()
                     time.sleep(float(command[2]) + float(command[3]) + 3)
                 stop = True
             if command[0] == "stop":
                 stop = True
示例#16
0
    def getNewOrdersForGivenTime(self, t):
        newOrders = []
        np.random.seed(t)
        if t > 22 * 60:
            return newOrders
        if np.random.rand() < 0.3:
            n = np.random.randint(1, 3)
            np.random.shuffle(self.v)
            for j in xrange(n):
                order = Order(self.orderId)
                order.finalLocation = np.random.choice(self.vShuffled[40:])

                l = [e for e in self.map]
                np.random.shuffle(l)

                for j in l[0:np.random.randint(2, 4)]:
                    order.productionProcess.append({
                        "processinLine":
                        j,
                        "resourceNeeded":
                        np.random.choice(self.map[j]),
                        "processingTime":
                        np.random.randint(5, 10),
                        "materialNeeded[tons]":
                        np.random.randint(2, 10),
                    })

                self.orderId += 1
                newOrders.append(order)
        return newOrders
示例#17
0
    def getInitActiveOrders(self):
        ackMsg = self.trading_client.get_openorders()
        if type(ackMsg) == list:
            if not len(ackMsg):
                return ackMsg
            else:
                tmpActiveOrderList = []

                for i in range(len(ackMsg)):
                    obj = ackMsg[i]
                    odid = str(obj['order_id'])
                    symbol = str(obj['symbol'])
                    sym_ = symbol[0]
                    _sym = symbol[1]
                    orderType = str(obj['type'])
                    price = float(obj['price'])
                    side = str(obj['side'])
                    qty = float(obj['executed_amount'])
                    o = Order(self.exchCode, sym_, _sym, orderType, price,
                              side, qty)
                    o.odid = odid
                    o.status = 'ACTIVE'
                    o.activeTs = nowStr()
                    tmpActiveOrderList.append(o)
                return tmpActiveOrderList
        else:
            intAckMsg = self.handleUnknownMsg(ackMsg['message'])
            return intAckMsg
示例#18
0
    def MakeOrders(self, currentPortfolio, targetPortfolio):
        orders = []
        for currentAsset in currentPortfolio:
            # if exists in target, buy/sell to get to target
            tgtAssetArray = [
                a for a in targetPortfolio if a._symbol == currentAsset._symbol
            ]
            if len(tgtAssetArray) > 0:
                symbol = tgtAssetArray[0]._symbol
                price = tgtAssetArray[0]._sharePrice
                numShares = tgtAssetArray[
                    0]._numShares - currentAsset._numShares
                if numShares > 0:
                    orders.append(Order("Buy", Asset(symbol, price,
                                                     numShares)))
                elif numShares < 0:
                    orders.append(
                        Order("Sell", Asset(symbol, price, -numShares)))
            else:
                # else, sell all
                orders.append(Order("Sell", currentAsset))

        for targetAsset in targetPortfolio:
            # if not exists in current, buy all
            if not any([
                    a for a in currentPortfolio
                    if a._symbol == targetAsset._symbol
            ]):
                orders.append(Order("Buy", targetAsset))

        return orders
示例#19
0
 def test_add_item(self):
     order = Order(1)
     pizza = Pizza("vegetarian_pizza", 0, "small")
     order.add_item(pizza)
     assert pizza.id == 1
     assert 1 in order.ids_to_items
     assert order.ids_to_items[1] == pizza
     assert len(order.items) == 1
示例#20
0
 def CreateOrder(self, Command: CreateOrderCommand):
     NewOrder = Order()
     OrderId = randint(0, 1000)
     Command.OrderId = str(OrderId)
     Events = NewOrder.processForOrderCreationCommand(Command)
     NewOrder.applyForOrderCreationEvent(Events[0])
     OrderRepository().Create((NewOrder, ), Events)
     return f'Your order have been placed to our system'
示例#21
0
 def arr_checker(self, arr):
     """
     检查arr是否可折
     :param arr:
     :return:
     """
     odd, even = self.get_need_seg(arr)
     return Order.judge_list(odd) and Order.judge_list(even)
示例#22
0
 def __init__(self, config):
     if not config:
         self.bail(-1, "no config: Trader init")
     self.config = config
     self.debug = config["debug"]
     #super(Trader, self).__init__(config)
     self.order = Order(config)
     self.predictor = PredictProMerge(config)
     self.ts = StockTs(config)
示例#23
0
    def addOrderToCart(self, options):

        orderObject = Order(self.authorizationToken)
        orderObject.addItemToOrder(self.restaurantID, self.currentItem.itemID,
                                   options, self.currentItem.quantity,
                                   self.currentItem.special_instructions,
                                   self.currentItem.substitution_preference)
        data = orderObject.currentCart()
        self.showTheCurrentCart(data)
示例#24
0
def orderFood():
    orderID = 0
    print("Enter Customer Name: ")
    name = input()
    print("Enter Customer Mobile no: ")
    mobile = input()
    customer = Customer(orderID, name, mobile)
    orderID = orderID + 1
    menus = getRestaurentMenu(customer)
    foodId = -1
    quantity = -1
    order1 = Order(1, datetime.now(), customer)

    print("Welcome", name, "\n")

    print("Please select your food...\n")

    print("--------Menu--------\n")

    for menu in menus:

        print("ID--Name--Price")
        print(menu.mid, menu.name, menu.price)
    orderFlag = -1
    while (orderFlag != 0):
        print("Enter 1 to order food, enter 0 to close the Menu")
        orderFlag = input()
        if (int(orderFlag) == 0):
            break
        if (int(orderFlag) == 1):
            print("Please enter food Id")
            foodId = input()
            print("Please enter quantity")
            quantity = input()
            #menus[foodId]
            #print(menus[int(foodId)])
            orderedMenu = menus[int(foodId)]
            orderedMenu.quantity = quantity
            order1.addMenu(orderedMenu)

    print("******Invoice*******")
    print("Order ID:{}, Date: {} Customer Name: {}, Mobile:{}".format(
        order1.oid, order1.date.strftime("%c"), order1.Customer.name,
        order1.Customer.mobile))
    totalBill = 0.0
    serial = 1
    print("SL---Food----Price---Qy----total")
    for order in order1.menus:
        print(serial, order.name, order.price, order.quantity,
              (float(order.price) * float(order.quantity)))
        totalBill = float(totalBill) + (float(order.price) *
                                        float(order.quantity))
        serial = serial + 1
    print("Grand Total :", totalBill)
    print("******Invoice*******")
示例#25
0
class clearAndSaveTest (unittest.TestCase):
    
    def setUp(self):
        '''
        Setup the test case by loading the contant of the files to process the
        attended result.
        '''
        self.__log = Log()
        self.__originalFile1 = Order(self.__log)
        self.__originalFile2 = Order(self.__log)
        self.__originalFile1.loadOrder(os.path.join(TEST_FILE_ROOT, 'OrderTestFile4.xls'))
        self.__originalFile2.loadOrder(os.path.join(TEST_FILE_ROOT, 'OrderTestFile5.xls'))
        self.__attendedResult2 = []
        for prodOrder in self.__originalFile1.getOrderList():
            self.__originalFile2.append(prodOrder)
        self.__originalFile2.popLeft()
        for prodOrder in self.__originalFile2.getOrderList():
            self.__attendedResult2.append(prodOrder)
            
    def tearDown(self):
        '''
        Deleted the new files.
        '''
        os.remove(os.path.join(TEST_FILE_ROOT, 'OrderTestFile6.xls'))
        os.remove(os.path.join(TEST_FILE_ROOT, 'OrderTestFile7.xls'))
        
    def testClearAndSave(self):
        '''
        Order must be able to clear and save (removing old order) itself.
        '''
        order1 = Order(self.__log)
        order2 = Order(self.__log)
        order1.loadOrder(os.path.join(TEST_FILE_ROOT, 'OrderTestFile4.xls'))
        order2.loadOrder(os.path.join(TEST_FILE_ROOT, 'OrderTestFile5.xls'))
        for i in range(len(order1)):
            order2.append(order1.popLeft())
        i = i
        order1.clear()
        order1.save(os.path.join(TEST_FILE_ROOT, 'OrderTestFile6.xls'))
        order2.save(os.path.join(TEST_FILE_ROOT, 'OrderTestFile7.xls'))
        resultOrder1 = Order(self.__log)
        resultOrder2 = Order(self.__log)
        try:
            resultOrder1.loadOrder(os.path.join(TEST_FILE_ROOT, 'OrderTestFile6.xls'))
        except:
            pass
        resultOrder2.loadOrder(os.path.join(TEST_FILE_ROOT, 'OrderTestFile7.xls'))
        result1 = []
        result2 = []
        for prodOrder in resultOrder1.getOrderList():
            result1.append(prodOrder)
        for prodOrder in resultOrder2.getOrderList():
            result2.append(prodOrder)
        self.assertListEqual(result1, [], 'Order failed to clear itself.')
        self.assertListEqual(result2, self.__attendedResult2, 'Order failed to save itself.')
示例#26
0
 def _prepare_for_random(self, stack_space: list, insert_no: set,
                         result: list):
     """
     递归函数,目的是为了寻找一条合适的路径就停下来,如果递归结束都没有找到,那就输出不存在
     注意:现在还没有考虑递归深度的问题
     stack_space:
     [(now_address),(able_index)]
     [(1,2,0,0),(2,3)]
     [(1,0,2,0),(1,3)]
     """
     # 栈中没东西,说明本层没有合适路径,需要退回上一层寻找,直接return
     if not stack_space:
         return
     else:
         # 最后一个数字查好了以后,栈中只可能有一个元素
         # 如果没有数字可以插,表示需要判断这个元素是不是满足要求
         if not insert_no:
             # 把该元素弹出来,去判断是不是符合要求
             temp_item = stack_space.pop()
             temp_address = list(temp_item[0])
             temp_routine = []
             # 如果满足了要求,修改标志位,修改result(result必须是可变的),return
             if self._find_one_routine(Order(temp_address), temp_routine):
                 result.append((temp_routine, Order(temp_address)))
                 # 修改标志位
                 self._random_flag = True
                 return
         # 如果还有能插的位置,则对该栈中的元素洗牌后,依次弹出,弹的每一个去计算新表,然后递归调用
         else:
             # 这里其实也可以对插入数字的队列进行洗牌,显得更加的随机
             curr_insert_no = insert_no.pop()
             random.shuffle(stack_space)
             while stack_space and (not self._random_flag):
                 # 弹出一个,进行操作
                 temp_item = stack_space.pop()
                 temp_address = temp_item[0].copy()
                 temp_index = deque(temp_item[1].copy())
                 # 下面进行插入操作,可行结果放到新的stack中,进行后续递归
                 new_stack_space = []
                 # 循环进行几次,取决有有多少个空位
                 loop_times = len(temp_index)
                 for i in range(loop_times):
                     curr_index = temp_index.popleft()
                     temp_address[curr_index] = curr_insert_no
                     if self.arr_checker(temp_address):
                         # 将新的一个下一折的地址和对应空位的信息打包放入新栈
                         new_stack_space.append(
                             ((temp_address.copy()), temp_index.copy()))
                     # 还原操作
                     temp_address[curr_index] = 0
                     temp_index.append(curr_index)
                 # 某一个排列对应的next的新表做好了以后,直接递归调用求下一次的
                 self._prepare_for_random(new_stack_space, insert_no.copy(),
                                          result)
示例#27
0
class CtrlHeuristic:
    def __init__(self):
        self.h = Heuristic()
        self.t = Text()
        self.o = Order()

    def execute(self, textL):
        arrayResult = {
            Constant.HERUGLON_NAMES[Constant.HERUGLON_PREPOSITION]: 0,
            Constant.HERUGLON_NAMES[Constant.HERUGLON_VERB]: 0,
            Constant.HERUGLON_NAMES[Constant.HERUGLON_VERB_SUBJUNCTIVE]: 0,
            Constant.HERUGLON_NAMES[Constant.HERUGLON_NUMBER_PRETTY]: 0,
            "Vocabulary": None
        }

        listPrettyNumber = {}
        arrayPharagrap = self.t.getWords(textL)
        vocabulary = {}

        for word in arrayPharagrap:
            class_word = self.h.classify(word)
            class_word_type = class_word['type']

            if (class_word_type == Constant.HERUGLON_UNKNOWN):
                pass

            vocabulary[word] = word

            if (class_word_type == Constant.HERUGLON_NUMBER):
                pass

            if (class_word_type == Constant.HERUGLON_NUMBER_PRETTY):
                listPrettyNumber[word] = word
            elif (class_word_type == Constant.HERUGLON_VERB):
                arrayResult[Constant.HERUGLON_NAMES[
                    Constant.HERUGLON_VERB]] += 1
            elif (class_word_type == Constant.HERUGLON_VERB_SUBJUNCTIVE):
                arrayResult[Constant.HERUGLON_NAMES[
                    Constant.HERUGLON_VERB]] += 1
                arrayResult[Constant.HERUGLON_NAMES[
                    Constant.HERUGLON_VERB_SUBJUNCTIVE]] += 1
            elif (class_word_type == Constant.HERUGLON_PREPOSITION):
                arrayResult[Constant.HERUGLON_NAMES[
                    Constant.HERUGLON_PREPOSITION]] += 1

        arrayResult[Constant.HERUGLON_NAMES[
            Constant.HERUGLON_NUMBER_PRETTY]] = len(listPrettyNumber)

        listWords = self.o.prepare(vocabulary.keys())
        listOrderVocabulary = self.o.do(listWords)
        arrayResult['Vocabulary'] = listOrderVocabulary

        return arrayResult
示例#28
0
 def placeBuyOrder(self, quantity, unitPrice):
     order = Order(quantity, unitPrice, "buy", self.orderCount)
     if (self.availableBalance >= order.getTotal()):
         self.orderCount += 1
         self.orderBook.append(order)
         self.availableBalance -= order.getTotal()
         self.lockedBalance += order.getTotal()
         self.recalculateTotalBalance()
         print(order)
         return order
     else:
         raise Exception("Not enough balance to place buy order")
示例#29
0
	def __init__(self, sequence, id, slot, subtype, turns, resources, *args, **kw):
		Order.__init__(self, sequence, id, slot, subtype, turns, resources)

		assert subtype == self.subtype, "Type %s does not match this class %s" % (subtype, self.__class__)

		if len(self.properties) != len(args):
			raise TypeError("The args where not correct, they should be of length %s" % len(self.properties))

		for property, arg in zip(self.properties, args):
			print property, arg, self.__class__.__dict__[property.name]
			self.length += property.length(arg)
			setattr(self, property.name, arg)
示例#30
0
 def testOrderLoading(self):
     '''
     Order must be able to load its ProductOrders from an excel file, get its
     length and pop right its whole ProductOrder list.
     '''
     log = Log()
     order = Order(log)
     order.loadOrder(os.path.join(TEST_FILE_ROOT, 'OrderTestFile1.xls'))
     result = []
     for i in range(len(order)):
         result.append(order.popRight())
     i = i
     self.assertListEqual(result, self.ATTENDED_RESULTS, 'Order failed to load its ProductOrder list from an excel file, get its length and popRight its whole ProductOrder list')
示例#31
0
def generateSampleOrder():
    from Order import Order
    order = Order()
    order.setLab(generateSampleLab())
    order.setTestList(kgenerateTestList())
    order.setPrescDetail(kgeneratePrescriptionDetail())
    return order
示例#32
0
def test_order():
    """
    This is a perfect case!
    A new order initialOrder is created an then used to create updatedOrder in perfect use case. No errors.
    Asserts to check updating is happening correctly.
    """
    initialOrder = Order(1568390243, 'abbb11', 'AAPL', 'B', 209.00000, 100)
    updatedOrder = Order(1568390247,
                         'abbb11',
                         quantity=101,
                         orgOrder=initialOrder)
    assert updatedOrder.ticker == 'AAPL'
    assert updatedOrder.quantity == 101
    assert updatedOrder.side == 'B'
示例#33
0
    def getOrder(self, oid):

        ##Construct Empty Order
        querystep = "SELECT * from orderlist WHERE orderid = " + str(oid)

        self.cursor.execute(querystep)

        response = self.cursor.fetchall()

        r = response[0]

        if (len(response) == 0):
            print("No orders by that ID.")
            return

        orderout = Order(r[1], r[0])

        if (r[2] == 0):
            orderout.setActive(False)

        if (r[3] == 1):
            orderout.setWorking(True)

        ##Construct Item Set
        querystep = "SELECT * from itemslist WHERE OwnerOrder = " + str(oid)

        self.cursor.execute(querystep)

        response = self.cursor.fetchall()

        for r in response:
            ri = Item(r[1], r[3], r[2], r[4])
            orderout.addItem(ri)

        return orderout
示例#34
0
def utest_Order():    
    print '-- Order --',
    o  = Order(    BID,         999, 123.45,  100, 100)
    checkOrder(o,  True, False, 999, 123.45,  100, 100)

    o1 = Order(    BID,        9191,  32.54, 1000, 100) # iceberg
    checkOrder(o1, True, True, 9191,  32.54, 1000, 100)

    o2 = Order(    ASK,          999, 123.45,  100, 100)
    checkOrder(o2, False, False, 999, 123.45,  100, 100)

    o3 = Order(    ASK,         9191, 324,    1000, 100) # iceberg
    checkOrder(o3, False, True, 9191, 324,    1000, 100)
    
    print 'OK'
示例#35
0
    def get_depth(self, base, alt):
        order_book = {'bids': [], 'asks': []}
        pair, swapped = self.get_validated_pair((base, alt))
        if pair is None:
            return

        pairstr = pair[0].lower() + "_" + pair[1].lower()
        if swapped:
            bids, asks = btceapi.getDepth(pairstr)
        else:
            asks, bids = btceapi.getDepth(pairstr)

        order_book['bids'] = [Order(float(b[0]), float(b[1])) for b in bids]
        order_book['asks'] = [Order(float(a[0]), float(a[1])) for a in asks]
        return order_book
示例#36
0
 def setUp(self):
     '''
     Setup the test case by loading the contant of the files to process the
     attended result.
     '''
     self.__log = Log()
     self.__originalFile1 = Order(self.__log)
     self.__originalFile2 = Order(self.__log)
     self.__originalFile1.loadOrder(os.path.join(TEST_FILE_ROOT, 'OrderTestFile4.xls'))
     self.__originalFile2.loadOrder(os.path.join(TEST_FILE_ROOT, 'OrderTestFile5.xls'))
     self.__attendedResult2 = []
     for prodOrder in self.__originalFile1.getOrderList():
         self.__originalFile2.append(prodOrder)
     self.__originalFile2.popLeft()
     for prodOrder in self.__originalFile2.getOrderList():
         self.__attendedResult2.append(prodOrder)
示例#37
0
	def __str__(self):
		output = [Order.__str__(self)]
		for property in self.properties:
			arg = list(getattr(self, property.name))
			output.append(property.pack(arg))
			
		return "".join(output)
	def orders(self):
		"""\
		orders()

		Returns the number of orders this object has.
		"""
		return Order.number(self.id)
示例#39
0
	def __str__(self):
		args = []
		for name, type in self.names:
			struct, size = ARG_STRUCTMAP[type]
			
			attr = getattr(self, name)
			if size == 1:
				args.append(attr)
			else:
				args += list(attr)

		output = Order.__str__(self)
		try:
			output += pack(self.substruct, *args)
			return output
		except TypeError, e:
			s = str(e)

			causedby = '%s %s' % self.names[int(s[:s.find(' ')])]
			being    = getattr(self, name)

			traceback = sys.exc_info()[2]
			while not traceback.tb_next is None:
				traceback = traceback.tb_next

			raise TypeError, '%s was %s\n%s' % (causedby, being, e), traceback
示例#40
0
 def testFilterLogging(self):
     '''
     Order must log the ProductOrder that was filtered and the reson why thy were
     filtered.
     '''
     log =Log()
     order1 = Order(log)
     order2 = Order(log)
     order1.loadOrder(os.path.join(TEST_FILE_ROOT, 'OrderTestFile2.xls'))
     order2.loadOrder(os.path.join(TEST_FILE_ROOT, 'OrderTestFile3.xls'))
     order1.filter(order2)
     self.assertListEqual(log.getMsgList(), self.ATTENDED_LOG, 'Order failed to log the filtered ProductOrder.')
class Client:
	def __init__(self, client_id):
		self.client_id = client_id
	
	#Create one order.
	def createOrder(self, order_num):
		self.order = Order(self.client_id, order_num)
		self.order.addOrderItem()
	
	def getOrder(self):
		return self.order
	
	def cacelOrder(self):
		del self.order
		
	def submitOrder(self):
		occ = OrderControlCenter()
		print "This order has been sent to order control center!"
		occ.patchOrder(self.order)
    def __init__(self, spark = 42, d = -1, k = -1, p = -1, c = -1, o = -1, f = -1):
        self.d = d
        self.k = k
        self.p = p
        self.c = c
        self.o = o
        self.f = f
        
        Order.__init__(self, d = self.d, k = self.k, p = self.p, c = self.c, o = self.o)
        self.families = ['Hominidae']
        self.family = self.families[self.f]
        def familyRandomize(self):
            self.f = random.randint(0, 34)
            self.family = self.families[self.f]
            pass
        if (self.f < 0):
            familyRandomize(self)

        if __name__== '__main__':
            #print "The Answer to Life, the Universe and Everything is: ", self.TheAnswerToLifeTheUniverseAndEverything 
            pass
示例#43
0
 def get(self, *args):
     doctor = Doctor()
     user = User()
     order = Order()
     if args[0] == '':
         self.render('doctor/index.html')
     elif args[0] == 'neworder':
         self.render('doctor/choose-doctor.html', doctor_info=doctor.get_all_doctors())
     elif args[0] == 'choosetime':
         self.render('doctor/choose-time.html')
     elif args[0] == 'createorder':
         self.render('doctor/create-order.html',
             doctor_info=doctor.get_doctor_by_id(self.get_argument("doctor_id")),
             order_people_info=user.get_order_people_info(self.current_user))
     elif args[0] == 'addorderpeople':
         self.render('doctor/add-order-people.html')
     elif args[0] == 'listorder':
         self.render('doctor/list-order.html', order_info=order.get_all_order_by_user(self.current_user))
     elif args[0] == 'orderdetail':
         self.render('doctor/order-detail.html', order_info=order.get_order_by_id(self.get_argument('order_id')))
     else:
         self.write('<h1>功能正在开发,请耐心等待</h1>')
示例#44
0
 def testFilterOrder(self):
     '''
     Order must be able to filter and remove the bad ProductOrder and those
     already ordered.
     The filters are:
         - imcomplete or incoherent ProductOrder.
         - Already ordered in the last 20 days ProductOrder, except if employee is the admin.
     '''
     log =Log()
     order1 = Order(log)
     order2 = Order(log)
     order1.loadOrder(os.path.join(TEST_FILE_ROOT, 'OrderTestFile2.xls'))
     order2.loadOrder(os.path.join(TEST_FILE_ROOT, 'OrderTestFile3.xls'))
     order1.filter(order2)
     result = []
     for i in range(len(order1)):
         result.append(order1.popLeft())
     i = i
     self.assertListEqual(result, self.ATTENDED_RESULTS, 'Order failed to filter and remove the bad and already ordered ProductOrder.')
	def __init__(self, *args, **kw):
		self.no = 34
		Order.__init__(self, *args, **kw)
示例#46
0
 def testClearAndSave(self):
     '''
     Order must be able to clear and save (removing old order) itself.
     '''
     order1 = Order(self.__log)
     order2 = Order(self.__log)
     order1.loadOrder(os.path.join(TEST_FILE_ROOT, 'OrderTestFile4.xls'))
     order2.loadOrder(os.path.join(TEST_FILE_ROOT, 'OrderTestFile5.xls'))
     for i in range(len(order1)):
         order2.append(order1.popLeft())
     i = i
     order1.clear()
     order1.save(os.path.join(TEST_FILE_ROOT, 'OrderTestFile6.xls'))
     order2.save(os.path.join(TEST_FILE_ROOT, 'OrderTestFile7.xls'))
     resultOrder1 = Order(self.__log)
     resultOrder2 = Order(self.__log)
     try:
         resultOrder1.loadOrder(os.path.join(TEST_FILE_ROOT, 'OrderTestFile6.xls'))
     except:
         pass
     resultOrder2.loadOrder(os.path.join(TEST_FILE_ROOT, 'OrderTestFile7.xls'))
     result1 = []
     result2 = []
     for prodOrder in resultOrder1.getOrderList():
         result1.append(prodOrder)
     for prodOrder in resultOrder2.getOrderList():
         result2.append(prodOrder)
     self.assertListEqual(result1, [], 'Order failed to clear itself.')
     self.assertListEqual(result2, self.__attendedResult2, 'Order failed to save itself.')
示例#47
0
__author__ = 'Chema'

from Order.Order import *

x = Order()
x.add([10,2])
x.add([5,1])
x.showOrders()
x.remove([10,2])
x.showOrders()
示例#48
0
previousOrderFile = sys.argv[2]
outputPath = '..\\..\\'
audioPath = '..\\'

#notify the closing of libreOffice and kill it
#a = ctypes.windll.user32.MessageBoxA(0, 'LibreOffice fermera dans 60 seconde.',
#                                     '!!!Killing Notification!!!', 0)

#kill LibreOffice
os.system('taskkill /f /im soffice.bin')

#instanciate the log file
log = Log()

#load the data from the input files
dailyOrder = Order(log)
previousOrder = Order(log)
try:
    dailyOrder.loadOrder(dailyOrderFile)
except:
    #if nothing to order, simply log it and exit
    log.logMsg(u'Rien a commander.')
    log.outputLog(outputPath)
    sys.exit(0)
try:
    previousOrder.loadOrder(previousOrderFile)
except:
    pass

#filter the daily order data
dailyOrder.filter(previousOrder)
	def createOrder(self, order_num):
		self.order = Order(self.client_id, order_num)
		self.order.addOrderItem()