コード例 #1
0
def import_aaii_exported_xls(xlrd_workbook, attribute_suffix="_aa"):
    '''AAII .xls file'''

    relevant_spreadsheet_list = utils.return_relevant_spreadsheet_list_from_workbook(
        xlrd_workbook)

    dict_list = []
    # sample.xls specific

    # only 1 sheet
    if not len(relevant_spreadsheet_list) == 1:
        print ""
        print "Error in process_sample_dot_xls() in wxStocks_xls_import_functions.py"
        print "spreadsheet list > 1 sheet"
        print ""
        return None
    spreadsheet = relevant_spreadsheet_list[0]

    num_columns = spreadsheet.ncols
    num_rows = spreadsheet.nrows

    # important row and column numbers
    attribute_name_row = 0  # 1st row
    ticker_col = 1  # 2nd column

    for row_num in range(num_rows):
        if row_num in [0]:  # attribute row
            continue
        dict_to_add = {}
        for col_num in range(num_columns):
            datum = utils.return_xls_cell_value(xlrd_spreadsheet=spreadsheet,
                                                row=row_num,
                                                column=col_num)
            attribute_name = utils.return_xls_cell_value(
                xlrd_spreadsheet=spreadsheet,
                row=attribute_name_row,
                column=col_num)
            if not datum:
                datum = "-"
            if col_num == ticker_col:
                dict_to_add = {"stock": str(datum)}
            else:
                if attribute_name:
                    dict_to_add[attribute_name] = datum
                else:
                    print "Error: wxStocks_xls_import_functions: function: process_sample_dot_xls: Data present with no named attribute."

        if dict_to_add:
            dict_list.append(dict_to_add)

    print dict_list

    return (dict_list, attribute_suffix)


# end of line
コード例 #2
0
def process_sample_dot_xls(xlrd_workbook, attribute_suffix = "_xl"):
	'''import sample.xls'''
	import config
	from wxStocks_modules import wxStocks_utilities as utils
	relevant_spreadsheet_list  = utils.return_relevant_spreadsheet_list_from_workbook(xlrd_workbook)

	dict_list = []
	# sample.xls specific

	# only 1 sheet
	if not len(relevant_spreadsheet_list) == 1:
		print ""
		print "Error in process_sample_dot_xls() in wxStocks_xls_import_functions.py"
		print "spreadsheet list > 1 sheet"
		print ""
		return None
	spreadsheet = relevant_spreadsheet_list[0]

	num_columns = spreadsheet.ncols
	num_rows = spreadsheet.nrows

	# important row and column numbers
	attribute_name_row = 2 # 3rd row
	ticker_col = 0 # 1st column

	for row_num in range(num_rows):
		if row_num in [0, 1, 2]:
			continue
		dict_to_add = {}
		for col_num in range(num_columns):
			datum = utils.return_xls_cell_value(xlrd_spreadsheet = spreadsheet, row = row_num, column = col_num)
			attribute_name = utils.return_xls_cell_value(xlrd_spreadsheet = spreadsheet, row = attribute_name_row, column = col_num)
			if datum:
				if col_num == ticker_col:
					dict_to_add = {"stock": datum}
				else:
					if attribute_name:
						dict_to_add[attribute_name] = datum
					else:
						print "Error: wxStocks_xls_import_functions: function: process_sample_dot_xls: Data present with no named attribute."

		if dict_to_add:
			dict_list.append(dict_to_add)

	print dict_list

	return (dict_list, attribute_suffix)







# end of line
コード例 #3
0
def import_aaii_exported_xls(xlrd_workbook, attribute_suffix = "_aa"):
	'''AAII .xls file'''

	relevant_spreadsheet_list  = utils.return_relevant_spreadsheet_list_from_workbook(xlrd_workbook)

	dict_list = []
	# sample.xls specific

	# only 1 sheet
	if not len(relevant_spreadsheet_list) == 1:
		print ""
		print "Error in process_sample_dot_xls() in wxStocks_xls_import_functions.py"
		print "spreadsheet list > 1 sheet"
		print ""
		return None
	spreadsheet = relevant_spreadsheet_list[0]

	num_columns = spreadsheet.ncols
	num_rows = spreadsheet.nrows

	# important row and column numbers
	attribute_name_row = 0 # 1st row
	ticker_col = 1 # 2nd column

	for row_num in range(num_rows):
		if row_num in [0]: # attribute row
			continue
		dict_to_add = {}
		for col_num in range(num_columns):
			datum = utils.return_xls_cell_value(xlrd_spreadsheet = spreadsheet, row = row_num, column = col_num)
			attribute_name = utils.return_xls_cell_value(xlrd_spreadsheet = spreadsheet, row = attribute_name_row, column = col_num)
			if not datum:
				datum = "-"
			if col_num == ticker_col:
				dict_to_add = {"stock": str(datum)}
			else:
				if attribute_name:
					dict_to_add[attribute_name] = datum
				else:
					print "Error: wxStocks_xls_import_functions: function: process_sample_dot_xls: Data present with no named attribute."

		if dict_to_add:
			dict_list.append(dict_to_add)

	print dict_list

	return (dict_list, attribute_suffix)





