Example #1
0
def applyToLoadedFiles(dirpath,pattern,funToApply,maximumToLoad = ppApiConfig.LIMIT_NUM_MATCHING_TRANSACTIONS,version_adapter_map = VERSION_ADAPTER_MAP):
    print "maximumToLoad "+  str(maximumToLoad)
    onlyfiles = [ f for f in listdir(dirpath) if isfile(join(dirpath,f)) ]
    onlycsvfiles = [ f for f in onlyfiles if re.search(".csv$",f)]
    for filename in onlycsvfiles:
        transactions = []
        print filename
        if len(transactions) > maximumToLoad:
            print "WEIRD!"
            break
        version = Transaction.parseFormatVersion(filename)
        if not version:
             logger.error('File in wrong format: '+dirpath+filename)
             print 'File in wrong format: '+dirpath+filename
        else:
            # RevAuc data has number 1
            # This would be better with a functional "cond" type operator
            adapter = None
            logger.info('version:'+version)
            print 'version:'+version
            if (version in version_adapter_map):
                v = version_adapter_map[version]
                loader = v[0]
                adapter = v[1]
                transactions.extend(loader(dirpath+"/"+filename,\
                     pattern, adapter,maximumToLoad))

                logger.info('Total Number Transactions Read From File'+filename \
                                +str(len(transactions)))
                funToApply(filename,transactions)
            else:
                logger.error('Unknown version')
                raise Exception('Unknown Format Version')
Example #2
0
def loadDirectory(dirpath,pattern,version_adapter_map = VERSION_ADAPTER_MAP):
    onlyfiles = [ f for f in listdir(dirpath) if isfile(join(dirpath,f)) ]
    transactions = []
    onlycsvfiles = [ f for f in onlyfiles if re.search(".csv$",f)]
    for filename in onlycsvfiles:
        print filename
        if len(transactions) > ppApiConfig.LIMIT_NUM_MATCHING_TRANSACTIONS:
            break
        version = Transaction.parseFormatVersion(filename)
        if not version:
             logger.error('File in wrong format: '+dirpath+filename)
             print 'File in wrong format: '+dirpath+filename
        else:
            # RevAuc data has number 1
            # This would be better with a functional "cond" type operator
            adapter = None
            logger.info('version:'+version)
            if (version in version_adapter_map):
                v = version_adapter_map[version]
                loader = v[0]
                adapter = v[1]
                transactions.extend(loader(dirpath+"/"+filename,\
                     pattern, adapter,ppApiConfig.LIMIT_NUM_MATCHING_TRANSACTIONS))
            else:
                logger.error('Unknown version')
                raise Exception('Unknown Format Version')

    logger.info('Total Number Transactions Read From Directory' \
        +str(len(transactions)))
    return transactions
Example #3
0
  def unloadTransact(self):
    transactList=[]
    while True:
      rowSet=self.fetchone()
      if rowSet is None:
        break
      else:
         rowSet=list(rowSet)

      transact=Transaction(self.auth, self.cache)
      
      for columnName in self.description:
        attributeValue=rowSet.pop(0)
        setattr(transact, columnName[0], attributeValue)
      if hasattr(transact,"category_id") and transact.category_id != '':
        transact.category_id=self.session.getCategoryFromName(transact.category_id).id
      else:
        transact.category_id=None
      if hasattr(transact,"account_id") and transact.account_id != '':
        transact.account_id=self.session.getAccountFromName(transact.account_id).id
      else:
        transact.account_id=None
      if hasattr(transact,"id"):
        transact.onCommit="modify"
      else:
         transact.onCommit="abort"
      
      transactList.append(transact)

    return tuple(transactList)    
Example #4
0
  def createTransact(self, date, amount, transaction_type, account, category, description):
    if category is None:
      category_id=0
    elif type(category) == int:
      category_id=category
    else:
      category_id=self.getCategoryByName(category).id

    if account is None:
      account_id=0
    elif type(account) == int:
      account_id=account
    else:
      account_id=self.getAccountByName(account).id

    transact=Transaction(self.auth, self.cache, {"date":date,"transaction_type":transaction_type,\
    "account_id":account_id,"category_id":category_id,"amount":amount,"description":description})
    transact.onCommit="create"
    return transact