# end of line
コード例 #4
0
def sample_xls(xls_file, attribute_suffix = "_my"):
	"""Sample XLS portfolio import"""
	if not xlrd:
		raise Exception("Module XLRD is not installed on your machine, please install it")
		return

	import config
	from wxStocks_modules import wxStocks_utilities as utils

	xlrd_workbook = xlrd.open_workbook(xls_file.name)

	relevant_spreadsheet_list  = utils.return_relevant_spreadsheet_list_from_workbook(xlrd_workbook)

	dict_list = []
	# sample.xls specific

	# only 1 sheet
	if not len(relevant_spreadsheet_list) == 1:
		raise Exception("\nError in default_xls() in wxStocks_portfolio_import_functions.py\nspreadsheet list > 1 sheet\n")
		return None
	spreadsheet = relevant_spreadsheet_list[0]

	num_columns = spreadsheet.ncols
	num_rows = spreadsheet.nrows

	#print line_number(), self.portfolio_data
	new_account_stock_list = []
	cash = "This should be changed"
	cost_basis_dict = {}
	count = 0

	ticker_col = None
	ticker_vars = ["ticker", "symbol"]
	quantity_col = None
	quantity_vars = ["quantity"]
	cost_basis_col = None
	cost_basis_vars = ["costbasis", "cost basis", "cost_basis"]
	market_value_col = None
	market_value_vars = ["marketvalue", "market value", "market_value"]
	cash_row = None
	cash_vars = ["Cash", "cost basis", "cost_basis"]
	for row_num in range(num_rows):
		for col_num in range(num_columns):
			cell_value = utils.return_xls_cell_value(xlrd_spreadsheet = spreadsheet, row = row_num, column = col_num)
			cell_value = str(cell_value)
			# quick parser for keywords
			if ticker_col is None:
				for var in ticker_vars:
					if var in cell_value.lower():
						ticker_col = col_num
			if quantity_col is None:
				for var in quantity_vars:
					if var in cell_value.lower():
						quantity_col = col_num
			if cost_basis_col is None:
				for var in cost_basis_vars:
					if var in cell_value.lower():
						cost_basis_col = col_num
			if market_value_col is None:
				for var in market_value_vars:
					if var in cell_value.lower():
						market_value_col = col_num
			if cash_row is None:
				for var in cash_vars:
					if var in cell_value:
						cash_row = row_num
	# Go!
	if ticker_col is not None and quantity_col is not None:
		for row_num in range(num_rows):
			if cash_row is not None:
				if row_num == cash_row:
					cash = utils.return_xls_cell_value(xlrd_spreadsheet = spreadsheet, row = row_num, column = market_value_col)
					formatted_cash = ""
					for char in cash:
						if char == "$" or char == " ":
							pass
						else:
							formatted_cash += char
					cash = float(formatted_cash)
			ticker = None
			possible_ticker = utils.return_xls_cell_value(xlrd_spreadsheet = spreadsheet, row = row_num, column = ticker_col)
			if possible_ticker == possible_ticker.upper():
				ticker = possible_ticker
			if ticker:
				stock_shares_tuple = (ticker, utils.return_xls_cell_value(xlrd_spreadsheet = spreadsheet, row = row_num, column = quantity_col))
				new_account_stock_list.append(stock_shares_tuple)
				if cost_basis_col is not None:
					basis = utils.return_xls_cell_value(xlrd_spreadsheet = spreadsheet, row = row_num, column = cost_basis_col)
					formatted_basis = ""
					for char in basis:
						if char == "$" or char == " ":
							pass
						else:
							formatted_basis += char
					basis = float(formatted_basis)
					cost_basis_dict[ticker] = basis

	if cash == "This should be changed":
		logging.error('Formatting error in CSV import')
	account_dict = {"cash": cash, "stock_list": new_account_stock_list, "cost_basis_dict": cost_basis_dict}

	if not account_dict:
		logging.error("Error: empty account dictionary to return.")
		return

	return account_dict
	return (dict_list, attribute_suffix)