Example #5
0
File: VLC.py Project: lgc800430/PMS
 def pos_cycle(self):
   myPCTracer = self.PCTracer_ptr
   # for VLC input PClist check
   if (myPCTracer.PCpointer >= len(myPCTracer.PClist)):
     return
   ### find the "WAITTING" one in outsdnglist, make a transaction
   for ioutsdnglist in range(self.getCfgByName("outsdng")):
     if(self.outsdnglist[ioutsdnglist].state == Request.isRequestState("WAIT")):
       assert(not self.node_ptr.node_lower_bus == "None"), ("%s node_lower_bus = %s" %(self.node_ptr.node_name, self.node_ptr.node_lower_bus))
       ### mark this req in outsdnglist as OUTSTANDING state ###
       self.outsdnglist[ioutsdnglist].state = Request.isRequestState("OUTSTANDING")
       ### turn req to a new transaction ###
       tmp_transaction = Transaction()
       tmp_transaction.source_node = self.node_ptr
       tmp_transaction.destination_list.append(GlobalVar.topology_ptr.node_dist[self.node_ptr.node_lower_node])
       tmp_transaction.duration_list.append(self.node_ptr)
       tmp_transaction.source_req = self.outsdnglist[ioutsdnglist]
       tmp_transaction.subblockaddr = self.outsdnglist[ioutsdnglist].subblockaddr
       
       self.node_ptr.node_port_dist[self.node_ptr.node_name + "_" + self.node_ptr.node_lower_bus ].port_NB_trans.append(tmp_transaction)
def main():
    block = Block()
    transaction = Transaction()
    block_user = User()
    running = True

    user_id = block_user.sign_in()

    while running:
        if user_id < 11:
            print("You are an admin. Welcome to the admin page")
            break
        else:
            print("Welcome to the main menu")
            print("1) Create a transaction")
            print("2) Check on the blockchain")
            print("3) look at my account")
            print("Enter the number or word associated with what you want to do "
                  "(i.e. transaction, blockchain, or account")
            print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n")
            us_input = input("What would you like to do: ")
            us_input = us_input.lower()

            if us_input == "exit" or us_input == "done":
                running = False
            elif us_input == "1" or us_input == "transaction":
                transaction.candidate_list()
                print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            elif us_input == "2" or us_input == "blockchain":
                block.block_size()
                print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            elif us_input == "3" or us_input == "account":
                block_user.handshake()
                print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            else:
                print("Please enter a valid input")
                print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")

    print("Byebye")
Example #7
0
def applyToLoadedFiles(actualinputfile,dirpath,pattern,funToApply,maximumToLoad = ppApiConfig.LIMIT_NUM_MATCHING_TRANSACTIONS,version_adapter_map = VERSION_ADAPTER_MAP):
    import os
    print "maximumToLoad "+  str(maximumToLoad)
    onlyfiles = [ f for f in listdir(dirpath) if isfile(join(dirpath,f)) ]
    onlycsvfiles = [ f for f in onlyfiles if re.search(".csv$",f)] 
    firsttime = True
    import time
    for filename in onlycsvfiles:
        transactions = []
        print 'Processing filename =', filename
	#This creates a error file for each feeed and not for each part file
	curr_time = time.strftime("%Y-%m-%d-%H-%M-%S")
        errorfile_name = "../error/errorfile-"+filename+'-'+curr_time
	errorfile = open(errorfile_name,"w")
        firsttime = False
        if len(transactions) > maximumToLoad:
            print "WEIRD!"
            break
        version = Transaction.parseFormatVersion(filename)
        if not version:
             logger.error('File in wrong format: '+dirpath+'/'+filename)
             print 'File in wrong format: '+dirpath+'/'+filename
        else:
            # RevAuc data has number 1
            # This would be better with a functional "cond" type operator
            adapter = None
            logger.info('version:'+version)
            print 'version:'+version
            if (version in version_adapter_map):
                v = version_adapter_map[version]
                loader = v[0]
                adapter = v[1]
                transactions.extend(loader(dirpath+"/"+filename,\
                     pattern, adapter,maximumToLoad,errorfile))

                logger.info('Total Number Transactions Read From File'+filename \
                                +str(len(transactions)))
                funToApply(filename,transactions)
                processerrorfile(errorfile_name,dirpath, filename)
            else:
                logger.error('Unknown version')
                raise Exception('Unknown Format Version')
    if not firsttime:
       errorfile.close()
       archiveinputfile(actualinputfile)
if __name__=="__main__":
	for year in range(2012,2011,-1):#2013,1999,-1
		for PEAKDURATION in peakdurations:		
			global PEAKDURATION
			for PEAKINCREMENT in peakincrements:
				global PEAKINCREMENT
				for INSURANCEDURATION in insurancedurations:
					global INSURANCEDURATION
					if year<2015: #or PEAKINCREMENT > 1.2 and PEAKDURATION==18:
						print "Progress... ",year,PEAKDURATION,PEAKINCREMENT,INSURANCEDURATION
						for INSURANCEINCREMENT in insuranceincrements:
							global INSURANCEINCREMENT
							for SPLITFILTER in splitfilter:
								global SPLITFILTER
								for exchange in ["NASDAQ","NYSE","OTCBB","AMEX"]:#"NASDAQ","NYSE","OTCBB","AMEX"	
									T=Transaction()
									T.INSURANCEINCREMENT=INSURANCEINCREMENT
									T.stoplimits=stoplimits
									T.earninglimits=earninglimits
									T.constructTransactionContainer()

									for i in xrange(66,67):#65,91
										allstocks=getListAllStocks(i,exchange)					
										for idx,stock in enumerate(allstocks):
											#print stock[1]
											if stock[1]=="BKESY": #debug condition
												symbol=stock[1]
												dates,highs,lows,prices,volume=getStock(symbol,exchange,year)
												#for a,b,c,d,e in zip(dates,highs,lows,prices,volume):
													#print a,b,c,d,e
												if size(dates)!=0:
Example #9
0
    def execute(self, response, client_connection, args):
        response["type"] = 'create_transaction'
        try:
            source = args['source']
            recipient = args['recipient']
            if ',' in args['amount']:
                args['amount'] = args['amount'].replace(',','.')

            try:
                amount = decimal.Decimal(args['amount'])
            except:
                response["error"] = "Invalid amount, unable to parse"
                return

            signature = args['signature']
            sign_digest = bytes.fromhex(signature)
            source_wallet = self.database.get_wallet_by_id(source)
            recipient_wallet = self.database.get_wallet_by_id(recipient)

            if source_wallet is None:
                # invalid source
                remote_ip = client_connection.get_remote_ip()
                response["error"] = "Source and/or recipient wallet invalid"
                print("Invalid transaction (invalid source) tentative from ({0})".format(remote_ip))
                return

            signer = PKCS1_v1_5.new(RSA.importKey(source_wallet.key))
            # checking the signature
            message = "{0},{1},{2:.5f}".format(source, recipient, amount)
            hasher = SHA256.new()
            hasher.update(message.encode('ascii'))

            if not signer.verify(hasher, sign_digest):
                print("Invalid signature from {0}".format(source))
                response["error"] = "Invalid signature"
                return

            if recipient_wallet is None or source_wallet is None:
                # invalid recipient
                remote_ip = client_connection.get_remote_ip()
                response["error"] = "Source and/or recipient wallet invalid"
                print("Invalid transaction (invalid recipient) tentative from ({0})".format(remote_ip))
                return

            # amount is in balance or amount too low
            if source_wallet.balance < amount or amount < self.min_transaction_amount:
                remote_ip = client_connection.get_remote_ip()
                print("Invalid transaction (not enough funds) tentative from ({0})".format(remote_ip))
                response["error"] = "Not enough coins"
                return

            # Just in case...
            if recipient_wallet.id == source_wallet.id:
                remote_ip = client_connection.get_remote_ip()
                print("Invalid transaction (same wallet) tentative from ({0})".format(remote_ip))
                response["error"] = "Source and recipient are the same wallet"
                return

            # completing transaction
            source_wallet.balance -= amount
            recipient_wallet.balance += amount
            self.database.update_wallet_balance(source_wallet)
            self.database.update_wallet_balance(recipient_wallet)

            txn = Transaction.Transaction(0, source_wallet.id, recipient_wallet.id, amount)
            txn.signature = signature
            self.database.create_transaction(txn)
            response['id'] = txn.id

        except KeyError as e:
            response["error"] = "Missing argument(s)"
        except Exception as e:
            print("{0} exception : {1}".format(self.__class__, e))