def sample_xls(xls_file, attribute_suffix="_my"):
    """Sample XLS portfolio import"""
    if not xlrd:
        raise Exception(
            "Module XLRD is not installed on your machine, please install it")
        return

    import config
    from wxStocks_modules import wxStocks_utilities as utils

    xlrd_workbook = xlrd.open_workbook(xls_file.name)

    relevant_spreadsheet_list = utils.return_relevant_spreadsheet_list_from_workbook(
        xlrd_workbook)

    dict_list = []
    # sample.xls specific

    # only 1 sheet
    if not len(relevant_spreadsheet_list) == 1:
        raise Exception(
            "\nError in default_xls() in wxStocks_portfolio_import_functions.py\nspreadsheet list > 1 sheet\n"
        )
        return None
    spreadsheet = relevant_spreadsheet_list[0]

    num_columns = spreadsheet.ncols
    num_rows = spreadsheet.nrows

    #print line_number(), self.portfolio_data
    new_account_stock_list = []
    cash = "This should be changed"
    cost_basis_dict = {}
    count = 0

    ticker_col = None
    ticker_vars = ["ticker", "symbol"]
    quantity_col = None
    quantity_vars = ["quantity"]
    cost_basis_col = None
    cost_basis_vars = ["costbasis", "cost basis", "cost_basis"]
    market_value_col = None
    market_value_vars = ["marketvalue", "market value", "market_value"]
    cash_row = None
    cash_vars = ["Cash", "cost basis", "cost_basis"]
    for row_num in range(num_rows):
        for col_num in range(num_columns):
            cell_value = utils.return_xls_cell_value(
                xlrd_spreadsheet=spreadsheet, row=row_num, column=col_num)
            cell_value = str(cell_value)
            # quick parser for keywords
            if ticker_col is None:
                for var in ticker_vars:
                    if var in cell_value.lower():
                        ticker_col = col_num
            if quantity_col is None:
                for var in quantity_vars:
                    if var in cell_value.lower():
                        quantity_col = col_num
            if cost_basis_col is None:
                for var in cost_basis_vars:
                    if var in cell_value.lower():
                        cost_basis_col = col_num
            if market_value_col is None:
                for var in market_value_vars:
                    if var in cell_value.lower():
                        market_value_col = col_num
            if cash_row is None:
                for var in cash_vars:
                    if var in cell_value:
                        cash_row = row_num
    # Go!
    if ticker_col is not None and quantity_col is not None:
        for row_num in range(num_rows):
            if cash_row is not None:
                if row_num == cash_row:
                    cash = utils.return_xls_cell_value(
                        xlrd_spreadsheet=spreadsheet,
                        row=row_num,
                        column=market_value_col)
                    formatted_cash = ""
                    for char in cash:
                        if char == "$" or char == " ":
                            pass
                        else:
                            formatted_cash += char
                    cash = float(formatted_cash)
            ticker = None
            possible_ticker = utils.return_xls_cell_value(
                xlrd_spreadsheet=spreadsheet, row=row_num, column=ticker_col)
            if possible_ticker == possible_ticker.upper():
                ticker = possible_ticker
            if ticker:
                stock_shares_tuple = (ticker,
                                      utils.return_xls_cell_value(
                                          xlrd_spreadsheet=spreadsheet,
                                          row=row_num,
                                          column=quantity_col))
                new_account_stock_list.append(stock_shares_tuple)
                if cost_basis_col is not None:
                    basis = utils.return_xls_cell_value(
                        xlrd_spreadsheet=spreadsheet,
                        row=row_num,
                        column=cost_basis_col)
                    formatted_basis = ""
                    for char in basis:
                        if char == "$" or char == " ":
                            pass
                        else:
                            formatted_basis += char
                    basis = float(formatted_basis)
                    cost_basis_dict[ticker] = basis

    if cash == "This should be changed":
        logging.error('Formatting error in CSV import')
    account_dict = {
        "cash": cash,
        "stock_list": new_account_stock_list,
        "cost_basis_dict": cost_basis_dict
    }

    if not account_dict:
        logging.error("Error: empty account dictionary to return.")
        return

    return account_dict
    return (dict_list, attribute_suffix)